Changeset - r15091:ca0d009a9d80
[Not reviewed]
master
0 1 0
terkhen - 14 years ago 2010-04-25 20:56:42
terkhen@openttd.org
(svn r19727) -Fix (r19720) [FS#3795]: Demolishing bridges or aqueducts caused a crash.
1 file changed with 2 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/tunnelbridge_cmd.cpp
Show inline comments
 
@@ -747,12 +747,14 @@ static CommandCost DoClearBridge(TileInd
 
	/* checks if the owner is town then decrease town rating by RATING_TUNNEL_BRIDGE_DOWN_STEP until
 
	 * you have a "Poor" (0) town rating */
 
	if (IsTileOwner(tile, OWNER_TOWN) && _game_mode != GM_EDITOR) {
 
		ChangeTownRating(t, RATING_TUNNEL_BRIDGE_DOWN_STEP, RATING_TUNNEL_BRIDGE_MINIMUM, flags);
 
	}
 

	
 
	Money base_cost = (GetTunnelBridgeTransportType(tile) != TRANSPORT_WATER) ? _price[PR_CLEAR_BRIDGE] : _price[PR_CLEAR_AQUEDUCT];
 

	
 
	if (flags & DC_EXEC) {
 
		/* read this value before actual removal of bridge */
 
		bool rail = GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL;
 
		Owner owner = GetTileOwner(tile);
 
		uint height = GetBridgeHeight(tile);
 
		Train *v = NULL;
 
@@ -784,13 +786,12 @@ static CommandCost DoClearBridge(TileInd
 
			YapfNotifyTrackLayoutChange(endtile, track);
 

	
 
			if (v != NULL) TryPathReserve(v, true);
 
		}
 
	}
 

	
 
	Money base_cost = (GetTunnelBridgeTransportType(tile) != TRANSPORT_WATER) ? _price[PR_CLEAR_BRIDGE] : _price[PR_CLEAR_AQUEDUCT];
 
	return CommandCost(EXPENSES_CONSTRUCTION, (GetTunnelBridgeLength(tile, endtile) + 2) * base_cost);
 
}
 

	
 
/** Remove a tunnel or a bridge from the game.
 
 * @param tile Tile containing one of the endpoints.
 
 * @param flags Command flags.
0 comments (0 inline, 0 general)