From 5d9975cad1d453b248b26362af1732e9ebbb264a Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 18 Nov 2011 20:52:13 +0000 Subject: [PATCH] (svn r23254) [1.1] -Backport from trunk: - Fix: [NewGRF] Run StartupEngines() if NewGRFs changed during loading a savegame, just like it's running when NewGRFs are changed during a game (r23083) - Fix: Account for snow line table when determining the snow line for building houses (r23082) - Fix: [NewGRF] If a NewGRF overrides a default house the minimum start year for that house was set to 1930 [FS#4794] (r23059) - Fix: [NoAI] AIOrder::GetOrderCount() did not hide implicit orders (r23057) --- src/ai/api/ai_order.cpp | 2 +- src/engine.cpp | 4 ++++ src/newgrf.cpp | 7 ------- src/saveload/afterload.cpp | 5 +++++ src/town_cmd.cpp | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/ai/api/ai_order.cpp b/src/ai/api/ai_order.cpp index 36e54caf59..a26a0dc20d 100644 --- a/src/ai/api/ai_order.cpp +++ b/src/ai/api/ai_order.cpp @@ -190,7 +190,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or /* static */ int32 AIOrder::GetOrderCount(VehicleID vehicle_id) { - return AIVehicle::IsValidVehicle(vehicle_id) ? ::Vehicle::Get(vehicle_id)->GetNumOrders() : -1; + return AIVehicle::IsValidVehicle(vehicle_id) ? ::Vehicle::Get(vehicle_id)->GetNumManualOrders() : -1; } /* static */ TileIndex AIOrder::GetOrderDestination(VehicleID vehicle_id, OrderPosition order_position) diff --git a/src/engine.cpp b/src/engine.cpp index 3d97ee21ac..b658fc6c64 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -650,6 +650,10 @@ void StartupOneEngine(Engine *e, Date aging_date) } } +/** + * Start/initialise all our engines. Must be called whenever there are changes + * to the NewGRF config. + */ void StartupEngines() { Engine *e; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index a9d4212408..2e70d222ed 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1679,13 +1679,6 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, Byt housespec->cargo_acceptance[2] = 0; } - /** - * New houses do not (currently) expect to have a default start - * date before 1930, as this breaks the build date stuff. - * @see FinaliseHouseArray() for more details. - */ - if (housespec->min_year < 1930) housespec->min_year = 1930; - _loaded_newgrf_features.has_newhouses = true; break; } diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 006f314aa7..6aff3738c4 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -2595,6 +2595,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(); diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 5d616e5d6d..7b27457c1a 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2095,7 +2095,7 @@ static bool BuildTownHouse(Town *t, TileIndex tile) /* Above snow? */ int land = _settings_game.game_creation.landscape; - if (land == LT_ARCTIC && z >= _settings_game.game_creation.snow_line) land = -1; + if (land == LT_ARCTIC && z >= HighestSnowLine()) land = -1; uint bitmask = (1 << rad) + (1 << (land + 12));