Bitmap *bitmap = graphic_info[graphic].bitmap;
int sort_priority = graphic_info[graphic].sort_priority;
+#if 0
+ /* skip images and messages (fonts!) when using forced custom graphics */
+ if (setup.override_level_graphics && !initial)
+ continue;
+#endif
+
if (bitmap != NULL)
InitializeTitleControlsExt_AddTitleInfo(TRUE, initial, i, sort_priority);
}
char *filename = getLevelSetTitleMessageFilename(i, initial);
int sort_priority = tmi->sort_priority;
+#if 0
+ /* skip images and messages (fonts!) when using forced custom graphics */
+ if (setup.override_level_graphics)
+ continue;
+#endif
+
if (filename != NULL)
InitializeTitleControlsExt_AddTitleInfo(FALSE, initial, i, sort_priority);
}
{
num_title_screens = 0;
+#if 0
if (show_title_initial)
InitializeTitleControls_CheckTitleInfo(TRUE);
+#endif
InitializeTitleControls_CheckTitleInfo(FALSE);
{
static LevelDirTree *leveldir_last_valid = NULL;
boolean levelset_has_changed = FALSE;
-#if 0
- boolean local_team_mode = (!options.network && setup.team_mode);
- char *name_text = (local_team_mode ? "Team:" : "Name:");
- int name_width, level_width;
-#endif
-#if 0
- int i;
-#endif
-
-#if 0
- /* !!! CHANGE THIS !!! */
- title = title_default;
-#endif
-
-#if 0
- {
- int graphicA = element_info[EL_EM_DYNAMITE_ACTIVE].special_graphic[GFX_SPECIAL_ARG_EDITOR];
- int graphicB = element_info[EL_EM_DYNAMITE_ACTIVE].special_graphic[GFX_SPECIAL_ARG_PANEL];
- int graphic1 = element_info[EL_CONVEYOR_BELT_1_MIDDLE].special_graphic[GFX_SPECIAL_ARG_EDITOR];
- int graphic2 = element_info[EL_CONVEYOR_BELT_1_MIDDLE_ACTIVE].special_graphic[GFX_SPECIAL_ARG_EDITOR];
-
- printf("::: %d [%d] -> %d, %d [%d, %d]\n",
- graphicA, graphicB,
- graphic_info[graphicA].src_x,
- graphic_info[graphicA].src_y,
- graphic1, graphic2);
- }
-#endif
-
-#if 0
- printf("::: %d, %d\n", fading.anim_mode == ANIM_CROSSFADE,
- redraw_mask == REDRAW_ALL);
-#endif
+ boolean redraw_all = FALSE;
FadeSetLeaveScreen();
return;
}
-#if 1
+#if 0
FadeOut(redraw_mask);
-#endif
/* needed if last screen was the editor screen */
UndrawSpecialEditorDoor();
+#endif
/* needed if last screen was the setup screen and fullscreen state changed */
ToggleFullscreenIfNeeded();
/* needed if last screen (level choice) changed graphics, sounds or music */
ReloadCustomArtwork(0);
-#if defined(TARGET_SDL)
- SetDrawtoField(DRAW_BACKBUFFER);
-#endif
+ if (redraw_mask & REDRAW_ALL)
+ redraw_all = TRUE;
+#if 1
#if 0
- if (levelset_has_changed)
- fading = title_default;
+ printf("::: FadeOut @ DrawMainMenuExt ...\n");
+#endif
+ FadeOut(redraw_mask);
+#if 0
+ printf("::: FadeOut @ DrawMainMenuExt done\n");
#endif
-#if 1
- if (CheckTitleScreen(levelset_has_changed))
- {
- game_status = GAME_MODE_TITLE;
-
- DrawTitleScreen();
-
- return;
- }
+ /* needed if last screen was the editor screen */
+ UndrawSpecialEditorDoor();
+#endif
-#else
+#if defined(TARGET_SDL)
+ SetDrawtoField(DRAW_BACKBUFFER);
+#endif
- if (setup.show_titlescreen &&
- ((levelset_has_changed &&
- (graphic_info[IMG_TITLESCREEN_1].bitmap != NULL ||
- getLevelSetMessageFilename(1, FALSE) != NULL)) ||
- (show_title_initial &&
- (graphic_info[IMG_TITLESCREEN_INITIAL_1].bitmap != NULL ||
- getLevelSetMessageFilename(1, TRUE) != NULL))))
+ if (CheckTitleScreen(levelset_has_changed))
{
game_status = GAME_MODE_TITLE;
return;
}
-#endif
/* level_nr may have been set to value over handicap with level editor */
if (setup.handicap && level_nr > leveldir_current->handicap_level)
#if 1
if (redraw_mask == REDRAW_ALL)
{
-#if 0
- int door_state = GetDoorState();
-#endif
+ // 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
InitializeMainControls();
-#if 1
DrawCursorAndText_Main(-1, FALSE);
-#else
- for (i = 0; main_controls[i].nr != -1; i++)
- {
- struct MenuPosInfo *pos_button = main_controls[i].pos_button;
- struct MenuPosInfo *pos_text = main_controls[i].pos_text;
- struct MenuPosInfo *pos_input = main_controls[i].pos_input;
- char *text = main_controls[i].text;
- char *input = main_controls[i].input;
- int button_graphic = main_controls[i].button_graphic;
- int font_text = main_controls[i].font_text;
- int font_input = main_controls[i].font_input;
-
- if (pos_button != NULL)
- DrawGraphicThruMaskExt(drawto, mSX + pos_button->x, mSY + pos_button->y,
- button_graphic, 0);
-
- if (pos_text != NULL && text != NULL)
- DrawText(mSX + pos_text->x, mSY + pos_text->y, text, font_text);
-
- if (pos_input != NULL && input != NULL)
- DrawText(mSX + pos_input->x, mSY + pos_input->y, input, font_input);
- }
-#endif
-
-#else
-
- DrawHeadline();
-
- DrawText(mSX + 32, mSY + 2 * 32, name_text, FONT_MENU_1);
- DrawText(mSX + 32, mSY + 3 * 32, "Levelset", FONT_MENU_1);
- DrawText(mSX + 32, mSY + 4 * 32, "Hall Of Fame", FONT_MENU_1);
- DrawText(mSX + 32, mSY + 5 * 32, "Level Creator", FONT_MENU_1);
- DrawText(mSX + 32, mSY + 6 * 32, "Info Screen", FONT_MENU_1);
- DrawText(mSX + 32, mSY + 7 * 32, "Start Game", FONT_MENU_1);
- DrawText(mSX + 32, mSY + 8 * 32, "Setup", FONT_MENU_1);
- DrawText(mSX + 32, mSY + 9 * 32, "Quit", FONT_MENU_1);
-
- /* calculated after (possible) reload of custom artwork */
- name_width = getTextWidth(name_text, FONT_MENU_1);
- level_width = 9 * 32;
-
- DrawText(mSX + 32 + name_width, mSY + 2 * 32, setup.player_name,
- FONT_INPUT_1);
-
- DrawText(mSX + getCurrentLevelTextPos() * 32, mSY + 3 * 32,
- int2str(level_nr, 3), FONT_VALUE_1);
-
- {
- int text_height = getFontHeight(FONT_TEXT_3);
- int xpos = getLevelRangeTextPos() * 32 + 8;
- int ypos2 = 3 * 32 + 16;
- int ypos1 = ypos2 - text_height;
-
- DrawTextF(mSX - SX + xpos, mSY - SY + ypos1, FONT_TEXT_3,
- "%03d", leveldir_current->first_level);
- DrawTextF(mSX - SX + xpos, mSY - SY + ypos2, FONT_TEXT_3,
- "%03d", leveldir_current->last_level);
- }
-
- for (i = 0; i < 8; i++)
- initCursor(i, (i == 1 || i == 4 || i == 6 ? IMG_MENU_BUTTON_ENTER_MENU :
- IMG_MENU_BUTTON));
-
- DrawTextSCentered(326, FONT_TITLE_2, PROGRAM_GAME_BY_STRING);
-#endif
-
DrawPreviewLevel(TRUE);
HandleMainMenu(0, 0, 0, 0, MB_MENU_INITIALIZE);
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);
-#if 1
+#if 0
DrawMaskedBorder(REDRAW_ALL);
#endif
{
int door_state = GetDoorState();
+ // RedrawBackground();
+
OpenDoor(door_state | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
}
#endif
-#if 0
- {
- game_status = GAME_MODE_PSEUDO_PREVIEW;
-
- DrawText(20, 400, "text_3.PREVIEW", FONT_TEXT_3);
- DrawText(20, 420, "text_4.PREVIEW", FONT_TEXT_4);
-
- game_status = GAME_MODE_MAIN;
+#if 1
+ DrawMaskedBorder(REDRAW_ALL);
+#endif
- DrawText(20, 440, "text_3.MAIN", FONT_TEXT_3);
- DrawText(20, 460, "text_4.MAIN", FONT_TEXT_4);
- }
+#if 0
+ if (redraw_all)
+ redraw_mask = REDRAW_ALL;
#endif
-#if 1
FadeIn(redraw_mask);
-#else
-#if 1
- if (!do_fading)
- BackToFront();
- else if (fading.anim_mode == ANIM_CROSSFADE)
- FadeCross(redraw_mask);
- else
- FadeIn(redraw_mask);
-#else
- if (do_fading)
- FadeIn(redraw_mask);
- else
- BackToFront();
-#endif
-#endif
-#if 1
FadeSetEnterMenu();
-#else
- fading = title_default;
-#endif
SetMouseCursor(CURSOR_DEFAULT);
if (redraw_mask == REDRAW_ALL)
{
RedrawBackground();
+
OpenDoor(DOOR_CLOSE_1 | DOOR_CLOSE_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
}
#endif
info_info = info_info_main;
num_info_info = 0;
+#if 1
+ for (i = 0; info_info[i].type != 0 && i < MAX_MENU_ENTRIES_ON_SCREEN; i++)
+#else
for (i = 0; info_info[i].type != 0 && i < NUM_MENU_ENTRIES_ON_SCREEN; i++)
- {
-#if 0
- int xpos = MENU_SCREEN_START_XPOS;
- int ypos = MENU_SCREEN_START_YPOS + i;
- int font_nr = FONT_MENU_1;
#endif
-
+ {
if (info_info[i].type & (TYPE_ENTER_MENU|TYPE_ENTER_LIST))
initCursor(i, IMG_MENU_BUTTON_ENTER_MENU);
else if (info_info[i].type & (TYPE_LEAVE_MENU|TYPE_LEAVE_LIST))
else if (info_info[i].type & ~TYPE_SKIP_ENTRY)
initCursor(i, IMG_MENU_BUTTON);
-#if 1
DrawCursorAndText_Info(i, FALSE);
-#else
- DrawText(mSX + xpos * 32, mSY + ypos * 32, info_info[i].text, font_nr);
-#endif
num_info_info++;
}
DrawMaskedBorder(redraw_mask);
-#if 1
FadeIn(redraw_mask);
-#else
-#if 1
- if (!do_fading)
- BackToFront();
- else if (fading.anim_mode == ANIM_CROSSFADE)
- FadeCross(redraw_mask);
- else
- FadeIn(redraw_mask);
-#else
- if (do_fading)
- FadeIn(redraw_mask);
- else
- BackToFront();
-#endif
-#endif
InitAnimation();
}
choice++;
choice_store[info_mode] = choice;
-#if 1
DrawCursorAndText_Info(choice, TRUE);
-#else
- drawCursor(choice, TRUE);
-#endif
return;
}
{
PlaySound(SND_MENU_ITEM_ACTIVATING);
-#if 1
DrawCursorAndText_Info(choice, FALSE);
DrawCursorAndText_Info(y, TRUE);
-#else
- drawCursor(choice, FALSE);
- drawCursor(y, TRUE);
-#endif
choice = choice_store[info_mode] = y;
}
void DrawInfoScreen_NotAvailable(char *text_title, char *text_error)
{
-#if 1
int ystart1 = mSY - SY + 100;
int ystart2 = mSY - SY + 150;
int ybottom = mSY - SY + SYSIZE - 20;
-#else
- int ystart1 = 100;
- int ystart2 = 150;
- int ybottom = SYSIZE - 20;
-#endif
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_LEVELSET);
-#if 1
FadeOut(REDRAW_FIELD);
-#endif
ClearWindow();
DrawHeadline();
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for info menu");
-#if 1
FadeIn(REDRAW_FIELD);
-#endif
}
void DrawInfoScreen_HelpAnim(int start, int max_anims, boolean init)
void DrawInfoScreen_HelpText(int element, int action, int direction, int ypos)
{
-#if 1
int font_nr = FONT_INFO_ELEMENTS;
-#else
- int font_nr = FONT_LEVEL_NUMBER;
-#endif
int font_width = getFontWidth(font_nr);
int sx = mSX + MINI_TILEX + TILEX + MINI_TILEX;
int sy = mSY + 65 + 2 * 32 + 1;
if (strlen(text) <= max_chars_per_line) /* only one line of text */
sy += getFontHeight(font_nr) / 2;
-#if 1
DrawTextBuffer(sx, sy + ypos * ystep, text, font_nr,
max_chars_per_line, -1, max_lines_per_text, -1,
TRUE, FALSE, FALSE);
-#else
- DrawTextWrapped(sx, sy + ypos * ystep, text, font_nr,
- max_chars_per_line, max_lines_per_text);
-#endif
}
void DrawInfoScreen_TitleScreen()
{
SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_ELEMENTS);
-#if 1
FadeOut(REDRAW_FIELD);
-#endif
LoadHelpAnimInfo();
LoadHelpTextInfo();
HandleInfoScreen_Elements(MB_MENU_INITIALIZE);
-#if 1
FadeIn(REDRAW_FIELD);
-#endif
InitAnimation();
}
{
FadeSoundsAndMusic();
-#if 0
- FadeOut(REDRAW_FIELD);
-#endif
-
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
return;
}
+#if 1
+ if (page > 0)
+ FadeSetNextScreen();
+#endif
+
+#if 1
+ if (button != MB_MENU_INITIALIZE)
+ FadeOut(REDRAW_FIELD);
+#else
if (button != MB_MENU_INITIALIZE)
FadeCrossSaveBackbuffer();
+#endif
DrawInfoScreen_HelpAnim(page * anims_per_page, num_anims, TRUE);
+#if 1
+ if (button != MB_MENU_INITIALIZE)
+ FadeIn(REDRAW_FIELD);
+#else
if (button != MB_MENU_INITIALIZE)
FadeCross(REDRAW_FIELD);
+#endif
}
else
{
{
FadeSoundsAndMusic();
-#if 0
- FadeOut(REDRAW_FIELD);
-#endif
-
info_mode = INFO_MODE_MAIN;
DrawAndFadeInInfoScreen(REDRAW_FIELD);
FadeSoundsAndMusic();
+#if 1
+ if (list != music_file_info)
+ FadeSetNextScreen();
+#endif
+
+#if 1
+ if (button != MB_MENU_INITIALIZE)
+ FadeOut(REDRAW_FIELD);
+#else
if (button != MB_MENU_INITIALIZE)
FadeCrossSaveBackbuffer();
+#endif
ClearWindow();
DrawHeadline();
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for next page");
+#if 1
+ if (button != MB_MENU_INITIALIZE)
+ FadeIn(REDRAW_FIELD);
+#else
if (button != MB_MENU_INITIALIZE)
FadeCross(REDRAW_FIELD);
+#endif
}
if (list != NULL && list->is_sound && sound_info[list->music].loop)
PlaySoundLoop(list->music);
}
-static boolean DrawInfoScreen_CreditsScreen(int screen_nr)
+static void DrawInfoScreen_CreditsScreen(int screen_nr)
{
int ystart1 = mSY - SY + 100;
int ystart2 = mSY - SY + 150;
int ybottom = mSY - SY + SYSIZE - 20;
int ystep = 30;
- if (screen_nr > 8)
- return FALSE;
-
ClearWindow();
DrawHeadline();
DrawTextSCentered(ystart2 + 4 * ystep, FONT_TEXT_3,
"since 1995");
}
-#if 0
- else
- {
- return FALSE;
- }
-#endif
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for next page");
-
- return TRUE;
}
void DrawInfoScreen_Credits()
void HandleInfoScreen_Credits(int button)
{
static int screen_nr = 0;
+ int num_screens = 9;
if (button == MB_MENU_INITIALIZE)
{
screen_nr = 0;
- DrawInfoScreen_CreditsScreen(screen_nr);
+ // DrawInfoScreen_CreditsScreen(screen_nr);
}
- else if (button == MB_MENU_LEAVE)
+
+ if (button == MB_MENU_LEAVE)
{
PlaySound(SND_MENU_ITEM_SELECTING);
return;
}
- else if (button == MB_MENU_CHOICE)
+ else if (button == MB_MENU_CHOICE || button == MB_MENU_INITIALIZE)
{
- boolean show_screen;
+ if (button != MB_MENU_INITIALIZE)
+ {
+ PlaySound(SND_MENU_ITEM_SELECTING);
- PlaySound(SND_MENU_ITEM_SELECTING);
+ screen_nr++;
+ }
- screen_nr++;
+ if (screen_nr >= num_screens)
+ {
+ FadeSoundsAndMusic();
- FadeCrossSaveBackbuffer();
+ info_mode = INFO_MODE_MAIN;
+ DrawAndFadeInInfoScreen(REDRAW_FIELD);
- show_screen = DrawInfoScreen_CreditsScreen(screen_nr);
-
- if (show_screen)
- {
- FadeCross(REDRAW_FIELD);
+ return;
}
- else
- {
- FadeSoundsAndMusic();
-#if 0
+#if 1
+ if (screen_nr > 0)
+ FadeSetNextScreen();
+#endif
+
+#if 1
+ if (button != MB_MENU_INITIALIZE)
FadeOut(REDRAW_FIELD);
+#else
+ if (button != MB_MENU_INITIALIZE)
+ FadeCrossSaveBackbuffer();
#endif
- info_mode = INFO_MODE_MAIN;
- DrawAndFadeInInfoScreen(REDRAW_FIELD);
- }
+ DrawInfoScreen_CreditsScreen(screen_nr);
+
+#if 1
+ if (button != MB_MENU_INITIALIZE)
+ FadeIn(REDRAW_FIELD);
+#else
+ if (button != MB_MENU_INITIALIZE)
+ FadeCross(REDRAW_FIELD);
+#endif
}
else
{
static void DrawSetupScreen_Generic()
{
+ boolean redraw_all = FALSE;
char *title_string = NULL;
int i;
UnmapAllGadgets();
CloseDoor(DOOR_CLOSE_2);
-#if 1
+ if (redraw_mask & REDRAW_ALL)
+ redraw_all = TRUE;
+
+#if 0
+ printf("::: %s\n", (redraw_mask & REDRAW_FIELD ? "REDRAW_FIELD" :
+ redraw_mask & REDRAW_ALL ? "REDRAW_ALL" :
+ int2str(0, redraw_mask)));
+#endif
+
+#if 0
+ /* !!! usually REDRAW_NONE => DOES NOT WORK (with fade) => CHECK THIS !!! */
+ FadeOut(redraw_mask);
+#else
FadeOut(REDRAW_FIELD);
#endif
DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, title_string);
num_setup_info = 0;
+#if 1
+ for (i = 0; setup_info[i].type != 0 && i < MAX_MENU_ENTRIES_ON_SCREEN; i++)
+#else
for (i = 0; setup_info[i].type != 0 && i < NUM_MENU_ENTRIES_ON_SCREEN; i++)
+#endif
{
void *value_ptr = setup_info[i].value;
#if 1
HandleSetupScreen_Generic(0, 0, 0, 0, MB_MENU_INITIALIZE);
#endif
+ if (redraw_all)
+ redraw_mask = REDRAW_ALL;
+
#if 1
+ FadeIn(redraw_mask);
+#else
FadeIn(REDRAW_FIELD);
#endif
DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, "Setup Input");
#if 1
+#if 1
+ DrawTextSCentered(SYSIZE - 20, FONT_TITLE_2,
+ "Joysticks deactivated on this screen");
+#else
+ DrawTextSCentered(SYSIZE - 20, FONT_TEXT_4,
+ "Joysticks deactivated on this screen");
+#endif
+#endif
+
+#if 1
+#if 1
+ for (i = 0; setup_info[i].type != 0 && i < MAX_MENU_ENTRIES_ON_SCREEN; i++)
+#else
for (i = 0; setup_info[i].type != 0 && i < NUM_MENU_ENTRIES_ON_SCREEN; i++)
+#endif
{
if (setup_info[i].type & (TYPE_ENTER_MENU|TYPE_ENTER_LIST))
initCursor(i, IMG_MENU_BUTTON_ENTER_MENU);
#if 0
DeactivateJoystickForCalibration();
#endif
+
+#if 0
#if 1
+ DrawTextSCentered(SYSIZE - 20, FONT_TITLE_2,
+ "Joysticks deactivated on this screen");
+#else
DrawTextSCentered(SYSIZE - 20, FONT_TEXT_4,
"Joysticks deactivated on this screen");
+#endif
#endif
/* create gadgets for setup input menu screen */