Fix redrawing of bridge signals more than 2 middle signals need updating

On exit signal aspect change, with 5+ aspect signalling
pull/306/head
Jonathan G Rennison 3 years ago
parent 1af37ef845
commit 50f1c25ff5

@ -1244,10 +1244,11 @@ static void RefreshBridgeOnExitAspectChange(TileIndex entrance, TileIndex exit)
const TileIndexDiffC offset = TileIndexDiffCByDiagDir(GetTunnelBridgeDirection(entrance));
const TileIndexDiff diff = TileDiffXY(offset.x * simulated_wormhole_signals, offset.y * simulated_wormhole_signals);
const uint signal_count = bridge_length / simulated_wormhole_signals;
TileIndex tile = entrance;
for (uint i = signal_count; i > 0; i--) {
tile += diff;
if (i <= 2) MarkTileDirtyByTile(tile, VMDF_NOT_MAP_MODE);
TileIndex tile = entrance + ((int)signal_count * diff);
const uint redraw_count = std::min<uint>(_extra_aspects, signal_count);
for (uint i = 0; i < redraw_count; i++) {
MarkTileDirtyByTile(tile, VMDF_NOT_MAP_MODE);
tile -= diff;
}
}

Loading…
Cancel
Save