diff --git a/src/openttd.cpp b/src/openttd.cpp --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1382,6 +1382,16 @@ bool AfterLoadGame() /* reinit the landscape variables (landscape might have changed) */ InitializeLandscapeVariables(true); + /* from version 38 we have optional elrails, since we cannot know the + * preference of a user, let elrails enabled; it can be disabled manually */ + if (CheckSavegameVersion(38)) _settings_game.vehicle.disable_elrails = false; + + /* Do the same as when elrails were enabled/disabled manually just now. + * This needs to be done before AfterLoadVehicles because that relies on + * the compatible railtypes and such to be correct. */ + SettingsDisableElrail(_settings_game.vehicle.disable_elrails); + InitializeRailGUI(); + /* Update all vehicles */ AfterLoadVehicles(true); @@ -1953,13 +1963,6 @@ bool AfterLoadGame() } } - /* from version 38 we have optional elrails, since we cannot know the - * preference of a user, let elrails enabled; it can be disabled manually */ - if (CheckSavegameVersion(38)) _settings_game.vehicle.disable_elrails = false; - /* do the same as when elrails were enabled/disabled manually just now */ - SettingsDisableElrail(_settings_game.vehicle.disable_elrails); - InitializeRailGUI(); - /* From version 53, the map array was changed for house tiles to allow * space for newhouses grf features. A new byte, m7, was also added. */ if (CheckSavegameVersion(53)) {