1
0
Fork 0

Doc: [Script] Extend API documentation on calendar- vs economy-time

pull/12653/head
frosch 2024-03-23 21:34:31 +01:00 committed by Peter Nelson
parent 04cc0c8125
commit dc22edc556
15 changed files with 154 additions and 89 deletions

View File

@ -204,7 +204,8 @@ public:
* Get the monthly maintenance cost of an airport type. * Get the monthly maintenance cost of an airport type.
* @param type The airport type to get the monthly maintenance cost of. * @param type The airport type to get the monthly maintenance cost of.
* @pre IsAirportInformationAvailable(type) * @pre IsAirportInformationAvailable(type)
* @return Monthly maintenance cost of the airport type. * @return Maintenance cost of the airport type per economy-month.
* @see \ref ScriptEconomyTime
*/ */
static Money GetMonthlyMaintenanceCost(AirportType type); static Money GetMonthlyMaintenanceCost(AirportType type);

View File

@ -68,9 +68,10 @@ public:
static TileIndex GetLocation(StationID station_id); static TileIndex GetLocation(StationID station_id);
/** /**
* Get the last date a station part was added to this station. * Get the last calendar-date a station part was added to this station.
* @param station_id The station to look at. * @param station_id The station to look at.
* @return The last date some part of this station was build. * @return The last calendar-date some part of this station was build.
* @see \ref ScriptCalendarTime
*/ */
static ScriptDate::Date GetConstructionDate(StationID station_id); static ScriptDate::Date GetConstructionDate(StationID station_id);
}; };

View File

@ -56,10 +56,11 @@ public:
static ScriptCompany::CompanyID GetCompany(ClientID client); static ScriptCompany::CompanyID GetCompany(ClientID client);
/** /**
* Get the game date when the given client has joined. * Get the economy-date when the given client has joined.
* @param client The client to get joining date for. * @param client The client to get joining date for.
* @pre ResolveClientID(client) != CLIENT_INVALID. * @pre ResolveClientID(client) != CLIENT_INVALID.
* @return The date when client has joined. * @return The economy-date when client has joined.
* @see \ref ScriptEconomyTime
*/ */
static ScriptDate::Date GetJoinDate(ClientID client); static ScriptDate::Date GetJoinDate(ClientID client);
}; };

View File

