OpenTTD AI API: AICompany Class Reference

OpenTTD AI API 15.0-RC1

Public Types | Static Public Member Functions
AICompany Class Reference

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

`#include <script_company.hpp>`

Inheritance diagram for AICompany:

## Public Types
enum | Quarter { CURRENT_QUARTER , EARLIEST_QUARTER }
| The range of possible quarters to get company information of. More...
enum | CompanyID { COMPANY_FIRST , COMPANY_LAST , COMPANY_INVALID , COMPANY_SELF , COMPANY_SPECTATOR }
| Different constants related to CompanyID. More...
enum | Gender { GENDER_MALE , GENDER_FEMALE , GENDER_INVALID }
| Possible genders for company presidents. More...
enum | LiveryScheme { LS_DEFAULT , LS_STEAM , LS_DIESEL , LS_ELECTRIC , LS_MONORAIL , LS_MAGLEV , LS_DMU , LS_EMU , LS_PASSENGER_WAGON_STEAM , LS_PASSENGER_WAGON_DIESEL , LS_PASSENGER_WAGON_ELECTRIC , LS_PASSENGER_WAGON_MONORAIL , LS_PASSENGER_WAGON_MAGLEV , LS_FREIGHT_WAGON , LS_BUS , LS_TRUCK , LS_PASSENGER_SHIP , LS_FREIGHT_SHIP , LS_HELICOPTER , LS_SMALL_PLANE , LS_LARGE_PLANE , LS_PASSENGER_TRAM , LS_FREIGHT_TRAM , LS_INVALID }
| List of different livery schemes. More...
enum | Colours { COLOUR_DARK_BLUE , COLOUR_PALE_GREEN , COLOUR_PINK , COLOUR_YELLOW , COLOUR_RED , COLOUR_LIGHT_BLUE , COLOUR_GREEN , COLOUR_DARK_GREEN , COLOUR_BLUE , COLOUR_CREAM , COLOUR_MAUVE , COLOUR_PURPLE , COLOUR_ORANGE , COLOUR_BROWN , COLOUR_GREY , COLOUR_WHITE , COLOUR_INVALID = ::INVALID_COLOUR }
| List of colours.

## Static Public Member Functions
static AICompany::CompanyID | ResolveCompanyID (AICompany::CompanyID company)
| Resolved the given company index to the correct index for the company.
static bool | IsMine (AICompany::CompanyID company)
| Check if a CompanyID is your CompanyID, to ease up checks.
static bool | SetName (Text *name)
| Set the name of your company.
static string | GetName (AICompany::CompanyID company)
| Get the name of the given company.
static bool | SetPresidentName (Text *name)
| Set the name of your president.
static string | GetPresidentName (AICompany::CompanyID company)
| Get the name of the president of the given company.
static bool | SetPresidentGender (Gender gender)
| Set the gender of the president of your company.
static Gender | GetPresidentGender (AICompany::CompanyID company)
| Get the gender of the president of the given company.
static bool | SetLoanAmount (Money loan)
| Sets the amount to loan.
static bool | SetMinimumLoanAmount (Money loan)
| Sets the minimum amount to loan, i.e.
static Money | GetLoanAmount ()
| Gets the amount your company have loaned.
static Money | GetMaxLoanAmount ()
| Gets the maximum amount your company can loan.
static Money | GetLoanInterval ()
| Gets the interval/loan step.
static Money | GetBankBalance (AICompany::CompanyID company)
| Gets the bank balance.
static Money | GetQuarterlyIncome (AICompany::CompanyID company, int quarter)
| Get the income of the company in the given economy-quarter.
static Money | GetQuarterlyExpenses (AICompany::CompanyID company, int quarter)
| Get the expenses of the company in the given economy-quarter.
static int | GetQuarterlyCargoDelivered (AICompany::CompanyID company, int quarter)
| Get the amount of cargo delivered by the given company in the given economy-quarter.
static int | GetQuarterlyPerformanceRating (AICompany::CompanyID company, int quarter)
| Get the performance rating of the given company in the given economy-quarter.
static Money | GetQuarterlyCompanyValue (AICompany::CompanyID company, int quarter)
| Get the value of the company in the given economy-quarter.
static bool | BuildCompanyHQ (TileIndex tile)
| Build your company's HQ on the given tile.
static TileIndex | GetCompanyHQ (AICompany::CompanyID company)
| Return the location of a company's HQ.
static bool | SetAutoRenewStatus (bool autorenew)
| Set whether autorenew is enabled for your company.
static bool | GetAutoRenewStatus (AICompany::CompanyID company)
| Return whether autorenew is enabled for a company.
static bool | SetAutoRenewMonths (int months)
| Set the number of months before/after max age to autorenew an engine for your company.
static int | GetAutoRenewMonths (AICompany::CompanyID company)
| Return the number of months before/after max age to autorenew an engine for a company.
static bool | SetAutoRenewMoney (Money money)
| Set the minimum money needed to autorenew an engine for your company.
static Money | GetAutoRenewMoney (AICompany::CompanyID company)
| Return the minimum money needed to autorenew an engine for a company.
static bool | SetPrimaryLiveryColour (LiveryScheme scheme, Colours colour)
| Set primary colour for your company.
static bool | SetSecondaryLiveryColour (LiveryScheme scheme, Colours colour)
| Set secondary colour for your company.
static AICompany::Colours | GetPrimaryLiveryColour (LiveryScheme scheme)
| Get primary colour of a livery for your company.
static AICompany::Colours | GetSecondaryLiveryColour (LiveryScheme scheme)
| Get secondary colour of a livery for your company.

