diff options
author | glx <glx@openttd.org> | 2007-05-27 01:59:07 +0000 |
---|---|---|
committer | glx <glx@openttd.org> | 2007-05-27 01:59:07 +0000 |
commit | 3db7a70057cef8715ac0860bb9cb49705b0b703c (patch) | |
tree | 78761997cd47fc4eed152e3819a255eb2c48898e | |
parent | 8c9b4ee548975f3b5db14468f3abc7a0534e4b09 (diff) | |
download | openttd-3db7a70057cef8715ac0860bb9cb49705b0b703c.tar.xz |
(svn r9952) -Fix r9951: it was not possible to build a drive-through station over a road/tram
-rw-r--r-- | src/station_cmd.cpp | 6 | ||||
-rw-r--r-- | src/unmovable_cmd.cpp | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index b1b628bf9..1d9b986c4 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -615,7 +615,7 @@ static int32 ClearTile_Station(TileIndex tile, byte flags); // Tries to clear the given area. Returns the cost in case of success. // Or an error code if it failed. -int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station) +int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station, bool check_clear = true) { int32 cost = 0; int allowed_z = -1; @@ -678,7 +678,7 @@ int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invali return_cmd_error(STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING); } } - } else { + } else if (check_clear) { int32 ret = DoCommand(tile_cur, 0, 0, flags, CMD_LANDSCAPE_CLEAR); if (CmdFailed(ret)) return ret; cost += ret; @@ -1280,7 +1280,7 @@ int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) /* Do not remove roadtypes! */ rts |= cur_rts; } - cost = CheckFlatLandBelow(tile, 1, 1, flags, is_drive_through ? 5 << p1 : 1 << p1, NULL); + cost = CheckFlatLandBelow(tile, 1, 1, flags, is_drive_through ? 5 << p1 : 1 << p1, NULL, !build_over_road); if (CmdFailed(cost)) return cost; Station *st = NULL; diff --git a/src/unmovable_cmd.cpp b/src/unmovable_cmd.cpp index d077a886b..dc3bf1112 100644 --- a/src/unmovable_cmd.cpp +++ b/src/unmovable_cmd.cpp @@ -73,7 +73,7 @@ void UpdateCompanyHQ(Player *p, uint score) MarkTileDirtyByTile(tile + TileDiffXY(1, 1)); } -extern int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station); +extern int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station, bool check_clear = true); /** Build or relocate the HQ. This depends if the HQ is already built or not * @param tile tile where the HQ will be built or relocated to |