DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
com_game.c File Reference
#include "darkplaces.h"
#include "com_game.h"
+ Include dependency graph for com_game.c:

Go to the source code of this file.

Data Structures

struct  gamemode_info_t
 

Functions

int COM_ChangeGameTypeForGameDirs (unsigned numgamedirs, const char *gamedirs[], qbool failmissing, qbool init)
 
void COM_InitGameType (void)
 
static void COM_SetGameType (int index)
 

Variables

char com_modname [MAX_OSPATH] = ""
 
gamemode_t com_startupgamegroup
 
gamemode_t com_startupgamemode
 
const char * gamedirname1
 
const char * gamedirname2
 
gamemode_t gamemode
 
static const gamemode_info_t gamemode_info [GAME_COUNT]
 
const char * gamename
 
const char * gamenetworkfiltername
 
const char * gamescreenshotname
 
const char * gameuserdirname
 

Function Documentation

◆ COM_ChangeGameTypeForGameDirs()

int COM_ChangeGameTypeForGameDirs ( unsigned numgamedirs,
const char * gamedirs[],
qbool failmissing,
qbool init )

Definition at line 122 of file com_game.c.

123{
124 unsigned i, gamemode_count = sizeof(gamemode_info) / sizeof(gamemode_info[0]);
125 int j, index = -1;
127 // this will not not change the gamegroup
128
129 // first check if a base game (single gamedir) matches
130 for (i = 0; i < gamemode_count; i++)
131 {
133 {
134 index = i;
135 break;
136 }
137 }
138 if (index < 0)
139 Sys_Error("BUG: failed to find the base game!");
140
141 // See if there is a derivative game matching the startup one (two gamedirs),
142 // this prevents a Quake expansion (eg Rogue) getting switched to Quake during startup,
143 // not used when changing gamedirs later so that it's possible to change from the startup mod to the base one.
144 if (init)
145 {
146 for (i = 0; i < gamemode_count; i++)
147 {
149 {
150 index = i;
151 break;
152 }
153 }
154 }
155
156 // See if the base game or mod can be identified by a gamedir,
157 // if more than one matches the last is used because the last gamedir is the primary.
158 for (j = numgamedirs - 1; j >= 0; --j)
159 {
160 for (i = 0; i < gamemode_count; i++)
161 {
163 if ((gamemode_info[i].gamedirname2 && gamemode_info[i].gamedirname2[0] && !strcasecmp(gamedirs[j], gamemode_info[i].gamedirname2))
164 || (!gamemode_info[i].gamedirname2 && !strcasecmp(gamedirs[j], gamemode_info[i].gamedirname1)))
165 {
166 index = i;
167 goto double_break;
168 }
169 }
170 }
171double_break:
172
173 // we now have a good guess at which game this is meant to be...
175
176 ret = FS_SetGameDirs(numgamedirs, gamedirs, failmissing, !init);
177 if (ret == GAMEDIRS_SUCCESS)
178 {
179 Con_Printf("Game is %s using %s", gamename, fs_numgamedirs > 1 ? "gamedirs" : "gamedir");
180 for (j = 0; j < fs_numgamedirs; ++j)
181 Con_Printf(" %s%s", (strcasecmp(fs_gamedirs[j], gamedirname1) && (!gamedirname2 || strcasecmp(fs_gamedirs[j], gamedirname2))) ? "^7" : "^9", fs_gamedirs[j]);
182 Con_Printf("\n");
183
184 Con_Printf("gamename for server filtering: %s\n", gamenetworkfiltername);
185
187 }
188 return ret;
189}
const char * gamedirname2
Definition com_game.c:30
const char * gamedirname1
Definition com_game.c:29
const char * gamenetworkfiltername
Definition com_game.c:28
static const gamemode_info_t gamemode_info[GAME_COUNT]
Definition com_game.c:52
static void COM_SetGameType(int index)
Definition com_game.c:191
gamemode_t com_startupgamegroup
Definition com_game.c:36
gamemode_t com_startupgamemode
Definition com_game.c:35
const char * gamename
Definition com_game.c:27
void Con_Printf(const char *fmt,...)
Prints to all appropriate console targets.
Definition console.c:1514
addgamedirs_t FS_SetGameDirs(int numgamedirs, const char *gamedirs[], qbool failmissing, qbool abortonfail)
Definition fs.c:1633
char fs_gamedirs[MAX_GAMEDIRS][MAX_QPATH]
Definition fs.c:449
int fs_numgamedirs
Definition fs.c:448
addgamedirs_t
Definition fs.h:102
@ GAMEDIRS_SUCCESS
Definition fs.h:105
GLenum mode
Definition glquake.h:718
GLuint index
Definition glquake.h:629
void Host_UpdateVersion(void)
Definition host.c:162
int i
return ret
void Sys_Error(const char *error,...) DP_FUNC_PRINTF(1) DP_FUNC_NORETURN
Causes the entire program to exit ASAP.
Definition sys_shared.c:724

