Fix RAGuard and other minor fixes

This commit is contained in:
NepDisk 2025-04-13 15:07:10 -04:00
parent 20fcb6231e
commit 5d886b83ba
4 changed files with 53 additions and 50 deletions

View file

@ -7147,7 +7147,7 @@ static void KartChaining_OnChange(void)
CONS_Printf(M_GetText("Boost Chaining will be turned \"On\" Next Round.\n"));
}
}
else if (K_ChainingActive() && !cv_kartstacking.value)
else if (K_ChainingActive() && !cv_kartchaining.value)
{
if (leveltime < starttime)
{

View file

@ -578,7 +578,6 @@ boolean K_DropTargetCollide(mobj_t *t1, mobj_t *t2)
{
mobj_t *ghost = P_SpawnGhostMobj(t1);
UINT8 i;
P_SetScale(ghost, 3*ghost->destscale/2);
ghost->destscale = 15*ghost->destscale/2;

View file

@ -49,11 +49,11 @@
#include "k_follower.h"
#include "k_grandprix.h"
consvar_t cv_kartstacking_colorflame = CVAR_INIT ("kartstacking_colorflame", "On", 0, CV_OnOff, NULL);
consvar_t cv_kartstacking_sneakerstacksound = CVAR_INIT ("kartstacking_sneakerstacksound", "On", 0, CV_OnOff, NULL);
consvar_t cv_kartchainingsound = CVAR_INIT ("kartchaining_chainsound", "On", 0, CV_OnOff, NULL);
consvar_t cv_kartdriftsounds = CVAR_INIT ("kartdriftsounds", "On", 0, CV_OnOff, NULL);
consvar_t cv_kartdriftefx = CVAR_INIT ("kartdriftefx", "On", 0, CV_OnOff, NULL);
consvar_t cv_kartstacking_colorflame = CVAR_INIT ("kartstacking_colorflame", "On", CV_SAVE, CV_OnOff, NULL);
consvar_t cv_kartstacking_sneakerstacksound = CVAR_INIT ("kartstacking_sneakerstacksound", "On", CV_SAVE, CV_OnOff, NULL);
consvar_t cv_kartchainingsound = CVAR_INIT ("kartchaining_chainsound", "On", CV_SAVE, CV_OnOff, NULL);
consvar_t cv_kartdriftsounds = CVAR_INIT ("kartdriftsounds", "On", CV_SAVE, CV_OnOff, NULL);
consvar_t cv_kartdriftefx = CVAR_INIT ("kartdriftefx", "On", CV_SAVE, CV_OnOff, NULL);
static CV_PossibleValue_t driftsparkpulse_cons_t[] = {{0, "MIN"}, {FRACUNIT*3, "MAX"}, {0, NULL}};
consvar_t cv_driftsparkpulse = CVAR_INIT ("driftsparkpulse", "1.4", CV_SAVE|CV_FLOAT, driftsparkpulse_cons_t, NULL);
@ -3198,20 +3198,31 @@ boolean K_TripwirePass(player_t *player)
}
// Safe guard cvars to prevent cheating in RA.
INT32 K_RAGuard(consvar_t cvar, SINT8 mode)
INT32 K_RAGuard(consvar_t cvar)
{
if (modeattacking != ATTACKING_NONE)
{
if (mode == RAG_INT)
{
// This is a int, just use atoi the value normally.
return atoi(cvar.defaultvalue);
}
else if (mode == RAG_FLOAT)
if (cvar.flags & CV_FLOAT)
{
// This is a float, atof the value and run it through FloatToFixed
return FloatToFixed(atof(cvar.defaultvalue));
}
else
{
// Handle string bools first.
if (!strcmp(cvar.defaultvalue, "On") || !strcmp(cvar.defaultvalue, "Yes"))
{
return true;
}
if (!strcmp(cvar.defaultvalue, "Off") || !strcmp(cvar.defaultvalue, "No"))
{
return false;
}
// This is a int, just use atoi the value normally.
return atoi(cvar.defaultvalue);
}
}
return cvar.value;

View file

@ -39,37 +39,37 @@ Make sure this matches the actual number of states
// Precalculated constants for stacked boost diminishing
// *Somewhat* matches old calc but doesn't use arrays, which makes it faster and more memory efficent
#define CALC_ARG_OFFSET K_RAGuard(cv_kartstacking_calc_arg_offset, RAG_FLOAT)
#define CALC_ARG_OFFSET K_RAGuard(cv_kartstacking_calc_arg_offset)
#define CALC_RET_OFFSET FixedSqrt(CALC_ARG_OFFSET)
#define MAXVANILLABOOST K_RAGuard(cv_kartstacking_maxvanillaboost, RAG_FLOAT)
#define SPEEDBOOSTDROPOFF K_RAGuard(cv_kartstacking_speedboostdropoff, RAG_FLOAT)
#define SPEEDBOOSTDROPOFF_BRAKE K_RAGuard(cv_kartstacking_speedboostdropoff_brake, RAG_FLOAT)
#define MAXVANILLABOOST K_RAGuard(cv_kartstacking_maxvanillaboost)
#define SPEEDBOOSTDROPOFF K_RAGuard(cv_kartstacking_speedboostdropoff)
#define SPEEDBOOSTDROPOFF_BRAKE K_RAGuard(cv_kartstacking_speedboostdropoff_brake)
// Vanilla Boosts
#define EASYSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_easyspeedboost, RAG_FLOAT)
#define NORMALSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_normalspeedboost, RAG_FLOAT)
#define HARDSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_hardspeedboost, RAG_FLOAT)
#define SNEAKERACCELBOOST K_RAGuard(cv_kartstacking_sneaker_accelboost, RAG_FLOAT)
#define MAXSNEAKERSTACK K_RAGuard(cv_kartstacking_sneaker_maxgrade, RAG_INT)
#define SNEAKERSTACKABLE K_RAGuard(cv_kartstacking_sneaker_stackable, RAG_INT)
#define INVINSPEEDBOOST K_RAGuard(cv_kartstacking_invincibility_speedboost, RAG_FLOAT)
#define INVINACCELBOOST K_RAGuard(cv_kartstacking_invincibility_accelboost, RAG_FLOAT)
#define INVINSTACKABLE K_RAGuard(cv_kartstacking_invincibility_stackable, RAG_INT)
#define GROWSPEEDBOOST K_RAGuard(cv_kartstacking_grow_speedboost, RAG_FLOAT)
#define GROWACCELBOOST K_RAGuard(cv_kartstacking_grow_accelboost, RAG_FLOAT)
#define GROWSTACKABLE K_RAGuard(cv_kartstacking_grow_stackable, RAG_INT)
#define FLAMESPEEDVAL K_RAGuard(cv_kartstacking_flame_speedval, RAG_FLOAT)
#define FLAMEACCELBOOST K_RAGuard(cv_kartstacking_flame_accelboost, RAG_FLOAT)
#define FLAMESTACKABLE K_RAGuard(cv_kartstacking_flame_stackable, RAG_INT)
#define STARTSPEEDBOOST K_RAGuard(cv_kartstacking_start_speedboost, RAG_FLOAT)
#define STARTACCELBOOST K_RAGuard(cv_kartstacking_start_accelboost, RAG_FLOAT)
#define STARTSTACKABLE K_RAGuard(cv_kartstacking_start_stackable, RAG_INT)
#define DRIFTSPEEDBOOST K_RAGuard(cv_kartstacking_drift_speedboost, RAG_FLOAT)
#define DRIFTACCELBOOST K_RAGuard(cv_kartstacking_drift_accelboost, RAG_FLOAT)
#define DRIFTSTACKABLE K_RAGuard(cv_kartstacking_drift_stackable, RAG_INT)
#define RINGSPEEDBOOST K_RAGuard(cv_kartstacking_ring_speedboost, RAG_FLOAT)
#define RINGACCELBOOST K_RAGuard(cv_kartstacking_ring_accelboost, RAG_FLOAT)
#define RINGSTACKABLE K_RAGuard(cv_kartstacking_ring_stackable, RAG_INT)
#define EASYSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_easyspeedboost)
#define NORMALSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_normalspeedboost)
#define HARDSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_hardspeedboost)
#define SNEAKERACCELBOOST K_RAGuard(cv_kartstacking_sneaker_accelboost)
#define MAXSNEAKERSTACK K_RAGuard(cv_kartstacking_sneaker_maxgrade)
#define SNEAKERSTACKABLE K_RAGuard(cv_kartstacking_sneaker_stackable)
#define INVINSPEEDBOOST K_RAGuard(cv_kartstacking_invincibility_speedboost)
#define INVINACCELBOOST K_RAGuard(cv_kartstacking_invincibility_accelboost)
#define INVINSTACKABLE K_RAGuard(cv_kartstacking_invincibility_stackable)
#define GROWSPEEDBOOST K_RAGuard(cv_kartstacking_grow_speedboost)
#define GROWACCELBOOST K_RAGuard(cv_kartstacking_grow_accelboost)
#define GROWSTACKABLE K_RAGuard(cv_kartstacking_grow_stackable)
#define FLAMESPEEDVAL K_RAGuard(cv_kartstacking_flame_speedval)
#define FLAMEACCELBOOST K_RAGuard(cv_kartstacking_flame_accelboost)
#define FLAMESTACKABLE K_RAGuard(cv_kartstacking_flame_stackable)
#define STARTSPEEDBOOST K_RAGuard(cv_kartstacking_start_speedboost)
#define STARTACCELBOOST K_RAGuard(cv_kartstacking_start_accelboost)
#define STARTSTACKABLE K_RAGuard(cv_kartstacking_start_stackable)
#define DRIFTSPEEDBOOST K_RAGuard(cv_kartstacking_drift_speedboost)
#define DRIFTACCELBOOST K_RAGuard(cv_kartstacking_drift_accelboost)
#define DRIFTSTACKABLE K_RAGuard(cv_kartstacking_drift_stackable)
#define RINGSPEEDBOOST K_RAGuard(cv_kartstacking_ring_speedboost)
#define RINGACCELBOOST K_RAGuard(cv_kartstacking_ring_accelboost)
#define RINGSTACKABLE K_RAGuard(cv_kartstacking_ring_stackable)
#define CANTCHAINOFFROAD (cv_kartchaining.value && !cv_kartchainingoffroad.value)
@ -106,14 +106,7 @@ typedef enum
#define RINGVOLUMEREGEN 1
#define RINGTRANSPARENCYREGEN 3
typedef enum
{
RAG_INT,
RAG_FLOAT,
} raguard_e;
INT32 K_RAGuard(consvar_t cvar, SINT8 mode);
INT32 K_RAGuard(consvar_t cvar);
angle_t K_ReflectAngle(angle_t angle, angle_t against, fixed_t maxspeed, fixed_t yourspeed);