tape.changed = FALSE;
}
-static boolean SaveTapeCheckedExt(int nr, char *msg_replace, char *msg_saved)
+static boolean SaveTapeCheckedExt(int nr, char *msg_replace, char *msg_saved,
+ unsigned int req_state_added)
{
char *filename = getTapeFilename(nr);
boolean new_tape = !fileExists(filename);
boolean tape_saved = FALSE;
- if (new_tape || Request(msg_replace, REQ_ASK))
+ if (new_tape || Request(msg_replace, REQ_ASK | req_state_added))
{
SaveTape(nr);
if (new_tape)
- Request(msg_saved, REQ_CONFIRM);
+ Request(msg_saved, REQ_CONFIRM | req_state_added);
tape_saved = TRUE;
}
boolean SaveTapeChecked(int nr)
{
- return SaveTapeCheckedExt(nr, "Replace old tape?", "Tape saved!");
+ return SaveTapeCheckedExt(nr, "Replace old tape?", "Tape saved!", 0);
}
boolean SaveTapeChecked_LevelSolved(int nr)
{
return SaveTapeCheckedExt(nr, "Level solved! Replace old tape?",
- "Level solved! Tape saved!");
+ "Level solved! Tape saved!", REQ_STAY_OPEN);
}
void DumpTape(struct TapeInfo *tape)
#define TOKEN_STR_PLAYER_PREFIX "player_"
-// global setup
-enum
-{
- SETUP_TOKEN_PLAYER_NAME = 0,
- SETUP_TOKEN_SOUND,
- SETUP_TOKEN_SOUND_LOOPS,
- SETUP_TOKEN_SOUND_MUSIC,
- SETUP_TOKEN_SOUND_SIMPLE,
- SETUP_TOKEN_TOONS,
- SETUP_TOKEN_SCROLL_DELAY,
- SETUP_TOKEN_SCROLL_DELAY_VALUE,
- SETUP_TOKEN_ENGINE_SNAPSHOT_MODE,
- SETUP_TOKEN_ENGINE_SNAPSHOT_MEMORY,
- SETUP_TOKEN_FADE_SCREENS,
- SETUP_TOKEN_AUTORECORD,
- SETUP_TOKEN_SHOW_TITLESCREEN,
- SETUP_TOKEN_QUICK_DOORS,
- SETUP_TOKEN_TEAM_MODE,
- SETUP_TOKEN_HANDICAP,
- SETUP_TOKEN_SKIP_LEVELS,
- SETUP_TOKEN_INCREMENT_LEVELS,
- SETUP_TOKEN_AUTO_PLAY_NEXT_LEVEL,
- SETUP_TOKEN_SKIP_SCORES_AFTER_GAME,
- SETUP_TOKEN_TIME_LIMIT,
- SETUP_TOKEN_FULLSCREEN,
- SETUP_TOKEN_WINDOW_SCALING_PERCENT,
- SETUP_TOKEN_WINDOW_SCALING_QUALITY,
- SETUP_TOKEN_SCREEN_RENDERING_MODE,
- SETUP_TOKEN_VSYNC_MODE,
- SETUP_TOKEN_ASK_ON_ESCAPE,
- SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR,
- SETUP_TOKEN_ASK_ON_GAME_OVER,
- SETUP_TOKEN_QUICK_SWITCH,
- SETUP_TOKEN_INPUT_ON_FOCUS,
- SETUP_TOKEN_PREFER_AGA_GRAPHICS,
- SETUP_TOKEN_GAME_SPEED_EXTENDED,
- SETUP_TOKEN_GAME_FRAME_DELAY,
- SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS,
- SETUP_TOKEN_SMALL_GAME_GRAPHICS,
- SETUP_TOKEN_SHOW_SNAPSHOT_BUTTONS,
- SETUP_TOKEN_GRAPHICS_SET,
- SETUP_TOKEN_SOUNDS_SET,
- SETUP_TOKEN_MUSIC_SET,
- SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS,
- SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS,
- SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC,
- SETUP_TOKEN_VOLUME_SIMPLE,
- SETUP_TOKEN_VOLUME_LOOPS,
- SETUP_TOKEN_VOLUME_MUSIC,
- SETUP_TOKEN_NETWORK_MODE,
- SETUP_TOKEN_NETWORK_PLAYER_NR,
- SETUP_TOKEN_NETWORK_SERVER_HOSTNAME,
- SETUP_TOKEN_TOUCH_CONTROL_TYPE,
- SETUP_TOKEN_TOUCH_MOVE_DISTANCE,
- SETUP_TOKEN_TOUCH_DROP_DISTANCE,
- SETUP_TOKEN_TOUCH_TRANSPARENCY,
- SETUP_TOKEN_TOUCH_DRAW_OUTLINED,
- SETUP_TOKEN_TOUCH_DRAW_PRESSED,
- SETUP_TOKEN_TOUCH_GRID_XSIZE_0,
- SETUP_TOKEN_TOUCH_GRID_YSIZE_0,
- SETUP_TOKEN_TOUCH_GRID_XSIZE_1,
- SETUP_TOKEN_TOUCH_GRID_YSIZE_1,
-
- NUM_GLOBAL_SETUP_TOKENS
-};
-
-// auto setup
-enum
-{
- SETUP_TOKEN_AUTO_EDITOR_ZOOM_TILESIZE = 0,
-
- NUM_AUTO_SETUP_TOKENS
-};
-
-// editor setup
-enum
-{
- SETUP_TOKEN_EDITOR_EL_CLASSIC = 0,
- SETUP_TOKEN_EDITOR_EL_CUSTOM,
- SETUP_TOKEN_EDITOR_EL_USER_DEFINED,
- SETUP_TOKEN_EDITOR_EL_DYNAMIC,
- SETUP_TOKEN_EDITOR_EL_HEADLINES,
- SETUP_TOKEN_EDITOR_SHOW_ELEMENT_TOKEN,
-
- NUM_EDITOR_SETUP_TOKENS
-};
-
-// editor cascade setup
-enum
-{
- SETUP_TOKEN_EDITOR_CASCADE_BD = 0,
- SETUP_TOKEN_EDITOR_CASCADE_EM,
- SETUP_TOKEN_EDITOR_CASCADE_EMC,
- SETUP_TOKEN_EDITOR_CASCADE_RND,
- SETUP_TOKEN_EDITOR_CASCADE_SB,
- SETUP_TOKEN_EDITOR_CASCADE_SP,
- SETUP_TOKEN_EDITOR_CASCADE_DC,
- SETUP_TOKEN_EDITOR_CASCADE_DX,
- SETUP_TOKEN_EDITOR_CASCADE_TEXT,
- SETUP_TOKEN_EDITOR_CASCADE_STEELTEXT,
- SETUP_TOKEN_EDITOR_CASCADE_CE,
- SETUP_TOKEN_EDITOR_CASCADE_GE,
- SETUP_TOKEN_EDITOR_CASCADE_REF,
- SETUP_TOKEN_EDITOR_CASCADE_USER,
- SETUP_TOKEN_EDITOR_CASCADE_DYNAMIC,
-
- NUM_EDITOR_CASCADE_SETUP_TOKENS
-};
-
-// shortcut setup
-enum
-{
- SETUP_TOKEN_SHORTCUT_SAVE_GAME = 0,
- SETUP_TOKEN_SHORTCUT_LOAD_GAME,
- SETUP_TOKEN_SHORTCUT_TOGGLE_PAUSE,
- SETUP_TOKEN_SHORTCUT_FOCUS_PLAYER_1,
- SETUP_TOKEN_SHORTCUT_FOCUS_PLAYER_2,
- SETUP_TOKEN_SHORTCUT_FOCUS_PLAYER_3,
- SETUP_TOKEN_SHORTCUT_FOCUS_PLAYER_4,
- SETUP_TOKEN_SHORTCUT_FOCUS_PLAYER_ALL,
- SETUP_TOKEN_SHORTCUT_TAPE_EJECT,
- SETUP_TOKEN_SHORTCUT_TAPE_EXTRA,
- SETUP_TOKEN_SHORTCUT_TAPE_STOP,
- SETUP_TOKEN_SHORTCUT_TAPE_PAUSE,
- SETUP_TOKEN_SHORTCUT_TAPE_RECORD,
- SETUP_TOKEN_SHORTCUT_TAPE_PLAY,
- SETUP_TOKEN_SHORTCUT_SOUND_SIMPLE,
- SETUP_TOKEN_SHORTCUT_SOUND_LOOPS,
- SETUP_TOKEN_SHORTCUT_SOUND_MUSIC,
- SETUP_TOKEN_SHORTCUT_SNAP_LEFT,
- SETUP_TOKEN_SHORTCUT_SNAP_RIGHT,
- SETUP_TOKEN_SHORTCUT_SNAP_UP,
- SETUP_TOKEN_SHORTCUT_SNAP_DOWN,
-
- NUM_SHORTCUT_SETUP_TOKENS
-};
-
-// player setup
-enum
-{
- SETUP_TOKEN_PLAYER_USE_JOYSTICK = 0,
- SETUP_TOKEN_PLAYER_JOY_DEVICE_NAME,
- SETUP_TOKEN_PLAYER_JOY_XLEFT,
- SETUP_TOKEN_PLAYER_JOY_XMIDDLE,
- SETUP_TOKEN_PLAYER_JOY_XRIGHT,
- SETUP_TOKEN_PLAYER_JOY_YUPPER,
- SETUP_TOKEN_PLAYER_JOY_YMIDDLE,
- SETUP_TOKEN_PLAYER_JOY_YLOWER,
- SETUP_TOKEN_PLAYER_JOY_SNAP,
- SETUP_TOKEN_PLAYER_JOY_DROP,
- SETUP_TOKEN_PLAYER_KEY_LEFT,
- SETUP_TOKEN_PLAYER_KEY_RIGHT,
- SETUP_TOKEN_PLAYER_KEY_UP,
- SETUP_TOKEN_PLAYER_KEY_DOWN,
- SETUP_TOKEN_PLAYER_KEY_SNAP,
- SETUP_TOKEN_PLAYER_KEY_DROP,
-
- NUM_PLAYER_SETUP_TOKENS
-};
-
-// system setup
-enum
-{
- SETUP_TOKEN_SYSTEM_SDL_VIDEODRIVER = 0,
- SETUP_TOKEN_SYSTEM_SDL_AUDIODRIVER,
- SETUP_TOKEN_SYSTEM_AUDIO_FRAGMENT_SIZE,
-
- NUM_SYSTEM_SETUP_TOKENS
-};
-
-// internal setup
-enum
-{
- SETUP_TOKEN_INT_PROGRAM_TITLE = 0,
- SETUP_TOKEN_INT_PROGRAM_VERSION,
- SETUP_TOKEN_INT_PROGRAM_AUTHOR,
- SETUP_TOKEN_INT_PROGRAM_EMAIL,
- SETUP_TOKEN_INT_PROGRAM_WEBSITE,
- SETUP_TOKEN_INT_PROGRAM_COPYRIGHT,
- SETUP_TOKEN_INT_PROGRAM_COMPANY,
- SETUP_TOKEN_INT_PROGRAM_ICON_FILE,
- SETUP_TOKEN_INT_DEFAULT_GRAPHICS_SET,
- SETUP_TOKEN_INT_DEFAULT_SOUNDS_SET,
- SETUP_TOKEN_INT_DEFAULT_MUSIC_SET,
- SETUP_TOKEN_INT_FALLBACK_GRAPHICS_FILE,
- SETUP_TOKEN_INT_FALLBACK_SOUNDS_FILE,
- SETUP_TOKEN_INT_FALLBACK_MUSIC_FILE,
- SETUP_TOKEN_INT_DEFAULT_LEVEL_SERIES,
- SETUP_TOKEN_INT_CHOOSE_FROM_TOP_LEVELDIR,
- SETUP_TOKEN_INT_SHOW_SCALING_IN_TITLE,
- SETUP_TOKEN_INT_DEFAULT_WINDOW_WIDTH,
- SETUP_TOKEN_INT_DEFAULT_WINDOW_HEIGHT,
-
- NUM_INTERNAL_SETUP_TOKENS
-};
-
-// debug setup
-enum
-{
- SETUP_TOKEN_DEBUG_FRAME_DELAY_0 = 0,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_1,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_2,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_3,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_4,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_5,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_6,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_7,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_8,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_9,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_0,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_1,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_2,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_3,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_4,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_5,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_6,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_7,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_8,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_KEY_9,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_USE_MOD_KEY,
- SETUP_TOKEN_DEBUG_FRAME_DELAY_GAME_ONLY,
- SETUP_TOKEN_DEBUG_SHOW_FRAMES_PER_SECOND,
-
- NUM_DEBUG_SETUP_TOKENS
-};
-
-// options setup
-enum
-{
- SETUP_TOKEN_OPTIONS_VERBOSE = 0,
-
- NUM_OPTIONS_SETUP_TOKENS
-};
-
-
-static struct SetupInfo si;
-static struct SetupAutoSetupInfo sasi;
-static struct SetupEditorInfo sei;
-static struct SetupEditorCascadeInfo seci;
-static struct SetupShortcutInfo ssi;
-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_STRING, &si.player_name, "player_name" },
- { TYPE_SWITCH, &si.sound, "sound" },
- { TYPE_SWITCH, &si.sound_loops, "repeating_sound_loops" },
- { TYPE_SWITCH, &si.sound_music, "background_music" },
- { TYPE_SWITCH, &si.sound_simple, "simple_sound_effects" },
- { TYPE_SWITCH, &si.toons, "toons" },
- { 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.quick_doors, "quick_doors" },
- { TYPE_SWITCH, &si.team_mode, "team_mode" },
- { TYPE_SWITCH, &si.handicap, "handicap" },
- { TYPE_SWITCH, &si.skip_levels, "skip_levels" },
- { TYPE_SWITCH, &si.increment_levels, "increment_levels" },
- { TYPE_SWITCH, &si.auto_play_next_level, "auto_play_next_level" },
- { TYPE_SWITCH, &si.skip_scores_after_game, "skip_scores_after_game" },
- { TYPE_SWITCH, &si.time_limit, "time_limit" },
- { TYPE_SWITCH, &si.fullscreen, "fullscreen" },
- { 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_STRING, &si.vsync_mode, "vsync_mode" },
- { TYPE_SWITCH, &si.ask_on_escape, "ask_on_escape" },
- { TYPE_SWITCH, &si.ask_on_escape_editor, "ask_on_escape_editor" },
- { TYPE_SWITCH, &si.ask_on_game_over, "ask_on_game_over" },
- { TYPE_SWITCH, &si.quick_switch, "quick_player_switch" },
- { TYPE_SWITCH, &si.input_on_focus, "input_on_focus" },
- { TYPE_SWITCH, &si.prefer_aga_graphics, "prefer_aga_graphics" },
- { TYPE_SWITCH, &si.game_speed_extended, "game_speed_extended" },
- { TYPE_INTEGER,&si.game_frame_delay, "game_frame_delay" },
- { TYPE_SWITCH, &si.sp_show_border_elements, "sp_show_border_elements" },
- { TYPE_SWITCH, &si.small_game_graphics, "small_game_graphics" },
- { TYPE_SWITCH, &si.show_snapshot_buttons, "show_snapshot_buttons" },
- { TYPE_STRING, &si.graphics_set, "graphics_set" },
- { TYPE_STRING, &si.sounds_set, "sounds_set" },
- { TYPE_STRING, &si.music_set, "music_set" },
- { TYPE_SWITCH3,&si.override_level_graphics, "override_level_graphics" },
- { TYPE_SWITCH3,&si.override_level_sounds, "override_level_sounds" },
- { TYPE_SWITCH3,&si.override_level_music, "override_level_music" },
- { TYPE_INTEGER,&si.volume_simple, "volume_simple" },
- { TYPE_INTEGER,&si.volume_loops, "volume_loops" },
- { TYPE_INTEGER,&si.volume_music, "volume_music" },
- { TYPE_SWITCH, &si.network_mode, "network_mode" },
- { TYPE_PLAYER, &si.network_player_nr, "network_player" },
- { TYPE_STRING, &si.network_server_hostname, "network_server_hostname" },
- { TYPE_STRING, &si.touch.control_type, "touch.control_type" },
- { TYPE_INTEGER,&si.touch.move_distance, "touch.move_distance" },
- { TYPE_INTEGER,&si.touch.drop_distance, "touch.drop_distance" },
- { TYPE_INTEGER,&si.touch.transparency, "touch.transparency" },
- { TYPE_INTEGER,&si.touch.draw_outlined, "touch.draw_outlined" },
- { TYPE_INTEGER,&si.touch.draw_pressed, "touch.draw_pressed" },
- { TYPE_INTEGER,&si.touch.grid_xsize[0], "touch.virtual_buttons.0.xsize" },
- { TYPE_INTEGER,&si.touch.grid_ysize[0], "touch.virtual_buttons.0.ysize" },
- { TYPE_INTEGER,&si.touch.grid_xsize[1], "touch.virtual_buttons.1.xsize" },
- { TYPE_INTEGER,&si.touch.grid_ysize[1], "touch.virtual_buttons.1.ysize" },
+ {
+ TYPE_STRING,
+ &setup.player_name, "player_name"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.sound, "sound"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.sound_loops, "repeating_sound_loops"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.sound_music, "background_music"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.sound_simple, "simple_sound_effects"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.toons, "toons"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.scroll_delay, "scroll_delay"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.scroll_delay_value, "scroll_delay_value"
+ },
+ {
+ TYPE_STRING,
+ &setup.engine_snapshot_mode, "engine_snapshot_mode"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.engine_snapshot_memory, "engine_snapshot_memory"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.fade_screens, "fade_screens"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.autorecord, "automatic_tape_recording"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.show_titlescreen, "show_titlescreen"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.quick_doors, "quick_doors"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.team_mode, "team_mode"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.handicap, "handicap"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.skip_levels, "skip_levels"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.increment_levels, "increment_levels"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.auto_play_next_level, "auto_play_next_level"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.skip_scores_after_game, "skip_scores_after_game"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.time_limit, "time_limit"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.fullscreen, "fullscreen"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.window_scaling_percent, "window_scaling_percent"
+ },
+ {
+ TYPE_STRING,
+ &setup.window_scaling_quality, "window_scaling_quality"
+ },
+ {
+ TYPE_STRING,
+ &setup.screen_rendering_mode, "screen_rendering_mode"
+ },
+ {
+ TYPE_STRING,
+ &setup.vsync_mode, "vsync_mode"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.ask_on_escape, "ask_on_escape"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.ask_on_escape_editor, "ask_on_escape_editor"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.ask_on_game_over, "ask_on_game_over"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.quick_switch, "quick_player_switch"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.input_on_focus, "input_on_focus"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.prefer_aga_graphics, "prefer_aga_graphics"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.game_speed_extended, "game_speed_extended"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.game_frame_delay, "game_frame_delay"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.sp_show_border_elements, "sp_show_border_elements"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.small_game_graphics, "small_game_graphics"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.show_snapshot_buttons, "show_snapshot_buttons"
+ },
+ {
+ TYPE_STRING,
+ &setup.graphics_set, "graphics_set"
+ },
+ {
+ TYPE_STRING,
+ &setup.sounds_set, "sounds_set"
+ },
+ {
+ TYPE_STRING,
+ &setup.music_set, "music_set"
+ },
+ {
+ TYPE_SWITCH3,
+ &setup.override_level_graphics, "override_level_graphics"
+ },
+ {
+ TYPE_SWITCH3,
+ &setup.override_level_sounds, "override_level_sounds"
+ },
+ {
+ TYPE_SWITCH3,
+ &setup.override_level_music, "override_level_music"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.volume_simple, "volume_simple"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.volume_loops, "volume_loops"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.volume_music, "volume_music"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.network_mode, "network_mode"
+ },
+ {
+ TYPE_PLAYER,
+ &setup.network_player_nr, "network_player"
+ },
+ {
+ TYPE_STRING,
+ &setup.network_server_hostname, "network_server_hostname"
+ },
+ {
+ TYPE_STRING,
+ &setup.touch.control_type, "touch.control_type"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.move_distance, "touch.move_distance"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.drop_distance, "touch.drop_distance"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.transparency, "touch.transparency"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.draw_outlined, "touch.draw_outlined"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.draw_pressed, "touch.draw_pressed"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.grid_xsize[0], "touch.virtual_buttons.0.xsize"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.grid_ysize[0], "touch.virtual_buttons.0.ysize"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.grid_xsize[1], "touch.virtual_buttons.1.xsize"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.touch.grid_ysize[1], "touch.virtual_buttons.1.ysize"
+ },
};
static struct TokenInfo auto_setup_tokens[] =
{
- { TYPE_INTEGER,&sasi.editor_zoom_tilesize, "editor.zoom_tilesize" },
+ {
+ TYPE_INTEGER,
+ &setup.auto_setup.editor_zoom_tilesize, "editor.zoom_tilesize"
+ },
};
static struct TokenInfo editor_setup_tokens[] =
{
- { TYPE_SWITCH, &sei.el_classic, "editor.el_classic" },
- { TYPE_SWITCH, &sei.el_custom, "editor.el_custom" },
- { TYPE_SWITCH, &sei.el_user_defined, "editor.el_user_defined" },
- { TYPE_SWITCH, &sei.el_dynamic, "editor.el_dynamic" },
- { TYPE_SWITCH, &sei.el_headlines, "editor.el_headlines" },
- { TYPE_SWITCH, &sei.show_element_token,"editor.show_element_token" },
+ {
+ TYPE_SWITCH,
+ &setup.editor.el_classic, "editor.el_classic"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor.el_custom, "editor.el_custom"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor.el_user_defined, "editor.el_user_defined"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor.el_dynamic, "editor.el_dynamic"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor.el_headlines, "editor.el_headlines"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor.show_element_token, "editor.show_element_token"
+ },
};
static struct TokenInfo editor_cascade_setup_tokens[] =
{
- { TYPE_SWITCH, &seci.el_bd, "editor.cascade.el_bd" },
- { TYPE_SWITCH, &seci.el_em, "editor.cascade.el_em" },
- { TYPE_SWITCH, &seci.el_emc, "editor.cascade.el_emc" },
- { TYPE_SWITCH, &seci.el_rnd, "editor.cascade.el_rnd" },
- { TYPE_SWITCH, &seci.el_sb, "editor.cascade.el_sb" },
- { TYPE_SWITCH, &seci.el_sp, "editor.cascade.el_sp" },
- { TYPE_SWITCH, &seci.el_dc, "editor.cascade.el_dc" },
- { TYPE_SWITCH, &seci.el_dx, "editor.cascade.el_dx" },
- { TYPE_SWITCH, &seci.el_mm, "editor.cascade.el_mm" },
- { TYPE_SWITCH, &seci.el_df, "editor.cascade.el_df" },
- { TYPE_SWITCH, &seci.el_chars, "editor.cascade.el_chars" },
- { TYPE_SWITCH, &seci.el_steel_chars, "editor.cascade.el_steel_chars" },
- { TYPE_SWITCH, &seci.el_ce, "editor.cascade.el_ce" },
- { TYPE_SWITCH, &seci.el_ge, "editor.cascade.el_ge" },
- { TYPE_SWITCH, &seci.el_ref, "editor.cascade.el_ref" },
- { TYPE_SWITCH, &seci.el_user, "editor.cascade.el_user" },
- { TYPE_SWITCH, &seci.el_dynamic, "editor.cascade.el_dynamic" },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_bd, "editor.cascade.el_bd"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_em, "editor.cascade.el_em"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_emc, "editor.cascade.el_emc"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_rnd, "editor.cascade.el_rnd"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_sb, "editor.cascade.el_sb"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_sp, "editor.cascade.el_sp"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_dc, "editor.cascade.el_dc"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_dx, "editor.cascade.el_dx"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_mm, "editor.cascade.el_mm"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_df, "editor.cascade.el_df"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_chars, "editor.cascade.el_chars"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_steel_chars, "editor.cascade.el_steel_chars"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_ce, "editor.cascade.el_ce"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_ge, "editor.cascade.el_ge"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_ref, "editor.cascade.el_ref"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_user, "editor.cascade.el_user"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.editor_cascade.el_dynamic, "editor.cascade.el_dynamic"
+ },
};
static struct TokenInfo shortcut_setup_tokens[] =
{
- { TYPE_KEY_X11, &ssi.save_game, "shortcut.save_game" },
- { TYPE_KEY_X11, &ssi.load_game, "shortcut.load_game" },
- { TYPE_KEY_X11, &ssi.toggle_pause, "shortcut.toggle_pause" },
- { TYPE_KEY_X11, &ssi.focus_player[0], "shortcut.focus_player_1" },
- { TYPE_KEY_X11, &ssi.focus_player[1], "shortcut.focus_player_2" },
- { TYPE_KEY_X11, &ssi.focus_player[2], "shortcut.focus_player_3" },
- { TYPE_KEY_X11, &ssi.focus_player[3], "shortcut.focus_player_4" },
- { TYPE_KEY_X11, &ssi.focus_player_all,"shortcut.focus_player_all" },
- { TYPE_KEY_X11, &ssi.tape_eject, "shortcut.tape_eject" },
- { TYPE_KEY_X11, &ssi.tape_extra, "shortcut.tape_extra" },
- { TYPE_KEY_X11, &ssi.tape_stop, "shortcut.tape_stop" },
- { TYPE_KEY_X11, &ssi.tape_pause, "shortcut.tape_pause" },
- { TYPE_KEY_X11, &ssi.tape_record, "shortcut.tape_record" },
- { TYPE_KEY_X11, &ssi.tape_play, "shortcut.tape_play" },
- { TYPE_KEY_X11, &ssi.sound_simple, "shortcut.sound_simple" },
- { TYPE_KEY_X11, &ssi.sound_loops, "shortcut.sound_loops" },
- { TYPE_KEY_X11, &ssi.sound_music, "shortcut.sound_music" },
- { TYPE_KEY_X11, &ssi.snap_left, "shortcut.snap_left" },
- { TYPE_KEY_X11, &ssi.snap_right, "shortcut.snap_right" },
- { TYPE_KEY_X11, &ssi.snap_up, "shortcut.snap_up" },
- { TYPE_KEY_X11, &ssi.snap_down, "shortcut.snap_down" },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.save_game, "shortcut.save_game"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.load_game, "shortcut.load_game"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.toggle_pause, "shortcut.toggle_pause"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.focus_player[0], "shortcut.focus_player_1"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.focus_player[1], "shortcut.focus_player_2"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.focus_player[2], "shortcut.focus_player_3"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.focus_player[3], "shortcut.focus_player_4"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.focus_player_all, "shortcut.focus_player_all"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.tape_eject, "shortcut.tape_eject"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.tape_extra, "shortcut.tape_extra"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.tape_stop, "shortcut.tape_stop"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.tape_pause, "shortcut.tape_pause"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.tape_record, "shortcut.tape_record"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.tape_play, "shortcut.tape_play"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.sound_simple, "shortcut.sound_simple"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.sound_loops, "shortcut.sound_loops"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.sound_music, "shortcut.sound_music"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.snap_left, "shortcut.snap_left"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.snap_right, "shortcut.snap_right"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.snap_up, "shortcut.snap_up"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.shortcut.snap_down, "shortcut.snap_down"
+ },
};
+static struct SetupInputInfo setup_input;
static struct TokenInfo player_setup_tokens[] =
{
- { TYPE_BOOLEAN, &sii.use_joystick, ".use_joystick" },
- { TYPE_STRING, &sii.joy.device_name, ".joy.device_name" },
- { TYPE_INTEGER, &sii.joy.xleft, ".joy.xleft" },
- { TYPE_INTEGER, &sii.joy.xmiddle, ".joy.xmiddle" },
- { TYPE_INTEGER, &sii.joy.xright, ".joy.xright" },
- { TYPE_INTEGER, &sii.joy.yupper, ".joy.yupper" },
- { TYPE_INTEGER, &sii.joy.ymiddle, ".joy.ymiddle" },
- { TYPE_INTEGER, &sii.joy.ylower, ".joy.ylower" },
- { TYPE_INTEGER, &sii.joy.snap, ".joy.snap_field" },
- { TYPE_INTEGER, &sii.joy.drop, ".joy.place_bomb" },
- { TYPE_KEY_X11, &sii.key.left, ".key.move_left" },
- { TYPE_KEY_X11, &sii.key.right, ".key.move_right" },
- { TYPE_KEY_X11, &sii.key.up, ".key.move_up" },
- { TYPE_KEY_X11, &sii.key.down, ".key.move_down" },
- { TYPE_KEY_X11, &sii.key.snap, ".key.snap_field" },
- { TYPE_KEY_X11, &sii.key.drop, ".key.place_bomb" },
+ {
+ TYPE_BOOLEAN,
+ &setup_input.use_joystick, ".use_joystick"
+ },
+ {
+ TYPE_STRING,
+ &setup_input.joy.device_name, ".joy.device_name"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.xleft, ".joy.xleft"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.xmiddle, ".joy.xmiddle"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.xright, ".joy.xright"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.yupper, ".joy.yupper"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.ymiddle, ".joy.ymiddle"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.ylower, ".joy.ylower"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.snap, ".joy.snap_field"
+ },
+ {
+ TYPE_INTEGER,
+ &setup_input.joy.drop, ".joy.place_bomb"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup_input.key.left, ".key.move_left"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup_input.key.right, ".key.move_right"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup_input.key.up, ".key.move_up"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup_input.key.down, ".key.move_down"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup_input.key.snap, ".key.snap_field"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup_input.key.drop, ".key.place_bomb"
+ },
};
static struct TokenInfo system_setup_tokens[] =
{
- { TYPE_STRING, &syi.sdl_videodriver, "system.sdl_videodriver" },
- { TYPE_STRING, &syi.sdl_audiodriver, "system.sdl_audiodriver" },
- { TYPE_INTEGER, &syi.audio_fragment_size,"system.audio_fragment_size" },
+ {
+ TYPE_STRING,
+ &setup.system.sdl_videodriver, "system.sdl_videodriver"
+ },
+ {
+ TYPE_STRING,
+ &setup.system.sdl_audiodriver, "system.sdl_audiodriver"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.system.audio_fragment_size, "system.audio_fragment_size"
+ },
};
static struct TokenInfo internal_setup_tokens[] =
{
- { TYPE_STRING, &sxi.program_title, "program_title" },
- { TYPE_STRING, &sxi.program_version, "program_version" },
- { TYPE_STRING, &sxi.program_author, "program_author" },
- { TYPE_STRING, &sxi.program_email, "program_email" },
- { TYPE_STRING, &sxi.program_website, "program_website" },
- { TYPE_STRING, &sxi.program_copyright, "program_copyright" },
- { TYPE_STRING, &sxi.program_company, "program_company" },
- { TYPE_STRING, &sxi.program_icon_file, "program_icon_file" },
- { TYPE_STRING, &sxi.default_graphics_set, "default_graphics_set" },
- { TYPE_STRING, &sxi.default_sounds_set, "default_sounds_set" },
- { TYPE_STRING, &sxi.default_music_set, "default_music_set" },
- { TYPE_STRING, &sxi.fallback_graphics_file, "fallback_graphics_file"},
- { TYPE_STRING, &sxi.fallback_sounds_file, "fallback_sounds_file" },
- { 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_BOOLEAN,&sxi.show_scaling_in_title, "show_scaling_in_title" },
- { TYPE_INTEGER,&sxi.default_window_width, "default_window_width" },
- { TYPE_INTEGER,&sxi.default_window_height, "default_window_height" },
+ {
+ TYPE_STRING,
+ &setup.internal.program_title, "program_title"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.program_version, "program_version"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.program_author, "program_author"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.program_email, "program_email"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.program_website, "program_website"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.program_copyright, "program_copyright"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.program_company, "program_company"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.program_icon_file, "program_icon_file"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.default_graphics_set, "default_graphics_set"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.default_sounds_set, "default_sounds_set"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.default_music_set, "default_music_set"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.fallback_graphics_file, "fallback_graphics_file"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.fallback_sounds_file, "fallback_sounds_file"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.fallback_music_file, "fallback_music_file"
+ },
+ {
+ TYPE_STRING,
+ &setup.internal.default_level_series, "default_level_series"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.internal.default_window_width, "default_window_width"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.internal.default_window_height, "default_window_height"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.choose_from_top_leveldir, "choose_from_top_leveldir"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.show_scaling_in_title, "show_scaling_in_title"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_game, "menu_game"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_editor, "menu_editor"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_graphics, "menu_graphics"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_sound, "menu_sound"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_artwork, "menu_artwork"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_input, "menu_input"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_touch, "menu_touch"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_shortcuts, "menu_shortcuts"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_exit, "menu_exit"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.internal.menu_save_and_exit, "menu_save_and_exit"
+ },
};
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" },
- { TYPE_BOOLEAN, &sdi.show_frames_per_second, "debug.show_frames_per_second" },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[0], "debug.frame_delay_0"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[1], "debug.frame_delay_1"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[2], "debug.frame_delay_2"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[3], "debug.frame_delay_3"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[4], "debug.frame_delay_4"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[5], "debug.frame_delay_5"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[6], "debug.frame_delay_6"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[7], "debug.frame_delay_7"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[8], "debug.frame_delay_8"
+ },
+ {
+ TYPE_INTEGER,
+ &setup.debug.frame_delay[9], "debug.frame_delay_9"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[0], "debug.key.frame_delay_0"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[1], "debug.key.frame_delay_1"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[2], "debug.key.frame_delay_2"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[3], "debug.key.frame_delay_3"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[4], "debug.key.frame_delay_4"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[5], "debug.key.frame_delay_5"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[6], "debug.key.frame_delay_6"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[7], "debug.key.frame_delay_7"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[8], "debug.key.frame_delay_8"
+ },
+ {
+ TYPE_KEY_X11,
+ &setup.debug.frame_delay_key[9], "debug.key.frame_delay_9"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.debug.frame_delay_use_mod_key, "debug.frame_delay.use_mod_key"},
+ {
+ TYPE_BOOLEAN,
+ &setup.debug.frame_delay_game_only, "debug.frame_delay.game_only"
+ },
+ {
+ TYPE_BOOLEAN,
+ &setup.debug.show_frames_per_second, "debug.show_frames_per_second"
+ },
};
static struct TokenInfo options_setup_tokens[] =
{
- { TYPE_BOOLEAN, &soi.verbose, "options.verbose" },
+ {
+ TYPE_BOOLEAN,
+ &setup.options.verbose, "options.verbose"
+ },
};
static char *get_corrected_login_name(char *login_name)
setHashEntry(hide_setup_hash, hide_setup_token, "");
}
-static void setHideSetupEntryRaw(char *token_text, void *setup_value_raw)
-{
- // !!! DIRTY WORKAROUND; TO BE FIXED AFTER THE MM ENGINE RELEASE !!!
- void *setup_value = setup_value_raw - (void *)&si + (void *)&setup;
-
- setHideSetupEntry(setup_value);
-}
-
boolean hideSetupEntry(void *setup_value)
{
char *hide_setup_token = getHideSetupToken(setup_value);
// check if this setup option should be hidden in the setup menu
if (token_hide_value != NULL && get_boolean_from_string(token_hide_value))
- setHideSetupEntryRaw(token_text, token_info[token_nr].value);
+ setHideSetupEntry(token_info[token_nr].value);
}
static void setSetupInfoFromTokenInfo(SetupFileHash *setup_file_hash,
if (hide_setup_hash == NULL)
hide_setup_hash = newSetupFileHash();
- // global setup
- si = setup;
- for (i = 0; i < NUM_GLOBAL_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(global_setup_tokens); i++)
setSetupInfoFromTokenInfo(setup_file_hash, global_setup_tokens, i);
- setup = si;
- // virtual buttons setup
setup.touch.grid_initialized = TRUE;
for (i = 0; i < 2; i++)
{
}
}
- // editor setup
- sei = setup.editor;
- for (i = 0; i < NUM_EDITOR_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(editor_setup_tokens); i++)
setSetupInfoFromTokenInfo(setup_file_hash, editor_setup_tokens, i);
- setup.editor = sei;
- // shortcut setup
- ssi = setup.shortcut;
- for (i = 0; i < NUM_SHORTCUT_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(shortcut_setup_tokens); i++)
setSetupInfoFromTokenInfo(setup_file_hash, shortcut_setup_tokens, i);
- setup.shortcut = ssi;
- // player setup
for (pnr = 0; pnr < MAX_PLAYERS; pnr++)
{
char prefix[30];
sprintf(prefix, "%s%d", TOKEN_STR_PLAYER_PREFIX, pnr + 1);
- sii = setup.input[pnr];
- for (i = 0; i < NUM_PLAYER_SETUP_TOKENS; i++)
+ setup_input = setup.input[pnr];
+ for (i = 0; i < ARRAY_SIZE(player_setup_tokens); i++)
{
char full_token[100];
setSetupInfoFromTokenText(setup_file_hash, player_setup_tokens, i,
full_token);
}
- setup.input[pnr] = sii;
+ setup.input[pnr] = setup_input;
}
- // system setup
- syi = setup.system;
- for (i = 0; i < NUM_SYSTEM_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(system_setup_tokens); i++)
setSetupInfoFromTokenInfo(setup_file_hash, system_setup_tokens, i);
- setup.system = syi;
- // internal setup
- sxi = setup.internal;
- for (i = 0; i < NUM_INTERNAL_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(internal_setup_tokens); i++)
setSetupInfoFromTokenInfo(setup_file_hash, internal_setup_tokens, i);
- setup.internal = sxi;
- // debug setup
- sdi = setup.debug;
- for (i = 0; i < NUM_DEBUG_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(debug_setup_tokens); i++)
setSetupInfoFromTokenInfo(setup_file_hash, debug_setup_tokens, i);
- setup.debug = sdi;
- // options setup
- soi = setup.options;
- for (i = 0; i < NUM_OPTIONS_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(options_setup_tokens); i++)
setSetupInfoFromTokenInfo(setup_file_hash, options_setup_tokens, i);
- setup.options = soi;
setHideRelatedSetupEntries();
}
if (!setup_file_hash)
return;
- // auto setup
- sasi = setup.auto_setup;
- for (i = 0; i < NUM_AUTO_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(auto_setup_tokens); i++)
setSetupInfo(auto_setup_tokens, i,
getHashEntry(setup_file_hash,
auto_setup_tokens[i].text));
- setup.auto_setup = sasi;
}
static void decodeSetupFileHash_EditorCascade(SetupFileHash *setup_file_hash)
if (!setup_file_hash)
return;
- // editor cascade setup
- seci = setup.editor_cascade;
- for (i = 0; i < NUM_EDITOR_CASCADE_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(editor_cascade_setup_tokens); i++)
setSetupInfo(editor_cascade_setup_tokens, i,
getHashEntry(setup_file_hash,
editor_cascade_setup_tokens[i].text));
- setup.editor_cascade = seci;
}
void LoadSetupFromFilename(char *filename)
fprintFileHeader(file, SETUP_FILENAME);
- // global setup
- si = setup;
- for (i = 0; i < NUM_GLOBAL_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(global_setup_tokens); i++)
{
// just to make things nicer :)
- if (i == SETUP_TOKEN_PLAYER_NAME + 1 ||
- i == SETUP_TOKEN_GRAPHICS_SET ||
- i == SETUP_TOKEN_VOLUME_SIMPLE ||
- i == SETUP_TOKEN_NETWORK_MODE ||
- i == SETUP_TOKEN_TOUCH_CONTROL_TYPE ||
- i == SETUP_TOKEN_TOUCH_GRID_XSIZE_0 ||
- i == SETUP_TOKEN_TOUCH_GRID_XSIZE_1)
+ if (global_setup_tokens[i].value == &setup.sound ||
+ global_setup_tokens[i].value == &setup.graphics_set ||
+ global_setup_tokens[i].value == &setup.volume_simple ||
+ global_setup_tokens[i].value == &setup.network_mode ||
+ global_setup_tokens[i].value == &setup.touch.control_type ||
+ global_setup_tokens[i].value == &setup.touch.grid_xsize[0] ||
+ global_setup_tokens[i].value == &setup.touch.grid_xsize[1])
fprintf(file, "\n");
fprintf(file, "%s\n", getSetupLine(global_setup_tokens, "", i));
}
- // virtual buttons setup
for (i = 0; i < 2; i++)
{
int grid_xsize = setup.touch.grid_xsize[i];
}
}
- // editor setup
- sei = setup.editor;
fprintf(file, "\n");
- for (i = 0; i < NUM_EDITOR_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(editor_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(editor_setup_tokens, "", i));
- // shortcut setup
- ssi = setup.shortcut;
fprintf(file, "\n");
- for (i = 0; i < NUM_SHORTCUT_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(shortcut_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(shortcut_setup_tokens, "", i));
- // player setup
for (pnr = 0; pnr < MAX_PLAYERS; pnr++)
{
char prefix[30];
sprintf(prefix, "%s%d", TOKEN_STR_PLAYER_PREFIX, pnr + 1);
fprintf(file, "\n");
- sii = setup.input[pnr];
- for (i = 0; i < NUM_PLAYER_SETUP_TOKENS; i++)
+ setup_input = setup.input[pnr];
+ for (i = 0; i < ARRAY_SIZE(player_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(player_setup_tokens, prefix, i));
}
- // system setup
- syi = setup.system;
fprintf(file, "\n");
- for (i = 0; i < NUM_SYSTEM_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(system_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(system_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++)
+ for (i = 0; i < ARRAY_SIZE(debug_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(debug_setup_tokens, "", i));
- // options setup
- soi = setup.options;
fprintf(file, "\n");
- for (i = 0; i < NUM_OPTIONS_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(options_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(options_setup_tokens, "", i));
fclose(file);
fprintFileHeader(file, AUTOSETUP_FILENAME);
- sasi = setup.auto_setup;
- for (i = 0; i < NUM_AUTO_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(auto_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(auto_setup_tokens, "", i));
fclose(file);
fprintFileHeader(file, EDITORCASCADE_FILENAME);
- seci = setup.editor_cascade;
- for (i = 0; i < NUM_EDITOR_CASCADE_SETUP_TOKENS; i++)
+ for (i = 0; i < ARRAY_SIZE(editor_cascade_setup_tokens); i++)
fprintf(file, "%s\n", getSetupLine(editor_cascade_setup_tokens, "", i));
fclose(file);
}
}
+ // special case: check if network and preview player positions are redefined,
+ // to compare this later against the main menu level preview being redefined
+ struct TokenIntPtrInfo menu_config_players[] =
+ {
+ { "main.network_players.x", &menu.main.network_players.redefined },
+ { "main.network_players.y", &menu.main.network_players.redefined },
+ { "main.preview_players.x", &menu.main.preview_players.redefined },
+ { "main.preview_players.y", &menu.main.preview_players.redefined },
+ { "preview.x", &preview.redefined },
+ { "preview.y", &preview.redefined }
+ };
+
+ for (i = 0; i < ARRAY_SIZE(menu_config_players); i++)
+ *menu_config_players[i].value = FALSE;
+
+ for (i = 0; i < ARRAY_SIZE(menu_config_players); i++)
+ if (getHashEntry(setup_file_hash, menu_config_players[i].token) != NULL)
+ *menu_config_players[i].value = TRUE;
+
// read (and overwrite with) values that may be specified in config file
for (i = 0; image_config_vars[i].token != NULL; i++)
{