@ -281,59 +281,64 @@ public:
static bool ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type, TileIndex tile); static bool ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type, TileIndex tile);
/** /**
* Get the income of the company in the given quarter. * Get the income of the company in the given economy-quarter.
* Note that this function only considers recurring income from vehicles; * Note that this function only considers recurring income from vehicles;
* it does not include one-time income from selling stuff. * it does not include one-time income from selling stuff.
* @param company The company to get the quarterly income of. * @param company The company to get the quarterly income of.
* @param quarter The quarter to get the income of. * @param quarter The economy-quarter to get the income of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID. * @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @pre quarter <= EARLIEST_QUARTER. * @pre quarter <= EARLIEST_QUARTER.
* @return The gross income of the company in the given quarter. * @return The gross income of the company in the given economy-quarter.
* @see \ref ScriptEconomyTime
*/ */
static Money GetQuarterlyIncome(CompanyID company, SQInteger quarter); static Money GetQuarterlyIncome(CompanyID company, SQInteger quarter);
/** /**
* Get the expenses of the company in the given quarter. * Get the expenses of the company in the given economy-quarter.
* Note that this function only considers recurring expenses from vehicle * Note that this function only considers recurring expenses from vehicle
* running cost, maintenance and interests; it does not include one-time * running cost, maintenance and interests; it does not include one-time
* expenses from construction and buying stuff. * expenses from construction and buying stuff.
* @param company The company to get the quarterly expenses of. * @param company The company to get the quarterly expenses of.
* @param quarter The quarter to get the expenses of. * @param quarter The economy-quarter to get the expenses of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID. * @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @pre quarter <= EARLIEST_QUARTER. * @pre quarter <= EARLIEST_QUARTER.
* @return The expenses of the company in the given quarter. * @return The expenses of the company in the given economy-quarter.
* @see \ref ScriptEconomyTime
*/ */
static Money GetQuarterlyExpenses(CompanyID company, SQInteger quarter); static Money GetQuarterlyExpenses(CompanyID company, SQInteger quarter);
/** /**
* Get the amount of cargo delivered by the given company in the given quarter. * Get the amount of cargo delivered by the given company in the given economy-quarter.
* @param company The company to get the amount of delivered cargo of. * @param company The company to get the amount of delivered cargo of.
* @param quarter The quarter to get the amount of delivered cargo of. * @param quarter The economy-quarter to get the amount of delivered cargo of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID. * @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @pre quarter <= EARLIEST_QUARTER. * @pre quarter <= EARLIEST_QUARTER.
* @return The amount of cargo delivered by the given company in the given quarter. * @return The amount of cargo delivered by the given company in the given economy-quarter.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetQuarterlyCargoDelivered(CompanyID company, SQInteger quarter); static SQInteger GetQuarterlyCargoDelivered(CompanyID company, SQInteger quarter);
/** /**
* Get the performance rating of the given company in the given quarter. * Get the performance rating of the given company in the given economy-quarter.
* @param company The company to get the performance rating of. * @param company The company to get the performance rating of.
* @param quarter The quarter to get the performance rating of. * @param quarter The economy-quarter to get the performance rating of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID. * @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @pre quarter <= EARLIEST_QUARTER. * @pre quarter <= EARLIEST_QUARTER.
* @pre quarter != CURRENT_QUARTER. * @pre quarter != CURRENT_QUARTER.
* @note The performance rating is calculated after every quarter, so the value for CURRENT_QUARTER is undefined. * @note The performance rating is calculated after every economy-quarter, so the value for CURRENT_QUARTER is undefined.
* @return The performance rating of the given company in the given quarter. * @return The performance rating of the given company in the given economy-quarter.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetQuarterlyPerformanceRating(CompanyID company, SQInteger quarter); static SQInteger GetQuarterlyPerformanceRating(CompanyID company, SQInteger quarter);
/** /**
* Get the value of the company in the given quarter. * Get the value of the company in the given economy-quarter.
* @param company The company to get the value of. * @param company The company to get the value of.
* @param quarter The quarter to get the value of. * @param quarter The economy-quarter to get the value of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID. * @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @pre quarter <= EARLIEST_QUARTER. * @pre quarter <= EARLIEST_QUARTER.
* @return The value of the company in the given quarter. * @return The value of the company in the given economy-quarter.
* @see \ref ScriptEconomyTime
*/ */
static Money GetQuarterlyCompanyValue(CompanyID company, SQInteger quarter); static Money GetQuarterlyCompanyValue(CompanyID company, SQInteger quarter);
@ -377,10 +382,11 @@ public:
/** /**
* Set the number of months before/after max age to autorenew an engine for your company. * Set the number of months before/after max age to autorenew an engine for your company.
* @param months The new months between autorenew. * @param months The number of calendar-months before/after max age of engine.
* The value will be clamped to MIN(int16_t) .. MAX(int16_t). * The value will be clamped to MIN(int16_t) .. MAX(int16_t).
* @game @pre ScriptCompanyMode::IsValid(). * @game @pre ScriptCompanyMode::IsValid().
* @return True if autorenew months has been modified. * @return True if autorenew months has been modified.
* @see \ref ScriptCalendarTime
*/ */
static bool SetAutoRenewMonths(SQInteger months); static bool SetAutoRenewMonths(SQInteger months);
@ -388,7 +394,8 @@ public:
* Return the number of months before/after max age to autorenew an engine for a company. * Return the number of months before/after max age to autorenew an engine for a company.
* @param company The company to get the autorenew months of. * @param company The company to get the autorenew months of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID. * @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @return The months before/after max age of engine. * @return The number of calendar-months before/after max age of engine.
* @see \ref ScriptCalendarTime
*/ */
static SQInteger GetAutoRenewMonths(CompanyID company); static SQInteger GetAutoRenewMonths(CompanyID company);

View File

