mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Also tick (almost) all karthud array timers even during hitlag
Only exception is timers relating to ring usage, as that's intended to signify ring boost power (which is obviously paused during hitlag)
This commit is contained in:
parent
ec437b199c
commit
6c9c6eeaf8
2 changed files with 22 additions and 20 deletions
41
src/k_kart.c
41
src/k_kart.c
|
|
@ -7824,30 +7824,33 @@ void K_KartPlayerHUDUpdate(player_t *player)
|
|||
player->karthud[khud_itemblink] = 0;
|
||||
}
|
||||
|
||||
if (gametype == GT_RACE)
|
||||
if (!(gametyperules & GTR_SPHERES))
|
||||
{
|
||||
// 0 is the fast spin animation, set at 30 tics of ring boost or higher!
|
||||
if (player->ringboost >= 30)
|
||||
player->karthud[khud_ringdelay] = 0;
|
||||
else
|
||||
player->karthud[khud_ringdelay] = ((RINGANIM_DELAYMAX+1) * (30 - player->ringboost)) / 30;
|
||||
if (player->mo && player->mo->hitlag <= 0)
|
||||
{
|
||||
// 0 is the fast spin animation, set at 30 tics of ring boost or higher!
|
||||
if (player->ringboost >= 30)
|
||||
player->karthud[khud_ringdelay] = 0;
|
||||
else
|
||||
player->karthud[khud_ringdelay] = ((RINGANIM_DELAYMAX+1) * (30 - player->ringboost)) / 30;
|
||||
|
||||
if (player->karthud[khud_ringframe] == 0 && player->karthud[khud_ringdelay] > RINGANIM_DELAYMAX)
|
||||
{
|
||||
player->karthud[khud_ringframe] = 0;
|
||||
player->karthud[khud_ringtics] = 0;
|
||||
}
|
||||
else if ((player->karthud[khud_ringtics]--) <= 0)
|
||||
{
|
||||
if (player->karthud[khud_ringdelay] == 0) // fast spin animation
|
||||
if (player->karthud[khud_ringframe] == 0 && player->karthud[khud_ringdelay] > RINGANIM_DELAYMAX)
|
||||
{
|
||||
player->karthud[khud_ringframe] = ((player->karthud[khud_ringframe]+2) % RINGANIM_NUMFRAMES);
|
||||
player->karthud[khud_ringframe] = 0;
|
||||
player->karthud[khud_ringtics] = 0;
|
||||
}
|
||||
else
|
||||
else if ((player->karthud[khud_ringtics]--) <= 0)
|
||||
{
|
||||
player->karthud[khud_ringframe] = ((player->karthud[khud_ringframe]+1) % RINGANIM_NUMFRAMES);
|
||||
player->karthud[khud_ringtics] = min(RINGANIM_DELAYMAX, player->karthud[khud_ringdelay])-1;
|
||||
if (player->karthud[khud_ringdelay] == 0) // fast spin animation
|
||||
{
|
||||
player->karthud[khud_ringframe] = ((player->karthud[khud_ringframe]+2) % RINGANIM_NUMFRAMES);
|
||||
player->karthud[khud_ringtics] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
player->karthud[khud_ringframe] = ((player->karthud[khud_ringframe]+1) % RINGANIM_NUMFRAMES);
|
||||
player->karthud[khud_ringtics] = min(RINGANIM_DELAYMAX, player->karthud[khud_ringdelay])-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -8461,8 +8464,6 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
|
||||
K_UpdateTripwire(player);
|
||||
|
||||
K_KartPlayerHUDUpdate(player);
|
||||
|
||||
if (battleovertime.enabled && !(player->pflags & PF_ELIMINATED) && player->bumpers <= 0 && player->karmadelay <= 0)
|
||||
{
|
||||
if (player->overtimekarma)
|
||||
|
|
|
|||
|
|
@ -617,6 +617,7 @@ void P_Ticker(boolean run)
|
|||
if (!PLAYERCONDITION(i))
|
||||
continue;
|
||||
P_PlayerThink(&players[i]);
|
||||
K_KartPlayerHUDUpdate(&players[i]);
|
||||
}
|
||||
#undef PLAYERCONDITION
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue