|
OpenTTD Source 20251104-master-g3befbdd52f
|
Timer that is increased every 27ms, and counts towards ticks / days / months / years. More...
#include <timer_game_calendar.h>
Static Public Member Functions | |
| static YearMonthDay | ConvertDateToYMD (Date date) |
| Converts a Date to a Year, Month & Day. | |
| static Date | ConvertYMDToDate (Year year, Month month, Day day) |
| Converts a tuple of Year, Month and Day to a Date. | |
| static void | SetDate (Date date, DateFract fract) |
| Set the date. | |
Static Public Member Functions inherited from TimerGame< struct Calendar > | |
| static constexpr bool | IsLeapYear (Year year) |
| Checks whether the given year is a leap year or not. | |
| static YearMonthDay | CalendarConvertDateToYMD (Date date) |
| Converts a Date to a Year, Month & Day. | |
| static Date | CalendarConvertYMDToDate (Year year, Month month, Day day) |
| Converts a tuple of Year, Month and Day to a Date. | |
| static constexpr Year | DateToYear (Date date) |
| Calculate the year of a given date. | |
| static constexpr Date | DateAtStartOfYear (Year year) |
| Calculate the date of the first day of a given year. | |
Static Public Attributes | |
| static Year | year = {} |
| Current year, starting at 0. | |
| static Month | month = {} |
| Current month (0..11). | |
| static Date | date = {} |
| Current date in days (day counter). | |
| static DateFract | date_fract = {} |
| Fractional part of the day. | |
| static uint16_t | sub_date_fract = {} |
| Subpart of date_fract that we use when calendar days are slower than economy days. | |
Additional Inherited Members | |
Public Types inherited from TimerGame< struct Calendar > | |
| enum | Trigger |
| enum | Priority |
| using | Date = StrongType::Typedef< int32_t, DateTag< struct Calendar >, StrongType::Compare, StrongType::Integer > |
| using | DateFract = uint16_t |
| The fraction of a date we're in, i.e. | |
| using | Year = StrongType::Typedef< int32_t, struct YearTag< struct Calendar >, StrongType::Compare, StrongType::Integer > |
| using | Month = uint8_t |
| Type for the month, note: 0 based, i.e. | |
| using | Day = uint8_t |
| Type for the day of the month, note: 1 based, first day of a month is 1. | |
| using | TElapsed = uint |
Timer that is increased every 27ms, and counts towards ticks / days / months / years.
The amount of days in a month depends on the month and year (leap-years). There are always 74 ticks in a day (and with 27ms, this makes 1 day 1.998 seconds).
Calendar time is used for technology and time-of-year changes, including:
Definition at line 29 of file timer_game_calendar.h.
|
static |
Converts a Date to a Year, Month & Day.
| date | the date to convert from |
Definition at line 42 of file timer_game_calendar.cpp.
References TimerGame< struct Calendar >::CalendarConvertDateToYMD(), and date.
Referenced by ClickChangeDateCheat(), NetworkGameWindow::DrawServerLine(), DrawVehiclePurchaseInfo(), FixTTOEngines(), GetGlobalVariable(), GetSnowLine(), SetDate(), SetYearEngineAgingStops(), StartupEngines(), StartupOneEngine(), SurveyRecentNews(), and SurveyTimers().
|
static |
Converts a tuple of Year, Month and Day to a Date.
| year | is a number between 0..MAX_YEAR |
| month | is a number between 0..11 |
| day | is a number between 1..31 |
Definition at line 55 of file timer_game_calendar.cpp.
References TimerGame< struct Calendar >::CalendarConvertYMDToDate(), month, and year.
Referenced by ClickChangeDateCheat(), FixTTOEngines(), GetGlobalVariable(), GenerateLandscapeWindow::GetWidgetString(), CreateScenarioWindow::GetWidgetString(), ScenarioEditorToolbarWindow::GetWidgetString(), LoadNewGRF(), ServerNetworkAdminSocketHandler::SendWelcome(), SetStartingYear(), StartupEngines(), StartupOneEngine(), GenerateLandscapeWindow::UpdateWidgetSize(), CreateScenarioWindow::UpdateWidgetSize(), MessageHistoryWindow::UpdateWidgetSize(), and ScenarioEditorToolbarWindow::UpdateWidgetSize().
Set the date.
| date | New date |
| fract | The number of ticks that have passed on this date. |
Definition at line 66 of file timer_game_calendar.cpp.
References ConvertDateToYMD(), date, date_fract, Ticks::DAY_TICKS, month, and year.
Referenced by AfterLoadGame(), ClickChangeDateCheat(), and SetStartingYear().
|
static |
Current date in days (day counter).
Definition at line 33 of file timer_game_calendar.h.
Referenced by Station::AddFacility(), AfterLoadGame(), AircraftEventHandler_AtTerminal(), BuildObject(), CalendarEnginesMonthlyLoop(), ChangeTimekeepingUnits(), CheckTownRoadTypes(), ClickChangeDateCheat(), CmdBuildAircraft(), CmdBuildBuoy(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRailWaypoint(), CmdBuildRoadVehicle(), CmdBuildRoadWaypoint(), CmdBuildShip(), CmdCreateStoryPage(), ConvertDateToYMD(), DoCreateNewIndustry(), StatusBarWindow::DrawWidget(), FixTTOEngines(), GetCompanyRailTypes(), GetCompanyRoadTypes(), GetGlobalVariable(), GetSnowLine(), GetTownRoadType(), BadgeScopeResolver::GetVariable(), VehicleScopeResolver::GetVariable(), ObjectScopeResolver::GetVariable(), RailTypeScopeResolver::GetVariable(), RoadStopScopeResolver::GetVariable(), RoadTypeScopeResolver::GetVariable(), StationScopeResolver::GetVariable(), HasRoadTypeAvail(), ObjectSpec::IsAvailable(), LoadNewGRF(), NewVehicleAvailable(), ServerNetworkAdminSocketHandler::SendDate(), SetDate(), StartupEngines(), StartupOneEngine(), SurveyTimers(), VehicleServiceInDepot(), and ObjectSpec::WasEverAvailable().
|
static |
Fractional part of the day.
Definition at line 34 of file timer_game_calendar.h.
Referenced by AfterLoadGame(), ChangeTimekeepingUnits(), ClickChangeDateCheat(), GetGlobalVariable(), LoadNewGRF(), RunVehicleCalendarDayProc(), SetDate(), and SurveyTimers().
|
static |
Current month (0..11).
Definition at line 32 of file timer_game_calendar.h.
Referenced by ConvertYMDToDate(), and SetDate().
|
static |
Subpart of date_fract that we use when calendar days are slower than economy days.
Definition at line 35 of file timer_game_calendar.h.
|
static |
Current year, starting at 0.
Calendar time is used for technology and time-of-year changes, including:
Definition at line 31 of file timer_game_calendar.h.
Referenced by AfterLoadGame(), CalendarEnginesMonthlyLoop(), CheckBridgeAvailability(), ClickChangeDateCheat(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVehicle(), CmdBuildShip(), ConvertYMDToDate(), DoStartupNewCompany(), GenericPlaceSignals(), GetGlobalVariable(), GetIndustryGamePlayProbability(), GetMaskOfAllowedCurrencies(), VehicleScopeResolver::GetVariable(), HandleAutoSignalPlacement(), AirportSpec::IsAvailable(), LoadNewGRF(), LoadUnloadVehicle(), NetworkCheckRestartMapYear(), NewsItem::NewsItem(), ResetSignalVariant(), SetDate(), and TryBuildTownHouse().