Mercurial > hg > openttd
changeset 5340:cfc845d12a8a draft
(svn r7506) -Codechange: [NewGRF] Add action 7/9/D variable 0x81 (current year)
author | glx <glx@openttd.org> |
---|---|
date | Mon, 18 Dec 2006 15:34:12 +0000 |
parents | 4091bc711dc7 |
children | a021ad6e9ec1 |
files | genworld.c newgrf.c openttd.c |
diffstat | 3 files changed, 12 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ /* 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 */
--- a/newgrf.c +++ b/newgrf.c @@ -2193,6 +2193,9 @@ 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;
--- a/openttd.c +++ b/openttd.c @@ -1164,6 +1164,10 @@ /* 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 @@ /* Connect front and rear engines of multiheaded trains */ ConnectMultiheadedTrains(); - // Update current year - SetDate(_date); - // reinit the landscape variables (landscape might have changed) InitializeLandscapeVariables(true);