Special Stages: Distinguish between failures with and without lives.

- With lives remaining: No FINISH text, 1 second before restart
- With no lives remaining: Yes FINISH text, 2 and a half seconds before return to menu(/emeraldless podium when implemented)
This commit is contained in:
toaster 2023-02-13 18:03:56 +00:00
parent 61de5367d7
commit 8b14d10506
2 changed files with 12 additions and 2 deletions

View file

@ -7233,7 +7233,10 @@ void K_KartPlayerHUDUpdate(player_t *player)
player->karthud[khud_ringspblock] = (leveltime % 14); // reset to normal anim next time player->karthud[khud_ringspblock] = (leveltime % 14); // reset to normal anim next time
} }
if (player->exiting) if (player->exiting
&& (specialstageinfo.valid == false
|| !(player->pflags & PF_NOCONTEST)
|| player->lives <= 0))
{ {
if (player->karthud[khud_finish] <= 2*TICRATE) if (player->karthud[khud_finish] <= 2*TICRATE)
player->karthud[khud_finish]++; player->karthud[khud_finish]++;

View file

@ -1313,9 +1313,16 @@ void P_DoPlayerExit(player_t *player)
if (P_CheckRacers() && !exitcountdown) if (P_CheckRacers() && !exitcountdown)
{ {
if (specialstageinfo.valid == true && losing == true) if (specialstageinfo.valid == true && losing == true)
{
if (player->lives > 0)
{
exitcountdown = TICRATE;
}
else
{ {
exitcountdown = (5*TICRATE)/2; exitcountdown = (5*TICRATE)/2;
} }
}
else else
{ {
exitcountdown = raceexittime+1; exitcountdown = raceexittime+1;