From 5d886b83ba05e0d9c2379cfa14510baed54f4f46 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Sun, 13 Apr 2025 15:07:10 -0400 Subject: [PATCH] Fix RAGuard and other minor fixes --- src/d_netcmd.c | 2 +- src/k_collide.c | 1 - src/k_kart.c | 35 +++++++++++++++++--------- src/k_kart.h | 65 ++++++++++++++++++++++--------------------------- 4 files changed, 53 insertions(+), 50 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 52cc7c211..f4c47f304 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -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) { diff --git a/src/k_collide.c b/src/k_collide.c index 88adcabff..9d6a21974 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -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; diff --git a/src/k_kart.c b/src/k_kart.c index a8b6bdf55..133e20998 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -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; diff --git a/src/k_kart.h b/src/k_kart.h index 5dc201177..6c2df086a 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -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);