X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fscreens.c;h=1f94c7850526b018393acae400a9c0b37980e86c;hp=4461c4b7995531a78b0545d2333b0b5f4ae0c4ce;hb=064971ae82e2e3f98dc55e75b15c192c9165fb4e;hpb=e26e3f7d6874ffc7c399649944ca6be55c1f7368 diff --git a/src/screens.c b/src/screens.c index 4461c4b7..1f94c785 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1552,9 +1552,6 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) static int last_sound = -1, last_music = -1; boolean return_to_main_menu = FALSE; struct TitleControlInfo *tci; - struct TitleFadingInfo fading_default; - struct TitleFadingInfo fading_last = fading; - struct TitleFadingInfo fading_next; int sound, music; if (button == MB_MENU_INITIALIZE) @@ -1566,6 +1563,8 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) last_sound = SND_UNDEFINED; last_music = MUS_UNDEFINED; + FadeSetEnterScreen(); + if (game_status_last_screen == GAME_MODE_INFO) { if (num_title_screens == 0) @@ -1584,6 +1583,7 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) /* only required to update logic for redrawing global border */ ClearField(); + /* title screens may have different window size */ ChangeViewportPropertiesIfNeeded(); if (tci->is_image) @@ -1591,17 +1591,6 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) else DrawTitleScreenMessage(tci->local_nr, tci->initial); - fading_default = (tci->initial ? title_initial_default : title_default); - - fading = fading_next = getTitleFading(tci); - - if (!(fading_last.fade_mode & FADE_TYPE_TRANSFORM) && - fading_next.fade_mode & FADE_TYPE_TRANSFORM) - { - fading.fade_mode = FADE_MODE_FADE; - fading.fade_delay = fading_default.fade_delay; - } - sound = getTitleSound(tci); music = getTitleMusic(tci); @@ -1617,8 +1606,6 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) FadeIn(REDRAW_ALL); - fading = fading_next; - DelayReached(&title_delay, 0); /* reset delay counter */ return; @@ -1658,6 +1645,8 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) if (music == MUS_UNDEFINED || music != last_music) FadeMusic(); + fading = getTitleFading(tci); + FadeOut(REDRAW_ALL); if (tci->is_image) @@ -1665,8 +1654,6 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) else DrawTitleScreenMessage(tci->local_nr, tci->initial); - fading_next = getTitleFading(tci); - sound = getTitleSound(tci); music = getTitleMusic(tci); @@ -1678,15 +1665,8 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) last_sound = sound; last_music = music; - /* last screen already faded out, next screen has no animation */ - if (!(fading.fade_mode & FADE_TYPE_TRANSFORM) && - fading_next.fade_mode == FADE_MODE_NONE) - fading = fading_next; - FadeIn(REDRAW_ALL); - fading = fading_next; - DelayReached(&title_delay, 0); /* reset delay counter */ } else @@ -2203,6 +2183,11 @@ static void DrawInfoScreen_Main() PlayMenuSound(); PlayMenuMusic(); +#if 1 + // needed after returning from title screens with different window size + OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); +#endif + DrawMaskedBorder(fade_mask); FadeIn(fade_mask);