@ -23,6 +23,30 @@
* @note Dates can be used to determine the number of days between * @note Dates can be used to determine the number of days between
* two different moments in time because they count the number * two different moments in time because they count the number
* of days since the year 0. * of days since the year 0.
*
* \anchor ScriptCalendarTime
* \b Calendar-Time
*
* Calendar time measures the technological progression in the game.
* \li The calendar date is shown in the status bar.
* \li The calendar date affects engine model introduction and expiration.
* \li Progression of calendar time can be slowed or even halted via game settings.
*
* Calendar time uses the Gregorian calendar with 365 or 366 days per year.
*
* \anchor ScriptEconomyTime
* \b Economy-Time
*
* Economy time measures the in-game time progression, while the game is not paused.
* \li Cargo production and consumption follows economy time.
* \li Recurring income and expenses follow economy time.
* \li Production and income statistics and balances are created per economy month/quarter/year.
*
* Depending on game settings economy time is represented differently:
* \li Calendar-based timekeeping: Economy- and calendar-time use the identical Gregorian calendar.
* \li Wallclock-based timekeeping: Economy- and calendar-time are separate.
* Economy-time will use a 360 day calendar (12 months with 30 days each), which runs at a constant speed of one economy-month per realtime-minute.
* Calendar-time will use a Gregorian calendar, which can be slowed to stopped via game settings.
*/ */
class ScriptDate : public ScriptObject { class ScriptDate : public ScriptObject {
public: public:

View File

@ -125,8 +125,8 @@ public:
* Get the maximum age of a brand new engine. * Get the maximum age of a brand new engine.
* @param engine_id The engine to get the maximum age of. * @param engine_id The engine to get the maximum age of.
* @pre IsValidEngine(engine_id). * @pre IsValidEngine(engine_id).
* @returns The maximum age of a new engine in days. * @returns The maximum age of a new engine in calendar-days.
* @note Age is in days; divide by 366 to get per year. * @see \ref ScriptCalendarTime
*/ */
static SQInteger GetMaxAge(EngineID engine_id); static SQInteger GetMaxAge(EngineID engine_id);
@ -134,8 +134,8 @@ public:
* Get the running cost of an engine. * Get the running cost of an engine.
* @param engine_id The engine to get the running cost of. * @param engine_id The engine to get the running cost of.
* @pre IsValidEngine(engine_id). * @pre IsValidEngine(engine_id).
* @return The running cost of a vehicle per year. * @return The running cost of a vehicle per economy-year.
* @note Cost is per year; divide by 365 to get per day. * @see \ref ScriptEconomyTime
*/ */
static Money GetRunningCost(EngineID engine_id); static Money GetRunningCost(EngineID engine_id);
@ -167,10 +167,11 @@ public:
static SQInteger GetMaxTractiveEffort(EngineID engine_id); static SQInteger GetMaxTractiveEffort(EngineID engine_id);
/** /**
* Get the date this engine was designed. * Get the calendar-date this engine was designed.
* @param engine_id The engine to get the design date of. * @param engine_id The engine to get the design date of.
* @pre IsValidEngine(engine_id). * @pre IsValidEngine(engine_id).
* @return The date this engine was designed. * @return The calendar-date this engine was designed.
* @see \ref ScriptCalendarTime
*/ */
static ScriptDate::Date GetDesignDate(EngineID engine_id); static ScriptDate::Date GetDesignDate(EngineID engine_id);

View File

@ -272,8 +272,8 @@ public:
/** /**
* Get the running cost of the offered engine. * Get the running cost of the offered engine.
* @return The running cost of the vehicle per year. * @return The running cost of the vehicle per economy-year.
* @note Cost is per year; divide by 365 to get per day. * @see \ref ScriptEconomyTime
*/ */
Money GetRunningCost(); Money GetRunningCost();

View File

@ -222,7 +222,8 @@ public:
* Get the current profit of a group. * Get the current profit of a group.
* @param group_id The group to get the profit of. * @param group_id The group to get the profit of.
* @pre IsValidGroup(group_id). * @pre IsValidGroup(group_id).
* @return The current profit the group has. * @return The profit the vehicles in this group have made this economy-year so far.
* @see \ref ScriptEconomyTime
*/ */
static Money GetProfitThisYear(GroupID group_id); static Money GetProfitThisYear(GroupID group_id);
@ -230,7 +231,8 @@ public:
* Get the profit of last year of a group. * Get the profit of last year of a group.
* @param group_id The group to get the profit of. * @param group_id The group to get the profit of.
* @pre IsValidGroup(group_id). * @pre IsValidGroup(group_id).
* @return The current profit the group had last year. * @return The profit the vehicles in this group made in the previous economy-year.
* @see \ref ScriptEconomyTime
*/ */
static Money GetProfitLastYear(GroupID group_id); static Money GetProfitLastYear(GroupID group_id);

View File

@ -86,10 +86,11 @@ public:
static std::optional<std::string> GetName(IndustryID industry_id); static std::optional<std::string> GetName(IndustryID industry_id);
/** /**
* Get the construction date of an industry. * Get the construction calendar-date of an industry.
* @param industry_id The index of the industry. * @param industry_id The index of the industry.
* @pre IsValidIndustry(industry_id). * @pre IsValidIndustry(industry_id).
* @return Date the industry was constructed. * @return Calendar-date the industry was constructed.
* @see \ref ScriptCalendarTime
* @api -ai * @api -ai
*/ */
static ScriptDate::Date GetConstructionDate(IndustryID industry_id); static ScriptDate::Date GetConstructionDate(IndustryID industry_id);
@ -126,32 +127,35 @@ public:
static SQInteger GetStockpiledCargo(IndustryID industry_id, CargoID cargo_id); static SQInteger GetStockpiledCargo(IndustryID industry_id, CargoID cargo_id);
/** /**
* Get the total last month's production of the given cargo at an industry. * Get the total last economy-month's production of the given cargo at an industry.
* @param industry_id The index of the industry. * @param industry_id The index of the industry.
* @param cargo_id The index of the cargo. * @param cargo_id The index of the cargo.
* @pre IsValidIndustry(industry_id). * @pre IsValidIndustry(industry_id).
* @pre ScriptCargo::IsValidCargo(cargo_id). * @pre ScriptCargo::IsValidCargo(cargo_id).
* @return The last month's production of the given cargo for this industry. * @return The last economy-month's production of the given cargo for this industry.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetLastMonthProduction(IndustryID industry_id, CargoID cargo_id); static SQInteger GetLastMonthProduction(IndustryID industry_id, CargoID cargo_id);
/** /**
* Get the total amount of cargo transported from an industry last month. * Get the total amount of cargo transported from an industry last economy-month.
* @param industry_id The index of the industry. * @param industry_id The index of the industry.
* @param cargo_id The index of the cargo. * @param cargo_id The index of the cargo.
* @pre IsValidIndustry(industry_id). * @pre IsValidIndustry(industry_id).
* @pre ScriptCargo::IsValidCargo(cargo_id). * @pre ScriptCargo::IsValidCargo(cargo_id).
* @return The amount of given cargo transported from this industry last month. * @return The amount of given cargo transported from this industry last economy-month.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetLastMonthTransported(IndustryID industry_id, CargoID cargo_id); static SQInteger GetLastMonthTransported(IndustryID industry_id, CargoID cargo_id);
/** /**
* Get the percentage of cargo transported from an industry last month. * Get the percentage of cargo transported from an industry last economy-month.
* @param industry_id The index of the industry. * @param industry_id The index of the industry.
* @param cargo_id The index of the cargo. * @param cargo_id The index of the cargo.
* @pre IsValidIndustry(industry_id). * @pre IsValidIndustry(industry_id).
* @pre ScriptCargo::IsValidCargo(cargo_id). * @pre ScriptCargo::IsValidCargo(cargo_id).
* @return The percentage of given cargo transported from this industry last month. * @return The percentage of given cargo transported from this industry last economy-month.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetLastMonthTransportedPercentage(IndustryID industry_id, CargoID cargo_id); static SQInteger GetLastMonthTransportedPercentage(IndustryID industry_id, CargoID cargo_id);
@ -246,21 +250,23 @@ public:
static IndustryType GetIndustryType(IndustryID industry_id); static IndustryType GetIndustryType(IndustryID industry_id);
/** /**
* Get the last year this industry had any production output. * Get the last economy-year this industry had any production output.
* @param industry_id The index of the industry. * @param industry_id The index of the industry.
* @pre IsValidIndustry(industry_id). * @pre IsValidIndustry(industry_id).
* @return Year the industry last had production, 0 if error. * @return Economy-year the industry last had production, 0 if error.
* @see \ref ScriptEconomyTime
* @api -ai * @api -ai
*/ */
static SQInteger GetLastProductionYear(IndustryID industry_id); static SQInteger GetLastProductionYear(IndustryID industry_id);
/** /**
* Get the last date this industry accepted any cargo delivery. * Get the last economy-date this industry accepted any cargo delivery.
* @param industry_id The index of the industry. * @param industry_id The index of the industry.
* @param cargo_type The cargo to query, or INVALID_CARGO to query latest of all accepted cargoes. * @param cargo_type The cargo to query, or INVALID_CARGO to query latest of all accepted cargoes.
* @pre IsValidIndustry(industry_id). * @pre IsValidIndustry(industry_id).
* @pre IsValidCargo(cargo_type) || cargo_type == INVALID_CARGO. * @pre IsValidCargo(cargo_type) || cargo_type == INVALID_CARGO.
* @return Date the industry last received cargo from a delivery, or ScriptDate::DATE_INVALID on error. * @return Economy-date the industry last received cargo from a delivery, or ScriptDate::DATE_INVALID on error.
* @see \ref ScriptEconomyTime
* @api -ai * @api -ai
*/ */
static ScriptDate::Date GetCargoLastAcceptedDate(IndustryID industry_id, CargoID cargo_type); static ScriptDate::Date GetCargoLastAcceptedDate(IndustryID industry_id, CargoID cargo_type);

View File

@ -58,7 +58,8 @@ public:
* Return the monthly maintenance costs of a specific rail type for a company. * Return the monthly maintenance costs of a specific rail type for a company.
* @param company The company to get the monthly cost for. * @param company The company to get the monthly cost for.
* @param railtype Rail type to get the cost of. * @param railtype Rail type to get the cost of.
* @return Monthly maintenance cost for the rail type. * @return Maintenance cost for the rail type per economy-month.
* @see \ref ScriptEconomyTime
*/ */
static Money GetMonthlyRailCosts(ScriptCompany::CompanyID company, ScriptRail::RailType railtype); static Money GetMonthlyRailCosts(ScriptCompany::CompanyID company, ScriptRail::RailType railtype);
@ -66,7 +67,8 @@ public:
* Return the monthly maintenance costs of a specific road type for a company. * Return the monthly maintenance costs of a specific road type for a company.
* @param company The company to get the monthly cost for. * @param company The company to get the monthly cost for.
* @param roadtype Road type to get the cost of. * @param roadtype Road type to get the cost of.
* @return Monthly maintenance cost for the road type. * @return Maintenance cost for the road type per economy-month.
* @see \ref ScriptEconomyTime
*/ */
static Money GetMonthlyRoadCosts(ScriptCompany::CompanyID company, ScriptRoad::RoadType roadtype); static Money GetMonthlyRoadCosts(ScriptCompany::CompanyID company, ScriptRoad::RoadType roadtype);
@ -74,8 +76,9 @@ public:
* Return the monthly maintenance costs of an infrastructure category for a company. * Return the monthly maintenance costs of an infrastructure category for a company.
* @param company The company to get the monthly cost for. * @param company The company to get the monthly cost for.
* @param infra_type Infrastructure category to get the cost of. * @param infra_type Infrastructure category to get the cost of.
* @return Monthly maintenance cost for the wanted category. * @return Maintenance cost for the wanted category per economy-month.
* @note #INFRASTRUCTURE_RAIL and #INFRASTRUCTURE_ROAD return the total cost for all rail/road types. * @note #INFRASTRUCTURE_RAIL and #INFRASTRUCTURE_ROAD return the total cost for all rail/road types.
* @see \ref ScriptEconomyTime
*/ */
static Money GetMonthlyInfrastructureCosts(ScriptCompany::CompanyID company, Infrastructure infra_type); static Money GetMonthlyInfrastructureCosts(ScriptCompany::CompanyID company, Infrastructure infra_type);
}; };

