#define SETUP_MODE_SHORTCUTS_1 8
#define SETUP_MODE_SHORTCUTS_2 9
#define SETUP_MODE_SHORTCUTS_3 10
+#define SETUP_MODE_SHORTCUTS_4 11
/* sub-screens on the setup screen (generic) */
-#define SETUP_MODE_CHOOSE_ARTWORK 11
-#define SETUP_MODE_CHOOSE_OTHER 12
+#define SETUP_MODE_CHOOSE_ARTWORK 12
+#define SETUP_MODE_CHOOSE_OTHER 13
/* sub-screens on the setup screen (specific) */
-#define SETUP_MODE_CHOOSE_GAME_SPEED 13
-#define SETUP_MODE_CHOOSE_SCREEN_MODE 14
-#define SETUP_MODE_CHOOSE_SCROLL_DELAY 15
-#define SETUP_MODE_CHOOSE_GRAPHICS 16
-#define SETUP_MODE_CHOOSE_SOUNDS 17
-#define SETUP_MODE_CHOOSE_MUSIC 18
+#define SETUP_MODE_CHOOSE_GAME_SPEED 14
+#define SETUP_MODE_CHOOSE_SCREEN_MODE 15
+#define SETUP_MODE_CHOOSE_SCROLL_DELAY 16
+#define SETUP_MODE_CHOOSE_GRAPHICS 17
+#define SETUP_MODE_CHOOSE_SOUNDS 18
+#define SETUP_MODE_CHOOSE_MUSIC 19
-#define MAX_SETUP_MODES 19
+#define MAX_SETUP_MODES 20
/* for input setup functions */
#define SETUPINPUT_SCREEN_POS_START 0
INFO_MODE_MAIN)
#define DRAW_MODE_SETUP(i) ((i) >= SETUP_MODE_MAIN && \
- (i) <= SETUP_MODE_SHORTCUTS_3 ? (i) : \
+ (i) <= SETUP_MODE_SHORTCUTS_4 ? (i) : \
(i) >= SETUP_MODE_CHOOSE_GRAPHICS && \
(i) <= SETUP_MODE_CHOOSE_MUSIC ? \
SETUP_MODE_CHOOSE_ARTWORK : \
static void drawCursorExt(int xpos, int ypos, boolean active, int graphic)
{
+#if 1
+ static int cursor_array[MAX_LEV_FIELDY];
+#else
static int cursor_array[SCR_FIELDY];
+#endif
int x = mSX + TILEX * xpos;
int y = mSY + TILEY * (MENU_SCREEN_START_YPOS + ypos);
/* store valid level series information */
leveldir_last_valid = leveldir_current;
+ init_last = init; /* switch to new busy animation */
+
/* needed if last screen (level choice) changed graphics, sounds or music */
ReloadCustomArtwork(0);
#endif
#endif
+#if 1
+ /* needed if different viewport properties defined for menues */
+ ChangeViewportPropertiesIfNeeded();
+#endif
+
#if defined(TARGET_SDL)
SetDrawtoField(DRAW_BACKBUFFER);
#endif
FadeSetEnterScreen();
+#if 0
+ /* needed if different viewport properties defined for editor */
+ ChangeViewportPropertiesIfNeeded();
+#endif
+
DrawLevelEd();
}
else if (pos == MAIN_CONTROL_INFO)
DrawSetupScreen();
}
+static void execSetupShortcuts4()
+{
+ setup_mode = SETUP_MODE_SHORTCUTS_4;
+
+ DrawSetupScreen();
+}
+
static void execExitSetup()
{
game_status = GAME_MODE_MAIN;
{ TYPE_ENTER_MENU, execSetupShortcuts1, "Various Keys" },
{ TYPE_ENTER_MENU, execSetupShortcuts2, "Player Focus" },
{ TYPE_ENTER_MENU, execSetupShortcuts3, "Tape Buttons" },
+ { TYPE_ENTER_MENU, execSetupShortcuts4, "Sound & Music" },
{ TYPE_EMPTY, NULL, "" },
{ TYPE_LEAVE_MENU, execSetupMain, "Back" },
static struct TokenInfo setup_info_shortcuts_3[] =
{
- { TYPE_KEYTEXT, NULL, "Tape Eject:", },
+ { TYPE_KEYTEXT, NULL, "Tape Eject:", },
{ TYPE_KEY, &setup.shortcut.tape_eject, "" },
- { TYPE_KEYTEXT, NULL, "Tape Stop:", },
+ { TYPE_KEYTEXT, NULL, "Tape Stop:", },
{ TYPE_KEY, &setup.shortcut.tape_stop, "" },
- { TYPE_KEYTEXT, NULL, "Tape Pause:", },
+ { TYPE_KEYTEXT, NULL, "Tape Pause:", },
{ TYPE_KEY, &setup.shortcut.tape_pause, "" },
- { TYPE_KEYTEXT, NULL, "Tape Record:", },
+ { TYPE_KEYTEXT, NULL, "Tape Record:", },
{ TYPE_KEY, &setup.shortcut.tape_record, "" },
- { TYPE_KEYTEXT, NULL, "Tape Play:", },
+ { TYPE_KEYTEXT, NULL, "Tape Play:", },
{ TYPE_KEY, &setup.shortcut.tape_play, "" },
{ TYPE_EMPTY, NULL, "" },
{ TYPE_LEAVE_MENU, execSetupShortcuts, "Back" },
{ 0, NULL, NULL }
};
+static struct TokenInfo setup_info_shortcuts_4[] =
+{
+ { TYPE_KEYTEXT, NULL, "Sound Effects (Normal):", },
+ { TYPE_KEY, &setup.shortcut.sound_simple, "" },
+ { TYPE_KEYTEXT, NULL, "Sound Effects (Looping):", },
+ { TYPE_KEY, &setup.shortcut.sound_loops, "" },
+ { TYPE_KEYTEXT, NULL, "Music:", },
+ { TYPE_KEY, &setup.shortcut.sound_music, "" },
+ { TYPE_EMPTY, NULL, "" },
+ { TYPE_LEAVE_MENU, execSetupShortcuts, "Back" },
+
+ { 0, NULL, NULL }
+};
+
static Key getSetupKey()
{
Key key = KSYM_UNDEFINED;
setup_info = setup_info_shortcuts_3;
title_string = "Setup Shortcuts";
}
+ else if (setup_mode == SETUP_MODE_SHORTCUTS_4)
+ {
+ setup_info = setup_info_shortcuts_4;
+ title_string = "Setup Shortcuts";
+ }
DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, title_string);
{
{
IMG_MENU_BUTTON_UP, IMG_MENU_BUTTON_UP_ACTIVE,
+#if 1
+ -1, -1, /* these values are not constant, but can change at runtime */
+#else
SC_SCROLL_UP_XPOS, SC_SCROLL_UP_YPOS,
+#endif
SCREEN_CTRL_ID_SCROLL_UP,
"scroll up"
},
{
IMG_MENU_BUTTON_DOWN, IMG_MENU_BUTTON_DOWN_ACTIVE,
+#if 1
+ -1, -1, /* these values are not constant, but can change at runtime */
+#else
SC_SCROLL_DOWN_XPOS, SC_SCROLL_DOWN_YPOS,
+#endif
SCREEN_CTRL_ID_SCROLL_DOWN,
"scroll down"
}
#else
IMG_MENU_SCROLLBAR, IMG_MENU_SCROLLBAR_ACTIVE,
#endif
+#if 1
+ -1, -1, /* these values are not constant, but can change at runtime */
+ -1, -1, /* these values are not constant, but can change at runtime */
+#else
SC_SCROLL_VERTICAL_XPOS, SC_SCROLL_VERTICAL_YPOS,
SC_SCROLL_VERTICAL_XSIZE, SC_SCROLL_VERTICAL_YSIZE,
+#endif
GD_TYPE_SCROLLBAR_VERTICAL,
SCREEN_CTRL_ID_SCROLL_VERTICAL,
"scroll level series vertically"
unsigned long event_mask;
int i;
+ /* these values are not constant, but can change at runtime */
+ scrollbutton_info[0].x = SC_SCROLL_UP_XPOS;
+ scrollbutton_info[0].y = SC_SCROLL_UP_YPOS;
+ scrollbutton_info[1].x = SC_SCROLL_DOWN_XPOS;
+ scrollbutton_info[1].y = SC_SCROLL_DOWN_YPOS;
+
for (i = 0; i < NUM_SCREEN_SCROLLBUTTONS; i++)
{
Bitmap *gd_bitmap_unpressed, *gd_bitmap_pressed;
{
int i;
+ /* these values are not constant, but can change at runtime */
+ scrollbar_info[0].x = SC_SCROLL_VERTICAL_XPOS;
+ scrollbar_info[0].y = SC_SCROLL_VERTICAL_YPOS;
+ scrollbar_info[0].width = SC_SCROLL_VERTICAL_XSIZE;
+ scrollbar_info[0].height = SC_SCROLL_VERTICAL_YSIZE;
+
for (i = 0; i < NUM_SCREEN_SCROLLBARS; i++)
{
Bitmap *gd_bitmap_unpressed, *gd_bitmap_pressed;