## Detailed Description

Class that handles all company related functions.

## Member Enumeration Documentation

## ◆ CompanyID

enum AICompany::CompanyID

Different constants related to CompanyID.

Enumerator
COMPANY_FIRST | The first available company.
COMPANY_LAST | The last available company.
COMPANY_INVALID | An invalid company.
COMPANY_SELF | Constant that gets resolved to the correct company index for your company.
COMPANY_SPECTATOR | Constant indicating that player is spectating (gets resolved to COMPANY_INVALID)

## ◆ Gender

enum AICompany::Gender

Possible genders for company presidents.

Enumerator
GENDER_MALE | A male person.
GENDER_FEMALE | A female person.
GENDER_INVALID | An invalid gender.

## ◆ LiveryScheme

enum AICompany::LiveryScheme

List of different livery schemes.

Enumerator
LS_DEFAULT | Default scheme.
LS_STEAM | Steam engines.
LS_DIESEL | Diesel engines.
LS_ELECTRIC | Electric engines.
LS_MONORAIL | Monorail engines.
LS_MAGLEV | Maglev engines.
LS_DMU | DMUs and their passenger wagons.
LS_EMU | EMUs and their passenger wagons.
LS_PASSENGER_WAGON_STEAM | Passenger wagons attached to steam engines.
LS_PASSENGER_WAGON_DIESEL | Passenger wagons attached to diesel engines.
LS_PASSENGER_WAGON_ELECTRIC | Passenger wagons attached to electric engines.
LS_PASSENGER_WAGON_MONORAIL | Passenger wagons attached to monorail engines.
LS_PASSENGER_WAGON_MAGLEV | Passenger wagons attached to maglev engines.
LS_FREIGHT_WAGON | Freight wagons.
LS_BUS | Buses.
LS_TRUCK | Trucks.
LS_PASSENGER_SHIP | Passenger ships.
LS_FREIGHT_SHIP | Freight ships.
LS_HELICOPTER | Helicopters.
LS_SMALL_PLANE | Small aeroplanes.
LS_LARGE_PLANE | Large aeroplanes.
LS_PASSENGER_TRAM | Passenger trams.
LS_FREIGHT_TRAM | Freight trams.

## ◆ Quarter

enum AICompany::Quarter

The range of possible quarters to get company information of.

Enumerator
CURRENT_QUARTER | The current quarter.
EARLIEST_QUARTER | The earliest quarter company information is available for.

