OpenTTD GameScript API: GSCompanyMode Class Reference

OpenTTD GameScript API 15.0-beta3

Public Member Functions | Static Public Member Functions
GSCompanyMode Class Reference

Class to switch the current company. More...

`#include <script_companymode.hpp>`

Inheritance diagram for GSCompanyMode:

## Public Member Functions
| GSCompanyMode (GSCompany::CompanyID company)
| Creating instance of this class switches the company used for queries and commands.

## Static Public Member Functions
static bool | IsValid ()
| Check whether a company mode is valid.
static bool | IsDeity ()
| Check whether the company mode is not active, i.e.

## Detailed Description

Class to switch the current company.

If you create an instance of this class, the company will be switched. The original company is stored and recovered from when ever the instance is destroyed. All actions performed within the scope of this mode, will be executed on behalf of the company you switched to. This includes any costs attached to the action performed. If the company does not have the funds the action will be aborted. In other words, this is like the real player is executing the commands. If the company is not valid during an action, the error ERR_PRECONDITION_INVALID_COMPANY will be returned. You can switch to invalid companies, or a company can become invalid (bankrupt) while you are switched to it.

## Constructor & Destructor Documentation

## ◆ GSCompanyMode()

GSCompanyMode::GSCompanyMode | ( | GSCompany::CompanyID | company | ) |

Creating instance of this class switches the company used for queries and commands.

Parameters

  company | The new company to switch to.

Note
  When the instance is destroyed, it restores the company that was current when the instance was created!

## Member Function Documentation

## ◆ IsDeity()

static bool GSCompanyMode::IsDeity | ( |  | ) |
| static

Check whether the company mode is not active, i.e.

whether we are a deity. In other words, are commands are not being executed under some company.

Returns
  true When we are a deity, i.e. company mode is not active.

Postcondition
  if IsDeity() is true, then IsValid() is false.

## ◆ IsValid()

static bool GSCompanyMode::IsValid | ( |  | ) |
| static

Check whether a company mode is valid.

In other words, are commands being executed under some company and does the company still exist?

Returns
  true When a company mode is valid.

Postcondition
  If IsValid() is true, then IsDeity() is false.