diff options
author | belugas <belugas@openttd.org> | 2007-04-01 11:11:49 +0000 |
---|---|---|
committer | belugas <belugas@openttd.org> | 2007-04-01 11:11:49 +0000 |
commit | 27311537ce22b2ffa86e9be7009e0c49bc82329b (patch) | |
tree | 6a3e8c166a44b7315ad8a3112b2dae03664970f2 | |
parent | 6f49e4c644965595910a16ee9fed978bee8a0b72 (diff) | |
download | openttd-27311537ce22b2ffa86e9be7009e0c49bc82329b.tar.xz |
(svn r9542) -Fix(FS# 712): When checking if a vehicle is on a given tile, and you are working on the ground tile, do not take aircrafts into account, as they do not pose any danger for the construction/destruction/conversion itself. Z stuff, in other words
-rw-r--r-- | src/rail_cmd.cpp | 16 | ||||
-rw-r--r-- | src/road_cmd.cpp | 10 | ||||
-rw-r--r-- | src/tunnelbridge_cmd.cpp | 8 |
3 files changed, 17 insertions, 17 deletions
diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 0abf832e5..308aa8efd 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -254,7 +254,7 @@ int32 CmdBuildSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) switch (GetTileType(tile)) { case MP_RAILWAY: if (!CheckTrackCombination(tile, trackbit, flags) || - !EnsureNoVehicle(tile)) { + !EnsureNoVehicleOnGround(tile)) { return CMD_ERROR; } if (!IsTileOwner(tile, _current_player) || @@ -289,7 +289,7 @@ int32 CmdBuildSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) } #undef M - if (!EnsureNoVehicle(tile)) return CMD_ERROR; + if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; if (GetRoadTileType(tile) == ROAD_TILE_NORMAL) { if (HasRoadWorks(tile)) return_cmd_error(STR_ROAD_WORKS_IN_PROGRESS); @@ -352,7 +352,7 @@ int32 CmdRemoveSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (!IsLevelCrossing(tile) || GetCrossingRailBits(tile) != trackbit || (_current_player != OWNER_WATER && !CheckTileOwnership(tile)) || - !EnsureNoVehicle(tile)) { + !EnsureNoVehicleOnGround(tile)) { return CMD_ERROR; } @@ -367,7 +367,7 @@ int32 CmdRemoveSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (!IsPlainRailTile(tile) || (_current_player != OWNER_WATER && !CheckTileOwnership(tile)) || - !EnsureNoVehicle(tile)) { + !EnsureNoVehicleOnGround(tile)) { return CMD_ERROR; } @@ -623,7 +623,7 @@ int32 CmdBuildSingleSignal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) SignalVariant sigvar = (pre_signal ^ HASBIT(p1, 4)) ? SIG_SEMAPHORE : SIG_ELECTRIC; int32 cost; - if (!ValParamTrackOrientation(track) || !IsTileType(tile, MP_RAILWAY) || !EnsureNoVehicle(tile)) + if (!ValParamTrackOrientation(track) || !IsTileType(tile, MP_RAILWAY) || !EnsureNoVehicleOnGround(tile)) return CMD_ERROR; /* Protect against invalid signal copying */ @@ -810,7 +810,7 @@ int32 CmdRemoveSingleSignal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (!ValParamTrackOrientation(track) || !IsTileType(tile, MP_RAILWAY) || - !EnsureNoVehicle(tile) || + !EnsureNoVehicleOnGround(tile) || !HasSignalOnTrack(tile, track)) { return CMD_ERROR; } @@ -867,7 +867,7 @@ static int32 DoConvertRail(TileIndex tile, RailType totype, bool exec) if (GetRailType(tile) == totype) return CMD_ERROR; - if (!EnsureNoVehicle(tile) && (!IsCompatibleRail(GetRailType(tile), totype) || IsPlainRailTile(tile))) return CMD_ERROR; + if (!EnsureNoVehicleOnGround(tile) && (!IsCompatibleRail(GetRailType(tile), totype) || IsPlainRailTile(tile))) return CMD_ERROR; // 'hidden' elrails can't be downgraded to normal rail when elrails are disabled if (_patches.disable_elrails && totype == RAILTYPE_RAIL && GetRailType(tile) == RAILTYPE_ELECTRIC) return CMD_ERROR; @@ -971,7 +971,7 @@ static int32 RemoveTrainDepot(TileIndex tile, uint32 flags) if (!CheckTileOwnership(tile) && _current_player != OWNER_WATER) return CMD_ERROR; - if (!EnsureNoVehicle(tile)) + if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; if (flags & DC_EXEC) { diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index b054968be..c086d0c61 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -120,7 +120,7 @@ int32 CmdRemoveRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (!CheckAllowRemoveRoad(tile, pieces, &edge_road)) return CMD_ERROR; - if (!EnsureNoVehicle(tile)) return CMD_ERROR; + if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; /* check if you're allowed to remove the street owned by a town * removal allowance depends on difficulty setting */ @@ -281,7 +281,7 @@ int32 CmdBuildRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if ((existing & pieces) == pieces) { return_cmd_error(STR_1007_ALREADY_BUILT); } - if (!EnsureNoVehicle(tile)) return CMD_ERROR; + if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; break; case ROAD_TILE_CROSSING: @@ -325,7 +325,7 @@ int32 CmdBuildRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) default: goto do_clear; } - if (!EnsureNoVehicle(tile)) return CMD_ERROR; + if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; if (flags & DC_EXEC) { YapfNotifyTrackLayoutChange(tile, FindFirstTrack(GetTrackBits(tile))); @@ -383,7 +383,7 @@ int32 DoConvertStreetRail(TileIndex tile, RailType totype, bool exec) if (!IsLevelCrossing(tile)) return CMD_ERROR; /* not owned by me? */ - if (!CheckTileOwnership(tile) || !EnsureNoVehicle(tile)) return CMD_ERROR; + if (!CheckTileOwnership(tile) || !EnsureNoVehicleOnGround(tile)) return CMD_ERROR; if (GetRailType(tile) == totype) return CMD_ERROR; @@ -902,7 +902,7 @@ static void TileLoop_Road(TileIndex tile) if (t->road_build_months != 0 && (DistanceManhattan(t->xy, tile) < 8 || grp != 0) && GetRoadTileType(tile) == ROAD_TILE_NORMAL && (GetRoadBits(tile) == ROAD_X || GetRoadBits(tile) == ROAD_Y)) { - if (GetTileSlope(tile, NULL) == SLOPE_FLAT && EnsureNoVehicle(tile) && CHANCE16(1, 20)) { + if (GetTileSlope(tile, NULL) == SLOPE_FLAT && EnsureNoVehicleOnGround(tile) && CHANCE16(1, 20)) { StartRoadWorks(tile); SndPlayTileFx(SND_21_JACKHAMMER, tile); diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index e386da262..777e869ac 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -637,8 +637,8 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags) endtile = GetOtherBridgeEnd(tile); - if (!EnsureNoVehicle(tile) || - !EnsureNoVehicle(endtile) || + if (!EnsureNoVehicleOnGround(tile) || + !EnsureNoVehicleOnGround(endtile) || IsVehicleOnBridge(tile, endtile, GetBridgeHeight(tile))) { return CMD_ERROR; } @@ -741,8 +741,8 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, RailType totype, bool exec) endtile = GetOtherBridgeEnd(tile); - if (!EnsureNoVehicle(tile) || - !EnsureNoVehicle(endtile) || + if (!EnsureNoVehicleOnGround(tile) || + !EnsureNoVehicleOnGround(endtile) || IsVehicleOnBridge(tile, endtile, GetBridgeHeight(tile))) { return CMD_ERROR; } |