View File

@ -93,10 +93,10 @@ public:
OC_RELIABILITY = ::OCV_RELIABILITY, ///< Skip based on the reliability, value is percent (0..100). OC_RELIABILITY = ::OCV_RELIABILITY, ///< Skip based on the reliability, value is percent (0..100).
OC_MAX_RELIABILITY = ::OCV_MAX_RELIABILITY, ///< Skip based on the maximum reliability. Value in percent OC_MAX_RELIABILITY = ::OCV_MAX_RELIABILITY, ///< Skip based on the maximum reliability. Value in percent
OC_MAX_SPEED = ::OCV_MAX_SPEED, ///< Skip based on the maximum speed, value is in OpenTTD's internal speed unit, see ScriptEngine::GetMaxSpeed. OC_MAX_SPEED = ::OCV_MAX_SPEED, ///< Skip based on the maximum speed, value is in OpenTTD's internal speed unit, see ScriptEngine::GetMaxSpeed.
OC_AGE = ::OCV_AGE, ///< Skip based on the age, value is in years. OC_AGE = ::OCV_AGE, ///< Skip based on the age, value is in calender-years. @see \ref ScriptCalendarTime
OC_REQUIRES_SERVICE = ::OCV_REQUIRES_SERVICE, ///< Skip when the vehicle requires service, no value. OC_REQUIRES_SERVICE = ::OCV_REQUIRES_SERVICE, ///< Skip when the vehicle requires service, no value.
OC_UNCONDITIONALLY = ::OCV_UNCONDITIONALLY, ///< Always skip, no compare function, no value. OC_UNCONDITIONALLY = ::OCV_UNCONDITIONALLY, ///< Always skip, no compare function, no value.
OC_REMAINING_LIFETIME = ::OCV_REMAINING_LIFETIME, ///< Skip based on the remaining lifetime OC_REMAINING_LIFETIME = ::OCV_REMAINING_LIFETIME, ///< Skip based on the remaining lifetime in calendar-years. @see \ref ScriptCalendarTime
/* Custom added value, only valid for this API */ /* Custom added value, only valid for this API */
OC_INVALID = -1, ///< An invalid condition, do not use. OC_INVALID = -1, ///< An invalid condition, do not use.