## Member Function Documentation

## ◆ BuildCompanyHQ()

static bool AICompany::BuildCompanyHQ | ( | TileIndex | tile | ) |
| static

Build your company's HQ on the given tile.

Parameters

  tile | The tile to build your HQ on, this tile is the most northern tile of your HQ.

Precondition
  AIMap::IsValidTile(tile).

Exceptions

  AIError::ERR_AREA_NOT_CLEAR |
  AIError::ERR_FLAT_LAND_REQUIRED |

Returns
  True if the HQ could be build.

Note
  An HQ can not be removed, only by water or rebuilding; If an HQ is build again, the old one is removed.

## ◆ GetAutoRenewMoney()

static Money AICompany::GetAutoRenewMoney | ( | AICompany::CompanyID | company | ) |
| static

Return the minimum money needed to autorenew an engine for a company.

Parameters

  company | The company to get the autorenew money of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.

Returns
  The minimum required money for autorenew to work.

## ◆ GetAutoRenewMonths()

static int AICompany::GetAutoRenewMonths | ( | AICompany::CompanyID | company | ) |
| static

Return the number of months before/after max age to autorenew an engine for a company.

Parameters

  company | The company to get the autorenew months of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.

Returns
  The number of calendar-months before/after max age of engine.

See also
  AICalendarTime

## ◆ GetAutoRenewStatus()

static bool AICompany::GetAutoRenewStatus | ( | AICompany::CompanyID | company | ) |
| static

Return whether autorenew is enabled for a company.

Parameters

  company | The company to get the autorenew status of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.

Returns
  True if autorenew is enabled.

## ◆ GetBankBalance()

static Money AICompany::GetBankBalance | ( | AICompany::CompanyID | company | ) |
| static

Gets the bank balance.

In other words, the amount of money the given company can spent. If infinite money is enabled, it returns INT32_MAX.

Parameters

  company | The company to get the bank balance of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.

Returns
  The actual bank balance or INT32_MAX.

## ◆ GetCompanyHQ()

static TileIndex AICompany::GetCompanyHQ | ( | AICompany::CompanyID | company | ) |
| static

Return the location of a company's HQ.

Parameters

  company | The company the get the HQ of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.

Returns
  The tile of the company's HQ, this tile is the most northern tile of that HQ, or AIMap::TILE_INVALID if there is no HQ yet.

## ◆ GetLoanAmount()

static Money AICompany::GetLoanAmount | ( |  | ) |
| static

Gets the amount your company have loaned.

Returns
  The amount loaned money.

Postcondition
  GetLoanInterval() is always a multiplier of the return value.

## ◆ GetLoanInterval()

static Money AICompany::GetLoanInterval | ( |  | ) |
| static

Gets the interval/loan step.

Returns
  The loan step.

Postcondition
  Return value is always positive.

## ◆ GetMaxLoanAmount()

static Money AICompany::GetMaxLoanAmount | ( |  | ) |
| static

Gets the maximum amount your company can loan.

In deity mode returns the global max loan.

Returns
  The maximum amount your company can loan.

Postcondition
  GetLoanInterval() is always a multiplier of the return value.

## ◆ GetName()

static string AICompany::GetName | ( | AICompany::CompanyID | company | ) |
| static

Get the name of the given company.

Parameters

  company | The company to get the name for.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.

Returns
  The name of the given company.

## ◆ GetPresidentGender()

static Gender AICompany::GetPresidentGender | ( | AICompany::CompanyID | company | ) |
| static

Get the gender of the president of the given company.

Parameters

  company | The company to get the presidents gender off.

Returns
  The gender of the president.

## ◆ GetPresidentName()

static string AICompany::GetPresidentName | ( | AICompany::CompanyID | company | ) |
| static

Get the name of the president of the given company.

Parameters

  company | The company to get the president's name for.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.

Returns
  The name of the president of the given company.

## ◆ GetPrimaryLiveryColour()

