diff --git a/src/f_finale.h b/src/f_finale.h index 024b183b2..0002cb3cf 100644 --- a/src/f_finale.h +++ b/src/f_finale.h @@ -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; diff --git a/src/f_wipe.c b/src/f_wipe.c index 20651cb1d..0c4c591c8 100644 --- a/src/f_wipe.c +++ b/src/f_wipe.c @@ -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; diff --git a/src/g_game.c b/src/g_game.c index 2fa70353e..963fc00f0 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -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); diff --git a/src/p_setup.c b/src/p_setup.c index e87a088d8..b729177aa 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -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..........