OpenTTD Source: AIInstance Class Reference

OpenTTD Source 13.2.1

Public Member Functions | Private Member Functions
AIInstance Class Reference

Runtime information about an AI like a pointer to the squirrel vm and the current state. More...

`#include <ai_instance.hpp>`

Inheritance diagram for AIInstance:

## Public Member Functions
void | Initialize (class AIInfo *info)
| Initialize the AI and prepare it for its first run. More...
int | GetSetting (const char *name) override
| Get the value of a setting of the current instance. More...
ScriptInfo * | FindLibrary (const char *library, int version) override
| Find a library. More...
Public Member Functions inherited from ScriptInstance
| ScriptInstance (const char *APIName)
| Create a new script.
void | Initialize (const char *main_script, const char *instance_name, CompanyID company)
| Initialize the script and prepare it for its first run. More...
void | Continue ()
| A script in multiplayer waits for the server to handle its DoCommand. More...
void | GameLoop ()
| Run the GameLoop of a script.
void | CollectGarbage ()
| Let the VM collect any garbage.
class ScriptStorage * | GetStorage ()
| Get the storage of this script.
void * | GetLogPointer ()
| Get the log pointer of this script.
class ScriptController * | GetController ()
| Get the controller attached to the instance.
bool | IsDead () const
| Return the "this script died" value.
void | Save ()
| Call the script Save function and save all data in the savegame.
void | LoadOnStack (ScriptData *data)
| Store loaded data on the stack. More...
void | Pause ()
| Suspends the script for the current tick and then pause the execution of script. More...
bool | IsPaused ()
| Checks if the script is paused. More...
void | Unpause ()
| Resume execution of the script. More...
SQInteger | GetOpsTillSuspend ()
| Get the number of operations the script can execute before being suspended. More...
bool | DoCommandCallback (const CommandCost &result, const CommandDataBuffer &data, CommandDataBuffer result_data, Commands cmd)
| DoCommand callback function for all commands executed by scripts. More...
void | InsertEvent (class ScriptEvent *event)
| Insert an event for this script. More...
bool | IsSleeping ()
| Check if the instance is sleeping, which either happened because the script executed a DoCommand, executed this.Sleep() or it has been paused.
size_t | GetAllocatedMemory () const
bool | InShutdown () const
| Indicate whether this instance is currently being destroyed.
void | ReleaseSQObject (HSQOBJECT *obj)
| Decrease the ref count of a squirrel object. More...

## Private Member Functions
void | RegisterAPI () override
| Register all API functions to the VM.
void | Died () override
| Tell the script it died.
CommandCallbackData * | GetDoCommandCallback () override
| Get the callback handling DoCommands in case of networking.
void | LoadDummyScript () override
| Load the dummy script.

## Additional Inherited Members
Public Types inherited from ScriptInstance
typedef std::variant< SQInteger, std::string, SQBool, SQSaveLoadType > | ScriptDataVariant
typedef std::list< ScriptDataVariant > | ScriptData
Static Public Member Functions inherited from ScriptInstance
static void | DoCommandReturn (ScriptInstance *instance)
| Return a true/false reply for a DoCommand.
static void | DoCommandReturnVehicleID (ScriptInstance *instance)
| Return a VehicleID reply for a DoCommand.
static void | DoCommandReturnSignID (ScriptInstance *instance)
| Return a SignID reply for a DoCommand.
static void | DoCommandReturnGroupID (ScriptInstance *instance)
| Return a GroupID reply for a DoCommand.
static void | DoCommandReturnGoalID (ScriptInstance *instance)
| Return a GoalID reply for a DoCommand.
static void | DoCommandReturnStoryPageID (ScriptInstance *instance)
| Return a StoryPageID reply for a DoCommand.
static void | DoCommandReturnStoryPageElementID (ScriptInstance *instance)
| Return a StoryPageElementID reply for a DoCommand.
static void | DoCommandReturnLeagueTableID (ScriptInstance *instance)
| Return a LeagueTableID reply for a DoCommand.
static void | DoCommandReturnLeagueTableElementID (ScriptInstance *instance)
| Return a LeagueTableElementID reply for a DoCommand.
static void | SaveEmpty ()
| Don't save any data in the savegame.
static ScriptData * | Load (int version)
| Load data from a savegame. More...
static void | LoadEmpty ()
| Load and discard data from a savegame.
Protected Member Functions inherited from ScriptInstance
bool | LoadCompatibilityScripts (const char *api_version, Subdirectory dir)
| Load squirrel scripts to emulate an older API. More...
Protected Attributes inherited from ScriptInstance
class Squirrel * | engine
| A wrapper around the squirrel vm.
const char * | versionAPI
| Current API used by this script.

## Detailed Description

Runtime information about an AI like a pointer to the squirrel vm and the current state.

Definition at line 16 of file ai_instance.hpp.

## Member Function Documentation

## ◆ FindLibrary()

ScriptInfo * AIInstance::FindLibrary | ( | const char * | library,
|  | int | version
| ) |  |
| overridevirtual

Find a library.

Parameters

  library | The library name to find.
  version | The version the library should have.

Returns
  The library if found, nullptr otherwise.

Implements ScriptInstance.

Definition at line 92 of file ai_instance.cpp.

References AI::FindLibrary().

## ◆ GetSetting()

int AIInstance::GetSetting | ( | const char * | name | ) |
| overridevirtual

Get the value of a setting of the current instance.

Parameters

  name | The name of the setting.

Returns
  the value for the setting, or -1 if the setting is not known.

Implements ScriptInstance.

Definition at line 87 of file ai_instance.cpp.

References _current_company, AIConfig::GetConfig(), and AIConfig::GetSetting().

## ◆ Initialize()

void AIInstance::Initialize | ( | class AIInfo * | info | ) |

Initialize the AI and prepare it for its first run.

Parameters

  info | The AI to create the instance of.

Definition at line 40 of file ai_instance.cpp.

References _current_company, ScriptInstance::engine, AIInfo::GetAPIVersion(), ScriptInfo::GetInstanceName(), ScriptInfo::GetMainScript(), ScriptInstance::Initialize(), and ScriptInstance::versionAPI.

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

- src/ai/ai_instance.hpp
- src/ai/ai_instance.cpp