Ensure that adjacent level crossings cannot leave map if there are no void tiles

This commit is contained in:
Jonathan G Rennison
2021-11-20 01:27:41 +00:00
parent 5959e1c0f9
commit 551560537f
2 changed files with 6 additions and 6 deletions

View File

@@ -133,10 +133,10 @@ bool TryReserveRailTrack(TileIndex tile, Track t, bool trigger_stations)
if (IsCrossingOccupiedByRoadVehicle(tile)) return false;
if (_settings_game.vehicle.adjacent_crossings) {
const Axis axis = GetCrossingRoadAxis(tile);
for (TileIndex t = tile; IsLevelCrossingTile(t) && GetCrossingRoadAxis(t) == axis; t = TileAddByDiagDir(t, AxisToDiagDir(GetCrossingRoadAxis(t)))) {
for (TileIndex t = tile; t < MapSize() && IsLevelCrossingTile(t) && GetCrossingRoadAxis(t) == axis; t = TileAddByDiagDir(t, AxisToDiagDir(GetCrossingRoadAxis(t)))) {
if (IsCrossingOccupiedByRoadVehicle(t)) return false;
}
for (TileIndex t = tile; IsLevelCrossingTile(t) && GetCrossingRoadAxis(t) == axis; t = TileAddByDiagDir(t, ReverseDiagDir(AxisToDiagDir(GetCrossingRoadAxis(t))))) {
for (TileIndex t = tile; t < MapSize() && IsLevelCrossingTile(t) && GetCrossingRoadAxis(t) == axis; t = TileAddByDiagDir(t, ReverseDiagDir(AxisToDiagDir(GetCrossingRoadAxis(t))))) {
if (IsCrossingOccupiedByRoadVehicle(t)) return false;
}
}