author | tron |
Mon, 14 Aug 2006 20:37:15 +0000 | |
changeset 4267 | 6bf868d860e7 |
parent 4261 | 2ec8f5a9747b |
child 4286 | a040bf5c203d |
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 |
|
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
11 |
#define MAX_YEAR_BEGIN_REAL 1920 |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
12 |
#define MAX_YEAR_END_REAL 2090 |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
13 |
#define MAX_YEAR_END 170 |
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); |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
33 |
void ConvertDayToYMD(YearMonthDay *ymd, Date date); |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
34 |
uint ConvertYMDToDay(Year year, Month month, Day day); |
2ec8f5a9747b
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
rubidium
parents:
diff
changeset
|
35 |
Date ConvertIntDate(uint date); |