|
@@ -1172,56 +1172,56 @@ static void TileLoop_TunnelBridge(TileIn
|
|
|
if (snow_or_desert != (GetTileZ(tile) > GetSnowLine())) {
|
|
|
SetTunnelBridgeSnowOrDesert(tile, !snow_or_desert);
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case LT_TROPIC:
|
|
|
if (GetTropicZone(tile) == TROPICZONE_DESERT && !snow_or_desert) {
|
|
|
SetTunnelBridgeSnowOrDesert(tile, true);
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static void ClickTile_TunnelBridge(TileIndex tile)
|
|
|
{
|
|
|
/* not used */
|
|
|
}
|
|
|
|
|
|
|
|
|
static uint32 GetTileTrackStatus_TunnelBridge(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
|
|
|
static TrackStatus GetTileTrackStatus_TunnelBridge(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
|
|
|
{
|
|
|
TransportType transport_type = GetTunnelBridgeTransportType(tile);
|
|
|
if (transport_type != mode || (transport_type == TRANSPORT_ROAD && (GetRoadTypes(tile) & sub_mode) == 0)) return 0;
|
|
|
|
|
|
DiagDirection dir = GetTunnelBridgeDirection(tile);
|
|
|
if (side != INVALID_DIAGDIR && side != ReverseDiagDir(dir)) return 0;
|
|
|
return AxisToTrackBits(DiagDirToAxis(dir)) * 0x101;
|
|
|
return CombineTrackStatus(TrackBitsToTrackdirBits(AxisToTrackBits(DiagDirToAxis(dir))), TRACKDIR_BIT_NONE);
|
|
|
}
|
|
|
|
|
|
static void ChangeTileOwner_TunnelBridge(TileIndex tile, PlayerID old_player, PlayerID new_player)
|
|
|
{
|
|
|
if (!IsTileOwner(tile, old_player)) return;
|
|
|
|
|
|
if (new_player != PLAYER_SPECTATOR) {
|
|
|
SetTileOwner(tile, new_player);
|
|
|
} else {
|
|
|
if (CmdFailed(DoCommand(tile, 0, 0, DC_EXEC | DC_BANKRUPT, CMD_LANDSCAPE_CLEAR))) {
|
|
|
/* When clearing the bridge/tunnel failed there are still vehicles on/in
|
|
|
* the bridge/tunnel. As all *our* vehicles are already removed, they
|
|
|
* must be of another owner. Therefor this must be a road bridge/tunnel.
|
|
|
* In that case we can safely reassign the ownership to OWNER_NONE. */
|
|
|
assert(GetTunnelBridgeTransportType(tile) == TRANSPORT_ROAD);
|
|
|
SetTileOwner(tile, OWNER_NONE);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
static const byte _tunnel_fractcoord_1[4] = {0x8E, 0x18, 0x81, 0xE8};
|
|
|
static const byte _tunnel_fractcoord_2[4] = {0x81, 0x98, 0x87, 0x38};
|
|
|
static const byte _tunnel_fractcoord_3[4] = {0x82, 0x88, 0x86, 0x48};
|