AICompany Class Reference

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

#include <ai_company.hpp>

Inheritance diagram for AICompany:

AIObject SimpleCountedObject

Public Types

enum  CompanyID { COMPANY_INVALID = -1, COMPANY_SELF = 254 }
 Different constants related to CompanyID. More...

Static Public Member Functions

static const char * GetClassName ()
static CompanyID ResolveCompanyID (CompanyID company)
 Resolved the given company index to the correct index for the company.
static bool IsMine (CompanyID company)
 Check if a CompanyID is your CompanyID, to ease up checks.
static bool SetName (const char *name)
 Set the name of your company.
static char * GetName (CompanyID company)
 Get the name of the given company.
static bool SetPresidentName (const char *name)
 Set the name of your president.
static char * GetPresidentName (CompanyID company)
 Get the name of the president of the given company.
static bool SetLoanAmount (int32 loan)
 Sets the amount to loan.
static bool SetMinimumLoanAmount (int32 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 GetCompanyValue (CompanyID company)
 Gets the current value of the given company.
static Money GetBankBalance (CompanyID company)
 Gets the bank balance.
static bool BuildCompanyHQ (TileIndex tile)
 Build your company's HQ on the given tile.
static TileIndex GetCompanyHQ (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 (CompanyID company)
 Return whether autorenew is enabled for a company.
static bool SetAutoRenewMonths (int16 months)
 Set the number of months before/after max age to autorenew an engine for your company.
static int16 GetAutoRenewMonths (CompanyID company)
 Return the number of months before/after max age to autorenew an engine for a company.
static bool SetAutoRenewMoney (uint32 money)
 Set the minimum money needed to autorenew an engine for your company.
static uint32 GetAutoRenewMoney (CompanyID company)
 Return the minimum money needed to autorenew an engine for a company.

Detailed Description

Class that handles all company related functions.

Definition at line 13 of file ai_company.hpp.


Member Enumeration Documentation

Different constants related to CompanyID.

Enumerator:
COMPANY_INVALID  An invalid company.
COMPANY_SELF  Constant that gets resolved to the correct company index for your company.

Definition at line 18 of file ai_company.hpp.


Member Function Documentation

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.

Definition at line 18 of file ai_company.cpp.

References COMPANY_INVALID, and COMPANY_SELF.

Referenced by GetAutoRenewMoney(), GetAutoRenewMonths(), GetAutoRenewStatus(), GetBankBalance(), GetCompanyHQ(), GetCompanyValue(), GetName(), AITile::GetOwner(), GetPresidentName(), AITown::GetRating(), and IsMine().

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.

Definition at line 25 of file ai_company.cpp.

References COMPANY_SELF, and ResolveCompanyID().

bool AICompany::SetName ( const char *  name  )  [static]

Set the name of your company.

Parameters:
name The new name of the company.
Precondition:
'name' must have at least one character.

'name' must have at most 30 characters.

Exceptions:
AIError::ERR_NAME_IS_NOT_UNIQUE 
Returns:
True if the name was changed.

Definition at line 30 of file ai_company.cpp.

References CMD_RENAME_COMPANY, AIObject::DoCommand(), EnforcePrecondition, EnforcePreconditionCustomError, AIError::ERR_PRECONDITION_STRING_TOO_LONG, MAX_LENGTH_COMPANY_NAME_BYTES, and StrEmpty().

char * 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.

Definition at line 38 of file ai_company.cpp.

References COMPANY_INVALID, and ResolveCompanyID().

bool AICompany::SetPresidentName ( const char *  name  )  [static]

Set the name of your president.

Parameters:
name The new name of the president.
Precondition:
'name' must have at least one character.
Exceptions:
AIError::ERR_NAME_IS_NOT_UNIQUE 
Returns:
True if the name was changed.

Definition at line 51 of file ai_company.cpp.

References CMD_RENAME_PRESIDENT, AIObject::DoCommand(), EnforcePrecondition, and StrEmpty().

char * 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.

Definition at line 58 of file ai_company.cpp.

References COMPANY_INVALID, and ResolveCompanyID().

bool AICompany::SetLoanAmount ( int32  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.

Definition at line 105 of file ai_company.cpp.

References abs(), CMD_DECREASE_LOAN, CMD_INCREASE_LOAN, COMPANY_SELF, AIObject::DoCommand(), EnforcePrecondition, GetBankBalance(), GetLoanAmount(), GetLoanInterval(), and GetMaxLoanAmount().

Referenced by SetMinimumLoanAmount().

bool AICompany::SetMinimumLoanAmount ( int32  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.

Definition at line 119 of file ai_company.cpp.

References EnforcePrecondition, GetLoanAmount(), GetLoanInterval(), GetMaxLoanAmount(), and SetLoanAmount().

Money AICompany::GetLoanAmount (  )  [static]

Gets the amount your company have loaned.

Returns:
The amount loaned money.
Postcondition:
The return value is always non-negative.

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

Definition at line 90 of file ai_company.cpp.

Referenced by SetLoanAmount(), and SetMinimumLoanAmount().

Money AICompany::GetMaxLoanAmount (  )  [static]

Gets the maximum amount your company can loan.

Returns:
The maximum amount your company can loan.
Postcondition:
The return value is always non-negative.

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

Definition at line 95 of file ai_company.cpp.

Referenced by SetLoanAmount(), and SetMinimumLoanAmount().

Money AICompany::GetLoanInterval (  )  [static]

Gets the interval/loan step.

Returns:
The loan step.
Postcondition:
Return value is always positive.

Definition at line 100 of file ai_company.cpp.

Referenced by SetLoanAmount(), and SetMinimumLoanAmount().

Money AICompany::GetCompanyValue ( AICompany::CompanyID  company  )  [static]

Gets the current value of the given company.

Parameters:
company The company to get the company value of.
Precondition:
ResolveCompanyID(company) != COMPANY_INVALID.
Returns:
The current value of the given company.

Definition at line 74 of file ai_company.cpp.

References COMPANY_INVALID, and ResolveCompanyID().

Money AICompany::GetBankBalance ( AICompany::CompanyID  company  )  [static]

Gets the bank balance.

In other words, the amount of money the given company can spent.

Parameters:
company The company to get the bank balance of.
Precondition:
ResolveCompanyID(company) != COMPANY_INVALID.
Returns:
The actual bank balance.

Definition at line 82 of file ai_company.cpp.

References COMPANY_INVALID, and ResolveCompanyID().

Referenced by SetLoanAmount().

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 nothern 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.

Definition at line 133 of file ai_company.cpp.

References CMD_BUILD_COMPANY_HQ, AIObject::DoCommand(), EnforcePrecondition, and IsValidTile().

TileIndex AICompany::GetCompanyHQ ( 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 nothern tile of that HQ, or AIMap::TILE_INVALID if there is no HQ yet.

Definition at line 140 of file ai_company.cpp.

References COMPANY_INVALID, INVALID_TILE, and ResolveCompanyID().

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.

Definition at line 149 of file ai_company.cpp.

References CMD_SET_AUTOREPLACE, and AIObject::DoCommand().

bool AICompany::GetAutoRenewStatus ( 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.

Definition at line 154 of file ai_company.cpp.

References COMPANY_INVALID, and ResolveCompanyID().

bool AICompany::SetAutoRenewMonths ( int16  months  )  [static]

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

Parameters:
months The new months between autorenew.
Returns:
True if autorenew months has been modified.

Definition at line 162 of file ai_company.cpp.

References CMD_SET_AUTOREPLACE, and AIObject::DoCommand().

int16 AICompany::GetAutoRenewMonths ( 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 months before/after max age of engine.

Definition at line 167 of file ai_company.cpp.

References COMPANY_INVALID, and ResolveCompanyID().

bool AICompany::SetAutoRenewMoney ( uint32  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.

Definition at line 175 of file ai_company.cpp.

References CMD_SET_AUTOREPLACE, and AIObject::DoCommand().

uint32 AICompany::GetAutoRenewMoney ( 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.

Definition at line 180 of file ai_company.cpp.

References COMPANY_INVALID, and ResolveCompanyID().


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

Generated on Tue Jul 21 18:48:48 2009 for OpenTTD by  doxygen 1.5.6