Nuclide
Software Development Kit for id Tech
gamelibrary.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016-2023 Vera Visions LLC.
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
14 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*/
16
51typedef enum
52{
75
77void GameLibrary_Init(void);
80void GameLibrary_InitCustom(void);
81
83void GameLibrary_Install(int);
85void GameLibrary_Activate(int);
87void GameLibrary_Deactivate(void);
88
101
103void GameLibrary_DebugList(void);
104
105typedef enum
106{
112} gi_type;
113
114#ifndef DOXYGEN
115typedef struct
116{
117 string game;
118 string gamedir;
119 string base_dir;
120 string url_info;
121 string url_dl;
122 string version;
123 string readme;
124 int size;
125 int svonly;
126 int cldll;
127 string type;
128 string minversion;
129 string pkgname;
130 string pkgfile;
131 int pkgid;
132 int nomodels;
133 int nosprays;
134 int installed;
135 string mpentity;
136 string gamedll;
137 string startmap;
138 string trainingmap;
139 string fallback_dir;
140 string chatroom;
141 string menumap;
142 string introvideo;
143 gi_type info_type;
144} gameinfo_t;
145
146int gameinfo_count;
147gameinfo_t *games;
148
149#endif
entity *__variant __variant int type
Definition: fteextensions.qc:1746
__variant(float table, string name, optional __variant deflt, optional float requiretype, optional float index) hash_get
void GameLibrary_Activate(int)
Activate the specified game.
Definition: gamelibrary.qc:700
__variant GameLibrary_GetInfo(gameInfo_t)
Retrieves fields for the currently running game.
Definition: gamelibrary.qc:750
gameInfo_t
Definition: gamelibrary.h:52
@ GAMEINFO_AUTHOR
(string) Name of the author.
Definition: gamelibrary.h:70
@ GAMEINFO_STARTMAP
(string) The command for starting a new game.
Definition: gamelibrary.h:63
@ GAMEINFO_INTROVIDEO
(string) File name of the intro video to play.
Definition: gamelibrary.h:68
@ GAMEINFO_TRAININGMAP
(string) The command for starting the training.
Definition: gamelibrary.h:64
@ GAMEINFO_NOPLAYERMODELS
(bool) If the game allows player model selection.
Definition: gamelibrary.h:61
@ GAMEINFO_MINVERSION
(string) The minimum base game version.
Definition: gamelibrary.h:65
@ GAMEINFO_NOSPRAYS
(bool) If the game allows custom spray logos.
Definition: gamelibrary.h:62
@ GAMEINFO_WEBSITE
(string) The game its official website.
Definition: gamelibrary.h:57
@ GAMEINFO_FALLBACKDIR
(string) The directory to be loaded before the game directory.
Definition: gamelibrary.h:55
@ GAMEINFO_TITLE
(string) The title of the game.
Definition: gamelibrary.h:53
@ GAMEINFO_GAMEDIR
(string) The game directory name.
Definition: gamelibrary.h:54
@ GAMEINFO_INSTALLED
(bool) Whether the game is installed.
Definition: gamelibrary.h:73
@ GAMEINFO_PACKAGELIST
(string) List of packages, separated by white-space.
Definition: gamelibrary.h:72
@ GAMEINFO_CHATROOM
(string) The chatroom for this game.
Definition: gamelibrary.h:66
@ GAMEINFO_VERSION
(string) Version number string.
Definition: gamelibrary.h:58
@ GAMEINFO_SIZE
(int) The size of the game, in bytes.
Definition: gamelibrary.h:59
@ GAMEINFO_READMEFILE
(string) File name of the readme documentation.
Definition: gamelibrary.h:67
@ GAMEINFO_TYPE
(string) The game type.
Definition: gamelibrary.h:60
@ GAMEINFO_AUTHORSITE
(string) The author their website.
Definition: gamelibrary.h:71
@ GAMEINFO_MENUMAP
(string) Name of the map to be used as a background.
Definition: gamelibrary.h:69
@ GAMEINFO_BASEDIR
(string) The first game directory to be loaded.
Definition: gamelibrary.h:56
void GameLibrary_DebugList(void)
Prints debug info about the currently cached games to the console.
Definition: gamelibrary.qc:832
__variant GameLibrary_GetGameInfo(int, gameInfo_t)
Retrieves fields for a given game.
Definition: gamelibrary.qc:756
float GameLibrary_InstallProgress(void)
Returns a 0-100% value of game install progress, tracking across multiple packages.
Definition: gamelibrary.qc:607
bool GameLibrary_IsInstalling(void)
Returns true/false depending on if a Game installation is in progress.
Definition: gamelibrary.qc:601
gi_type
Definition: gamelibrary.h:106
@ GAMEINFO_MANIFEST
Game info was read from a manifest within the path.
Definition: gamelibrary.h:108
@ GAMEINFO_PACKAGE
Definition: gamelibrary.h:111
@ GAMEINFO_GITXT
Game info stems from a Source Engine style gameinfo.txt file.
Definition: gamelibrary.h:109
@ GAMEINFO_LIBLIST
Game info stems from a GoldSrc style liblist.gam file.
Definition: gamelibrary.h:110
@ GAMEINFO_NONE
No gameinfo available.
Definition: gamelibrary.h:107
void GameLibrary_InitCustom(void)
Called when you want to initialize custom games/mods.
Definition: gamelibrary.qc:430
int GameLibrary_GetCurrentGame(void)
Return the ID for the currently active game.
Definition: gamelibrary.qc:738
void GameLibrary_Install(int)
Install the specified game.
Definition: gamelibrary.qc:678
void GameLibrary_Init(void)
Called when initializing the current game.
Definition: gamelibrary.qc:549
int GameLibrary_GetGameCount(void)
Returns the total amount of games currently available.
Definition: gamelibrary.qc:744
void GameLibrary_Deactivate(void)
Deactivate the currently running mod.
Definition: gamelibrary.qc:728