src/openttd.cpp
changeset 9057 610b26560a54
parent 9039 480ed3fad6ce
child 9069 3830e57f6346
--- a/src/openttd.cpp	Fri Apr 25 15:25:28 2008 +0000
+++ b/src/openttd.cpp	Fri Apr 25 16:33:40 2008 +0000
@@ -2501,6 +2501,21 @@
 		}
 	}
 
+	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();
 }