(svn r12904) -Fix [FS#1953]: remove trams from savegames saved in OTTD without tram support, it is better than to simply crash

This commit is contained in:
smatz
2008-04-25 16:33:40 +00:00
parent 4e80f3f3b1
commit 805e1db332
3 changed files with 18 additions and 1 deletions

View File

@@ -2501,6 +2501,21 @@ bool AfterLoadGame()
}
}
if (CheckSavegameVersion(62)) {
/* Remove all trams from savegames without tram support.
* There would be trams without tram track under causing crashes sooner or later. */
Vehicle *v;
FOR_ALL_VEHICLES(v) {
if (v->type == VEH_ROAD && v->First() == v &&
HasBit(EngInfo(v->engine_type)->misc_flags, EF_ROAD_TRAM)) {
if (_switch_mode_errorstr == INVALID_STRING_ID || _switch_mode_errorstr == STR_NEWGRF_COMPATIBLE_LOAD_WARNING) {
_switch_mode_errorstr = STR_LOADGAME_REMOVED_TRAMS;
}
delete v;
}
}
}
return InitializeWindowsAndCaches();
}