summaryrefslogtreecommitdiff
path: root/src/newgrf.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2008-06-20 21:14:10 +0000
committerfrosch <frosch@openttd.org>2008-06-20 21:14:10 +0000
commit4236dd3be5c4c5c130551f625f3459a4c733bfc3 (patch)
tree9f0f3597960d1562c26a18b355f4fa2e98db5a01 /src/newgrf.cpp
parentc406ea35eccd7a7af576ce4d7f2adad2d9a13573 (diff)
downloadopenttd-4236dd3be5c4c5c130551f625f3459a4c733bfc3.tar.xz
(svn r13594) -Feature(ette)[FS#2093]: Supply newgrfs with 'day of month', 'leap year' and 'day of year'.
Diffstat (limited to 'src/newgrf.cpp')
-rw-r--r--src/newgrf.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index f1fe64635..3885fcf23 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -3566,9 +3566,13 @@ bool GetGlobalVariable(byte param, uint32 *value)
*value = Clamp(_cur_year, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR;
return true;
- case 0x02: // current month
- *value = _cur_month;
+ case 0x02: { // detailed date information: month of year (bit 0-7), day of month (bit 8-12), leap year (bit 15), day of year (bit 16-24)
+ YearMonthDay ymd;
+ ConvertDateToYMD(_date, &ymd);
+ Date start_of_year = ConvertYMDToDate(ymd.year, 0, 1);
+ *value = ymd.month | (ymd.day - 1) << 8 | (IsLeapYear(ymd.year) ? 1 << 15 : 0) | (_date - start_of_year) << 16;
return true;
+ }
case 0x03: // current climate, 0=temp, 1=arctic, 2=trop, 3=toyland
*value = _settings_game.game_creation.landscape;