(svn r7506) -Codechange: [NewGRF] Add action 7/9/D variable 0x81 (current year)
--- a/genworld.c Mon Dec 18 12:26:55 2006 +0000
+++ b/genworld.c Mon Dec 18 15:34:12 2006 +0000
@@ -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 Mon Dec 18 12:26:55 2006 +0000
+++ b/newgrf.c Mon Dec 18 15:34:12 2006 +0000
@@ -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 Mon Dec 18 12:26:55 2006 +0000
+++ b/openttd.c Mon Dec 18 15:34:12 2006 +0000
@@ -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);