View File

@ -265,18 +265,20 @@ public:
/** /**
* Get the page date which is displayed at the top of each page. * Get the page date which is displayed at the top of each page.
* @param story_page_id The story page to get the date of. * @param story_page_id The story page to get the date of.
* @return The date * @return The calendar-date
* @pre IsValidStoryPage(story_page_id). * @pre IsValidStoryPage(story_page_id).
* @see \ref ScriptCalendarTime
*/ */
static ScriptDate::Date GetDate(StoryPageID story_page_id); static ScriptDate::Date GetDate(StoryPageID story_page_id);
/** /**
* Update date of a story page. The date is shown in the top left of the page * Update date of a story page. The date is shown in the top left of the page
* @param story_page_id The story page to set the date for. * @param story_page_id The story page to set the date for.
* @param date Date to display at the top of story page or ScriptDate::DATE_INVALID to disable showing date on this page. (also, @see ScriptDate) * @param date Calendar-date to display at the top of story page or ScriptDate::DATE_INVALID to disable showing date on this page. (also, @see ScriptDate)
* @return True if the action succeeded. * @return True if the action succeeded.
* @pre ScriptCompanyMode::IsDeity(). * @pre ScriptCompanyMode::IsDeity().
* @pre IsValidStoryPage(story_page_id). * @pre IsValidStoryPage(story_page_id).
* @see \ref ScriptCalendarTime
*/ */
static bool SetDate(StoryPageID story_page_id, ScriptDate::Date date); static bool SetDate(StoryPageID story_page_id, ScriptDate::Date date);

View File

@ -74,14 +74,15 @@ public:
static ScriptCompany::CompanyID GetAwardedTo(SubsidyID subsidy_id); static ScriptCompany::CompanyID GetAwardedTo(SubsidyID subsidy_id);
/** /**
* Get the date this subsidy expires. In case the subsidy is already * Get the economy-date this subsidy expires. In case the subsidy is already
* awarded, return the date the subsidy expires, else, return the date the * awarded, return the economy-date the subsidy expires, else, return the economy-date the
* offer expires. * offer expires.
* @param subsidy_id The SubsidyID to check. * @param subsidy_id The SubsidyID to check.
* @pre IsValidSubsidy(subsidy_id). * @pre IsValidSubsidy(subsidy_id).
* @return The last valid date of this subsidy. * @return The last valid economy-date of this subsidy.
* @note The return value of this function will change if the subsidy is * @note The return value of this function will change if the subsidy is
* awarded. * awarded.
* @see \ref ScriptEconomyTime
*/ */
static ScriptDate::Date GetExpireDate(SubsidyID subsidy_id); static ScriptDate::Date GetExpireDate(SubsidyID subsidy_id);

