1
0
Fork 0

(svn r8184) if cascade -> switch

release/0.6
tron 2007-01-17 06:54:03 +00:00
parent 2742b5fe25
commit a973e45719
1 changed files with 27 additions and 19 deletions

View File

@ -1517,29 +1517,37 @@ bool AfterLoadGame(void)
* room for PBS. Now in version 21 move it back :P. */ * room for PBS. Now in version 21 move it back :P. */
if (CheckSavegameVersion(21) && !CheckSavegameVersion(15)) { if (CheckSavegameVersion(21) && !CheckSavegameVersion(15)) {
for (TileIndex t = 0; t < map_size; t++) { for (TileIndex t = 0; t < map_size; t++) {
if (IsTileType(t, MP_RAILWAY)) { switch (GetTileType(t)) {
if (HasSignals(t)) { case MP_RAILWAY:
// convert PBS signals to combo-signals if (HasSignals(t)) {
if (HASBIT(_m[t].m4, 2)) SetSignalType(t, SIGTYPE_COMBO); // convert PBS signals to combo-signals
if (HASBIT(_m[t].m4, 2)) SetSignalType(t, SIGTYPE_COMBO);
// move the signal variant back // move the signal variant back
SetSignalVariant(t, HASBIT(_m[t].m4, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC); SetSignalVariant(t, HASBIT(_m[t].m4, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC);
CLRBIT(_m[t].m4, 3); CLRBIT(_m[t].m4, 3);
} }
// Clear PBS reservation on track // Clear PBS reservation on track
if (!IsTileDepotType(t, TRANSPORT_RAIL)) { if (!IsTileDepotType(t, TRANSPORT_RAIL)) {
SB(_m[t].m4, 4, 4, 0); SB(_m[t].m4, 4, 4, 0);
} else { } 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); CLRBIT(_m[t].m3, 6);
} break;
default: 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);
} }
} }