AISubsidy Class Reference

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

#include <ai_subsidy.hpp>

Inheritance diagram for AISubsidy:
AIObject SimpleCountedObject

Public Types

enum  SubsidyParticipantType { SPT_INDUSTRY = 0, SPT_TOWN = 1, SPT_INVALID = 0xFF }
 

Enumeration for source and destination of a subsidy.

More...

Static Public Member Functions

static const char * GetClassName ()
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 int32 GetExpireDate (SubsidyID subsidy_id)
 Get the date this subsidy expires.
static CargoID 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 int32 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 int32 GetDestinationIndex (SubsidyID subsidy_id)
 Return the destination IndustryID/TownID the subsidy is for.

Detailed Description

Class that handles all subsidy related functions.

Definition at line 21 of file ai_subsidy.hpp.


Member Enumeration Documentation

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.

Definition at line 29 of file ai_subsidy.hpp.


Member Function Documentation

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

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

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

Definition at line 29 of file ai_subsidy.cpp.

References AICompany::COMPANY_INVALID, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_subsidy_pool >::Get(), and IsAwarded().

CargoID AISubsidy::GetCargoType ( SubsidyID  subsidy_id  )  [static]

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

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

Definition at line 51 of file ai_subsidy.cpp.

References CT_INVALID, and IsValidSubsidy().

int32 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_id the SubsidyID to check.
    Precondition:
    IsValidSubsidy(subsidy_id).
    Returns:
    One of TownID/IndustryID.

Definition at line 79 of file ai_subsidy.cpp.

References IsValidSubsidy().

AISubsidy::SubsidyParticipantType AISubsidy::GetDestinationType ( SubsidyID  subsidy_id  )  [static]

Returns the type of destination of subsidy.

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

Definition at line 72 of file ai_subsidy.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_subsidy_pool >::Get(), IsValidSubsidy(), and SPT_INVALID.

int32 AISubsidy::GetExpireDate ( SubsidyID  subsidy_id  )  [static]

Get the date this subsidy expires.

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

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

Definition at line 36 of file ai_subsidy.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_subsidy_pool >::Get(), AIDate::GetCurrentDate(), AIDate::GetDate(), AIDate::GetMonth(), AIDate::GetYear(), and IsValidSubsidy().

int32 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_id The SubsidyID to check.
    Precondition:
    IsValidSubsidy(subsidy_id).
    Returns:
    One of TownID/IndustryID.

Definition at line 65 of file ai_subsidy.cpp.

References IsValidSubsidy().

AISubsidy::SubsidyParticipantType AISubsidy::GetSourceType ( SubsidyID  subsidy_id  )  [static]

Returns the type of source of subsidy.

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

Definition at line 58 of file ai_subsidy.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_subsidy_pool >::Get(), IsValidSubsidy(), and SPT_INVALID.

bool AISubsidy::IsAwarded ( SubsidyID  subsidy_id  )  [static]

Checks whether this subsidy is already awarded to some company.

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

Definition at line 22 of file ai_subsidy.cpp.

References IsValidSubsidy().

Referenced by GetAwardedTo().

bool AISubsidy::IsValidSubsidy ( SubsidyID  subsidy_id  )  [static]

Check whether this is a valid SubsidyID.

Parameters:
subsidy_id The SubsidyID to check.
Returns:
True if and only if this subsidy is still valid.

Definition at line 17 of file ai_subsidy.cpp.

Referenced by GetCargoType(), GetDestinationIndex(), GetDestinationType(), GetExpireDate(), GetSourceIndex(), GetSourceType(), and IsAwarded().


The documentation for this class was generated from the following files:

Generated on Mon Aug 30 19:37:27 2010 for OpenTTD by  doxygen 1.6.1