From 9cbeca959565278580103d7b1215302394045f7b Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Fri, 19 Jan 2024 16:40:22 -0700 Subject: [PATCH 1/2] Fix fault exit conditions triggering before hitlag ended --- src/k_kart.c | 2 +- src/p_spec.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index b07c83d10..dfcaaee68 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8706,7 +8706,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->nextringaward = 99; // Next time we need to award superring, spawn the first one instantly. } - if (player->pflags & PF_VOID) // Returning from FAULT VOID + if (player->pflags & PF_VOID && player->mo->hitlag == 0) // Returning from FAULT VOID { player->pflags &= ~PF_VOID; player->mo->renderflags &= ~RF_DONTDRAW; diff --git a/src/p_spec.c b/src/p_spec.c index c2e9d691e..d10adc7ee 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1920,8 +1920,9 @@ static void K_HandleLapIncrement(player_t *player) player->mo->renderflags |= RF_DONTDRAW; player->mo->flags |= MF_NOCLIPTHING; player->nocontrol = UINT16_MAX; - player->hyudorotimer = UINT16_MAX; - player->speed = 0; + player->mo->momx = 0; + player->mo->momy = 0; + player->mo->momz = 0; K_StripItems(player); player->faultflash = TICRATE/3; ClearFakePlayerSkin(player); From 1a44474cda3486ede4d12997fa660f133eaddbdc Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Fri, 19 Jan 2024 19:34:27 -0700 Subject: [PATCH 2/2] Activate FAULT HUD when VOID --- src/k_kart.c | 2 +- src/p_spec.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index dfcaaee68..fb3bd4f2b 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7921,7 +7921,7 @@ void K_KartPlayerHUDUpdate(player_t *player) if (player->positiondelay) player->positiondelay--; - if (!(player->pflags & PF_FAULT)) + if (!(player->pflags & PF_FAULT || player->pflags & PF_VOID)) player->karthud[khud_fault] = 0; else if (player->karthud[khud_fault] > 0 && player->karthud[khud_fault] <= 2*TICRATE) player->karthud[khud_fault]++; diff --git a/src/p_spec.c b/src/p_spec.c index d10adc7ee..e42c6f89c 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1925,6 +1925,7 @@ static void K_HandleLapIncrement(player_t *player) player->mo->momz = 0; K_StripItems(player); player->faultflash = TICRATE/3; + player->karthud[khud_fault] = 1; ClearFakePlayerSkin(player); S_StartSound(player->mo, sfx_s3k8a); P_MoveOrigin(player->mo, player->mo->old_x, player->mo->old_y, player->mo->z);