diff options
author | rubidium <rubidium@openttd.org> | 2007-08-26 14:38:44 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-08-26 14:38:44 +0000 |
commit | 1a82bd935006114f885b1b607ac43dd47fd573a5 (patch) | |
tree | 35621bf6077b4df06aa370d3866427df840c5f93 /src | |
parent | d5bc4d8b2af357567792d22c16f9591115dae389 (diff) | |
download | openttd-1a82bd935006114f885b1b607ac43dd47fd573a5.tar.xz |
(svn r10982) -Fix [FS#1162]: some old savegames could be in a state that the current game logic does not like; in the list of vehicles loading at a station when the vehicle is not actually at the station.
Diffstat (limited to 'src')
-rw-r--r-- | src/openttd.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index ddd8ac99c..f17f459cb 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -2103,6 +2103,18 @@ bool AfterLoadGame() CLRBIT(v->vehicle_flags, VF_LOADING_FINISHED); } } + } else if (CheckSavegameVersion(59)) { + /* For some reason non-loading vehicles could be in the station's loading vehicle list */ + + Station *st; + FOR_ALL_STATIONS(st) { + std::list<Vehicle *>::iterator iter; + for (iter = st->loading_vehicles.begin(); iter != st->loading_vehicles.end();) { + Vehicle *v = *iter; + iter++; + if (v->current_order.type != OT_LOADING) st->loading_vehicles.remove(v); + } + } } if (CheckSavegameVersion(58)) { |