# HG changeset patch # User yexo # Date 2011-11-03 12:54:02 # Node ID ef265d83ffb705bd77a0679034a549d9c44390f6 # Parent 9c50bd9163d381ecb39699724ad236cccf3037ae (svn r23083) -Fix: run StartupEngines() if NewGRFs changed during loading a savegame, just like it's running when NewGRFs are changed during a game diff --git a/src/engine.cpp b/src/engine.cpp --- a/src/engine.cpp +++ b/src/engine.cpp @@ -635,7 +635,10 @@ void StartupOneEngine(Engine *e, Date ag } } -/** Start/initialise all our engines. */ +/** + * Start/initialise all our engines. Must be called whenever there are changes + * to the NewGRF config. + */ void StartupEngines() { Engine *e; diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -2648,6 +2648,11 @@ bool AfterLoadGame() } } + /* When any NewGRF has been changed the availability of some vehicles might + * have been changed too. e->company_avail must be set to 0 in that case + * which is done by StartupEngines(). */ + if (gcf_res != GLC_ALL_GOOD) StartupEngines(); + /* Road stops is 'only' updating some caches */ AfterLoadRoadStops(); AfterLoadLabelMaps();