View File

@ -48,7 +48,8 @@ public:
TOWN_ACTION_ADVERTISE_LARGE = 2, TOWN_ACTION_ADVERTISE_LARGE = 2,
/** /**
* Rebuild the roads of this town for 6 months. * Rebuild the roads of this town for 6 economy-months.
* @see \ref ScriptEconomyTime
*/ */
TOWN_ACTION_ROAD_REBUILD = 3, TOWN_ACTION_ROAD_REBUILD = 3,
@ -58,12 +59,14 @@ public:
TOWN_ACTION_BUILD_STATUE = 4, TOWN_ACTION_BUILD_STATUE = 4,
/** /**
* Fund the creation of extra buildings for 3 months. * Fund the creation of extra buildings for 3 economy-months.
* @see \ref ScriptEconomyTime
*/ */
TOWN_ACTION_FUND_BUILDINGS = 5, TOWN_ACTION_FUND_BUILDINGS = 5,
/** /**
* Buy exclusive rights for this town for 12 months. * Buy exclusive rights for this town for 12 economy-months.
* @see \ref ScriptEconomyTime
*/ */
TOWN_ACTION_BUY_RIGHTS = 6, TOWN_ACTION_BUY_RIGHTS = 6,
@ -191,92 +194,100 @@ public:
static TileIndex GetLocation(TownID town_id); static TileIndex GetLocation(TownID town_id);
/** /**
* Get the total last month's production of the given cargo at a town. * Get the total last economy-month's production of the given cargo at a town.
* @param town_id The index of the town. * @param town_id The index of the town.
* @param cargo_id The index of the cargo. * @param cargo_id The index of the cargo.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @pre ScriptCargo::IsValidCargo(cargo_id). * @pre ScriptCargo::IsValidCargo(cargo_id).
* @return The last month's production of the given cargo for this town. * @return The last economy-month's production of the given cargo for this town.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetLastMonthProduction(TownID town_id, CargoID cargo_id); static SQInteger GetLastMonthProduction(TownID town_id, CargoID cargo_id);
/** /**
* Get the total amount of cargo supplied from a town last month. * Get the total amount of cargo supplied from a town last economy-month.
* @param town_id The index of the town. * @param town_id The index of the town.
* @param cargo_id The index of the cargo. * @param cargo_id The index of the cargo.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @pre ScriptCargo::IsValidCargo(cargo_id). * @pre ScriptCargo::IsValidCargo(cargo_id).
* @return The amount of cargo supplied for transport from this town last month. * @return The amount of cargo supplied for transport from this town last economy-month.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetLastMonthSupplied(TownID town_id, CargoID cargo_id); static SQInteger GetLastMonthSupplied(TownID town_id, CargoID cargo_id);
/** /**
* Get the percentage of transported production of the given cargo at a town. * Get the percentage of transported production of the given cargo at a town last economy-month.
* @param town_id The index of the town. * @param town_id The index of the town.
* @param cargo_id The index of the cargo. * @param cargo_id The index of the cargo.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @pre ScriptCargo::IsValidCargo(cargo_id). * @pre ScriptCargo::IsValidCargo(cargo_id).
* @return The percentage of given cargo transported from this town last month. * @return The percentage of given cargo transported from this town last economy-month.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetLastMonthTransportedPercentage(TownID town_id, CargoID cargo_id); static SQInteger GetLastMonthTransportedPercentage(TownID town_id, CargoID cargo_id);
/** /**
* Get the total amount of cargo effects received by a town last month. * Get the total amount of cargo effects received by a town last economy-month.
* @param town_id The index of the town. * @param town_id The index of the town.
* @param towneffect_id The index of the cargo. * @param towneffect_id The index of the cargo.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @pre ScriptCargo::IsValidTownEffect(cargo_id). * @pre ScriptCargo::IsValidTownEffect(cargo_id).
* @return The amount of cargo received by this town last month for this cargo effect. * @return The amount of cargo received by this town last economy-month for this cargo effect.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetLastMonthReceived(TownID town_id, ScriptCargo::TownEffect towneffect_id); static SQInteger GetLastMonthReceived(TownID town_id, ScriptCargo::TownEffect towneffect_id);
/** /**
* Set the goal of a cargo for this town. * Set the goal of a cargo per economy-month for this town.
* @param town_id The index of the town. * @param town_id The index of the town.
* @param towneffect_id The index of the towneffect. * @param towneffect_id The index of the towneffect.
* @param goal The new goal. * @param goal The new goal amount for cargo delivered per economy-month.
* The value will be clamped to 0 .. MAX(uint32_t). * The value will be clamped to 0 .. MAX(uint32_t).
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @pre ScriptCargo::IsValidTownEffect(towneffect_id). * @pre ScriptCargo::IsValidTownEffect(towneffect_id).
* @pre ScriptCompanyMode::IsDeity(). * @pre ScriptCompanyMode::IsDeity().
* @return True if the action succeeded. * @return True if the action succeeded.
* @see \ref ScriptEconomyTime
* @api -ai * @api -ai
*/ */
static bool SetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id, SQInteger goal); static bool SetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id, SQInteger goal);
/** /**
* Get the amount of cargo that needs to be delivered (per TownEffect) for a * Get the amount of cargo per economy-month that needs to be delivered (per TownEffect) for a
* town to grow. All goals need to be reached before a town will grow. * town to grow. All goals need to be reached before a town will grow.
* @param town_id The index of the town. * @param town_id The index of the town.
* @param towneffect_id The index of the towneffect. * @param towneffect_id The index of the towneffect.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @pre ScriptCargo::IsValidTownEffect(towneffect_id). * @pre ScriptCargo::IsValidTownEffect(towneffect_id).
* @return The goal of the cargo. * @return The goal of the cargo (amount per economy-month).
* @note Goals can change over time. For example with a changing snowline, or * @note Goals can change over time. For example with a changing snowline, or
* with a growing town. * with a growing town.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id); static SQInteger GetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id);
/** /**
* Set the amount of days between town growth. * Set the amount of economy-days between town growth.
* @param town_id The index of the town. * @param town_id The index of the town.
* @param days_between_town_growth The amount of days between town growth, TOWN_GROWTH_NONE or TOWN_GROWTH_NORMAL. * @param days_between_town_growth The amount of economy-days between town growth, TOWN_GROWTH_NONE or TOWN_GROWTH_NORMAL.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @pre days_between_town_growth <= 880 || days_between_town_growth == TOWN_GROWTH_NONE || days_between_town_growth == TOWN_GROWTH_NORMAL. * @pre days_between_town_growth <= 880 || days_between_town_growth == TOWN_GROWTH_NONE || days_between_town_growth == TOWN_GROWTH_NORMAL.
* @return True if the action succeeded. * @return True if the action succeeded.
* @note Even when setting a growth rate, towns only grow when the conditions for growth (SetCargoCoal) are met, * @note Even when setting a growth rate, towns only grow when the conditions for growth (SetCargoCoal) are met,
* and the game settings (economy.town_growth_rate) allow town growth at all. * and the game settings (economy.town_growth_rate) allow town growth at all.
* @note When changing the growth rate, the relative progress is preserved and scaled to the new rate. * @note When changing the growth rate, the relative progress is preserved and scaled to the new rate.
* @see \ref ScriptEconomyTime
* @api -ai * @api -ai
*/ */
static bool SetGrowthRate(TownID town_id, SQInteger days_between_town_growth); static bool SetGrowthRate(TownID town_id, SQInteger days_between_town_growth);
/** /**
* Get the amount of days between town growth. * Get the amount of economy-days between town growth.
* @param town_id The index of the town. * @param town_id The index of the town.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @return Amount of days between town growth, or TOWN_GROWTH_NONE. * @return Amount of economy-days between town growth, or TOWN_GROWTH_NONE.
* @note This function does not indicate when it will grow next. It only tells you the time between growths. * @note This function does not indicate when it will grow next. It only tells you the time between growths.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetGrowthRate(TownID town_id); static SQInteger GetGrowthRate(TownID town_id);
@ -332,8 +343,9 @@ public:
* Find out how long the town is undergoing road reconstructions. * Find out how long the town is undergoing road reconstructions.
* @param town_id The town to check. * @param town_id The town to check.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @return The number of months the road reworks are still going to take. * @return The number of economy-months the road reworks are still going to take.
* The value 0 means that there are currently no road reworks. * The value 0 means that there are currently no road reworks.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetRoadReworkDuration(TownID town_id); static SQInteger GetRoadReworkDuration(TownID town_id);
@ -341,8 +353,9 @@ public:
* Find out how long new buildings are still being funded in a town. * Find out how long new buildings are still being funded in a town.
* @param town_id The town to check. * @param town_id The town to check.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @return The number of months building construction is still funded. * @return The number of economy-months building construction is still funded.
* The value 0 means that there is currently no funding. * The value 0 means that there is currently no funding.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetFundBuildingsDuration(TownID town_id); static SQInteger GetFundBuildingsDuration(TownID town_id);
@ -361,9 +374,10 @@ public:
* Find out how long the town is under influence of the exclusive rights. * Find out how long the town is under influence of the exclusive rights.
* @param town_id The town to check. * @param town_id The town to check.
* @pre IsValidTown(town_id). * @pre IsValidTown(town_id).
* @return The number of months the exclusive rights hold. * @return The number of economy-months the exclusive rights hold.
* The value 0 means that there are currently no exclusive rights * The value 0 means that there are currently no exclusive rights
* given out to anyone. * given out to anyone.
* @see \ref ScriptEconomyTime
*/ */
static SQInteger GetExclusiveRightsDuration(TownID town_id); static SQInteger GetExclusiveRightsDuration(TownID town_id);

