#include "init.h"
#include "config.h"
-/* screens in the setup menu */
-#define SETUP_MODE_MAIN 0
-#define SETUP_MODE_GAME 1
-#define SETUP_MODE_CHOOSE_GAME_SPEED 2
-#define SETUP_MODE_EDITOR 3
-#define SETUP_MODE_INPUT 4
-#define SETUP_MODE_SHORTCUT_1 5
-#define SETUP_MODE_SHORTCUT_2 6
-#define SETUP_MODE_GRAPHICS 7
-#define SETUP_MODE_CHOOSE_SCREEN_MODE 8
-#define SETUP_MODE_CHOOSE_SCROLL_DELAY 9
-#define SETUP_MODE_SOUND 10
-#define SETUP_MODE_ARTWORK 11
-#define SETUP_MODE_CHOOSE_GRAPHICS 12
-#define SETUP_MODE_CHOOSE_SOUNDS 13
-#define SETUP_MODE_CHOOSE_MUSIC 14
-
-#define MAX_SETUP_MODES 15
-
-/* for input setup functions */
-#define SETUPINPUT_SCREEN_POS_START 0
-#define SETUPINPUT_SCREEN_POS_END (SCR_FIELDY - 4)
-#define SETUPINPUT_SCREEN_POS_EMPTY1 (SETUPINPUT_SCREEN_POS_START + 3)
-#define SETUPINPUT_SCREEN_POS_EMPTY2 (SETUPINPUT_SCREEN_POS_END - 1)
-
/* screens on the info screen */
#define INFO_MODE_MAIN 0
#define INFO_MODE_TITLE 1
#define MAX_INFO_MODES 8
+/* screens on the setup screen */
+#define SETUP_MODE_MAIN 0
+#define SETUP_MODE_GAME 1
+#define SETUP_MODE_EDITOR 2
+#define SETUP_MODE_GRAPHICS 3
+#define SETUP_MODE_SOUND 4
+#define SETUP_MODE_ARTWORK 5
+#define SETUP_MODE_INPUT 6
+#define SETUP_MODE_SHORTCUTS_1 7
+#define SETUP_MODE_SHORTCUTS_2 8
+
+/* sub-screens on the setup screen (generic) */
+#define SETUP_MODE_CHOOSE_ARTWORK 9
+#define SETUP_MODE_CHOOSE_OTHER 10
+
+/* sub-screens on the setup screen (specific) */
+#define SETUP_MODE_CHOOSE_GAME_SPEED 11
+#define SETUP_MODE_CHOOSE_SCREEN_MODE 12
+#define SETUP_MODE_CHOOSE_SCROLL_DELAY 13
+#define SETUP_MODE_CHOOSE_GRAPHICS 14
+#define SETUP_MODE_CHOOSE_SOUNDS 15
+#define SETUP_MODE_CHOOSE_MUSIC 16
+
+#define MAX_SETUP_MODES 17
+
+/* for input setup functions */
+#define SETUPINPUT_SCREEN_POS_START 0
+#define SETUPINPUT_SCREEN_POS_END (SCR_FIELDY - 4)
+#define SETUPINPUT_SCREEN_POS_EMPTY1 (SETUPINPUT_SCREEN_POS_START + 3)
+#define SETUPINPUT_SCREEN_POS_EMPTY2 (SETUPINPUT_SCREEN_POS_END - 1)
+
/* for various menu stuff */
#define MENU_SCREEN_START_XPOS 1
#define MENU_SCREEN_START_YPOS 2
#define SC_BORDER_SIZE 14
+#if 0
/* other useful macro definitions */
#define BUTTON_GRAPHIC_ACTIVE(g) \
(g == IMG_MENU_BUTTON_LEFT ? IMG_MENU_BUTTON_LEFT_ACTIVE : \
g == IMG_MENU_BUTTON_ENTER_MENU ? IMG_MENU_BUTTON_ENTER_MENU_ACTIVE : \
g == IMG_MENU_BUTTON_PREV_LEVEL ? IMG_MENU_BUTTON_PREV_LEVEL_ACTIVE : \
g == IMG_MENU_BUTTON_NEXT_LEVEL ? IMG_MENU_BUTTON_NEXT_LEVEL_ACTIVE : \
+ g == IMG_MENU_BUTTON_NAME ? IMG_MENU_BUTTON_NAME_ACTIVE : \
+ g == IMG_MENU_BUTTON_LEVELS ? IMG_MENU_BUTTON_LEVELS_ACTIVE : \
+ g == IMG_MENU_BUTTON_SCORES ? IMG_MENU_BUTTON_SCORES_ACTIVE : \
+ g == IMG_MENU_BUTTON_EDITOR ? IMG_MENU_BUTTON_EDITOR_ACTIVE : \
+ g == IMG_MENU_BUTTON_INFO ? IMG_MENU_BUTTON_INFO_ACTIVE : \
+ g == IMG_MENU_BUTTON_GAME ? IMG_MENU_BUTTON_GAME_ACTIVE : \
+ g == IMG_MENU_BUTTON_SETUP ? IMG_MENU_BUTTON_SETUP_ACTIVE : \
+ g == IMG_MENU_BUTTON_QUIT ? IMG_MENU_BUTTON_QUIT_ACTIVE : \
IMG_MENU_BUTTON_ACTIVE)
+#endif
/* forward declarations of internal functions */
static struct GadgetInfo *screen_gadget[NUM_SCREEN_GADGETS];
-static int setup_mode = SETUP_MODE_MAIN;
static int info_mode = INFO_MODE_MAIN;
+static int setup_mode = SETUP_MODE_MAIN;
static TreeInfo *screen_modes = NULL;
static TreeInfo *screen_mode_current = NULL;
(s) == GAME_MODE_PSEUDO_TYPENAME ? \
GAME_MODE_MAIN : GAME_MODE_DEFAULT)
+/* (there are no draw offset definitions needed for INFO_MODE_TITLE) */
#define DRAW_MODE_INFO(i) ((i) >= INFO_MODE_ELEMENTS && \
(i) <= INFO_MODE_LEVELSET ? (i) : \
INFO_MODE_MAIN)
+#define DRAW_MODE_SETUP(i) ((i) >= SETUP_MODE_MAIN && \
+ (i) <= SETUP_MODE_SHORTCUTS_2 ? (i) : \
+ (i) >= SETUP_MODE_CHOOSE_GRAPHICS && \
+ (i) <= SETUP_MODE_CHOOSE_MUSIC ? \
+ SETUP_MODE_CHOOSE_ARTWORK : \
+ SETUP_MODE_CHOOSE_OTHER)
+
#define DRAW_XOFFSET_INFO(i) (DRAW_MODE_INFO(i) == INFO_MODE_MAIN ? \
menu.draw_xoffset[GAME_MODE_INFO] : \
menu.draw_xoffset_info[DRAW_MODE_INFO(i)])
menu.draw_yoffset[GAME_MODE_INFO] : \
menu.draw_yoffset_info[DRAW_MODE_INFO(i)])
+#define DRAW_XOFFSET_SETUP(i) (DRAW_MODE_SETUP(i) == SETUP_MODE_MAIN ? \
+ menu.draw_xoffset[GAME_MODE_SETUP] : \
+ menu.draw_xoffset_setup[DRAW_MODE_SETUP(i)])
+#define DRAW_YOFFSET_SETUP(i) (DRAW_MODE_SETUP(i) == SETUP_MODE_MAIN ? \
+ menu.draw_yoffset[GAME_MODE_SETUP] : \
+ menu.draw_yoffset_setup[DRAW_MODE_SETUP(i)])
+
#define DRAW_XOFFSET(s) ((s) == GAME_MODE_INFO ? \
DRAW_XOFFSET_INFO(info_mode) : \
+ (s) == GAME_MODE_SETUP ? \
+ DRAW_XOFFSET_SETUP(setup_mode) : \
menu.draw_xoffset[DRAW_MODE(s)])
#define DRAW_YOFFSET(s) ((s) == GAME_MODE_INFO ? \
DRAW_YOFFSET_INFO(info_mode) : \
+ (s) == GAME_MODE_SETUP ? \
+ DRAW_YOFFSET_SETUP(setup_mode) : \
menu.draw_yoffset[DRAW_MODE(s)])
#define mSX (SX + DRAW_XOFFSET(game_status))
{
{
MAIN_CONTROL_NAME,
- &menu.main.button.name, IMG_MENU_BUTTON,
+ &menu.main.button.name, IMG_MENU_BUTTON_NAME,
&menu.main.text.name, &main_text_name,
&menu.main.input.name, &setup.player_name,
},
{
MAIN_CONTROL_LEVELS,
- &menu.main.button.levels, IMG_MENU_BUTTON_ENTER_MENU,
+ &menu.main.button.levels, IMG_MENU_BUTTON_LEVELS,
&menu.main.text.levels, &main_text_levels,
NULL, NULL,
},
{
MAIN_CONTROL_SCORES,
- &menu.main.button.scores, IMG_MENU_BUTTON,
+ &menu.main.button.scores, IMG_MENU_BUTTON_SCORES,
&menu.main.text.scores, &main_text_scores,
NULL, NULL,
},
{
MAIN_CONTROL_EDITOR,
- &menu.main.button.editor, IMG_MENU_BUTTON,
+ &menu.main.button.editor, IMG_MENU_BUTTON_EDITOR,
&menu.main.text.editor, &main_text_editor,
NULL, NULL,
},
{
MAIN_CONTROL_INFO,
- &menu.main.button.info, IMG_MENU_BUTTON_ENTER_MENU,
+ &menu.main.button.info, IMG_MENU_BUTTON_INFO,
&menu.main.text.info, &main_text_info,
NULL, NULL,
},
{
MAIN_CONTROL_GAME,
- &menu.main.button.game, IMG_MENU_BUTTON,
+ &menu.main.button.game, IMG_MENU_BUTTON_GAME,
&menu.main.text.game, &main_text_game,
NULL, NULL,
},
{
MAIN_CONTROL_SETUP,
- &menu.main.button.setup, IMG_MENU_BUTTON_ENTER_MENU,
+ &menu.main.button.setup, IMG_MENU_BUTTON_SETUP,
&menu.main.text.setup, &main_text_setup,
NULL, NULL,
},
{
MAIN_CONTROL_QUIT,
- &menu.main.button.quit, IMG_MENU_BUTTON,
+ &menu.main.button.quit, IMG_MENU_BUTTON_QUIT,
&menu.main.text.quit, &main_text_quit,
NULL, NULL,
},
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);
if (active_text)
{
- button_graphic = BUTTON_GRAPHIC_ACTIVE(button_graphic);
+ button_graphic = BUTTON_ACTIVE(button_graphic);
font_text = FONT_ACTIVE(font_text);
}
}
if (active)
- graphic = BUTTON_GRAPHIC_ACTIVE(graphic);
+ graphic = BUTTON_ACTIVE(graphic);
DrawBackgroundForGraphic(x, y, TILEX, TILEY, graphic);
DrawGraphicThruMaskExt(drawto, x, y, graphic, 0);
{
int last_game_status = game_status; /* save current game status */
+#if 0
/* force LEVELS draw offset on artwork setup screen */
game_status = GAME_MODE_LEVELS;
+#endif
drawCursorExt(0, ypos, active, -1);
{
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
- printf("::: %d, %d\n", fading.anim_mode == ANIM_CROSSFADE,
- redraw_mask == REDRAW_ALL);
-#endif
+ boolean redraw_all = FALSE;
FadeSetLeaveScreen();
-#if 1
+ /* (does not work well when changing to editor, which fades out itself) */
+#if 0
FadeOut(redraw_mask);
#endif
return;
}
+#if 0
+ FadeOut(redraw_mask);
+
/* 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 0
DrawMaskedBorder(REDRAW_ALL);
+#endif
#if 1
if (redraw_mask == REDRAW_ALL)
{
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 (leveldir_first)
{
game_status = GAME_MODE_LEVELS;
+
SaveLevelSetup_LastSeries();
SaveLevelSetup_SeriesInfo();
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
{
DrawTextSCentered(mSY - SY + yoffset, FONT_TITLE_1, title_string);
+#if 0
/* force LEVELS font on artwork setup screen */
game_status = GAME_MODE_LEVELS;
+#endif
#if 1
/* clear tree list area, but not title or scrollbar */
int last_game_status = game_status; /* save current game status */
boolean position_set_by_scrollbar = (dx == 999);
+#if 0
/* force LEVELS draw offset on choose level and artwork setup screen */
game_status = GAME_MODE_LEVELS;
+#endif
if (num_entries <= NUM_MENU_ENTRIES_ON_SCREEN)
num_page_entries = num_entries;
{
int last_game_status = game_status; /* save current game status */
+#if 0
/* force LEVELS draw offset on artwork setup screen */
game_status = GAME_MODE_LEVELS;
+#endif
x = (mx - mSX) / 32;
y = (my - mSY) / 32 - MENU_SCREEN_START_YPOS;
DrawSetupScreen();
}
-static void execSetupShortcut1()
+static void execSetupShortcuts1()
{
#if 0
FadeSetEnterMenu();
#endif
- setup_mode = SETUP_MODE_SHORTCUT_1;
+ setup_mode = SETUP_MODE_SHORTCUTS_1;
DrawSetupScreen();
}
-static void execSetupShortcut2()
+static void execSetupShortcuts2()
{
#if 0
FadeSetEnterMenu();
#endif
- setup_mode = SETUP_MODE_SHORTCUT_2;
+ setup_mode = SETUP_MODE_SHORTCUTS_2;
DrawSetupScreen();
}
{ TYPE_ENTER_MENU, execSetupSound, "Sound & Music" },
{ TYPE_ENTER_MENU, execSetupArtwork, "Custom Artwork" },
{ TYPE_ENTER_MENU, execSetupInput, "Input Devices" },
- { TYPE_ENTER_MENU, execSetupShortcut1, "Key Shortcuts 1" },
- { TYPE_ENTER_MENU, execSetupShortcut2, "Key Shortcuts 2" },
+ { TYPE_ENTER_MENU, execSetupShortcuts1, "Key Shortcuts 1" },
+ { TYPE_ENTER_MENU, execSetupShortcuts2, "Key Shortcuts 2" },
{ TYPE_EMPTY, NULL, "" },
{ TYPE_LEAVE_MENU, execExitSetup, "Exit" },
{ TYPE_LEAVE_MENU, execSaveAndExitSetup, "Save and Exit" },
{ 0, NULL, NULL }
};
-static struct TokenInfo setup_info_shortcut_1[] =
+static struct TokenInfo setup_info_shortcuts_1[] =
{
{ TYPE_KEYTEXT, NULL, "Quick Save Game to Tape:", },
{ TYPE_KEY, &setup.shortcut.save_game, "" },
{ 0, NULL, NULL }
};
-static struct TokenInfo setup_info_shortcut_2[] =
+static struct TokenInfo setup_info_shortcuts_2[] =
{
{ TYPE_KEYTEXT, NULL, "Set Focus to Player 1:", },
{ TYPE_KEY, &setup.shortcut.focus_player[0], "" },
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
setup_info = setup_info_artwork;
title_string = "Custom Artwork";
}
- else if (setup_mode == SETUP_MODE_SHORTCUT_1)
+ else if (setup_mode == SETUP_MODE_SHORTCUTS_1)
{
- setup_info = setup_info_shortcut_1;
+ setup_info = setup_info_shortcuts_1;
title_string = "Setup Shortcuts";
}
- else if (setup_mode == SETUP_MODE_SHORTCUT_2)
+ else if (setup_mode == SETUP_MODE_SHORTCUTS_2)
{
- setup_info = setup_info_shortcut_2;
+ setup_info = setup_info_shortcuts_2;
title_string = "Setup Shortcuts";
}
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 */
CreateScreenMenubuttons();
+#if 0
/* force LEVELS draw offset for scrollbar / scrollbutton gadgets */
game_status = GAME_MODE_LEVELS;
+#endif
CreateScreenScrollbuttons();
CreateScreenScrollbars();