StopAnimation();
}
-static void DrawMainMenuExt(int fade_delay)
+void DrawMainMenuExt(int redraw_mask, boolean do_fading)
{
static LevelDirTree *leveldir_last_valid = NULL;
boolean levelset_has_changed = FALSE;
#if 1
#if 1
- FadeIn(fade_delay);
+ if (do_fading)
+ FadeIn(redraw_mask);
+ else
+ BackToFront();
#else
BackToFront();
#endif
#endif
}
+void DrawAndFadeInMainMenu(int redraw_mask)
+{
+ DrawMainMenuExt(redraw_mask, TRUE);
+}
+
void DrawMainMenu()
{
- DrawMainMenuExt(0);
+ DrawMainMenuExt(REDRAW_ALL, FALSE);
}
#if 0
boolean return_to_main_menu = FALSE;
boolean use_fading_main_menu = TRUE;
boolean use_cross_fading = TRUE;
- int fade_delay = 500;
- int post_delay = fade_delay / 2;
if (button == MB_MENU_INITIALIZE)
{
FadeSoundsAndMusic();
- FadeOut(fade_delay, post_delay);
+ FadeOut(REDRAW_ALL);
}
/* force TITLE music on title info screen */
DrawTitleScreenImage(title_nr);
- FadeIn(fade_delay);
+ FadeIn(REDRAW_ALL);
return;
}
title_nr++;
if (!use_cross_fading)
- FadeOut(fade_delay, post_delay);
+ FadeOut(REDRAW_ALL);
if (title_nr < MAX_NUM_TITLE_SCREENS &&
graphic_info[IMG_TITLESCREEN_1 + title_nr].bitmap != NULL)
{
Bitmap *drawto_last = drawto;
+#if 1
if (use_cross_fading)
- drawto = bitmap_db_title;
-
+ FadeCrossSaveBackbuffer();
+#else
+ if (use_cross_fading)
+ drawto = bitmap_db_cross;
+#endif
DrawTitleScreenImage(title_nr);
drawto = drawto_last;
if (use_cross_fading)
- FadeCross(fade_delay);
+ FadeCross(REDRAW_ALL);
else
- FadeIn(fade_delay);
+ FadeIn(REDRAW_ALL);
}
else
{
FadeSoundsAndMusic();
- FadeOut(fade_delay, post_delay);
+ FadeOut(REDRAW_ALL);
return_to_main_menu = TRUE;
}
if (return_to_main_menu)
{
- int menu_fade_delay = (use_fading_main_menu ? fade_delay : 0);
-
RedrawBackground();
if (game_status == GAME_MODE_INFO)
OpenDoor(DOOR_CLOSE_1 | DOOR_CLOSE_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
info_mode = INFO_MODE_MAIN;
- DrawInfoScreenExt(menu_fade_delay);
+ DrawInfoScreenExt(use_fading_main_menu);
}
else /* default: return to main menu */
{
OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
game_status = GAME_MODE_MAIN;
- DrawMainMenuExt(menu_fade_delay);
+ DrawMainMenuExt(REDRAW_ALL, use_fading_main_menu);
}
}
}
{ 0, NULL, NULL }
};
-static void DrawInfoScreen_Main(int fade_delay)
+static void DrawInfoScreen_Main(boolean do_fading)
{
int i;
PlayMenuSound();
PlayMenuMusic();
- FadeIn(fade_delay);
+ if (do_fading)
+ FadeIn(REDRAW_ALL);
+ else
+ BackToFront();
+
InitAnimation();
#else
if (button_released || button == MB_MENU_INITIALIZE)
{
+ Bitmap *drawto_last = drawto;
int y = 0;
if (button != MB_MENU_INITIALIZE)
FadeSoundsAndMusic();
+#if 1
+ if (button != MB_MENU_INITIALIZE)
+ FadeCrossSaveBackbuffer();
+#else
+ if (button != MB_MENU_INITIALIZE)
+ drawto = bitmap_db_cross;
+#endif
+
ClearWindow();
DrawHeadline();
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for next page");
+
+ drawto = drawto_last;
+
+ if (button != MB_MENU_INITIALIZE)
+ FadeCross(REDRAW_FIELD);
}
if (list != NULL && list->is_sound && sound_info[list->music].loop)
}
else if (button == MB_MENU_CHOICE)
{
+ Bitmap *drawto_last = drawto;
+ boolean show_screen;
+
screen_nr++;
- if (!DrawInfoScreen_CreditsScreen(screen_nr))
+#if 1
+ FadeCrossSaveBackbuffer();
+#else
+ drawto = bitmap_db_cross;
+#endif
+
+ show_screen = DrawInfoScreen_CreditsScreen(screen_nr);
+
+ drawto = drawto_last;
+
+ if (show_screen)
+ {
+ FadeCross(REDRAW_FIELD);
+ }
+ else
{
FadeSoundsAndMusic();
}
}
-static void DrawInfoScreenExt(int fade_delay)
+static void DrawInfoScreenExt(boolean do_fading)
{
SetMainBackgroundImage(IMG_BACKGROUND_INFO);
else if (info_mode == INFO_MODE_LEVELSET)
DrawInfoScreen_LevelSet();
else
- DrawInfoScreen_Main(fade_delay);
+ DrawInfoScreen_Main(do_fading);
if (info_mode != INFO_MODE_MAIN &&
info_mode != INFO_MODE_TITLE &&
if (highlight_position < 0)
LoadScore(level_nr);
+ FadeOut(REDRAW_FIELD);
+
+#if 0
FadeToFront();
+#endif
InitAnimation();
PlayMenuSound();
PlayMenuMusic();
HandleHallOfFame(highlight_position, 0, 0, 0, MB_MENU_INITIALIZE);
+
+ FadeIn(REDRAW_FIELD);
}
static void drawHallOfFameList(int first_entry, int highlight_position)
static int first_entry = 0;
static int highlight_position = 0;
int step = (button == 1 ? 1 : button == 2 ? 5 : 10);
- int button_released = !button;
if (button == MB_MENU_INITIALIZE)
{
drawHallOfFameList(first_entry, highlight_position);
}
}
- else if (button_released)
+ else if (button == MB_MENU_LEAVE)
{
FadeSound(SND_BACKGROUND_SCORES);
+
game_status = GAME_MODE_MAIN;
+
DrawMainMenu();
}
+ else if (button == MB_MENU_CHOICE)
+ {
+ FadeSound(SND_BACKGROUND_SCORES);
+ FadeOut(REDRAW_FIELD);
+
+ game_status = GAME_MODE_MAIN;
+
+ DrawAndFadeInMainMenu(REDRAW_FIELD);
+ }
if (game_status == GAME_MODE_SCORES)
PlayMenuSoundIfLoop();
#if 0
{ TYPE_SWITCH, &setup.soft_scrolling, "Soft Scrolling:" },
{ TYPE_SWITCH, &setup.double_buffering,"Double-Buffering:" },
- { TYPE_SWITCH, &setup.fading, "Fading:" },
#endif
+ { TYPE_SWITCH, &setup.fading, "Fading:" },
{ TYPE_SWITCH, &setup.quick_switch, "Quick Player Focus Switch:" },
{ TYPE_SWITCH, &setup.quick_doors, "Quick Menu Doors:" },
{ TYPE_SWITCH, &setup.show_titlescreen,"Show Title Screens:" },