From d855c05854419e4dcf960bbeb7e7ca6399566e30 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Wed, 26 Nov 2025 21:58:51 -0500 Subject: [PATCH] cvar-ify the air thrust powers --- src/d_netcmd.c | 4 ++++ src/d_netcmd.h | 4 ++++ src/k_kart.c | 17 +++++++++++------ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 759f460d0..806d0a482 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -556,6 +556,10 @@ consvar_t cv_kartairdrop = CVAR_INIT ("kartairdrop", "No", CV_NETVAR|CV_CALL|CV_ consvar_t cv_kartairthrust = CVAR_INIT ("kartairthrust", "Off", CV_NETVAR|CV_CALL|CV_NOINIT|CV_GUARD, CV_OnOff, KartAirThrust_OnChange); consvar_t cv_kartairthrust_reductionrate = CVAR_INIT ("kartairthrust_reductionrate", "0.5", CV_NETVAR|CV_FLOAT, CV_Unsigned, NULL); +consvar_t cv_kartairthrust_power1 = CVAR_INIT ("kartairthrust_power1", "0.2", CV_NETVAR|CV_FLOAT, CV_Unsigned, NULL); +consvar_t cv_kartairthrust_power2 = CVAR_INIT ("kartairthrust_power2", "0.35", CV_NETVAR|CV_FLOAT, CV_Unsigned, NULL); +consvar_t cv_kartairthrust_power3 = CVAR_INIT ("kartairthrust_power3", "0.5", CV_NETVAR|CV_FLOAT, CV_Unsigned, NULL); +consvar_t cv_kartairthrust_power4 = CVAR_INIT ("kartairthrust_power4", "0.75", CV_NETVAR|CV_FLOAT, CV_Unsigned, NULL); consvar_t cv_kartitemlitter = CVAR_INIT ("kartitemlitter", "On", CV_NETVAR|CV_CALL|CV_NOINIT, CV_OnOff, KartItemLitter_OnChange); consvar_t cv_kartitempush = CVAR_INIT ("kartitempush", "Off", CV_NETVAR|CV_CALL|CV_NOINIT, CV_OnOff, KartItemPush_OnChange); diff --git a/src/d_netcmd.h b/src/d_netcmd.h index 6d6668912..b7cd9ad6f 100644 --- a/src/d_netcmd.h +++ b/src/d_netcmd.h @@ -196,6 +196,10 @@ extern consvar_t cv_kartairdrop; extern consvar_t cv_kartairthrust; extern consvar_t cv_kartairthrust_reductionrate; +extern consvar_t cv_kartairthrust_power1; +extern consvar_t cv_kartairthrust_power2; +extern consvar_t cv_kartairthrust_power3; +extern consvar_t cv_kartairthrust_power4; extern consvar_t cv_kartitemlitter, cv_kartitempush; diff --git a/src/k_kart.c b/src/k_kart.c index 936307803..af2cafd6b 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -385,6 +385,10 @@ void K_RegisterKartStuff(void) CV_RegisterVar(&cv_kartairthrust); CV_RegisterVar(&cv_kartairthrust_reductionrate); + CV_RegisterVar(&cv_kartairthrust_power1); + CV_RegisterVar(&cv_kartairthrust_power2); + CV_RegisterVar(&cv_kartairthrust_power3); + CV_RegisterVar(&cv_kartairthrust_power4); CV_RegisterVar(&cv_kartslopeboost); @@ -8954,29 +8958,30 @@ static void K_KartDrift(player_t *player, boolean onground) } if (K_AirThrustActive() && !onground) // Air Thrust is enabled { - // before thrust, set player's target speed to their speed before the air thrust - // after the air thrust player's momentum will be reduced back to this value fixed_t airthrust = 0; switch (driftstage) { case 1: - airthrust = FRACUNIT / 6; // ~15% boost + airthrust = cv_kartairthrust_power1.value; break; case 2: - airthrust = FRACUNIT / 3; // ~33% boost + airthrust = cv_kartairthrust_power2.value; break; case 3: - airthrust = FRACUNIT / 2; // 50% boost + airthrust = cv_kartairthrust_power3.value; break; case 4: - airthrust = 3 * FRACUNIT / 4; // 75% boost + airthrust = cv_kartairthrust_power4.value; break; } if (driftstage > 0) { + // before thrust, set player's target speed to their speed before the air thrust + // after the air thrust player's momentum will be reduced back to this value player->airdriftspeed = max(K_GetKartSpeed(player, false, false), player->speed); + // Give the player a forward boost P_Thrust(player->mo, K_MomentumAngle(player->mo), FixedMul(player->speed, airthrust));