OpenTTD Source 20241224-master-gf74b0cf984
Game Class Reference

Main Game class. More...

#include <game.hpp>

Static Public Member Functions

static void GameLoop ()
 Called every game-tick to let Game do something.
 
static void Initialize ()
 Initialize the Game system.
 
static void StartNew ()
 Start up a new GameScript.
 
static void Uninitialize (bool keepConfig)
 Uninitialize the Game system.
 
static void Pause ()
 Suspends the Game Script and then pause the execution of the script.
 
static void Unpause ()
 Resume execution of the Game Script.
 
static bool IsPaused ()
 Checks if the Game Script is paused.
 
static void NewEvent (class ScriptEvent *event)
 Queue a new event for a Game Script.
 
static class GameInstanceGetGameInstance ()
 Get the current GameScript instance.
 
static class GameInfoGetInfo ()
 Get the current GameInfo.
 
static void Rescan ()
 
static void ResetConfig ()
 
static void Save ()
 Save data from a GameScript to a savegame.
 
static void GetConsoleList (std::back_insert_iterator< std::string > &output_iterator, bool newest_only)
 Wrapper function for GameScanner::GetConsoleList.
 
static void GetConsoleLibraryList (std::back_insert_iterator< std::string > &output_iterator)
 Wrapper function for GameScanner::GetConsoleLibraryList.
 
static const ScriptInfoListGetInfoList ()
 Wrapper function for GameScanner::GetInfoList.
 
static const ScriptInfoListGetUniqueInfoList ()
 Wrapper function for GameScanner::GetUniqueInfoList.
 
static class GameInfoFindInfo (const std::string &name, int version, bool force_exact_match)
 Wrapper function for GameScannerInfo::FindInfo.
 
static class GameLibraryFindLibrary (const std::string &library, int version)
 Wrapper function for GameScanner::FindLibrary.
 
static class GameInstanceGetInstance ()
 Get the current active instance.
 
static bool HasGame (const struct ContentInfo *ci, bool md5sum)
 Wrapper function for GameScanner::HasGame.
 
static bool HasGameLibrary (const ContentInfo *ci, bool md5sum)
 
static GameScannerInfoGetScannerInfo ()
 Gets the ScriptScanner instance that is used to find Game scripts.
 
static GameScannerLibraryGetScannerLibrary ()
 Gets the ScriptScanner instance that is used to find Game Libraries.
 

Static Private Attributes

static uint frame_counter = 0
 Tick counter for the Game code.
 
static class GameInstanceinstance = nullptr
 Instance to the current active Game.
 
static class GameScannerInfoscanner_info = nullptr
 Scanner for Game scripts.
 
static class GameScannerLibraryscanner_library = nullptr
 Scanner for GS Libraries.
 
static class GameInfoinfo = nullptr
 Current selected GameInfo.
 

Detailed Description

Main Game class.

Contains all functions needed to start, stop, save and load Game Scripts.

Definition at line 20 of file game.hpp.

Member Function Documentation

◆ FindInfo()

GameInfo * Game::FindInfo ( const std::string &  name,
int  version,
bool  force_exact_match 
)
static

Wrapper function for GameScannerInfo::FindInfo.

Definition at line 237 of file game_core.cpp.

References GameScannerInfo::FindInfo(), and scanner_info.

Referenced by GameConfig::FindInfo(), and GameConfig::ResetInfo().

◆ FindLibrary()

GameLibrary * Game::FindLibrary ( const std::string &  library,
int  version 
)
static

Wrapper function for GameScanner::FindLibrary.

Definition at line 242 of file game_core.cpp.

References GameScannerLibrary::FindLibrary(), and scanner_library.

Referenced by GameInstance::FindLibrary().

◆ GameLoop()

◆ GetConsoleLibraryList()

void Game::GetConsoleLibraryList ( std::back_insert_iterator< std::string > &  output_iterator)
static

Wrapper function for GameScanner::GetConsoleLibraryList.

Definition at line 222 of file game_core.cpp.

References ScriptScanner::GetConsoleList(), and scanner_library.

◆ GetConsoleList()

void Game::GetConsoleList ( std::back_insert_iterator< std::string > &  output_iterator,
bool  newest_only 
)
static

Wrapper function for GameScanner::GetConsoleList.

Definition at line 217 of file game_core.cpp.

References ScriptScanner::GetConsoleList(), and scanner_info.

Referenced by ShowHelp().

◆ GetGameInstance()

static class GameInstance * Game::GetGameInstance ( )
inlinestatic

Get the current GameScript instance.

Definition at line 70 of file game.hpp.

References instance.

Referenced by CcGame(), and ShowScriptDebugWindowIfScriptError().

◆ GetInfo()

static class GameInfo * Game::GetInfo ( )
inlinestatic

Get the current GameInfo.

Definition at line 75 of file game.hpp.

References info.

Referenced by GameInstance::Died(), LoadTranslations(), ScriptDebugWindow::SetStringParameters(), and SurveyGameScript().

◆ GetInfoList()

const ScriptInfoList * Game::GetInfoList ( )
static

Wrapper function for GameScanner::GetInfoList.

