diff --git a/date.h b/date.h new file mode 100644 --- /dev/null +++ b/date.h @@ -0,0 +1,35 @@ +/* $Id$ */ + +/** + * 1 day is 74 ticks; _date_fract used to be uint16 and incremented by 885. On + * an overflow the new day begun and 65535 / 885 = 74. + * 1 tick is approximately 30 ms. + * 1 day is thus about 2 seconds (74 * 30 = 2220) on a machine that can run OpenTTD normally + */ +#define DAY_TICKS 74 + +#define MAX_YEAR_BEGIN_REAL 1920 +#define MAX_YEAR_END_REAL 2090 +#define MAX_YEAR_END 170 + +/* Year and Date are defined elsewhere */ +typedef uint8 Month; +typedef uint8 Day; +typedef uint16 DateFract; + +typedef struct YearMonthDay { + Year year; + Month month; + Day day; +} YearMonthDay; + +extern Year _cur_year; +extern Month _cur_month; +extern Date _date; +extern DateFract _date_fract; + + +void SetDate(Date date); +void ConvertDayToYMD(YearMonthDay *ymd, Date date); +uint ConvertYMDToDay(Year year, Month month, Day day); +Date ConvertIntDate(uint date);