cvar-ify the air thrust powers

This commit is contained in:
minenice55 2025-11-26 21:58:51 -05:00
parent 4af1061b70
commit d855c05854
3 changed files with 19 additions and 6 deletions

View file

@ -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);

View file

@ -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;

View file

@ -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));