References COM_SetGameType(), com_startupgamegroup, com_startupgamemode, Con_Printf(), fs_gamedirs, fs_numgamedirs, FS_SetGameDirs(), gamedirname1, gamedirname2, GAMEDIRS_SUCCESS, gamemode_info, gamename, gamenetworkfiltername, Host_UpdateVersion(), i, index, mode, ret, and Sys_Error().

Referenced by FS_ChangeGameDirs(), and FS_Init_Dir().

◆ COM_InitGameType()

void COM_InitGameType ( void )

Definition at line 95 of file com_game.c.

96{
97 char name [MAX_OSPATH];
98 int i;
99 int index = GAME_NORMAL;
100
101#ifdef FORCEGAME
102 COM_ToLowerString(FORCEGAME, name, sizeof (name));
103#else
104 // check executable filename for keywords, but do it SMARTLY - only check the last path element
106 COM_ToLowerString(name, name, sizeof (name));
107#endif
108 for (i = 1;i < (int)(sizeof (gamemode_info) / sizeof (gamemode_info[0]));i++)
109 if (gamemode_info[i].prog_name && gamemode_info[i].prog_name[0] && strstr (name, gamemode_info[i].prog_name))
110 index = i;
111
112 // check commandline options for keywords
113 for (i = 0;i < (int)(sizeof (gamemode_info) / sizeof (gamemode_info[0]));i++)
115 index = i;
116
120}
@ GAME_NORMAL
Definition com_game.h:28
cvar_t cmdline
Definition common.c:33
size_t COM_ToLowerString(const char *in, char *out, size_t size_out)
Returns the number of bytes written to *out excluding the \0 terminator.
Definition common.c:1051
const char * FS_FileWithoutPath(const char *in)
Definition fs.c:1431
static int(ZEXPORT *qz_inflate)(z_stream *strm
void FS_StripExtension(const char *in, char *out, size_t size_out)
Definition fs.c:3611
const GLchar * name
Definition glquake.h:601
#define MAX_OSPATH
max length of a filesystem pathname
Definition qdefs.h:175
gamemode_t group
different games with same group can switch automatically when gamedirs change
Definition com_game.c:41
gamemode_t mode
this gamemode
Definition com_game.c:40
const char ** argv
Definition sys.h:147
sys_t sys
Definition sys_shared.c:42
int Sys_CheckParm(const char *parm)
Definition sys_shared.c:327

References sys_t::argv, cmdline, COM_SetGameType(), com_startupgamegroup, com_startupgamemode, COM_ToLowerString(), FS_FileWithoutPath(), FS_StripExtension(), GAME_NORMAL, gamemode_info, gamemode_info_t::group, i, index, int(), MAX_OSPATH, gamemode_info_t::mode, name, sys, and Sys_CheckParm().

Referenced by FS_Init().

◆ COM_SetGameType()

static void COM_SetGameType ( int index)
static

Definition at line 191 of file com_game.c.

192{
193 static char gamenetworkfilternamebuffer[64];
194 int t;
195
196 if (index < 0 || index >= (int)(sizeof (gamemode_info) / sizeof (gamemode_info[0])))
197 index = 0;
205
207 {
208 if((t = Sys_CheckParm("-customgamename")) && t + 1 < sys.argc)
210 if((t = Sys_CheckParm("-customgamenetworkfiltername")) && t + 1 < sys.argc)
212 if((t = Sys_CheckParm("-customgamedirname1")) && t + 1 < sys.argc)
213 gamedirname1 = sys.argv[t+1];
214 if((t = Sys_CheckParm("-customgamedirname2")) && t + 1 < sys.argc)
215 gamedirname2 = *sys.argv[t+1] ? sys.argv[t+1] : NULL;
216 if((t = Sys_CheckParm("-customgamescreenshotname")) && t + 1 < sys.argc)
218 if((t = Sys_CheckParm("-customgameuserdirname")) && t + 1 < sys.argc)
219 gameuserdirname = sys.argv[t+1];
220 }
221
222 if (strchr(gamenetworkfiltername, ' '))
223 {
224 char *s;
225 // if there are spaces in the game's network filter name it would
226 // cause parse errors in getservers in dpmaster, so we need to replace
227 // them with _ characters
228 dp_strlcpy(gamenetworkfilternamebuffer, gamenetworkfiltername, sizeof(gamenetworkfilternamebuffer));
229 while ((s = strchr(gamenetworkfilternamebuffer, ' ')) != NULL)
230 *s = '_';
231 gamenetworkfiltername = gamenetworkfilternamebuffer;
232 }
233}
const char * gamescreenshotname
Definition com_game.c:31
const char * gameuserdirname
Definition com_game.c:32
gamemode_t gamemode
Definition com_game.c:26
#define dp_strlcpy(dst, src, dsize)
Definition common.h:303
#define NULL
Definition qtypes.h:12
const char * gamename
not null
Definition com_game.c:44
const char * gameuserdirname
not null
Definition com_game.c:49
const char * gamedirname1
not null
Definition com_game.c:46
const char * gamedirname2
may be null
Definition com_game.c:47
const char * gamenetworkfiltername
not null
Definition com_game.c:45
const char * gamescreenshotname
not null
Definition com_game.c:48
int argc
Definition sys.h:146

References sys_t::argc, sys_t::argv, com_startupgamemode, dp_strlcpy, gamedirname1, gamemode_info_t::gamedirname1, gamedirname2, gamemode_info_t::gamedirname2, gamemode, gamemode_info, gamemode_info_t::gamename, gamename, gamemode_info_t::gamenetworkfiltername, gamenetworkfiltername, gamemode_info_t::gamescreenshotname, gamescreenshotname, gamemode_info_t::gameuserdirname, gameuserdirname, index, gamemode_info_t::mode, NULL, sys, and Sys_CheckParm().

Referenced by COM_ChangeGameTypeForGameDirs(), and COM_InitGameType().

Variable Documentation

◆ com_modname

char com_modname[MAX_OSPATH] = ""

Definition at line 33 of file com_game.c.

Referenced by FS_Rescan(), and NetConn_BuildStatusResponse().

◆ com_startupgamegroup

gamemode_t com_startupgamegroup

◆ com_startupgamemode

gamemode_t com_startupgamemode

Definition at line 35 of file com_game.c.

Referenced by COM_ChangeGameTypeForGameDirs(), COM_InitGameType(), and COM_SetGameType().

◆ gamedirname1

◆ gamedirname2

const char* gamedirname2

◆ gamemode

gamemode_t gamemode

◆ gamemode_info

const gamemode_info_t gamemode_info[GAME_COUNT]
static

Definition at line 52 of file com_game.c.

53{// game basegame prog_name cmdline gamename gamenetworkfilername basegame modgame screenshot userdir // commandline option
54{ GAME_NORMAL, GAME_NORMAL, "", "-quake", "DarkPlaces-Quake", "DarkPlaces-Quake", "id1", NULL, "dp", "darkplaces" }, // COMMANDLINEOPTION: Game: -quake runs the game Quake (default)
55{ GAME_HIPNOTIC, GAME_NORMAL, "hipnotic", "-hipnotic", "Darkplaces-Hipnotic", "Darkplaces-Hipnotic", "id1", "hipnotic", "dp", "darkplaces" }, // COMMANDLINEOPTION: Game: -hipnotic runs Quake mission pack 1: The Scourge of Armagon
56{ GAME_ROGUE, GAME_NORMAL, "rogue", "-rogue", "Darkplaces-Rogue", "Darkplaces-Rogue", "id1", "rogue", "dp", "darkplaces" }, // COMMANDLINEOPTION: Game: -rogue runs Quake mission pack 2: The Dissolution of Eternity
57{ GAME_NEHAHRA, GAME_NORMAL, "nehahra", "-nehahra", "DarkPlaces-Nehahra", "DarkPlaces-Nehahra", "id1", "nehahra", "dp", "darkplaces" }, // COMMANDLINEOPTION: Game: -nehahra runs The Seal of Nehahra movie and game
58{ GAME_QUOTH, GAME_NORMAL, "quoth", "-quoth", "Darkplaces-Quoth", "Darkplaces-Quoth", "id1", "quoth", "dp", "darkplaces" }, // COMMANDLINEOPTION: Game: -quoth runs the Quoth mod for playing community maps made for it
59{ GAME_NEXUIZ, GAME_NEXUIZ, "nexuiz", "-nexuiz", "Nexuiz", "Nexuiz", "data", NULL, "nexuiz", "nexuiz" }, // COMMANDLINEOPTION: Game: -nexuiz runs the multiplayer game Nexuiz
60{ GAME_XONOTIC, GAME_XONOTIC, "xonotic", "-xonotic", "Xonotic", "Xonotic", "data", NULL, "xonotic", "xonotic" }, // COMMANDLINEOPTION: Game: -xonotic runs the multiplayer game Xonotic
61{ GAME_TRANSFUSION, GAME_TRANSFUSION, "transfusion", "-transfusion", "Transfusion", "Transfusion", "basetf", NULL, "transfusion", "transfusion" }, // COMMANDLINEOPTION: Game: -transfusion runs Transfusion (the recreation of Blood in Quake)
62{ GAME_GOODVSBAD2, GAME_GOODVSBAD2, "gvb2", "-goodvsbad2", "GoodVs.Bad2", "GoodVs.Bad2", "rts", NULL, "gvb2", "gvb2" }, // COMMANDLINEOPTION: Game: -goodvsbad2 runs the psychadelic RTS FPS game Good Vs Bad 2
63{ GAME_TEU, GAME_TEU, "teu", "-teu", "TheEvilUnleashed", "TheEvilUnleashed", "baseteu", NULL, "teu", "teu" }, // COMMANDLINEOPTION: Game: -teu runs The Evil Unleashed (this option is obsolete as they are not using darkplaces)
64{ GAME_BATTLEMECH, GAME_BATTLEMECH, "battlemech", "-battlemech", "Battlemech", "Battlemech", "base", NULL, "battlemech", "battlemech" }, // COMMANDLINEOPTION: Game: -battlemech runs the multiplayer topdown deathmatch game BattleMech
65{ GAME_ZYMOTIC, GAME_ZYMOTIC, "zymotic", "-zymotic", "Zymotic", "Zymotic", "basezym", NULL, "zymotic", "zymotic" }, // COMMANDLINEOPTION: Game: -zymotic runs the singleplayer game Zymotic
66{ GAME_SETHERAL, GAME_SETHERAL, "setheral", "-setheral", "Setheral", "Setheral", "data", NULL, "setheral", "setheral" }, // COMMANDLINEOPTION: Game: -setheral runs the multiplayer game Setheral
67{ GAME_TENEBRAE, GAME_NORMAL, "tenebrae", "-tenebrae", "DarkPlaces-Tenebrae", "DarkPlaces-Tenebrae", "id1", "tenebrae", "dp", "darkplaces" }, // COMMANDLINEOPTION: Game: -tenebrae runs the graphics test mod known as Tenebrae (some features not implemented)
68{ GAME_NEOTERIC, GAME_NORMAL, "neoteric", "-neoteric", "Neoteric", "Neoteric", "id1", "neobase", "neo", "darkplaces" }, // COMMANDLINEOPTION: Game: -neoteric runs the game Neoteric
69{ GAME_OPENQUARTZ, GAME_NORMAL, "openquartz", "-openquartz", "OpenQuartz", "OpenQuartz", "id1", NULL, "openquartz", "darkplaces" }, // COMMANDLINEOPTION: Game: -openquartz runs the game OpenQuartz, a standalone GPL replacement of the quake content
70{ GAME_PRYDON, GAME_NORMAL, "prydon", "-prydon", "PrydonGate", "PrydonGate", "id1", "prydon", "prydon", "darkplaces" }, // COMMANDLINEOPTION: Game: -prydon runs the topdown point and click action-RPG Prydon Gate
71{ GAME_DELUXEQUAKE, GAME_DELUXEQUAKE, "dq", "-dq", "Deluxe Quake", "Deluxe_Quake", "basedq", "extradq", "basedq", "dq" }, // COMMANDLINEOPTION: Game: -dq runs the game Deluxe Quake
72{ GAME_THEHUNTED, GAME_THEHUNTED, "thehunted", "-thehunted", "The Hunted", "The_Hunted", "thdata", NULL, "th", "thehunted" }, // COMMANDLINEOPTION: Game: -thehunted runs the game The Hunted
73{ GAME_DEFEATINDETAIL2, GAME_DEFEATINDETAIL2, "did2", "-did2", "Defeat In Detail 2", "Defeat_In_Detail_2", "data", NULL, "did2_", "did2" }, // COMMANDLINEOPTION: Game: -did2 runs the game Defeat In Detail 2
74{ GAME_DARSANA, GAME_DARSANA, "darsana", "-darsana", "Darsana", "Darsana", "ddata", NULL, "darsana", "darsana" }, // COMMANDLINEOPTION: Game: -darsana runs the game Darsana
75{ GAME_CONTAGIONTHEORY, GAME_CONTAGIONTHEORY, "contagiontheory", "-contagiontheory", "Contagion Theory", "Contagion_Theory", "ctdata", NULL, "ct", "contagiontheory" }, // COMMANDLINEOPTION: Game: -contagiontheory runs the game Contagion Theory
76{ GAME_EDU2P, GAME_EDU2P, "edu2p", "-edu2p", "EDU2 Prototype", "EDU2_Prototype", "id1", "edu2", "edu2_p", "edu2prototype" }, // COMMANDLINEOPTION: Game: -edu2p runs the game Edu2 prototype
77{ GAME_PROPHECY, GAME_PROPHECY, "prophecy", "-prophecy", "Prophecy", "Prophecy", "gamedata", NULL, "phcy", "prophecy" }, // COMMANDLINEOPTION: Game: -prophecy runs the game Prophecy
78{ GAME_BLOODOMNICIDE, GAME_BLOODOMNICIDE, "omnicide", "-omnicide", "Blood Omnicide", "Blood_Omnicide", "kain", NULL, "omnicide", "omnicide" }, // COMMANDLINEOPTION: Game: -omnicide runs the game Blood Omnicide
79{ GAME_STEELSTORM, GAME_STEELSTORM, "steelstorm", "-steelstorm", "Steel-Storm", "Steel-Storm", "gamedata", NULL, "ss", "steelstorm" }, // COMMANDLINEOPTION: Game: -steelstorm runs the game Steel Storm
80{ GAME_STEELSTORM2, GAME_STEELSTORM2, "steelstorm2", "-steelstorm2", "Steel Storm 2", "Steel_Storm_2", "gamedata", NULL, "ss2", "steelstorm2" }, // COMMANDLINEOPTION: Game: -steelstorm2 runs the game Steel Storm 2
81{ GAME_SSAMMO, GAME_SSAMMO, "steelstorm-ammo", "-steelstormammo", "Steel Storm A.M.M.O.", "Steel_Storm_A.M.M.O.", "gamedata", NULL, "ssammo", "steelstorm-ammo" }, // COMMANDLINEOPTION: Game: -steelstormammo runs the game Steel Storm A.M.M.O.
82{ GAME_STEELSTORMREVENANTS, GAME_STEELSTORMREVENANTS, "steelstorm-revenants", "-steelstormrev", "Steel Storm: Revenants", "Steel_Storm_Revenants", "base", NULL, "ssrev", "steelstorm-revenants" }, // COMMANDLINEOPTION: Game: -steelstormrev runs the game Steel Storm: Revenants
83{ GAME_TOMESOFMEPHISTOPHELES, GAME_TOMESOFMEPHISTOPHELES, "tomesofmephistopheles","-tomesofmephistopheles", "Tomes of Mephistopheles", "Tomes_of_Mephistopheles", "gamedata", NULL, "tom", "tomesofmephistopheles" }, // COMMANDLINEOPTION: Game: -tomesofmephistopheles runs the game Tomes of Mephistopheles
84{ GAME_STRAPBOMB, GAME_STRAPBOMB, "strapbomb", "-strapbomb", "Strap-on-bomb Car", "Strap-on-bomb_Car", "id1", NULL, "strap", "strapbomb" }, // COMMANDLINEOPTION: Game: -strapbomb runs the game Strap-on-bomb Car
85{ GAME_MOONHELM, GAME_MOONHELM, "moonhelm", "-moonhelm", "MoonHelm", "MoonHelm", "data", NULL, "mh", "moonhelm" }, // COMMANDLINEOPTION: Game: -moonhelm runs the game MoonHelm
86{ GAME_VORETOURNAMENT, GAME_VORETOURNAMENT, "voretournament", "-voretournament", "Vore Tournament", "Vore_Tournament", "data", NULL, "voretournament", "voretournament" }, // COMMANDLINEOPTION: Game: -voretournament runs the multiplayer game Vore Tournament
87{ GAME_DOOMBRINGER, GAME_DOOMBRINGER, "doombringer", "-doombringer", "DOOMBRINGER", "DOOMBRINGER", "dbdata", NULL, "doombringer", "doombringer" }, // COMMANDLINEOPTION: Game: -doombringer runs the game DOOMBRINGER
88{ GAME_BATTLEMETAL, GAME_NORMAL, "battlemetal", "-battlemetal", "battlemetal", "battlemetal", "metaldata", NULL, "battlemetal", "battlemetal" }, // COMMANDLINEOPTION: Game: -battlemetal runs the game battleMETAL
89{ GAME_QUAKE15, GAME_NORMAL, "quake15", "-quake15", "Quake 1.5", "Quake_1.5", "id1", "quake15", "quake15", "darkplaces" }, // COMMANDLINEOPTION: Game: -quake15 runs the Quake 1.5 or Quake Combat+ mod
90{ GAME_AD, GAME_NORMAL, "ad", "-ad", "Arcane Dimensions", "Arcane_Dimensions", "id1", "ad", "ad", "darkplaces" }, // COMMANDLINEOPTION: Game: -ad runs the Arcane Dimensions mod
91{ GAME_CTSJ2, GAME_NORMAL, "ctsj2", "-ctsj2", "Coppertone Summer Jam 2", "Coppertone_Summer_Jam_2", "id1", "ctsj2", "ctsj2", "darkplaces" }, // COMMANDLINEOPTION: Game: -ctsj2 runs the Coppertone Summer Jam 2 mod
92};
@ GAME_TEU
Definition com_game.h:37
@ GAME_SETHERAL
Definition com_game.h:40
@ GAME_BATTLEMECH
Definition com_game.h:38
@ GAME_CONTAGIONTHEORY
Definition com_game.h:49
@ GAME_BATTLEMETAL
added by Cloudwalk for Subject9x
Definition com_game.h:62
@ GAME_NEXUIZ
Definition com_game.h:33
@ GAME_STEELSTORMREVENANTS
added by motorsep 07/19/2015
Definition com_game.h:56
@ GAME_DOOMBRINGER
added by Cloudwalk for kristus
Definition com_game.h:61
@ GAME_BLOODOMNICIDE
Definition com_game.h:52
@ GAME_QUOTH
Definition com_game.h:31
@ GAME_EDU2P
Definition com_game.h:50
@ GAME_ROGUE
Definition com_game.h:30
@ GAME_TRANSFUSION
Definition com_game.h:35
@ GAME_STEELSTORM
added by motorsep
Definition com_game.h:53
@ GAME_MOONHELM
Definition com_game.h:59
@ GAME_STEELSTORM2
added by motorsep
Definition com_game.h:54
@ GAME_PROPHECY
Definition com_game.h:51
@ GAME_DARSANA
Definition com_game.h:48
@ GAME_OPENQUARTZ
this game sucks
Definition com_game.h:43
@ GAME_VORETOURNAMENT
Definition com_game.h:60
@ GAME_QUAKE15
added by bones_was_here as it depends on an old bug and a workaround
Definition com_game.h:63
@ GAME_TOMESOFMEPHISTOPHELES
added by motorsep
Definition com_game.h:57
@ GAME_GOODVSBAD2
Definition com_game.h:36
@ GAME_NEOTERIC
Definition com_game.h:42
@ GAME_THEHUNTED
Definition com_game.h:46
@ GAME_NEHAHRA
Definition com_game.h:32
@ GAME_STRAPBOMB
added by motorsep for Urre
Definition com_game.h:58
@ GAME_CTSJ2
added by bones_was_here as it has a race condition that requires a workaound
Definition com_game.h:65
@ GAME_TENEBRAE
full of evil hackery
Definition com_game.h:41
@ GAME_XONOTIC
Definition com_game.h:34
@ GAME_AD
added by bones_was_here as it depends on old DP behaviour or csqc_lowres
Definition com_game.h:64
@ GAME_PRYDON
Definition com_game.h:44
@ GAME_SSAMMO
added by motorsep
Definition com_game.h:55
@ GAME_ZYMOTIC
Definition com_game.h:39
@ GAME_DELUXEQUAKE
Definition com_game.h:45
@ GAME_HIPNOTIC
Definition com_game.h:29
@ GAME_DEFEATINDETAIL2
Definition com_game.h:47

Referenced by COM_ChangeGameTypeForGameDirs(), COM_InitGameType(), and COM_SetGameType().

◆ gamename

const char* gamename

◆ gamenetworkfiltername

const char* gamenetworkfiltername

◆ gamescreenshotname

const char* gamescreenshotname

Definition at line 31 of file com_game.c.

Referenced by COM_SetGameType(), and FS_Rescan().

◆ gameuserdirname

const char* gameuserdirname

Definition at line 32 of file com_game.c.

Referenced by COM_SetGameType(), FS_ChooseUserDir(), and FS_Init_Dir().