(svn r7506) -Codechange: [NewGRF] Add action 7/9/D variable 0x81 (current year)
authorglx
Mon, 18 Dec 2006 15:34:12 +0000
changeset 5340 8e534cd781cc
parent 5339 96ac3f4933bb
child 5341 02fb6f89fc8a
(svn r7506) -Codechange: [NewGRF] Add action 7/9/D variable 0x81 (current year)
genworld.c
newgrf.c
openttd.c
--- 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);