{ -1, NULL },
};
+#define XFADE 1
+
#define DRAW_MODE(s) ((s) >= GAME_MODE_MAIN && \
(s) <= GAME_MODE_SETUP ? (s) : \
(s) == GAME_MODE_PSEUDO_TYPENAME ? \
}
}
+#if 0
if (ti.anim_mode == ANIM_NONE)
ti.fade_delay = ti.post_delay = 0;
+#endif
return ti;
}
title = title_default;
#endif
+#if 0
+ printf("::: %d, %d\n", fading.anim_mode == ANIM_CROSSFADE,
+ redraw_mask == REDRAW_ALL);
+#endif
+
+#if 1
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(redraw_mask);
+#endif
+#endif
+
UnmapAllGadgets();
FadeSoundsAndMusic();
SetDrawtoField(DRAW_BACKBUFFER);
#endif
-#if 1
+#if 0
if (levelset_has_changed)
fading = title_default;
#endif
LoadLevel(level_nr);
SetMainBackgroundImage(IMG_BACKGROUND_MAIN);
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(redraw_mask);
+#endif
+#endif
+
+#if 1
+ if (redraw_mask == REDRAW_ALL)
+ {
+ int door_state = GetDoorState();
+
+ RedrawBackground();
+
+ // OpenDoor(door_state | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
+
+#if 0
+#if 1
+ OpenDoor(DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
+#else
+ OpenDoor(DOOR_CLOSE_1 | DOOR_CLOSE_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
+#endif
+#endif
+ }
+#endif
+
ClearWindow();
#if 1
FreeScreenGadgets();
CreateScreenGadgets();
+#if 0
+ BlitBitmap(drawto, window, VX, VY, VXSIZE, VYSIZE, VX, VY);
+ Delay(3000);
+#endif
+
/* map gadgets for main menu screen */
MapTapeButtons();
MapScreenMenuGadgets(SCREEN_MASK_MAIN);
DrawMaskedBorder(REDRAW_ALL);
+#if 1
+ if (redraw_mask == REDRAW_ALL)
+ {
+ int door_state = GetDoorState();
+
+ OpenDoor(door_state | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
+ }
+#endif
+
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(redraw_mask);
+ else
+ FadeIn(redraw_mask);
+#else
#if 1
if (!do_fading)
BackToFront();
else
BackToFront();
#endif
+#endif
#if 1
fading = menu.navigation;
if (game_status == GAME_MODE_INFO && num_title_screens == 0)
{
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
+
+ fading = menu.destination;
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
{
FadeSoundsAndMusic();
+#if 0
#if 1
{
#if 0
}
#else
FadeOut(REDRAW_ALL);
+#endif
#endif
return_to_main_menu = TRUE;
if (return_to_main_menu)
{
+#if 0
RedrawBackground();
+#endif
SetMouseCursor(CURSOR_DEFAULT);
if (game_status == GAME_MODE_INFO)
{
+#if 0
OpenDoor(DOOR_CLOSE_1 | DOOR_CLOSE_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
+#endif
info_mode = INFO_MODE_MAIN;
DrawInfoScreenExt(REDRAW_ALL, use_fading_main_menu);
}
else /* default: return to main menu */
{
+#if 0
OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
+#endif
game_status = GAME_MODE_MAIN;
DrawMainMenuExt(REDRAW_ALL, use_fading_main_menu);
game_status = GAME_MODE_EDITOR;
+ fading = menu.destination;
+
DrawLevelEd();
}
else if (pos == MAIN_CONTROL_INFO)
game_status = GAME_MODE_INFO;
info_mode = INFO_MODE_MAIN;
+ fading = menu.navigation;
+
DrawInfoScreen();
}
else if (pos == MAIN_CONTROL_GAME)
static void execInfoTitleScreen()
{
+ fading = menu.destination;
+
info_mode = INFO_MODE_TITLE;
DrawInfoScreen();
}
static void execInfoElements()
{
+ fading = menu.destination;
+
info_mode = INFO_MODE_ELEMENTS;
DrawInfoScreen();
}
static void execInfoMusic()
{
+ fading = menu.destination;
+
info_mode = INFO_MODE_MUSIC;
DrawInfoScreen();
}
static void execInfoCredits()
{
+ fading = menu.destination;
+
info_mode = INFO_MODE_CREDITS;
DrawInfoScreen();
}
static void execInfoProgram()
{
+ fading = menu.destination;
+
info_mode = INFO_MODE_PROGRAM;
DrawInfoScreen();
}
static void execInfoVersion()
{
+ fading = menu.destination;
+
info_mode = INFO_MODE_VERSION;
DrawInfoScreen();
}
static void execInfoLevelSet()
{
+ fading = menu.destination;
+
info_mode = INFO_MODE_LEVELSET;
DrawInfoScreen();
}
static void execExitInfo()
{
+ fading = menu.navigation;
+
game_status = GAME_MODE_MAIN;
+#if 1
+ DrawMainMenuExt(REDRAW_FIELD, FALSE);
+#else
DrawMainMenu();
+#endif
}
static struct TokenInfo info_info_main[] =
UnmapAllGadgets();
CloseDoor(DOOR_CLOSE_2);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(redraw_mask);
+#endif
+
+#if 1
+ if (redraw_mask == REDRAW_ALL)
+ {
+ RedrawBackground();
+ OpenDoor(DOOR_CLOSE_1 | DOOR_CLOSE_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
+ }
+#endif
+
ClearWindow();
DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, "Info Screen");
DrawMaskedBorder(REDRAW_ALL);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(redraw_mask);
+ else
+ FadeIn(redraw_mask);
+#else
#if 1
if (!do_fading)
BackToFront();
FadeIn(redraw_mask);
else
BackToFront();
+#endif
#endif
InitAnimation();
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_LEVELSET);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
ClearWindow();
DrawHeadline();
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for info menu");
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
}
void DrawInfoScreen_HelpAnim(int start, int max_anims, boolean init)
{
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_ELEMENTS);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
LoadHelpAnimInfo();
LoadHelpTextInfo();
HandleInfoScreen_Elements(MB_MENU_INITIALIZE);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
InitAnimation();
}
if (page >= num_pages)
{
FadeSoundsAndMusic();
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
{
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_MUSIC);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
ClearWindow();
DrawHeadline();
HandleInfoScreen_Music(MB_MENU_INITIALIZE);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
}
void HandleInfoScreen_Music(int button)
if (list == NULL)
{
FadeSoundsAndMusic();
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
FadeSoundsAndMusic();
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
HandleInfoScreen_Credits(MB_MENU_INITIALIZE);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
}
void HandleInfoScreen_Credits(int button)
else
{
FadeSoundsAndMusic();
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_PROGRAM);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
ClearWindow();
DrawHeadline();
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for info menu");
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
}
void HandleInfoScreen_Program(int button)
PlaySound(SND_MENU_ITEM_SELECTING);
FadeSoundsAndMusic();
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_VERSION);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
ClearWindow();
DrawHeadline();
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for info menu");
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
}
void HandleInfoScreen_Version(int button)
PlaySound(SND_MENU_ITEM_SELECTING);
FadeSoundsAndMusic();
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_LEVELSET);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
ClearWindow();
DrawHeadline();
DrawTextCentered(mSY + SYSIZE - 20, FONT_TEXT_4,
"Press any key or button for info menu");
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
}
void HandleInfoScreen_LevelSet(int button)
PlaySound(SND_MENU_ITEM_SELECTING);
FadeSoundsAndMusic();
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
void DrawInfoScreen()
{
- fading = menu.destination;
-
DrawInfoScreenExt(REDRAW_ALL, FALSE);
}
CloseDoor(DOOR_CLOSE_2);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#endif
+
ClearWindow();
HandleChooseTree(0, 0, 0, 0, MB_MENU_INITIALIZE, ti_ptr);
MapScreenTreeGadgets(*ti_ptr);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(redraw_mask);
+ else
+ FadeIn(redraw_mask);
+#else
FadeToFront();
+#endif
+
InitAnimation();
}
else
{
game_status = GAME_MODE_MAIN;
+#if 1
+ DrawMainMenuExt(REDRAW_FIELD, FALSE);
+#else
DrawMainMenu();
+#endif
}
return;
if (highlight_position < 0)
LoadScore(level_nr);
+ fading = menu.destination;
+
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
InitAnimation();
HandleHallOfFame(highlight_position, 0, 0, 0, MB_MENU_INITIALIZE);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(REDRAW_FIELD);
+ else
+ FadeIn(REDRAW_FIELD);
+#else
FadeIn(REDRAW_FIELD);
+#endif
}
static void drawHallOfFameList(int first_entry, int highlight_position)
PlaySound(SND_MENU_ITEM_SELECTING);
FadeSound(SND_BACKGROUND_SCORES);
+
+#if 0
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#else
FadeOut(REDRAW_FIELD);
+#endif
+#endif
game_status = GAME_MODE_MAIN;
static void execExitSetup()
{
game_status = GAME_MODE_MAIN;
+#if 1
+ DrawMainMenuExt(REDRAW_FIELD, FALSE);
+#else
DrawMainMenu();
+#endif
}
static void execSaveAndExitSetup()
UnmapAllGadgets();
CloseDoor(DOOR_CLOSE_2);
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#endif
+
ClearWindow();
if (setup_mode == SETUP_MODE_MAIN)
"Joysticks deactivated in setup menu");
#endif
+#if 1
+ HandleSetupScreen_Generic(0, 0, 0, 0, MB_MENU_INITIALIZE);
+#endif
+
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(redraw_mask);
+ else
+ FadeIn(redraw_mask);
+#else
FadeToFront();
+#endif
+
InitAnimation();
+#if 0
HandleSetupScreen_Generic(0, 0, 0, 0, MB_MENU_INITIALIZE);
+#endif
}
void HandleSetupScreen_Generic(int mx, int my, int dx, int dy, int button)
int i;
#endif
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCrossSaveBackbuffer();
+ else
+ FadeOut(REDRAW_FIELD);
+#endif
+
ClearWindow();
#if 1
MapScreenMenuGadgets(SCREEN_MASK_INPUT);
HandleSetupScreen_Input(0, 0, 0, 0, MB_MENU_INITIALIZE);
+
+#if XFADE
+ if (fading.anim_mode == ANIM_CROSSFADE)
+ FadeCross(redraw_mask);
+ else
+ FadeIn(redraw_mask);
+#else
FadeToFront();
+#endif
+
InitAnimation();
}