Fade to white before the Podium if you successfully get the Emerald/Prize

Further Sealed Star polish requested on the gitlab.
This commit is contained in:
toaster 2023-08-26 23:30:12 +01:00
parent 908022c821
commit 6869496843
4 changed files with 47 additions and 1 deletions

View file

@ -1249,6 +1249,10 @@ boolean G_IsTitleCardAvailable(void)
if (gametyperules & GTR_SPECIALSTART)
return false;
// ALso.
if (K_PodiumSequence() == true)
return false;
// The title card is available.
return true;
}

View file

@ -94,6 +94,21 @@ gp_rank_e K_PodiumGrade(void)
return podiumData.grade;
}
/*--------------------------------------------------
boolean K_PodiumHasEmerald(void)
See header file for description.
--------------------------------------------------*/
boolean K_PodiumHasEmerald(void)
{
if (K_PodiumSequence() == false)
{
return false;
}
return podiumData.rank.specialWon;
}
/*--------------------------------------------------
UINT8 K_GetPodiumPosition(player_t *player)
@ -284,6 +299,7 @@ boolean K_StartCeremony(void)
G_SetGametype(GT_RACE);
G_DoLoadLevelEx(false, GS_CEREMONY);
wipegamestate = GS_CEREMONY; // I don't know what else to do here
r_splitscreen = 0; // Only one screen for the ceremony
R_ExecuteSetViewSize();

View file

@ -69,6 +69,20 @@ boolean K_PodiumRanking(void);
gp_rank_e K_PodiumGrade(void);
/*--------------------------------------------------
boolean K_PodiumHasEmerald(void)
Returns whether the Emerald or Prize was collected.
Input Arguments:-
N/A
Return:-
true if the Emerald/Prize was collected during the GP, otherwise false.
--------------------------------------------------*/
boolean K_PodiumHasEmerald(void);
/*--------------------------------------------------
UINT8 K_GetPodiumPosition(player_t *player);

View file

@ -8216,8 +8216,17 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate)
}
}
if (gametyperules & GTR_SPECIALSTART)
if (K_PodiumHasEmerald())
{
// Special Stage out
if (ranspecialwipe != 2)
S_StartSound(NULL, sfx_s3k6a);
levelfadecol = 0;
wipetype = wipe_encore_towhite;
}
else if (gametyperules & GTR_SPECIALSTART)
{
// Special Stage in
if (ranspecialwipe != 2)
S_StartSound(NULL, sfx_s3kaf);
levelfadecol = 0;
@ -8225,6 +8234,7 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate)
}
else if (skipstats == 1)
{
// MapWarp
if (ranspecialwipe != 2)
S_StartSound(NULL, sfx_s3k73);
levelfadecol = 0;
@ -8232,11 +8242,13 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate)
}
else if (encoremode)
{
// Encore
levelfadecol = 0;
wipetype = wipe_encore_towhite;
}
else
{
// Default
levelfadecol = 31;
}