#define SETUP_TOKEN_SCROLL_DELAY 6
#define SETUP_TOKEN_SCROLL_DELAY_VALUE 7
#define SETUP_TOKEN_ENGINE_SNAPSHOT_MODE 8
-#define SETUP_TOKEN_FADE_SCREENS 9
-#define SETUP_TOKEN_AUTORECORD 10
-#define SETUP_TOKEN_SHOW_TITLESCREEN 11
-#define SETUP_TOKEN_QUICK_DOORS 12
-#define SETUP_TOKEN_TEAM_MODE 13
-#define SETUP_TOKEN_HANDICAP 14
-#define SETUP_TOKEN_SKIP_LEVELS 15
-#define SETUP_TOKEN_TIME_LIMIT 16
-#define SETUP_TOKEN_FULLSCREEN 17
-#define SETUP_TOKEN_FULLSCREEN_MODE 18
+#define SETUP_TOKEN_ENGINE_SNAPSHOT_MEMORY 9
+#define SETUP_TOKEN_FADE_SCREENS 10
+#define SETUP_TOKEN_AUTORECORD 11
+#define SETUP_TOKEN_SHOW_TITLESCREEN 12
+#define SETUP_TOKEN_QUICK_DOORS 13
+#define SETUP_TOKEN_TEAM_MODE 14
+#define SETUP_TOKEN_HANDICAP 15
+#define SETUP_TOKEN_SKIP_LEVELS 16
+#define SETUP_TOKEN_TIME_LIMIT 17
+#define SETUP_TOKEN_FULLSCREEN 18
#define SETUP_TOKEN_WINDOW_SCALING_PERCENT 19
#define SETUP_TOKEN_WINDOW_SCALING_QUALITY 20
-#define SETUP_TOKEN_ASK_ON_ESCAPE 21
-#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR 22
-#define SETUP_TOKEN_QUICK_SWITCH 23
-#define SETUP_TOKEN_INPUT_ON_FOCUS 24
-#define SETUP_TOKEN_PREFER_AGA_GRAPHICS 25
-#define SETUP_TOKEN_GAME_FRAME_DELAY 26
-#define SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS 27
-#define SETUP_TOKEN_SMALL_GAME_GRAPHICS 28
-#define SETUP_TOKEN_SHOW_SNAPSHOT_BUTTONS 29
-#define SETUP_TOKEN_GRAPHICS_SET 30
-#define SETUP_TOKEN_SOUNDS_SET 31
-#define SETUP_TOKEN_MUSIC_SET 32
-#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 33
-#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 34
-#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 35
-#define SETUP_TOKEN_VOLUME_SIMPLE 36
-#define SETUP_TOKEN_VOLUME_LOOPS 37
-#define SETUP_TOKEN_VOLUME_MUSIC 38
-#define SETUP_TOKEN_TOUCH_CONTROL_TYPE 39
-#define SETUP_TOKEN_TOUCH_MOVE_DISTANCE 40
-#define SETUP_TOKEN_TOUCH_DROP_DISTANCE 41
-
-#define NUM_GLOBAL_SETUP_TOKENS 42
+#define SETUP_TOKEN_SCREEN_RENDERING_MODE 21
+#define SETUP_TOKEN_ASK_ON_ESCAPE 22
+#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR 23
+#define SETUP_TOKEN_QUICK_SWITCH 24
+#define SETUP_TOKEN_INPUT_ON_FOCUS 25
+#define SETUP_TOKEN_PREFER_AGA_GRAPHICS 26
+#define SETUP_TOKEN_GAME_FRAME_DELAY 27
+#define SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS 28
+#define SETUP_TOKEN_SMALL_GAME_GRAPHICS 29
+#define SETUP_TOKEN_SHOW_SNAPSHOT_BUTTONS 30
+#define SETUP_TOKEN_GRAPHICS_SET 31
+#define SETUP_TOKEN_SOUNDS_SET 32
+#define SETUP_TOKEN_MUSIC_SET 33
+#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 34
+#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 35
+#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 36
+#define SETUP_TOKEN_VOLUME_SIMPLE 37
+#define SETUP_TOKEN_VOLUME_LOOPS 38
+#define SETUP_TOKEN_VOLUME_MUSIC 39
+#define SETUP_TOKEN_TOUCH_CONTROL_TYPE 40
+#define SETUP_TOKEN_TOUCH_MOVE_DISTANCE 41
+#define SETUP_TOKEN_TOUCH_DROP_DISTANCE 42
+
+#define NUM_GLOBAL_SETUP_TOKENS 43
/* editor setup */
#define SETUP_TOKEN_EDITOR_EL_BOULDERDASH 0
#define SETUP_TOKEN_INT_FALLBACK_MUSIC_FILE 12
#define SETUP_TOKEN_INT_DEFAULT_LEVEL_SERIES 13
#define SETUP_TOKEN_INT_CHOOSE_FROM_TOP_LEVELDIR 14
-
-#define NUM_INTERNAL_SETUP_TOKENS 15
+#define SETUP_TOKEN_INT_DEFAULT_WINDOW_WIDTH 15
+#define SETUP_TOKEN_INT_DEFAULT_WINDOW_HEIGHT 16
+
+#define NUM_INTERNAL_SETUP_TOKENS 17
+
+/* debug setup */
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_0 0
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_1 1
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_2 2
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_3 3
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_4 4
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_5 5
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_6 6
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_7 7
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_8 8
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_9 9
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_0 10
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_1 11
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_2 12
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_3 13
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_4 14
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_5 15
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_6 16
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_7 17
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_8 18
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_9 19
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_USE_MOD_KEY 20
+#define SETUP_TOKEN_DEBUG_FRAME_DELAY_GAME_ONLY 21
+
+#define NUM_DEBUG_SETUP_TOKENS 22
/* options setup */
#define SETUP_TOKEN_OPTIONS_VERBOSE 0
static struct SetupInputInfo sii;
static struct SetupSystemInfo syi;
static struct SetupInternalInfo sxi;
+static struct SetupDebugInfo sdi;
static struct OptionInfo soi;
static struct TokenInfo global_setup_tokens[] =
{ TYPE_SWITCH, &si.scroll_delay, "scroll_delay" },
{ TYPE_INTEGER,&si.scroll_delay_value, "scroll_delay_value" },
{ TYPE_STRING, &si.engine_snapshot_mode, "engine_snapshot_mode" },
+ { TYPE_INTEGER,&si.engine_snapshot_memory, "engine_snapshot_memory" },
{ TYPE_SWITCH, &si.fade_screens, "fade_screens" },
{ TYPE_SWITCH, &si.autorecord, "automatic_tape_recording"},
{ TYPE_SWITCH, &si.show_titlescreen, "show_titlescreen" },
{ TYPE_SWITCH, &si.skip_levels, "skip_levels" },
{ TYPE_SWITCH, &si.time_limit, "time_limit" },
{ TYPE_SWITCH, &si.fullscreen, "fullscreen" },
- { TYPE_STRING, &si.fullscreen_mode, "fullscreen_mode" },
{ TYPE_INTEGER,&si.window_scaling_percent, "window_scaling_percent" },
{ TYPE_STRING, &si.window_scaling_quality, "window_scaling_quality" },
+ { TYPE_STRING, &si.screen_rendering_mode, "screen_rendering_mode" },
{ TYPE_SWITCH, &si.ask_on_escape, "ask_on_escape" },
{ TYPE_SWITCH, &si.ask_on_escape_editor, "ask_on_escape_editor" },
{ TYPE_SWITCH, &si.quick_switch, "quick_player_switch" },
{ TYPE_STRING, &sxi.fallback_music_file, "fallback_music_file" },
{ TYPE_STRING, &sxi.default_level_series, "default_level_series" },
{ TYPE_BOOLEAN,&sxi.choose_from_top_leveldir, "choose_from_top_leveldir" },
+ { TYPE_INTEGER,&sxi.default_window_width, "default_window_width" },
+ { TYPE_INTEGER,&sxi.default_window_height, "default_window_height" },
+};
+
+static struct TokenInfo debug_setup_tokens[] =
+{
+ { TYPE_INTEGER, &sdi.frame_delay[0], "debug.frame_delay_0" },
+ { TYPE_INTEGER, &sdi.frame_delay[1], "debug.frame_delay_1" },
+ { TYPE_INTEGER, &sdi.frame_delay[2], "debug.frame_delay_2" },
+ { TYPE_INTEGER, &sdi.frame_delay[3], "debug.frame_delay_3" },
+ { TYPE_INTEGER, &sdi.frame_delay[4], "debug.frame_delay_4" },
+ { TYPE_INTEGER, &sdi.frame_delay[5], "debug.frame_delay_5" },
+ { TYPE_INTEGER, &sdi.frame_delay[6], "debug.frame_delay_6" },
+ { TYPE_INTEGER, &sdi.frame_delay[7], "debug.frame_delay_7" },
+ { TYPE_INTEGER, &sdi.frame_delay[8], "debug.frame_delay_8" },
+ { TYPE_INTEGER, &sdi.frame_delay[9], "debug.frame_delay_9" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[0], "debug.key.frame_delay_0" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[1], "debug.key.frame_delay_1" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[2], "debug.key.frame_delay_2" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[3], "debug.key.frame_delay_3" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[4], "debug.key.frame_delay_4" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[5], "debug.key.frame_delay_5" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[6], "debug.key.frame_delay_6" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[7], "debug.key.frame_delay_7" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[8], "debug.key.frame_delay_8" },
+ { TYPE_KEY_X11, &sdi.frame_delay_key[9], "debug.key.frame_delay_9" },
+ { TYPE_BOOLEAN, &sdi.frame_delay_use_mod_key,"debug.frame_delay.use_mod_key"},
+ { TYPE_BOOLEAN, &sdi.frame_delay_game_only, "debug.frame_delay.game_only" },
};
static struct TokenInfo options_setup_tokens[] =
si->scroll_delay = TRUE;
si->scroll_delay_value = STD_SCROLL_DELAY;
si->engine_snapshot_mode = getStringCopy(STR_SNAPSHOT_MODE_DEFAULT);
+ si->engine_snapshot_memory = SNAPSHOT_MEMORY_DEFAULT;
si->fade_screens = TRUE;
si->autorecord = TRUE;
si->show_titlescreen = TRUE;
si->skip_levels = TRUE;
si->time_limit = TRUE;
si->fullscreen = FALSE;
- si->fullscreen_mode = getStringCopy(DEFAULT_FULLSCREEN_MODE);
si->window_scaling_percent = STD_WINDOW_SCALING_PERCENT;
si->window_scaling_quality = getStringCopy(SCALING_QUALITY_DEFAULT);
+ si->screen_rendering_mode = getStringCopy(STR_SPECIAL_RENDERING_DEFAULT);
si->ask_on_escape = TRUE;
si->ask_on_escape_editor = TRUE;
si->quick_switch = FALSE;
si->internal.default_level_series = getStringCopy(UNDEFINED_LEVELSET);
si->internal.choose_from_top_leveldir = FALSE;
+ si->internal.default_window_width = WIN_XSIZE_DEFAULT;
+ si->internal.default_window_height = WIN_YSIZE_DEFAULT;
+
+ si->debug.frame_delay[0] = DEFAULT_FRAME_DELAY_0;
+ si->debug.frame_delay[1] = DEFAULT_FRAME_DELAY_1;
+ si->debug.frame_delay[2] = DEFAULT_FRAME_DELAY_2;
+ si->debug.frame_delay[3] = DEFAULT_FRAME_DELAY_3;
+ si->debug.frame_delay[4] = DEFAULT_FRAME_DELAY_4;
+ si->debug.frame_delay[5] = DEFAULT_FRAME_DELAY_5;
+ si->debug.frame_delay[6] = DEFAULT_FRAME_DELAY_6;
+ si->debug.frame_delay[7] = DEFAULT_FRAME_DELAY_7;
+ si->debug.frame_delay[8] = DEFAULT_FRAME_DELAY_8;
+ si->debug.frame_delay[9] = DEFAULT_FRAME_DELAY_9;
+
+ si->debug.frame_delay_key[0] = DEFAULT_KEY_FRAME_DELAY_0;
+ si->debug.frame_delay_key[1] = DEFAULT_KEY_FRAME_DELAY_1;
+ si->debug.frame_delay_key[2] = DEFAULT_KEY_FRAME_DELAY_2;
+ si->debug.frame_delay_key[3] = DEFAULT_KEY_FRAME_DELAY_3;
+ si->debug.frame_delay_key[4] = DEFAULT_KEY_FRAME_DELAY_4;
+ si->debug.frame_delay_key[5] = DEFAULT_KEY_FRAME_DELAY_5;
+ si->debug.frame_delay_key[6] = DEFAULT_KEY_FRAME_DELAY_6;
+ si->debug.frame_delay_key[7] = DEFAULT_KEY_FRAME_DELAY_7;
+ si->debug.frame_delay_key[8] = DEFAULT_KEY_FRAME_DELAY_8;
+ si->debug.frame_delay_key[9] = DEFAULT_KEY_FRAME_DELAY_9;
+
+ si->debug.frame_delay_use_mod_key = DEFAULT_FRAME_DELAY_USE_MOD_KEY;
+ si->debug.frame_delay_game_only = DEFAULT_FRAME_DELAY_GAME_ONLY;
+
si->options.verbose = FALSE;
#if defined(PLATFORM_ANDROID)
getHashEntry(setup_file_hash, internal_setup_tokens[i].text));
setup.internal = sxi;
+ /* debug setup */
+ sdi = setup.debug;
+ for (i = 0; i < NUM_DEBUG_SETUP_TOKENS; i++)
+ setSetupInfo(debug_setup_tokens, i,
+ getHashEntry(setup_file_hash, debug_setup_tokens[i].text));
+ setup.debug = sdi;
+
/* options setup */
soi = setup.options;
for (i = 0; i < NUM_OPTIONS_SETUP_TOKENS; i++)
/* internal setup */
/* (internal setup values not saved to user setup file) */
+ /* debug setup */
+ sdi = setup.debug;
+ fprintf(file, "\n");
+ for (i = 0; i < NUM_DEBUG_SETUP_TOKENS; i++)
+ fprintf(file, "%s\n", getSetupLine(debug_setup_tokens, "", i));
+
/* options setup */
soi = setup.options;
fprintf(file, "\n");
/* special case: initialize "ARG_DEFAULT" values in static default config */
/* (e.g., initialize "[titlemessage].fade_mode" from "[title].fade_mode") */
+ titlescreen_initial_first_default.fade_mode =
+ title_initial_first_default.fade_mode;
+ titlescreen_initial_first_default.fade_delay =
+ title_initial_first_default.fade_delay;
+ titlescreen_initial_first_default.post_delay =
+ title_initial_first_default.post_delay;
+ titlescreen_initial_first_default.auto_delay =
+ title_initial_first_default.auto_delay;
+ titlescreen_first_default.fade_mode = title_first_default.fade_mode;
+ titlescreen_first_default.fade_delay = title_first_default.fade_delay;
+ titlescreen_first_default.post_delay = title_first_default.post_delay;
+ titlescreen_first_default.auto_delay = title_first_default.auto_delay;
+ titlemessage_initial_first_default.fade_mode =
+ title_initial_first_default.fade_mode;
+ titlemessage_initial_first_default.fade_delay =
+ title_initial_first_default.fade_delay;
+ titlemessage_initial_first_default.post_delay =
+ title_initial_first_default.post_delay;
+ titlemessage_initial_first_default.auto_delay =
+ title_initial_first_default.auto_delay;
+ titlemessage_first_default.fade_mode = title_first_default.fade_mode;
+ titlemessage_first_default.fade_delay = title_first_default.fade_delay;
+ titlemessage_first_default.post_delay = title_first_default.post_delay;
+ titlemessage_first_default.auto_delay = title_first_default.auto_delay;
+
titlescreen_initial_default.fade_mode = title_initial_default.fade_mode;
titlescreen_initial_default.fade_delay = title_initial_default.fade_delay;
titlescreen_initial_default.post_delay = title_initial_default.post_delay;
/* (e.g., init "titlemessage_1.fade_mode" from "[titlemessage].fade_mode") */
for (i = 0; i < MAX_NUM_TITLE_MESSAGES; i++)
{
+ titlescreen_initial_first[i] = titlescreen_initial_first_default;
+ titlescreen_first[i] = titlescreen_first_default;
+ titlemessage_initial_first[i] = titlemessage_initial_first_default;
+ titlemessage_first[i] = titlemessage_first_default;
+
titlescreen_initial[i] = titlescreen_initial_default;
titlescreen[i] = titlescreen_default;
titlemessage_initial[i] = titlemessage_initial_default;
}
title_info[] =
{
+ /* initialize first titles from "enter screen" definitions, if defined */
+ { &title_initial_first_default, "menu.enter_screen.TITLE" },
+ { &title_first_default, "menu.enter_screen.TITLE" },
+
/* initialize title screens from "next screen" definitions, if defined */
{ &title_initial_default, "menu.next_screen.TITLE" },
{ &title_default, "menu.next_screen.TITLE" },