OpenTTD AI API 20260208-master-g43af8e94d0
AISubsidy Class Reference

Class that handles all subsidy related functions. More...

#include <script_subsidy.hpp>

Inheritance diagram for AISubsidy:

Public Types

enum  SubsidyParticipantType {
  out ,
  SPT_INDUSTRY ,
  SPT_TOWN ,
  SPT_INVALID
}
 Enumeration for source and destination of a subsidy. More...

Static Public Member Functions

static bool IsValidSubsidy (SubsidyID subsidy_id)
 Check whether this is a valid SubsidyID.
static bool IsAwarded (SubsidyID subsidy_id)
 Checks whether this subsidy is already awarded to some company.
static AICompany::CompanyID GetAwardedTo (SubsidyID subsidy_id)
 Get the company index of the company this subsidy is awarded to.
static AIDate::Date GetExpireDate (SubsidyID subsidy_id)
 Get the economy-date this subsidy expires.
static CargoType GetCargoType (SubsidyID subsidy_id)
 Get the cargo type that has to be transported in order to be awarded this subsidy.
static SubsidyParticipantType GetSourceType (SubsidyID subsidy_id)
 Returns the type of source of subsidy.
static int GetSourceIndex (SubsidyID subsidy_id)
 Return the source IndustryID/TownID the subsidy is for.
static SubsidyParticipantType GetDestinationType (SubsidyID subsidy_id)
 Returns the type of destination of subsidy.
static int GetDestinationIndex (SubsidyID subsidy_id)
 Return the destination IndustryID/TownID the subsidy is for.

Detailed Description

Class that handles all subsidy related functions.

Member Enumeration Documentation

◆ SubsidyParticipantType

Enumeration for source and destination of a subsidy.

Note
The list of values may grow in future.
Enumerator
SPT_INDUSTRY 

Subsidy participant is an industry.

SPT_TOWN 

Subsidy participant is a town.

SPT_INVALID 

Invalid/unknown participant type.

Member Function Documentation

◆ GetAwardedTo()

AICompany::CompanyID AISubsidy::GetAwardedTo ( SubsidyID subsidy_id)
static

Get the company index of the company this subsidy is awarded to.

Parameters
subsidy_idThe SubsidyID to check.
Precondition
IsAwarded(subsidy_id).
Returns
The companyindex of the company this subsidy is awarded to.

◆ GetCargoType()

CargoType AISubsidy::GetCargoType ( SubsidyID subsidy_id)
static

Get the cargo type that has to be transported in order to be awarded this subsidy.

Parameters
subsidy_idThe SubsidyID to check.
Precondition
IsValidSubsidy(subsidy_id).
Returns
The cargo type to transport.

◆ GetDestinationIndex()

int AISubsidy::GetDestinationIndex ( SubsidyID subsidy_id)
static

Return the destination IndustryID/TownID the subsidy is for.

  • GetDestinationType(subsidy_id) == SPT_INDUSTRY -> return the IndustryID.
  • GetDestinationType(subsidy_id) == SPT_TOWN -> return the TownID.
    Parameters
    subsidy_idthe SubsidyID to check.
    Precondition
    IsValidSubsidy(subsidy_id).
    Returns
    One of TownID/IndustryID.

◆ GetDestinationType()

SubsidyParticipantType AISubsidy::GetDestinationType ( SubsidyID subsidy_id)
static

Returns the type of destination of subsidy.

Parameters
subsidy_idThe SubsidyID to check.
Precondition
IsValidSubsidy(subsidy_id).
Returns
Type of destination of subsidy.

◆ GetExpireDate()

AIDate::Date AISubsidy::GetExpireDate ( SubsidyID subsidy_id)
static

Get the economy-date this subsidy expires.

In case the subsidy is already awarded, return the economy-date the subsidy expires, else, return the economy-date the offer expires.

Parameters
subsidy_idThe SubsidyID to check.
Precondition
IsValidSubsidy(subsidy_id).
Returns
The last valid economy-date of this subsidy.
Note
The return value of this function will change if the subsidy is awarded.
See also
AIEconomyTime

◆ GetSourceIndex()

int AISubsidy::GetSourceIndex ( SubsidyID subsidy_id)
static

Return the source IndustryID/TownID the subsidy is for.

  • GetSourceType(subsidy_id) == SPT_INDUSTRY -> return the IndustryID.
  • GetSourceType(subsidy_id) == SPT_TOWN -> return the TownID.
    Parameters
    subsidy_idThe SubsidyID to check.
    Precondition
    IsValidSubsidy(subsidy_id).
    Returns
    One of TownID/IndustryID.

◆ GetSourceType()

SubsidyParticipantType AISubsidy::GetSourceType ( SubsidyID subsidy_id)
static

Returns the type of source of subsidy.

Parameters
subsidy_idThe SubsidyID to check.
Precondition
IsValidSubsidy(subsidy_id).
Returns
Type of source of subsidy.

◆ IsAwarded()

bool AISubsidy::IsAwarded ( SubsidyID subsidy_id)
static

Checks whether this subsidy is already awarded to some company.

Parameters
subsidy_idThe SubsidyID to check.
Precondition
IsValidSubsidy(subsidy).
Returns
True if and only if this subsidy is already awarded.

◆ IsValidSubsidy()

bool AISubsidy::IsValidSubsidy ( SubsidyID subsidy_id)
static

Check whether this is a valid SubsidyID.

Parameters
subsidy_idThe SubsidyID to check.
Returns
True if and only if this subsidy is still valid.