From 57b1ad15a5da2f2a5ef19bfa27c602e5c75fbcaa Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 26 Mar 2023 21:59:38 +0100 Subject: [PATCH] GameTypeRules: Add GTR_NOPOSITION Says on the tin - introtime == starttime. --- src/deh_tables.c | 1 + src/doomstat.h | 19 ++++++++++--------- src/k_kart.c | 7 ++++++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/deh_tables.c b/src/deh_tables.c index 7d4f8d990..cfe834370 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -5854,6 +5854,7 @@ const char *const GAMETYPERULE_LIST[] = { "NOMP", "NOCUPSELECT", + "NOPOSITION", NULL }; diff --git a/src/doomstat.h b/src/doomstat.h index d72ef266b..b17efb095 100644 --- a/src/doomstat.h +++ b/src/doomstat.h @@ -546,10 +546,10 @@ enum GameTypeRules // Bonus gametype rules GTR_PRISONS = 1<<10, // Can enter Prison Break mode - GTR_CATCHER = 1<<11, // UFO Catcher (only works with GTR_CIRCUIT) - GTR_ROLLINGSTART = 1<<12, // Rolling start (only works with GTR_CIRCUIT) - GTR_SPECIALSTART = 1<<13, // White fade instant start - GTR_BOSS = 1<<14, // Boss intro and spawning + GTR_CATCHER = 1<<11, // UFO Catcher (only works with GTR_CIRCUIT) + GTR_ROLLINGSTART = 1<<12, // Rolling start (only works with GTR_CIRCUIT) + GTR_SPECIALSTART = 1<<13, // White fade instant start + GTR_BOSS = 1<<14, // Boss intro and spawning // General purpose rules GTR_POINTLIMIT = 1<<15, // Reaching point limit ends the round @@ -557,12 +557,13 @@ enum GameTypeRules GTR_OVERTIME = 1<<17, // Allow overtime behavior GTR_ENCORE = 1<<18, // Alternate Encore mirroring, scripting, and texture remapping - GTR_TEAMS = 1<<19, // Teams are forced on - GTR_NOTEAMS = 1<<20, // Teams are forced off - GTR_TEAMSTARTS = 1<<21, // Use team-based start positions + GTR_TEAMS = 1<<19, // Teams are forced on + GTR_NOTEAMS = 1<<20, // Teams are forced off + GTR_TEAMSTARTS = 1<<21, // Use team-based start positions - GTR_NOMP = 1<<22, // No multiplayer - GTR_NOCUPSELECT = 1<<23, // Your maps are not selected via cup. + GTR_NOMP = 1<<22, // No multiplayer + GTR_NOCUPSELECT = 1<<23, // Your maps are not selected via cup. + GTR_NOPOSITION = 1<<24, // No POSITION // free: to and including 1<<31 }; diff --git a/src/k_kart.c b/src/k_kart.c index 236d53ce4..675b4d1a7 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -186,7 +186,12 @@ void K_TimerInit(void) } } - starttime = (introtime + (3*TICRATE)) + ((2*TICRATE) + (numbulbs * bulbtime)); // Start countdown time, + buffer time + starttime = introtime; + if (!(gametyperules & GTR_NOPOSITION)) + { + // Start countdown time + buffer time + starttime += ((3*TICRATE) + ((2*TICRATE) + (numbulbs * bulbtime))); + } } K_BattleInit(domodeattack);