|
@@ -24,12 +24,16 @@
|
|
|
Year _cur_year; ///< Current year, starting at 0
|
|
|
Month _cur_month; ///< Current month (0..11)
|
|
|
Date _date; ///< Current date in days (day counter)
|
|
|
DateFract _date_fract;
|
|
|
uint16 _tick_counter; ///< Ever incrementing (and sometimes wrapping) tick counter for setting off various events
|
|
|
|
|
|
/**
|
|
|
* Set the date.
|
|
|
* @param date New date
|
|
|
*/
|
|
|
void SetDate(Date date)
|
|
|
{
|
|
|
YearMonthDay ymd;
|
|
|
|
|
|
_date = date;
|
|
|
ConvertDateToYMD(date, &ymd);
|
|
@@ -66,12 +70,13 @@ enum DaysTillMonth {
|
|
|
ACCUM_SEP = ACCUM_AUG + 31,
|
|
|
ACCUM_OCT = ACCUM_SEP + 30,
|
|
|
ACCUM_NOV = ACCUM_OCT + 31,
|
|
|
ACCUM_DEC = ACCUM_NOV + 30,
|
|
|
};
|
|
|
|
|
|
/** Number of days to pass from the first day in the year before reaching the first of a month. */
|
|
|
static const uint16 _accum_days_for_month[] = {
|
|
|
ACCUM_JAN, ACCUM_FEB, ACCUM_MAR, ACCUM_APR,
|
|
|
ACCUM_MAY, ACCUM_JUN, ACCUM_JUL, ACCUM_AUG,
|
|
|
ACCUM_SEP, ACCUM_OCT, ACCUM_NOV, ACCUM_DEC,
|
|
|
};
|
|
|
|
|
@@ -79,14 +84,13 @@ static const uint16 _accum_days_for_mont
|
|
|
* Converts a Date to a Year, Month & Day.
|
|
|
* @param date the date to convert from
|
|
|
* @param ymd the year, month and day to write to
|
|
|
*/
|
|
|
void ConvertDateToYMD(Date date, YearMonthDay *ymd)
|
|
|
{
|
|
|
/*
|
|
|
* Year determination in multiple steps to account for leap
|
|
|
/* Year determination in multiple steps to account for leap
|
|
|
* years. First do the large steps, then the smaller ones.
|
|
|
*/
|
|
|
|
|
|
/* There are 97 leap years in 400 years */
|
|
|
Year yr = 400 * (date / (DAYS_IN_YEAR * 400 + 97));
|
|
|
int rem = date % (DAYS_IN_YEAR * 400 + 97);
|
|
@@ -149,12 +153,13 @@ Date ConvertYMDToDate(Year year, Month m
|
|
|
|
|
|
/** Functions used by the IncreaseDate function */
|
|
|
|
|
|
extern void EnginesDailyLoop();
|
|
|
extern void DisasterDailyLoop();
|
|
|
extern void IndustryDailyLoop();
|
|
|
|
|
|
extern void CompaniesMonthlyLoop();
|
|
|
extern void EnginesMonthlyLoop();
|
|
|
extern void TownsMonthlyLoop();
|
|
|
extern void IndustryMonthlyLoop();
|
|
|
extern void StationMonthlyLoop();
|
|
|
extern void SubsidyMonthlyLoop();
|
|
@@ -163,12 +168,13 @@ extern void CompaniesYearlyLoop();
|
|
|
extern void VehiclesYearlyLoop();
|
|
|
extern void TownsYearlyLoop();
|
|
|
|
|
|
extern void ShowEndGameChart();
|
|
|
|
|
|
|
|
|
/** Available settings for autosave intervals. */
|
|
|
static const Month _autosave_months[] = {
|
|
|
0, ///< never
|
|
|
1, ///< every month
|
|
|
3, ///< every 3 months
|
|
|
6, ///< every 6 months
|
|
|
12, ///< every 12 months
|