Merge branch 'capsuletest' into 'master'

Add capsuletest cvar

See merge request KartKrew/Kart!884
This commit is contained in:
James R 2023-01-21 20:26:06 +00:00
commit 6e058d66e1
6 changed files with 40 additions and 2 deletions

View file

@ -448,6 +448,20 @@ consvar_t cv_kartdebugdirector = CVAR_INIT ("debugdirector", "Off", CV_CHEAT, CV
consvar_t cv_spbtest = CVAR_INIT ("spbtest", "Off", CV_CHEAT|CV_NETVAR, CV_OnOff, NULL); consvar_t cv_spbtest = CVAR_INIT ("spbtest", "Off", CV_CHEAT|CV_NETVAR, CV_OnOff, NULL);
consvar_t cv_gptest = CVAR_INIT ("gptest", "Off", CV_CHEAT|CV_NETVAR, CV_OnOff, NULL); consvar_t cv_gptest = CVAR_INIT ("gptest", "Off", CV_CHEAT|CV_NETVAR, CV_OnOff, NULL);
static CV_PossibleValue_t capsuletest_cons_t[] = {
{CV_CAPSULETEST_OFF, "Off"},
{CV_CAPSULETEST_MULTIPLAYER, "Multiplayer"},
{CV_CAPSULETEST_TIMEATTACK, "TimeAttack"},
{0, NULL}};
static void CapsuleTest_OnChange(void)
{
if (gamestate == GS_LEVEL)
CONS_Printf("Level must be restarted for capsuletest to have effect.\n");
}
consvar_t cv_capsuletest = CVAR_INIT ("capsuletest", "Off", CV_CHEAT|CV_NETVAR|CV_CALL, capsuletest_cons_t, CapsuleTest_OnChange);
consvar_t cv_reducevfx = CVAR_INIT ("reducevfx", "No", CV_SAVE, CV_YesNo, NULL); consvar_t cv_reducevfx = CVAR_INIT ("reducevfx", "No", CV_SAVE, CV_YesNo, NULL);
static CV_PossibleValue_t votetime_cons_t[] = {{10, "MIN"}, {3600, "MAX"}, {0, NULL}}; static CV_PossibleValue_t votetime_cons_t[] = {{10, "MIN"}, {3600, "MAX"}, {0, NULL}};

View file

@ -96,6 +96,13 @@ extern consvar_t cv_kartdebugnodes, cv_kartdebugcolorize, cv_kartdebugdirector;
extern consvar_t cv_spbtest, cv_gptest, cv_reducevfx; extern consvar_t cv_spbtest, cv_gptest, cv_reducevfx;
extern consvar_t cv_kartdebugwaypoints, cv_kartdebugbotpredict; extern consvar_t cv_kartdebugwaypoints, cv_kartdebugbotpredict;
typedef enum {
CV_CAPSULETEST_OFF,
CV_CAPSULETEST_MULTIPLAYER,
CV_CAPSULETEST_TIMEATTACK,
} capsuletest_val_t;
extern consvar_t cv_capsuletest;
extern consvar_t cv_alttitle, cv_itemfinder; extern consvar_t cv_alttitle, cv_itemfinder;
extern consvar_t cv_inttime, cv_advancemap; extern consvar_t cv_inttime, cv_advancemap;

View file

@ -361,6 +361,7 @@ void K_RegisterKartStuff(void)
CV_RegisterVar(&cv_kartdebugdirector); CV_RegisterVar(&cv_kartdebugdirector);
CV_RegisterVar(&cv_spbtest); CV_RegisterVar(&cv_spbtest);
CV_RegisterVar(&cv_gptest); CV_RegisterVar(&cv_gptest);
CV_RegisterVar(&cv_capsuletest);
CV_RegisterVar(&cv_reducevfx); CV_RegisterVar(&cv_reducevfx);
} }
@ -591,6 +592,21 @@ boolean K_TimeAttackRules(void)
return (playing <= 1); return (playing <= 1);
} }
boolean K_CapsuleTimeAttackRules(void)
{
switch (cv_capsuletest.value)
{
case CV_CAPSULETEST_MULTIPLAYER:
return false;
case CV_CAPSULETEST_TIMEATTACK:
return true;
default:
return K_TimeAttackRules();
}
}
//} //}
//{ SRB2kart p_user.c Stuff //{ SRB2kart p_user.c Stuff

View file

@ -62,6 +62,7 @@ void K_SetItemCooldown(SINT8 itemResult, tic_t time);
void K_RunItemCooldowns(void); void K_RunItemCooldowns(void);
boolean K_TimeAttackRules(void); boolean K_TimeAttackRules(void);
boolean K_CapsuleTimeAttackRules(void);
fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against); fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against);
boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2); boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2);

View file

@ -1411,7 +1411,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
INT16 spacing = (target->radius >> 1) / target->scale; INT16 spacing = (target->radius >> 1) / target->scale;
// set respawn fuse // set respawn fuse
if (K_TimeAttackRules() == true) // no respawns if (K_CapsuleTimeAttackRules() == true) // no respawns
; ;
else if (target->threshold == KITEM_SUPERRING) else if (target->threshold == KITEM_SUPERRING)
target->fuse = 20*TICRATE; target->fuse = 20*TICRATE;

View file

@ -12134,7 +12134,7 @@ static boolean P_AllowMobjSpawn(mapthing_t* mthing, mobjtype_t i)
// in record attack, only spawn ring capsules // in record attack, only spawn ring capsules
// (behavior can be inverted with the Extra flag, i.e. item capsule spawns and ring capsule does not) // (behavior can be inverted with the Extra flag, i.e. item capsule spawns and ring capsule does not)
if (K_TimeAttackRules() == true if (K_CapsuleTimeAttackRules() == true
&& (!(mthing->args[2] & TMICF_INVERTTIMEATTACK) == !isRingCapsule)) && (!(mthing->args[2] & TMICF_INVERTTIMEATTACK) == !isRingCapsule))
return false; return false;
} }