1
0
Fork 0

Codechange: Use DiagDirections when drawing level crossings.

pull/14231/head
Peter Nelson 2025-05-06 20:38:09 +01:00 committed by Peter Nelson
parent 1ac9f24f38
commit aa9e5b38cd
1 changed files with 8 additions and 8 deletions

View File

@ -1761,32 +1761,32 @@ static void DrawTile_Road(TileInfo *ti)
const Axis road_axis = GetCrossingRoadAxis(ti->tile); const Axis road_axis = GetCrossingRoadAxis(ti->tile);
const DiagDirection dir1 = AxisToDiagDir(road_axis); const DiagDirection dir1 = AxisToDiagDir(road_axis);
const DiagDirection dir2 = ReverseDiagDir(dir1); const DiagDirection dir2 = ReverseDiagDir(dir1);
uint adjacent_diagdirs = 0; DiagDirections adjacent_diagdirs{};
for (DiagDirection dir : { dir1, dir2 }) { for (DiagDirection dir : { dir1, dir2 }) {
const TileIndex t = TileAddByDiagDir(ti->tile, dir); const TileIndex t = TileAddByDiagDir(ti->tile, dir);
if (t < Map::Size() && IsLevelCrossingTile(t) && GetCrossingRoadAxis(t) == road_axis) { if (t < Map::Size() && IsLevelCrossingTile(t) && GetCrossingRoadAxis(t) == road_axis) {
SetBit(adjacent_diagdirs, dir); adjacent_diagdirs.Set(dir);
} }
} }
switch (adjacent_diagdirs) { switch (adjacent_diagdirs.base()) {
case 0: case DiagDirections{}.base():
DrawRailTileSeq(ti, &_crossing_layout, TO_CATENARY, rail, 0, PAL_NONE); DrawRailTileSeq(ti, &_crossing_layout, TO_CATENARY, rail, 0, PAL_NONE);
break; break;
case (1 << DIAGDIR_NE): case DiagDirections{DIAGDIR_NE}.base():
DrawRailTileSeq(ti, &_crossing_layout_SW, TO_CATENARY, rail, 0, PAL_NONE); DrawRailTileSeq(ti, &_crossing_layout_SW, TO_CATENARY, rail, 0, PAL_NONE);
break; break;
case (1 << DIAGDIR_SE): case DiagDirections{DIAGDIR_SE}.base():
DrawRailTileSeq(ti, &_crossing_layout_NW, TO_CATENARY, rail, 0, PAL_NONE); DrawRailTileSeq(ti, &_crossing_layout_NW, TO_CATENARY, rail, 0, PAL_NONE);
break; break;
case (1 << DIAGDIR_SW): case DiagDirections{DIAGDIR_SW}.base():
DrawRailTileSeq(ti, &_crossing_layout_NE, TO_CATENARY, rail, 0, PAL_NONE); DrawRailTileSeq(ti, &_crossing_layout_NE, TO_CATENARY, rail, 0, PAL_NONE);
break; break;
case (1 << DIAGDIR_NW): case DiagDirections{DIAGDIR_NW}.base():
DrawRailTileSeq(ti, &_crossing_layout_SE, TO_CATENARY, rail, 0, PAL_NONE); DrawRailTileSeq(ti, &_crossing_layout_SE, TO_CATENARY, rail, 0, PAL_NONE);
break; break;