cvar-ify the air thrust powers
This commit is contained in:
parent
4af1061b70
commit
d855c05854
3 changed files with 19 additions and 6 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
17
src/k_kart.c
17
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));
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue