author | tron |
Wed, 16 Aug 2006 06:06:48 +0000 | |
changeset 4291 | c0e769957f8b |
parent 4288 | 60398d0e64ee |
child 4295 | 66d2c96579a6 |
permissions | -rw-r--r-- |
4261
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
1 |
/* $Id$ */ |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
2 |
|
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
3 |
/** |
2ec8f5a9747b
(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 |
2ec8f5a9747b
(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. |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
6 |
* 1 tick is approximately 30 ms. |
2ec8f5a9747b
(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 |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
8 |
*/ |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
9 |
#define DAY_TICKS 74 |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
10 |
|
4286
a040bf5c203d
(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 |
a040bf5c203d
(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 |
a040bf5c203d
(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
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
14 |
|
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
15 |
/* Year and Date are defined elsewhere */ |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
16 |
typedef uint8 Month; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
17 |
typedef uint8 Day; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
18 |
typedef uint16 DateFract; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
19 |
|
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
20 |
typedef struct YearMonthDay { |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
21 |
Year year; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
22 |
Month month; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
23 |
Day day; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
24 |
} YearMonthDay; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
25 |
|
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
26 |
extern Year _cur_year; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
27 |
extern Month _cur_month; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
28 |
extern Date _date; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
29 |
extern DateFract _date_fract; |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
30 |
|
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
31 |
|
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
32 |
void SetDate(Date date); |
4288
60398d0e64ee
(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); |
60398d0e64ee
(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
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
35 |
Date ConvertIntDate(uint date); |