View File

@ -188,8 +188,8 @@ public:
* Get the current age of a vehicle. * Get the current age of a vehicle.
* @param vehicle_id The vehicle to get the age of. * @param vehicle_id The vehicle to get the age of.
* @pre IsValidVehicle(vehicle_id). * @pre IsValidVehicle(vehicle_id).
* @return The current age the vehicle has. * @return The current age of the vehicle in calendar-days.
* @note The age is in days. * @see \ref ScriptCalendarTime
*/ */
static SQInteger GetAge(VehicleID vehicle_id); static SQInteger GetAge(VehicleID vehicle_id);
@ -199,8 +199,8 @@ public:
* @param wagon The wagon in the vehicle to get the age of. * @param wagon The wagon in the vehicle to get the age of.
* @pre IsValidVehicle(vehicle_id). * @pre IsValidVehicle(vehicle_id).
* @pre wagon < GetNumWagons(vehicle_id). * @pre wagon < GetNumWagons(vehicle_id).
* @return The current age the vehicle has. * @return The current age of the vehicle in calendar-days.
* @note The age is in days. * @see \ref ScriptCalendarTime
*/ */
static SQInteger GetWagonAge(VehicleID vehicle_id, SQInteger wagon); static SQInteger GetWagonAge(VehicleID vehicle_id, SQInteger wagon);
@ -208,8 +208,8 @@ public:
* Get the maximum age of a vehicle. * Get the maximum age of a vehicle.
* @param vehicle_id The vehicle to get the age of. * @param vehicle_id The vehicle to get the age of.
* @pre IsPrimaryVehicle(vehicle_id). * @pre IsPrimaryVehicle(vehicle_id).
* @return The maximum age the vehicle has. * @return The maximum age for the vehicle in calendar-days.
* @note The age is in days. * @see \ref ScriptCalendarTime
*/ */
static SQInteger GetMaxAge(VehicleID vehicle_id); static SQInteger GetMaxAge(VehicleID vehicle_id);
@ -217,8 +217,8 @@ public:
* Get the age a vehicle has left (maximum - current). * Get the age a vehicle has left (maximum - current).
* @param vehicle_id The vehicle to get the age of. * @param vehicle_id The vehicle to get the age of.
* @pre IsPrimaryVehicle(vehicle_id). * @pre IsPrimaryVehicle(vehicle_id).
* @return The age the vehicle has left. * @return The remaining age of the vehicle in calendar-days.
* @note The age is in days. * @see \ref ScriptCalendarTime
*/ */
static SQInteger GetAgeLeft(VehicleID vehicle_id); static SQInteger GetAgeLeft(VehicleID vehicle_id);
@ -245,10 +245,10 @@ public:
* Get the running cost of this vehicle. * Get the running cost of this vehicle.
* @param vehicle_id The vehicle to get the running cost of. * @param vehicle_id The vehicle to get the running cost of.
* @pre IsPrimaryVehicle(vehicle_id). * @pre IsPrimaryVehicle(vehicle_id).
* @return The running cost of the vehicle per year. * @return The running cost of the vehicle per economy-year.
* @note Cost is per year; divide by 365 to get per day.
* @note This is not equal to ScriptEngine::GetRunningCost for Trains, because * @note This is not equal to ScriptEngine::GetRunningCost for Trains, because
* wagons and second engines can add up in the calculation too. * wagons and second engines can add up in the calculation too.
* @see \ref ScriptEconomyTime
*/ */
static Money GetRunningCost(VehicleID vehicle_id); static Money GetRunningCost(VehicleID vehicle_id);
@ -256,7 +256,8 @@ public:
* Get the current profit of a vehicle. * Get the current profit of a vehicle.
* @param vehicle_id The vehicle to get the profit of. * @param vehicle_id The vehicle to get the profit of.
* @pre IsPrimaryVehicle(vehicle_id). * @pre IsPrimaryVehicle(vehicle_id).
* @return The current profit the vehicle has. * @return The profit the vehicle has made this economy-year so far.
* @see \ref ScriptEconomyTime
*/ */
static Money GetProfitThisYear(VehicleID vehicle_id); static Money GetProfitThisYear(VehicleID vehicle_id);
@ -264,7 +265,8 @@ public:
* Get the profit of last year of a vehicle. * Get the profit of last year of a vehicle.
* @param vehicle_id The vehicle to get the profit of. * @param vehicle_id The vehicle to get the profit of.
* @pre IsPrimaryVehicle(vehicle_id). * @pre IsPrimaryVehicle(vehicle_id).
* @return The profit the vehicle had last year. * @return The profit the vehicle made in the previous economy-year.
* @see \ref ScriptEconomyTime
*/ */
static Money GetProfitLastYear(VehicleID vehicle_id); static Money GetProfitLastYear(VehicleID vehicle_id);