G_NewGametype

This commit is contained in:
Jaime Passos 2019-12-18 12:23:42 -03:00
parent 6660d63028
commit 15862ed02c
4 changed files with 33 additions and 0 deletions

View File

@ -383,6 +383,8 @@ boolean timedemo_quit;
INT16 gametype = GT_COOP;
UINT32 gametyperules = 0;
INT16 numgametypes = (GT_CTF + 1);
boolean splitscreen = false;
boolean circuitmap = false;
INT32 adminplayers[MAXPLAYERS];

View File

@ -85,6 +85,8 @@ extern boolean multiplayer;
extern INT16 gametype;
extern UINT32 gametyperules;
extern INT16 numgametypes;
extern boolean splitscreen;
extern boolean circuitmap; // Does this level have 'circuit mode'?
extern boolean fromlevelselect;

View File

@ -3094,6 +3094,33 @@ void G_SetGametype(INT16 gtype)
CONS_Printf("Gametype set to %s (%d)\n", Gametype_Names[gametype], gametype);
}
//
// G_NewGametype
//
// Create a new gametype. Returns the new gametype number.
//
INT16 G_NewGametype(UINT32 rules)
{
INT32 i;
INT16 newgtype = numgametypes;
numgametypes++;
// Set gametype rules.
gametypedefaultrules[newgtype] = numgametypes;
Gametype_Names[newgtype] = "???";
// Update gametype_cons_t accordingly.
for (i = 0; i < numgametypes; i++)
{
gametype_cons_t[i].value = i;
gametype_cons_t[i].strvalue = Gametype_Names[i];
}
gametype_cons_t[NUMGAMETYPES].value = 0;
gametype_cons_t[NUMGAMETYPES].strvalue = NULL;
return newgtype;
}
//
// G_GetGametypeByName
//

View File

@ -202,6 +202,8 @@ void G_StopDemo(void);
boolean G_CheckDemoStatus(void);
void G_SetGametype(INT16 gametype);
INT16 G_NewGametype(UINT32 rules);
INT32 G_GetGametypeByName(const char *gametypestr);
boolean G_IsSpecialStage(INT32 mapnum);
boolean G_GametypeUsesLives(void);