Fix crossfades

Fixes NoReload using the wrong wipestyle.
Also fixes non-titlemap title screen wipes using the wrong wipestyle.
This commit is contained in:
Jaime Passos 2019-11-22 17:44:42 -03:00
parent 6545284eaf
commit faa305a2f2
4 changed files with 13 additions and 8 deletions

View File

@ -152,9 +152,10 @@ extern wipestyle_t wipestyle;
typedef enum
{
WSF_FADEOUT = 1,
WSF_FADEIN = 1<<1,
WSF_TOWHITE = 1<<2,
WSF_FADEOUT = 1,
WSF_FADEIN = 1<<1,
WSF_TOWHITE = 1<<2,
WSF_CROSSFADE = 1<<3,
} wipestyleflags_t;
extern wipestyleflags_t wipestyleflags;

View File

@ -95,7 +95,7 @@ boolean WipeStageTitle = false;
INT32 lastwipetic = 0;
wipestyle_t wipestyle = WIPESTYLE_NORMAL;
wipestyleflags_t wipestyleflags = 0;
wipestyleflags_t wipestyleflags = WSF_CROSSFADE;
#ifndef NOWIPE
static UINT8 *wipe_scr_start; //screen 3
@ -404,7 +404,9 @@ void F_RunWipe(UINT8 wipetype, boolean drawMenu)
// don't know where else to put this.
// this any good?
if (gamestate == GS_LEVEL || gamestate == GS_TITLESCREEN)
if ((gamestate == GS_LEVEL || gamestate == GS_TITLESCREEN)
&& (wipestyleflags & (WSF_FADEIN|WSF_FADEOUT)) // only if wipestyleflags are actually set
&& !(wipestyleflags & WSF_CROSSFADE)) // and if not crossfading
wipestyle = WIPESTYLE_LEVEL;
else
wipestyle = WIPESTYLE_NORMAL;

View File

@ -1803,6 +1803,9 @@ void G_DoLoadLevel(boolean resetplayer)
//
void G_StartTitleCard(void)
{
wipestyleflags |= WSF_FADEIN;
wipestyleflags &= ~WSF_FADEOUT;
// The title card has been disabled for this map.
// Oh well.
if (mapheaderinfo[gamemap-1]->levelflags & LF_NOTITLECARD)
@ -1819,8 +1822,6 @@ void G_StartTitleCard(void)
// start the title card
WipeStageTitle = (!titlemapinaction);
wipestyleflags |= WSF_FADEIN;
wipestyleflags &= ~WSF_FADEOUT;
}
//
@ -2855,6 +2856,7 @@ void G_DoReborn(INT32 playernum)
// Do a wipe
wipegamestate = -1;
wipestyleflags = WSF_CROSSFADE;
if (camera.chase)
P_ResetCamera(&players[displayplayer], &camera);

View File

@ -2725,7 +2725,7 @@ boolean P_SetupLevel(boolean skipprecip)
S_FadeOutStopMusic(MUSICRATE/4); //FixedMul(FixedDiv(F_GetWipeLength(wipedefs[wipe_speclevel_towhite])*NEWTICRATERATIO, NEWTICRATE), MUSICRATE)
F_WipeStartScreen();
wipestyleflags |= WSF_FADEOUT|WSF_TOWHITE;
wipestyleflags |= (WSF_FADEOUT|WSF_TOWHITE);
#ifdef HWRENDER
// uh..........