author | rubidium |
Tue, 15 Aug 2006 16:49:48 +0000 | |
changeset 4288 | 393de75451b1 |
parent 4286 | 5395d94a7cf2 |
child 4295 | 51b5d00b5f09 |
permissions | -rw-r--r-- |
4261
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
1 |
/* $Id$ */ |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
2 |
|
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
3 |
/** |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
4 |
* 1 day is 74 ticks; _date_fract used to be uint16 and incremented by 885. On |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
5 |
* an overflow the new day begun and 65535 / 885 = 74. |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
6 |
* 1 tick is approximately 30 ms. |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
7 |
* 1 day is thus about 2 seconds (74 * 30 = 2220) on a machine that can run OpenTTD normally |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
8 |
*/ |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
9 |
#define DAY_TICKS 74 |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
10 |
|
4286
5395d94a7cf2
(svn r5916) -Cleanup: use MIN_YEAR/MAX_YEAR for the year boundaries and BASE_YEAR when comparing _cur_year with a 'full' year.
rubidium
parents:
4261
diff
changeset
|
11 |
#define BASE_YEAR 1920 |
5395d94a7cf2
(svn r5916) -Cleanup: use MIN_YEAR/MAX_YEAR for the year boundaries and BASE_YEAR when comparing _cur_year with a 'full' year.
rubidium
parents:
4261
diff
changeset
|
12 |
#define MIN_YEAR 1920 |
5395d94a7cf2
(svn r5916) -Cleanup: use MIN_YEAR/MAX_YEAR for the year boundaries and BASE_YEAR when comparing _cur_year with a 'full' year.
rubidium
parents:
4261
diff
changeset
|
13 |
#define MAX_YEAR 2090 |
4261
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
14 |
|
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
15 |
/* Year and Date are defined elsewhere */ |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
16 |
typedef uint8 Month; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
17 |
typedef uint8 Day; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
18 |
typedef uint16 DateFract; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
19 |
|
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
20 |
typedef struct YearMonthDay { |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
21 |
Year year; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
22 |
Month month; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
23 |
Day day; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
24 |
} YearMonthDay; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
25 |
|
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
26 |
extern Year _cur_year; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
27 |
extern Month _cur_month; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
28 |
extern Date _date; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
29 |
extern DateFract _date_fract; |
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
30 |
|
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
31 |
|
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
32 |
void SetDate(Date date); |
4288
393de75451b1
(svn r5918) -Cleanup: rename ConvertDayToYMD/ConvertYMDToDay as they really convert a Date to/from a YearMonthDay.
rubidium
parents:
4286
diff
changeset
|
33 |
void ConvertDateToYMD(Date date, YearMonthDay *ymd); |
393de75451b1
(svn r5918) -Cleanup: rename ConvertDayToYMD/ConvertYMDToDay as they really convert a Date to/from a YearMonthDay.
rubidium
parents:
4286
diff
changeset
|
34 |
Date ConvertYMDToDate(Year year, Month month, Day day); |
4261
28670f743746
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
35 |
Date ConvertIntDate(uint date); |