(svn r17260) [0.7] -Backport from trunk:

- Fix: Other tunnel end not shown if building rail tunnels and the first railtype is not available yet [FS#3141] (r17251)
- Fix: One could, via unselect all, also unselect already installed content; it would not uninstall it though [FS#3137] (r17245)
- Change: Make overbuilding the front tile of a road station/depot with road consistent with overbuilding the front tile of tunnels/bridges [FS#2802] (r17239)
- Change [NoAI]: Load the API before compiling an AI script so AIs can subclass API classes and use API constants as part of their own constants (r17043)
This commit is contained in:
rubidium
2009-08-22 15:38:42 +00:00
parent e492c5928d
commit ca66a61cc9
4 changed files with 11 additions and 8 deletions
+6 -3
View File
@@ -514,9 +514,11 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
if (HasTileRoadType(tile, rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
break;
default:
case ROAD_TILE_DEPOT:
if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_1007_ALREADY_BUILT);
goto do_clear;
default: NOT_REACHED();
}
break;
@@ -563,6 +565,7 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
}
case MP_STATION: {
if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_1007_ALREADY_BUILT);
if (!IsDriveThroughStopTile(tile)) goto do_clear;
RoadBits curbits = AxisToRoadBits(DiagDirToAxis(GetRoadStopDir(tile)));
@@ -573,8 +576,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_1007_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;