return;
}
- printf_line("-", 79);
- printf("Level xxx (file version %08d, game version %08d)\n",
- level->file_version, level->game_version);
- printf_line("-", 79);
-
- printf("Level author: '%s'\n", level->author);
- printf("Level title: '%s'\n", level->name);
- printf("\n");
- printf("Playfield size: %d x %d\n", level->fieldx, level->fieldy);
- printf("\n");
- printf("Level time: %d seconds\n", level->time);
- printf("Gems needed: %d\n", level->gems_needed);
- printf("\n");
- printf("Time for magic wall: %d seconds\n", level->time_magic_wall);
- printf("Time for wheel: %d seconds\n", level->time_wheel);
- printf("Time for light: %d seconds\n", level->time_light);
- printf("Time for timegate: %d seconds\n", level->time_timegate);
- printf("\n");
- printf("Amoeba speed: %d\n", level->amoeba_speed);
- printf("\n");
-
- printf("EM style slippery gems: %s\n", (level->em_slippery_gems ? "yes" : "no"));
- printf("Player blocks last field: %s\n", (level->block_last_field ? "yes" : "no"));
- printf("SP player blocks last field: %s\n", (level->sp_block_last_field ? "yes" : "no"));
- printf("use spring bug: %s\n", (level->use_spring_bug ? "yes" : "no"));
- printf("use step counter: %s\n", (level->use_step_counter ? "yes" : "no"));
-
- printf_line("-", 79);
+ PrintLine("-", 79);
+ Print("Level xxx (file version %08d, game version %08d)\n",
+ level->file_version, level->game_version);
+ PrintLine("-", 79);
+
+ Print("Level author: '%s'\n", level->author);
+ Print("Level title: '%s'\n", level->name);
+ Print("\n");
+ Print("Playfield size: %d x %d\n", level->fieldx, level->fieldy);
+ Print("\n");
+ Print("Level time: %d seconds\n", level->time);
+ Print("Gems needed: %d\n", level->gems_needed);
+ Print("\n");
+ Print("Time for magic wall: %d seconds\n", level->time_magic_wall);
+ Print("Time for wheel: %d seconds\n", level->time_wheel);
+ Print("Time for light: %d seconds\n", level->time_light);
+ Print("Time for timegate: %d seconds\n", level->time_timegate);
+ Print("\n");
+ Print("Amoeba speed: %d\n", level->amoeba_speed);
+ Print("\n");
+
+ Print("EM style slippery gems: %s\n", (level->em_slippery_gems ? "yes" : "no"));
+ Print("Player blocks last field: %s\n", (level->block_last_field ? "yes" : "no"));
+ Print("SP player blocks last field: %s\n", (level->sp_block_last_field ? "yes" : "no"));
+ Print("use spring bug: %s\n", (level->use_spring_bug ? "yes" : "no"));
+ Print("use step counter: %s\n", (level->use_step_counter ? "yes" : "no"));
+
+ PrintLine("-", 79);
}
return;
}
- printf_line("-", 79);
- printf("Tape of Level %03d (file version %08d, game version %08d)\n",
- tape->level_nr, tape->file_version, tape->game_version);
- printf(" (effective engine version %08d)\n",
- tape->engine_version);
- printf("Level series identifier: '%s'\n", tape->level_identifier);
- printf_line("-", 79);
+ PrintLine("-", 79);
+ Print("Tape of Level %03d (file version %08d, game version %08d)\n",
+ tape->level_nr, tape->file_version, tape->game_version);
+ Print(" (effective engine version %08d)\n",
+ tape->engine_version);
+ Print("Level series identifier: '%s'\n", tape->level_identifier);
+ PrintLine("-", 79);
tape_frame_counter = 0;
if (i >= MAX_TAPE_LEN)
break;
- printf("%04d: ", i);
+ Print("%04d: ", i);
for (j = 0; j < MAX_PLAYERS; j++)
{
{
int action = tape->pos[i].action[j];
- printf("%d:%02x ", j, action);
- printf("[%c%c%c%c|%c%c] - ",
- (action & JOY_LEFT ? '<' : ' '),
- (action & JOY_RIGHT ? '>' : ' '),
- (action & JOY_UP ? '^' : ' '),
- (action & JOY_DOWN ? 'v' : ' '),
- (action & JOY_BUTTON_1 ? '1' : ' '),
- (action & JOY_BUTTON_2 ? '2' : ' '));
+ Print("%d:%02x ", j, action);
+ Print("[%c%c%c%c|%c%c] - ",
+ (action & JOY_LEFT ? '<' : ' '),
+ (action & JOY_RIGHT ? '>' : ' '),
+ (action & JOY_UP ? '^' : ' '),
+ (action & JOY_DOWN ? 'v' : ' '),
+ (action & JOY_BUTTON_1 ? '1' : ' '),
+ (action & JOY_BUTTON_2 ? '2' : ' '));
}
}
- printf("(%03d) ", tape->pos[i].delay);
- printf("[%05d]\n", tape_frame_counter);
+ Print("(%03d) ", tape->pos[i].delay);
+ Print("[%05d]\n", tape_frame_counter);
tape_frame_counter += tape->pos[i].delay;
}
- printf_line("-", 79);
+ PrintLine("-", 79);
}
#define SETUP_TOKEN_SCROLL_DELAY 6
#define SETUP_TOKEN_SCROLL_DELAY_VALUE 7
#define SETUP_TOKEN_ENGINE_SNAPSHOT_MODE 8
-#define SETUP_TOKEN_SOFT_SCROLLING 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_FULLSCREEN_MODE 19
-#define SETUP_TOKEN_WINDOW_SCALING_PERCENT 20
-#define SETUP_TOKEN_WINDOW_SCALING_QUALITY 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_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_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_INT_PROGRAM_WEBSITE 3
#define SETUP_TOKEN_INT_PROGRAM_COPYRIGHT 4
#define SETUP_TOKEN_INT_PROGRAM_COMPANY 5
-#define SETUP_TOKEN_INT_DEFAULT_GRAPHICS_SET 6
-#define SETUP_TOKEN_INT_DEFAULT_SOUNDS_SET 7
-#define SETUP_TOKEN_INT_DEFAULT_MUSIC_SET 8
-#define SETUP_TOKEN_INT_FALLBACK_GRAPHICS_FILE 9
-#define SETUP_TOKEN_INT_FALLBACK_SOUNDS_FILE 10
-#define SETUP_TOKEN_INT_FALLBACK_MUSIC_FILE 11
-#define SETUP_TOKEN_INT_DEFAULT_LEVEL_SERIES 12
-#define SETUP_TOKEN_INT_CHOOSE_FROM_TOP_LEVELDIR 13
-
-#define NUM_INTERNAL_SETUP_TOKENS 14
+#define SETUP_TOKEN_INT_PROGRAM_ICON_FILE 6
+#define SETUP_TOKEN_INT_DEFAULT_GRAPHICS_SET 7
+#define SETUP_TOKEN_INT_DEFAULT_SOUNDS_SET 8
+#define SETUP_TOKEN_INT_DEFAULT_MUSIC_SET 9
+#define SETUP_TOKEN_INT_FALLBACK_GRAPHICS_FILE 10
+#define SETUP_TOKEN_INT_FALLBACK_SOUNDS_FILE 11
+#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
/* options setup */
#define SETUP_TOKEN_OPTIONS_VERBOSE 0
{ 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_SWITCH, &si.soft_scrolling, "soft_scrolling" },
{ TYPE_SWITCH, &si.fade_screens, "fade_screens" },
{ TYPE_SWITCH, &si.autorecord, "automatic_tape_recording"},
{ TYPE_SWITCH, &si.show_titlescreen, "show_titlescreen" },
{ 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_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" },
si->scroll_delay = TRUE;
si->scroll_delay_value = STD_SCROLL_DELAY;
si->engine_snapshot_mode = getStringCopy(STR_SNAPSHOT_MODE_DEFAULT);
- si->soft_scrolling = TRUE;
si->fade_screens = TRUE;
si->autorecord = TRUE;
si->show_titlescreen = TRUE;
si->game_frame_delay = GAME_FRAME_DELAY;
si->sp_show_border_elements = FALSE;
si->small_game_graphics = FALSE;
+ si->show_snapshot_buttons = FALSE;
si->graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR);
si->sounds_set = getStringCopy(SND_CLASSIC_SUBDIR);
si->internal.program_copyright = getStringCopy(PROGRAM_COPYRIGHT_STRING);
si->internal.program_company = getStringCopy(PROGRAM_COMPANY_STRING);
+ si->internal.program_icon_file = getStringCopy(PROGRAM_ICON_FILENAME);
+
si->internal.default_graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR);
si->internal.default_sounds_set = getStringCopy(SND_CLASSIC_SUBDIR);
si->internal.default_music_set = getStringCopy(MUS_CLASSIC_SUBDIR);
static void InitMenuDesignSettings_SpecialPostProcessing()
{
+ static struct
+ {
+ struct XY *dst, *src;
+ }
+ game_buttons_xy[] =
+ {
+ { &game.button.save, &game.button.stop },
+ { &game.button.pause2, &game.button.pause },
+ { &game.button.load, &game.button.play },
+ { &game.button.undo, &game.button.stop },
+ { &game.button.redo, &game.button.play },
+
+ { NULL, NULL }
+ };
+ int i;
+
/* special case: initialize later added SETUP list size from LEVELS value */
if (menu.list_size[GAME_MODE_SETUP] == -1)
menu.list_size[GAME_MODE_SETUP] = menu.list_size[GAME_MODE_LEVELS];
+
+ /* set default position for snapshot buttons to stop/pause/play buttons */
+ for (i = 0; game_buttons_xy[i].dst != NULL; i++)
+ {
+ if ((*game_buttons_xy[i].dst).x == -1 &&
+ (*game_buttons_xy[i].dst).y == -1)
+ {
+ (*game_buttons_xy[i].dst).x = (*game_buttons_xy[i].src).x;
+ (*game_buttons_xy[i].dst).y = (*game_buttons_xy[i].src).y;
+ }
+ }
}
static void LoadMenuDesignSettingsFromFilename(char *filename)
menu.draw_xoffset_info[i] = get_integer_from_string(value_1);
if (value_2 != NULL)
menu.draw_yoffset_info[i] = get_integer_from_string(value_2);
+
+ if (i == GFX_SPECIAL_ARG_INFO_ELEMENTS)
+ {
+ char *value_1 = getHashEntry(setup_file_hash, "menu.list_size.INFO");
+
+ if (value_1 != NULL)
+ menu.list_size_info[i] = get_integer_from_string(value_1);
+ }
}
/* special case: initialize with default values that may be overwritten */