static AICompany::Colours AICompany::GetPrimaryLiveryColour | ( | LiveryScheme | scheme | ) |
| static

Get primary colour of a livery for your company.

Parameters

  scheme | Livery scheme to get.

Returns
  Primary colour of livery.

## ◆ GetQuarterlyCargoDelivered()

static int AICompany::GetQuarterlyCargoDelivered | ( | AICompany::CompanyID | company,
|  | int | quarter
| ) |  |
| static

Get the amount of cargo delivered by the given company in the given economy-quarter.

Parameters

  company | The company to get the amount of delivered cargo of.
  quarter | The economy-quarter to get the amount of delivered cargo of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.
  quarter <= EARLIEST_QUARTER.

Returns
  The amount of cargo delivered by the given company in the given economy-quarter.

See also
  AIEconomyTime

## ◆ GetQuarterlyCompanyValue()

static Money AICompany::GetQuarterlyCompanyValue | ( | AICompany::CompanyID | company,
|  | int | quarter
| ) |  |
| static

Get the value of the company in the given economy-quarter.

Parameters

  company | The company to get the value of.
  quarter | The economy-quarter to get the value of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.
  quarter <= EARLIEST_QUARTER.

Returns
  The value of the company in the given economy-quarter.

See also
  AIEconomyTime

## ◆ GetQuarterlyExpenses()

static Money AICompany::GetQuarterlyExpenses | ( | AICompany::CompanyID | company,
|  | int | quarter
| ) |  |
| static

Get the expenses of the company in the given economy-quarter.

Note that this function only considers recurring expenses from vehicle running cost, maintenance and interests; it does not include one-time expenses from construction and buying stuff.

Parameters

  company | The company to get the quarterly expenses of.
  quarter | The economy-quarter to get the expenses of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.
  quarter <= EARLIEST_QUARTER.

Returns
  The expenses of the company in the given economy-quarter.

See also
  AIEconomyTime

## ◆ GetQuarterlyIncome()

static Money AICompany::GetQuarterlyIncome | ( | AICompany::CompanyID | company,
|  | int | quarter
| ) |  |
| static

Get the income of the company in the given economy-quarter.

Note that this function only considers recurring income from vehicles; it does not include one-time income from selling stuff.

Parameters

  company | The company to get the quarterly income of.
  quarter | The economy-quarter to get the income of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.
  quarter <= EARLIEST_QUARTER.

Returns
  The gross income of the company in the given economy-quarter.

See also
  AIEconomyTime

## ◆ GetQuarterlyPerformanceRating()

static int AICompany::GetQuarterlyPerformanceRating | ( | AICompany::CompanyID | company,
|  | int | quarter
| ) |  |
| static

Get the performance rating of the given company in the given economy-quarter.

Parameters

  company | The company to get the performance rating of.
  quarter | The economy-quarter to get the performance rating of.

Precondition
  ResolveCompanyID(company) != COMPANY_INVALID.
  quarter <= EARLIEST_QUARTER.
  quarter != CURRENT_QUARTER.

Note
  The performance rating is calculated after every economy-quarter, so the value for CURRENT_QUARTER is undefined.

Returns
  The performance rating of the given company in the given economy-quarter.

See also
  AIEconomyTime

## ◆ GetSecondaryLiveryColour()

static AICompany::Colours AICompany::GetSecondaryLiveryColour | ( | LiveryScheme | scheme | ) |
| static

Get secondary colour of a livery for your company.

Parameters

  scheme | Livery scheme to get.

Returns
  Secondary colour of livery.

## ◆ IsMine()

static bool AICompany::IsMine | ( | AICompany::CompanyID | company | ) |
| static

Check if a CompanyID is your CompanyID, to ease up checks.

Parameters

  company | The company index to check.

Returns
  True if and only if this company is your CompanyID.

## ◆ ResolveCompanyID()

static AICompany::CompanyID AICompany::ResolveCompanyID | ( | AICompany::CompanyID | company | ) |
| static

Resolved the given company index to the correct index for the company.

