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)
last_sound = SND_UNDEFINED;
last_music = MUS_UNDEFINED;
+ FadeSetEnterScreen();
+
if (game_status_last_screen == GAME_MODE_INFO)
{
if (num_title_screens == 0)
/* only required to update logic for redrawing global border */
ClearField();
+ /* title screens may have different window size */
ChangeViewportPropertiesIfNeeded();
if (tci->is_image)
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);
FadeIn(REDRAW_ALL);
- fading = fading_next;
-
DelayReached(&title_delay, 0); /* reset delay counter */
return;
if (music == MUS_UNDEFINED || music != last_music)
FadeMusic();
+ fading = getTitleFading(tci);
+
FadeOut(REDRAW_ALL);
if (tci->is_image)
else
DrawTitleScreenMessage(tci->local_nr, tci->initial);
- fading_next = getTitleFading(tci);
-
sound = getTitleSound(tci);
music = getTitleMusic(tci);
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
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);