Only show level crossing overlay sprites on outsides of multi-track crossings

When using both adjacent crossings and safer crossings
This commit is contained in:
Jonathan G Rennison
2021-11-20 01:42:18 +00:00
parent 551560537f
commit 4ccbb11440
5 changed files with 109 additions and 1 deletions

View File

@@ -2610,6 +2610,20 @@ void UpdateLevelCrossing(TileIndex tile, bool sound, bool force_close)
}
}
void MarkDirtyAdjacentLevelCrossingTilesOnAddRemove(TileIndex tile, Axis road_axis)
{
if (!(_settings_game.vehicle.safer_crossings && _settings_game.vehicle.adjacent_crossings)) return;
const DiagDirection dir1 = AxisToDiagDir(road_axis);
const DiagDirection dir2 = ReverseDiagDir(dir1);
for (DiagDirection dir : { dir1, dir2 }) {
const TileIndex t = TileAddByDiagDir(tile, dir);
if (t < MapSize() && IsLevelCrossingTile(t) && GetCrossingRoadAxis(t) == road_axis) {
MarkTileDirtyByTile(t, VMDF_NOT_MAP_MODE);
}
}
}
/**
* Check if the level crossing is occupied by road vehicle(s).
* @param t The tile to query.