If the company index was COMPANY_SELF it will be resolved to the index of your company. If the company with the given index does not exist it will return COMPANY_INVALID.

Parameters

  company | The company index to resolve.

Returns
  The resolved company index.

## ◆ SetAutoRenewMoney()

static bool AICompany::SetAutoRenewMoney | ( | Money | money | ) |
| static

Set the minimum money needed to autorenew an engine for your company.

Parameters

  money | The new minimum required money for autorenew to work.

Returns
  True if autorenew money has been modified.

Precondition
  money >= 0
  money < 2**32

## ◆ SetAutoRenewMonths()

static bool AICompany::SetAutoRenewMonths | ( | int | months | ) |
| static

Set the number of months before/after max age to autorenew an engine for your company.

Parameters

  months | The number of calendar-months before/after max age of engine. The value will be clamped to MIN(int) .. MAX(int).

Returns
  True if autorenew months has been modified.

See also
  AICalendarTime

## ◆ SetAutoRenewStatus()

static bool AICompany::SetAutoRenewStatus | ( | bool | autorenew | ) |
| static

Set whether autorenew is enabled for your company.

Parameters

  autorenew | The new autorenew status.

Returns
  True if autorenew status has been modified.

## ◆ SetLoanAmount()

static bool AICompany::SetLoanAmount | ( | Money | loan | ) |
| static

Sets the amount to loan.

Parameters

  loan | The amount to loan (multiplier of GetLoanInterval()).

Precondition
  'loan' must be non-negative.
  GetLoanInterval() must be a multiplier of 'loan'.
  'loan' must be below GetMaxLoanAmount().
  'loan' - GetLoanAmount() + GetBankBalance() must be non-negative.

Returns
  True if the loan could be set to your requested amount.

## ◆ SetMinimumLoanAmount()

static bool AICompany::SetMinimumLoanAmount | ( | Money | loan | ) |
| static

Sets the minimum amount to loan, i.e.

the given amount of loan rounded up.

Parameters

  loan | The amount to loan (any positive number).

Precondition
  'loan' must be non-negative.
  'loan' must be below GetMaxLoanAmount().

Returns
  True if we could allocate a minimum of 'loan' loan.

## ◆ SetName()

static bool AICompany::SetName | ( | Text * | name | ) |
| static

Set the name of your company.

Parameters

  name | The new name of the company (can be either a raw string, or a AIText object).

Precondition
  name != null && len(name) != 0.

Exceptions

  AIError::ERR_NAME_IS_NOT_UNIQUE |

Returns
  True if the name was changed.

## ◆ SetPresidentGender()

static bool AICompany::SetPresidentGender | ( | Gender | gender | ) |
| static

Set the gender of the president of your company.

Parameters

  gender | The new gender for your president.

Precondition
  GetPresidentGender(AICompany.COMPANY_SELF) != gender.

Returns
  True if the gender was changed.

Note
  When successful a random face will be created.

## ◆ SetPresidentName()

static bool AICompany::SetPresidentName | ( | Text * | name | ) |
| static

Set the name of your president.

Parameters

  name | The new name of the president (can be either a raw string, or a AIText object).

Precondition
  name != null && len(name) != 0.

Exceptions

  AIError::ERR_NAME_IS_NOT_UNIQUE |

Returns
  True if the name was changed.

## ◆ SetPrimaryLiveryColour()

static bool AICompany::SetPrimaryLiveryColour | ( | LiveryScheme | scheme,
|  | Colours | colour
| ) |  |
| static

Set primary colour for your company.

Parameters

  scheme | Livery scheme to set.
  colour | Colour to set.

Returns
  False if unable to set primary colour of the livery scheme (e.g. colour in use).

## ◆ SetSecondaryLiveryColour()

static bool AICompany::SetSecondaryLiveryColour | ( | LiveryScheme | scheme,
|  | Colours | colour
| ) |  |
| static

Set secondary colour for your company.

Parameters

  scheme | Livery scheme to set.
  colour | Colour to set.

Returns
  False if unable to set secondary colour of the livery scheme.