OpenTTD Source 20241224-master-gf74b0cf984
game.hpp
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6 */
7
10#ifndef GAME_HPP
11#define GAME_HPP
12
13#include "game_scanner.hpp"
14
15#include "../script/api/script_event_types.hpp"
16
20class Game {
21public:
25 static void GameLoop();
26
30 static void Initialize();
31
35 static void StartNew();
36
40 static void Uninitialize(bool keepConfig);
41
47 static void Pause();
48
54 static void Unpause();
55
60 static bool IsPaused();
61
65 static void NewEvent(class ScriptEvent *event);
66
70 static class GameInstance *GetGameInstance() { return Game::instance; }
71
75 static class GameInfo *GetInfo() { return Game::info; }
76
77 static void Rescan();
78 static void ResetConfig();
79
83 static void Save();
84
86 static void GetConsoleList(std::back_insert_iterator<std::string> &output_iterator, bool newest_only);
88 static void GetConsoleLibraryList(std::back_insert_iterator<std::string> &output_iterator);
90 static const ScriptInfoList *GetInfoList();
92 static const ScriptInfoList *GetUniqueInfoList();
94 static class GameInfo *FindInfo(const std::string &name, int version, bool force_exact_match);
96 static class GameLibrary *FindLibrary(const std::string &library, int version);
97
101 static class GameInstance *GetInstance() { return Game::instance; }
102
104 static bool HasGame(const struct ContentInfo *ci, bool md5sum);
105 static bool HasGameLibrary(const ContentInfo *ci, bool md5sum);
110
111private:
112 static uint frame_counter;
113 static class GameInstance *instance;
116 static class GameInfo *info;
117};
118
119#endif /* GAME_HPP */
All static information from an Game like name, version, etc.
Definition game_info.hpp:16
Runtime information about a game script like a pointer to the squirrel vm and the current state.
All static information from an Game library like name, version, etc.
Definition game_info.hpp:49
Main Game class.
Definition game.hpp:20
static void StartNew()
Start up a new GameScript.
Definition game_core.cpp:72
static class GameInfo * info
Current selected GameInfo.
Definition game.hpp:116
static class GameInfo * FindInfo(const std::string &name, int version, bool force_exact_match)
Wrapper function for GameScannerInfo::FindInfo.
static class GameInfo * GetInfo()
Get the current GameInfo.
Definition game.hpp:75
static GameScannerLibrary * GetScannerLibrary()
Gets the ScriptScanner instance that is used to find Game Libraries.
static void Unpause()
Resume execution of the Game Script.
static bool IsPaused()
Checks if the Game Script is paused.
static uint frame_counter
Tick counter for the Game code.
Definition game.hpp:112
static void Save()
Save data from a GameScript to a savegame.
static class GameScannerInfo * scanner_info
Scanner for Game scripts.
Definition game.hpp:114
static class GameInstance * instance
Instance to the current active Game.
Definition game.hpp:113
static class GameScannerLibrary * scanner_library
Scanner for GS Libraries.
Definition game.hpp:115
static bool HasGame(const struct ContentInfo *ci, bool md5sum)
Wrapper function for GameScanner::HasGame.
static class GameLibrary * FindLibrary(const std::string &library, int version)
Wrapper function for GameScanner::FindLibrary.
static const ScriptInfoList * GetUniqueInfoList()
Wrapper function for GameScanner::GetUniqueInfoList.
static class GameInstance * GetGameInstance()
Get the current GameScript instance.
Definition game.hpp:70
static void Pause()
Suspends the Game Script and then pause the execution of the script.
static void NewEvent(class ScriptEvent *event)
Queue a new event for a Game Script.
static class GameInstance * GetInstance()
Get the current active instance.
Definition game.hpp:101
static void GameLoop()
Called every game-tick to let Game do something.
Definition game_core.cpp:31
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 void Uninitialize(bool keepConfig)
Uninitialize the Game system.
static const ScriptInfoList * GetInfoList()
Wrapper function for GameScanner::GetInfoList.
static void Initialize()
Initialize the Game system.
Definition game_core.cpp:57
static GameScannerInfo * GetScannerInfo()
Gets the ScriptScanner instance that is used to find Game scripts.
declarations of the class for Game scanner
std::map< std::string, class ScriptInfo *, CaseInsensitiveComparator > ScriptInfoList
Type for the list of scripts.
Container for all important information about a piece of content.