Definition at line 227 of file game_core.cpp.

References ScriptScanner::GetInfoList(), and scanner_info.

Referenced by ScriptListWindow::ScriptListWindow().

◆ GetInstance()

static class GameInstance * Game::GetInstance ( )
inlinestatic

◆ GetScannerInfo()

GameScannerInfo * Game::GetScannerInfo ( )
static

Gets the ScriptScanner instance that is used to find Game scripts.

Definition at line 263 of file game_core.cpp.

References scanner_info.

Referenced by ContentInfo::GetTextfile().

◆ GetScannerLibrary()

GameScannerLibrary * Game::GetScannerLibrary ( )
static

Gets the ScriptScanner instance that is used to find Game Libraries.

Definition at line 267 of file game_core.cpp.

References scanner_library.

Referenced by ContentInfo::GetTextfile().

◆ GetUniqueInfoList()

const ScriptInfoList * Game::GetUniqueInfoList ( )
static

Wrapper function for GameScanner::GetUniqueInfoList.

Definition at line 232 of file game_core.cpp.

References ScriptScanner::GetUniqueInfoList(), and scanner_info.

Referenced by ScriptListWindow::ScriptListWindow().

◆ HasGame()

bool Game::HasGame ( const struct ContentInfo ci,
bool  md5sum 
)
static

Wrapper function for GameScanner::HasGame.

Check whether we have an Game (library) with the exact characteristics as ci.

Parameters
cithe characteristics to search on (shortname and md5sum)
md5sumwhether to check the MD5 checksum
Returns
true iff we have an Game (library) matching.

Definition at line 253 of file game_core.cpp.

References ScriptScanner::HasScript(), and scanner_info.

Referenced by ClientNetworkContentSocketHandler::Receive_SERVER_INFO().

◆ HasGameLibrary()

bool Game::HasGameLibrary ( const ContentInfo ci,
bool  md5sum 
)
static

Definition at line 258 of file game_core.cpp.

◆ Initialize()

void Game::Initialize ( )
static

◆ IsPaused()

bool Game::IsPaused ( )
static

Checks if the Game Script is paused.

Returns
true if the Game Script is paused, otherwise false.

Definition at line 141 of file game_core.cpp.

References instance, and ScriptInstance::IsPaused().

Referenced by ScriptDebugWindow::OnClick(), and ScriptDebugWindow::OnInvalidateData().

◆ NewEvent()

◆ Pause()

void Game::Pause ( )
static

Suspends the Game Script and then pause the execution of the script.

The script will not be resumed from its suspended state until the script has been unpaused.

Definition at line 131 of file game_core.cpp.

References instance, and ScriptInstance::Pause().

Referenced by ScriptDebugWindow::OnInvalidateData().

◆ Rescan()

void Game::Rescan ( )
static

Definition at line 191 of file game_core.cpp.

◆ ResetConfig()

void Game::ResetConfig ( )
static

Definition at line 166 of file game_core.cpp.

◆ Save()

void Game::Save ( )
static

Save data from a GameScript to a savegame.

Definition at line 206 of file game_core.cpp.

References _current_company, _network_server, _networking, instance, OWNER_DEITY, Backup< T >::Restore(), ScriptInstance::Save(), and ScriptInstance::SaveEmpty().

◆ StartNew()

◆ Uninitialize()

void Game::Uninitialize ( bool  keepConfig)
static

◆ Unpause()

void Game::Unpause ( )
static

Resume execution of the Game Script.

This function will not actually execute the script, but set a flag so that the script is executed by the usual mechanism that executes the script.

Definition at line 136 of file game_core.cpp.

References instance, and ScriptInstance::Unpause().

Referenced by ScriptDebugWindow::OnClick().

Field Documentation

◆ frame_counter

uint Game::frame_counter = 0
staticprivate

Tick counter for the Game code.

Definition at line 112 of file game.hpp.

Referenced by GameLoop(), and Initialize().

◆ info

GameInfo * Game::info = nullptr
staticprivate

Current selected GameInfo.

Definition at line 116 of file game.hpp.

Referenced by GetInfo(), StartNew(), and Uninitialize().

◆ instance

GameInstance * Game::instance = nullptr
staticprivate

Instance to the current active Game.

Definition at line 113 of file game.hpp.

Referenced by GameLoop(), GetGameInstance(), GetInstance(), Initialize(), IsPaused(), NewEvent(), Pause(), Save(), StartNew(), Uninitialize(), and Unpause().

◆ scanner_info

GameScannerInfo * Game::scanner_info = nullptr
staticprivate

Scanner for Game scripts.

Definition at line 114 of file game.hpp.

Referenced by FindInfo(), GetConsoleList(), GetInfoList(), GetScannerInfo(), GetUniqueInfoList(), HasGame(), Initialize(), and Uninitialize().

◆ scanner_library

GameScannerLibrary * Game::scanner_library = nullptr
staticprivate

Scanner for GS Libraries.

Definition at line 115 of file game.hpp.

Referenced by FindLibrary(), GetConsoleLibraryList(), GetScannerLibrary(), Initialize(), and Uninitialize().


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