diff options
-rw-r--r-- | genworld.c | 6 | ||||
-rw-r--r-- | newgrf.c | 3 | ||||
-rw-r--r-- | openttd.c | 7 |
3 files changed, 12 insertions, 4 deletions
diff --git a/genworld.c b/genworld.c index 9872270b0..70bb983c6 100644 --- a/genworld.c +++ b/genworld.c @@ -15,6 +15,7 @@ #include "debug.h" #include "settings.h" #include "heightmap.h" +#include "date.h" void GenerateLandscape(byte mode); void GenerateClearTile(void); @@ -252,11 +253,14 @@ void GenerateWorld(int mode, uint size_x, uint size_y) /* Make sure everything is done via OWNER_NONE */ _current_player = OWNER_NONE; + /* Set the date before loading sprites as some newgrfs check it */ + SetDate(ConvertYMDToDate(_patches.starting_year, 0, 1)); + /* Load the right landscape stuff */ GfxLoadSprites(); LoadStringWidthTable(); - InitializeGame(IG_DATE_RESET, _gw.size_x, _gw.size_y); + InitializeGame(IG_NONE, _gw.size_x, _gw.size_y); PrepareGenerateWorldProgress(); /* Re-init the windowing system */ @@ -2193,6 +2193,9 @@ static void GraphicsNew(byte *buf, int len) static uint32 GetParamVal(byte param, uint32 *cond_val) { switch (param) { + case 0x81: /* current year */ + return clamp(_cur_year, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR; + case 0x83: /* current climate, 0=temp, 1=arctic, 2=trop, 3=toyland */ return _opt.landscape; @@ -1164,6 +1164,10 @@ bool AfterLoadGame(void) /* Check all NewGRFs are present */ if (!IsGoodGRFConfigList()) return false; + /* Update current year + * must be done before loading sprites as some newgrfs check it */ + SetDate(_date); + // Load the sprites GfxLoadSprites(); LoadStringWidthTable(); @@ -1175,9 +1179,6 @@ bool AfterLoadGame(void) /* Connect front and rear engines of multiheaded trains */ ConnectMultiheadedTrains(); - // Update current year - SetDate(_date); - // reinit the landscape variables (landscape might have changed) InitializeLandscapeVariables(true); |