diff options
author | yexo <yexo@openttd.org> | 2009-08-20 15:59:35 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2009-08-20 15:59:35 +0000 |
commit | 367ff2375af6a7eeac122186335a193361bf06f2 (patch) | |
tree | ef91fbeac40cc0631685169855e7084d2bc2bc57 /src | |
parent | edcaf8aa3ac6a739e81f753cd739b012f0af4933 (diff) | |
download | openttd-367ff2375af6a7eeac122186335a193361bf06f2.tar.xz |
(svn r17239) -Change [FS#2802]: allow overbuilding the front tile of a roadstation / roaddepot with road
to be consistent with overbuilding the front tile of tunnels/bridges and also to make it easier for AIs to
connect roadstations and roaddepots to the road in front of it
Diffstat (limited to 'src')
-rw-r--r-- | src/road_cmd.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index a7484d305..529f2e367 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -516,9 +516,11 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 if (HasTileRoadType(tile, rt)) return_cmd_error(STR_ERROR_ALREADY_BUILT); break; - default: case ROAD_TILE_DEPOT: + if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_ERROR_ALREADY_BUILT); goto do_clear; + + default: NOT_REACHED(); } break; @@ -565,6 +567,7 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 } case MP_STATION: { + if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_ERROR_ALREADY_BUILT); if (!IsDriveThroughStopTile(tile)) goto do_clear; RoadBits curbits = AxisToRoadBits(DiagDirToAxis(GetRoadStopDir(tile))); @@ -575,8 +578,8 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 } break; case MP_TUNNELBRIDGE: - if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR; - if (MirrorRoadBits(DiagDirToRoadBits(GetTunnelBridgeDirection(tile))) != pieces) return CMD_ERROR; + if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) goto do_clear; + if (MirrorRoadBits(DiagDirToRoadBits(GetTunnelBridgeDirection(tile))) != pieces) goto do_clear; if (HasTileRoadType(tile, rt)) return_cmd_error(STR_ERROR_ALREADY_BUILT); /* Don't allow adding roadtype to the bridge/tunnel when vehicles are already driving on it */ if (HasVehicleOnTunnelBridge(tile, GetOtherTunnelBridgeEnd(tile))) return CMD_ERROR; |