(svn r5999) -Feature: change the original date format to a 32 bits format based at the year 0.

The game date subsystem now allows someone to start in the year 0 and continue
up to the year 5 000 000. However, you currently cannot build anything before 
1920 as there is no newgrf support for dates before 1920 or after 2090 yet.
This commit is contained in:
rubidium
2006-08-20 18:40:57 +00:00
parent 5e4667624e
commit 28a0843707
25 changed files with 160 additions and 87 deletions

10
date.h
View File

@@ -24,14 +24,16 @@
* The offset in days from the '_date == 0' till
* 'ConvertYMDToDate(ORIGINAL_BASE_YEAR, 0, 1)'
*/
#define DAYS_TILL_ORIGINAL_BASE_YEAR 0
#define DAYS_TILL_ORIGINAL_BASE_YEAR (365 * ORIGINAL_BASE_YEAR + ORIGINAL_BASE_YEAR / 4 - ORIGINAL_BASE_YEAR / 100 + ORIGINAL_BASE_YEAR / 400)
/* Temporary value to make transition to full past 2090 easier/more clear */
#define BASE_YEAR 1920
#define BASE_YEAR 0
/* The absolute minimum & maximum years in OTTD */
#define MIN_YEAR 1920
#define MAX_YEAR 2090
#define MIN_YEAR 0
/* MAX_YEAR, nicely rounded value of the number of years that can
* be encoded in a single 32 bits date, about 2^31 / 366 years. */
#define MAX_YEAR 5000000
/* Year and Date are defined elsewhere */
typedef uint8 Month;