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/>.
8 /** @file game_info.hpp GameInfo keeps track of all information of an Game, like Author, Description, ... */
13 #include "../script/script_info.hpp"
15 /** All static information from an Game like name, version, etc. */
16 class GameInfo
: public ScriptInfo
{
22 * Register the functions of this class.
24 static void RegisterAPI(Squirrel
*engine
);
27 * Create an Game, using this GameInfo as start-template.
29 static SQInteger
Constructor(HSQUIRRELVM vm
);
32 * Check if we can start this Game.
34 bool CanLoadFromVersion(int version
) const;
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
; }
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
{
52 GameLibrary() : ScriptInfo(), category(nullptr) {};
56 * Register the functions of this class.
58 static void RegisterAPI(Squirrel
*engine
);
61 * Create an GSLibrary, using this GSInfo as start-template.
63 static SQInteger
Constructor(HSQUIRRELVM vm
);
66 * Get the category this library is in.
68 const char *GetCategory() const { return this->category
; }
71 const char *category
; ///< The category this library is in.
74 #endif /* GAME_INFO_HPP */