# HG changeset patch # User tron # Date 1169016843 0 # Node ID 82161fb808393f3521a6f0a153c69b170c8428dc # Parent b28cf25e7e180f6a5916747920c4397a5c8c809f (svn r8184) if cascade -> switch diff -r b28cf25e7e18 -r 82161fb80839 src/openttd.cpp --- a/src/openttd.cpp Wed Jan 17 06:33:23 2007 +0000 +++ b/src/openttd.cpp Wed Jan 17 06:54:03 2007 +0000 @@ -1517,29 +1517,37 @@ * room for PBS. Now in version 21 move it back :P. */ if (CheckSavegameVersion(21) && !CheckSavegameVersion(15)) { for (TileIndex t = 0; t < map_size; t++) { - if (IsTileType(t, MP_RAILWAY)) { - if (HasSignals(t)) { - // convert PBS signals to combo-signals - if (HASBIT(_m[t].m4, 2)) SetSignalType(t, SIGTYPE_COMBO); - - // move the signal variant back - SetSignalVariant(t, HASBIT(_m[t].m4, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC); - CLRBIT(_m[t].m4, 3); - } + switch (GetTileType(t)) { + case MP_RAILWAY: + if (HasSignals(t)) { + // convert PBS signals to combo-signals + if (HASBIT(_m[t].m4, 2)) SetSignalType(t, SIGTYPE_COMBO); - // Clear PBS reservation on track - if (!IsTileDepotType(t, TRANSPORT_RAIL)) { - SB(_m[t].m4, 4, 4, 0); - } else { + // move the signal variant back + SetSignalVariant(t, HASBIT(_m[t].m4, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC); + CLRBIT(_m[t].m4, 3); + } + + // Clear PBS reservation on track + if (!IsTileDepotType(t, TRANSPORT_RAIL)) { + SB(_m[t].m4, 4, 4, 0); + } else { + CLRBIT(_m[t].m3, 6); + } + break; + + case MP_STREET: + // Clear PBS reservation on crossing + if (IsLevelCrossing(t)) CLRBIT(_m[t].m5, 0); + break; + + case MP_STATION: + // Clear PBS reservation on station CLRBIT(_m[t].m3, 6); - } - } + break; - // Clear PBS reservation on crossing - if (IsTileType(t, MP_STREET) && IsLevelCrossing(t)) CLRBIT(_m[t].m5, 0); - - // Clear PBS reservation on station - if (IsTileType(t, MP_STATION)) CLRBIT(_m[t].m3, 6); + default: break; + } } }