Changeset - r22061:afde426625d7
[Not reviewed]
master
0 1 0
planetmaker - 10 years ago 2015-04-11 11:50:02
planetmaker@openttd.org
(svn r27225) -Change [FS#6262]: Be more lenient about road stop removal when at least one stop could be removed (afd88)
1 file changed with 10 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/station_cmd.cpp
Show inline comments
 
@@ -2048,8 +2048,10 @@ CommandCost CmdRemoveRoadStop(TileIndex 
 

	
 
	TileArea roadstop_area(tile, width, height);
 

	
 
	int quantity = 0;
 
	CommandCost cost(EXPENSES_CONSTRUCTION);
 
	CommandCost last_error(STR_ERROR_THERE_IS_NO_STATION);
 
	bool had_success = false;
 

	
 
	TILE_AREA_LOOP(cur_tile, roadstop_area) {
 
		/* Make sure the specified tile is a road stop of the correct type */
 
		if (!IsTileType(cur_tile, MP_STATION) || !IsRoadStop(cur_tile) || (uint32)GetRoadStopType(cur_tile) != GB(p2, 0, 1)) continue;
 
@@ -2064,10 +2066,13 @@ CommandCost CmdRemoveRoadStop(TileIndex 
 
		Owner road_owner = GetRoadOwner(cur_tile, ROADTYPE_ROAD);
 
		Owner tram_owner = GetRoadOwner(cur_tile, ROADTYPE_TRAM);
 
		CommandCost ret = RemoveRoadStop(cur_tile, flags);
 
		if (ret.Failed()) return ret;
 
		if (ret.Failed()) {
 
			last_error = ret;
 
			continue;
 
		}
 
		cost.AddCost(ret);
 

	
 
		quantity++;
 
		had_success = true;
 

	
 
		/* If the stop was a drive-through stop replace the road */
 
		if ((flags & DC_EXEC) && is_drive_through) {
 
			MakeRoadNormal(cur_tile, road_bits, rts, ClosestTownFromTile(cur_tile, UINT_MAX)->index,
 
@@ -2085,9 +2090,7 @@ CommandCost CmdRemoveRoadStop(TileIndex 
 
		}
 
	}
 

	
 
	if (quantity == 0) return_cmd_error(STR_ERROR_THERE_IS_NO_STATION);
 

	
 
	return cost;
 
	return had_success ? cost : last_error;
 
}
 

	
 
/**
0 comments (0 inline, 0 general)