Add: INR currency (#8136)
[openttd-github.git] / src / game / game_info.hpp
blobcfa900767c36689e89a958b7358a4fc8581c7550
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 */
8 /** @file game_info.hpp GameInfo keeps track of all information of an Game, like Author, Description, ... */
10 #ifndef GAME_INFO_HPP
11 #define GAME_INFO_HPP
13 #include "../script/script_info.hpp"
15 /** All static information from an Game like name, version, etc. */
16 class GameInfo : public ScriptInfo {
17 public:
18 GameInfo();
19 ~GameInfo();
21 /**
22 * Register the functions of this class.
24 static void RegisterAPI(Squirrel *engine);
26 /**
27 * Create an Game, using this GameInfo as start-template.
29 static SQInteger Constructor(HSQUIRRELVM vm);
31 /**
32 * Check if we can start this Game.
34 bool CanLoadFromVersion(int version) const;
36 /**
37 * Get the API version this Game is written for.
39 const char *GetAPIVersion() const { return this->api_version; }
41 bool IsDeveloperOnly() const override { return this->is_developer_only; }
43 private:
44 int min_loadable_version; ///< The Game can load savegame data if the version is equal or greater than this.
45 bool is_developer_only; ///< Is the script selectable by non-developers?
46 const char *api_version; ///< API version used by this Game.
49 /** All static information from an Game library like name, version, etc. */
50 class GameLibrary : public ScriptInfo {
51 public:
52 GameLibrary() : ScriptInfo(), category(nullptr) {};
53 ~GameLibrary();
55 /**
56 * Register the functions of this class.
58 static void RegisterAPI(Squirrel *engine);
60 /**
61 * Create an GSLibrary, using this GSInfo as start-template.
63 static SQInteger Constructor(HSQUIRRELVM vm);
65 /**
66 * Get the category this library is in.
68 const char *GetCategory() const { return this->category; }
70 private:
71 const char *category; ///< The category this library is in.
74 #endif /* GAME_INFO_HPP */