Fix stiffness feeling of airdrop inputs and fix landingboost timer

This commit is contained in:
NepDisk 2026-02-06 01:07:50 -05:00
parent 74338f1996
commit cc146b5021
2 changed files with 8 additions and 7 deletions

View file

@ -684,8 +684,8 @@ struct player_t
UINT8 ringvolume; // When consuming lots of rings, lower the sound a little.
UINT8 ringtransparency; // When consuming lots of rings, fade out the rings again.
tic_t airdroptime; // Tracks how long the player has been in airdrop. In light airdrop, handles the delay before it kicks in.
tic_t airdropbuffer; // Time during which heavy air drop will instantly trigger upon going airborne.
INT32 airdroptime; // Tracks how long the player has been in airdrop. In light airdrop, handles the delay before it kicks in.
INT32 airdropbuffer; // Time during which heavy air drop will instantly trigger upon going airborne.
p_airdropflags_t airdropflags; // Airdrop-exclusive bitflags.
mobj_t *shieldtracer; // Blankart: Shield mobj

View file

@ -6978,7 +6978,7 @@ static void K_SpawnFallLines(player_t *player, boolean ringdrop)
static void K_AirDrop(player_t *player, ticcmd_t *cmd)
{
const tic_t airbrakedelay = TICRATE/3;
const INT32 airbrakedelay = TICRATE/3;
if (player->airdropbuffer > 0)
{
@ -7030,7 +7030,7 @@ static void K_AirDrop(player_t *player, ticcmd_t *cmd)
}
if (player->airdroptime > 1)
{
player->dropdash = TICRATE/4 + min(TICRATE, ((FixedDiv(player->airdroptime, TICRATE) * TICRATE) / FRACUNIT));
player->startboost = TICRATE/4 + min(TICRATE, ((FixedDiv(player->airdroptime, TICRATE) * TICRATE) / FRACUNIT));
// Take off!
S_StartSound(player->mo, sfx_shrpgo);
@ -7097,20 +7097,21 @@ static void K_AirDrop(player_t *player, ticcmd_t *cmd)
player->mo->momz -= FixedMul(2*gravity, mapobjectscale)*P_MobjFlip(player->mo);
}
player->airdroptime++;
if (player->karthud[khud_heavydropcam] < TICRATE)
player->karthud[khud_heavydropcam]++;
}
else if (player->airdropflags & PAF_AIRDROP_LIGHT)
{
K_SpawnFallLines(player, false);
if (player->airdroptime >= airbrakedelay)
{
player->mo->momz -= FixedMul(gravity, mapobjectscale)*P_MobjFlip(player->mo);
K_SpawnFallLines(player, false);
K_SpawnAirdropTrail(player);
}
player->airdroptime++;
}
if (K_AirDropActive() && !P_IsObjectOnGround(player->mo))
player->airdroptime++;
}
// Returns the bumpspark value as an enum.