#define SETUP_TOKEN_TOONS 5
#define SETUP_TOKEN_SCROLL_DELAY 6
#define SETUP_TOKEN_SCROLL_DELAY_VALUE 7
-#define SETUP_TOKEN_SOFT_SCROLLING 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_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_GRAPHICS_SET 29
-#define SETUP_TOKEN_SOUNDS_SET 30
-#define SETUP_TOKEN_MUSIC_SET 31
-#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 32
-#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 33
-#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 34
-#define SETUP_TOKEN_VOLUME_SIMPLE 35
-#define SETUP_TOKEN_VOLUME_LOOPS 36
-#define SETUP_TOKEN_VOLUME_MUSIC 37
-#define SETUP_TOKEN_TOUCH_CONTROL_TYPE 38
-#define SETUP_TOKEN_TOUCH_MOVE_DISTANCE 39
-#define SETUP_TOKEN_TOUCH_DROP_DISTANCE 40
-
-#define NUM_GLOBAL_SETUP_TOKENS 41
+#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_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
/* editor setup */
#define SETUP_TOKEN_EDITOR_EL_BOULDERDASH 0
{ 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_SWITCH, &si.soft_scrolling, "soft_scrolling" },
{ TYPE_SWITCH, &si.fade_screens, "fade_screens" },
{ TYPE_SWITCH, &si.autorecord, "automatic_tape_recording"},
si->toons = TRUE;
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;
{
char *player_name_new;
- checkSetupFileHashIdentifier(setup_file_hash, filename,getCookie("SETUP"));
decodeSetupFileHash(setup_file_hash);
freeSetupFileHash(setup_file_hash);
if (setup_file_hash)
{
- checkSetupFileHashIdentifier(setup_file_hash, filename,getCookie("SETUP"));
decodeSetupFileHash_EditorCascade(setup_file_hash);
freeSetupFileHash(setup_file_hash);
return;
}
- fprintf(file, "%s\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER,
- getCookie("SETUP")));
- fprintf(file, "\n");
+ fprintFileHeader(file, SETUP_FILENAME);
/* global setup */
si = setup;
return;
}
- fprintf(file, "%s\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER,
- getCookie("SETUP")));
- fprintf(file, "\n");
+ fprintFileHeader(file, EDITORCASCADE_FILENAME);
seci = setup.editor_cascade;
- fprintf(file, "\n");
for (i = 0; i < NUM_EDITOR_CASCADE_SETUP_TOKENS; i++)
fprintf(file, "%s\n", getSetupLine(editor_cascade_setup_tokens, "", i));
/* create and save images for custom and group elements (raw BMP format) */
/* ------------------------------------------------------------------------- */
-void CreateCustomElementImages()
+void CreateCustomElementImages(char *directory)
{
#if defined(TARGET_SDL)
- char *filename = "graphics.classic/RocksCE.bmp";
- Bitmap *bitmap;
+ char *src_basename = "RocksCE-template.ilbm";
+ char *dst_basename = "RocksCE.bmp";
+ char *src_filename = getPath2(directory, src_basename);
+ char *dst_filename = getPath2(directory, dst_basename);
Bitmap *src_bitmap;
- int dummy_graphic = IMG_CUSTOM_99;
+ Bitmap *bitmap;
int yoffset_ce = 0;
int yoffset_ge = (TILEY * NUM_CUSTOM_ELEMENTS / 16);
- int src_x, src_y;
int i;
+ SDLInitVideoDisplay();
+
+ src_bitmap = LoadImage(src_filename);
+
bitmap = CreateBitmap(TILEX * 16 * 2,
TILEY * (NUM_CUSTOM_ELEMENTS + NUM_GROUP_ELEMENTS) / 16,
DEFAULT_DEPTH);
- getFixedGraphicSource(dummy_graphic, 0, &src_bitmap, &src_x, &src_y);
-
for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
{
int x = i % 16;
}
}
- if (SDL_SaveBMP(bitmap->surface, filename) != 0)
- Error(ERR_EXIT, "cannot save CE graphics file '%s'", filename);
+ if (SDL_SaveBMP(bitmap->surface, dst_filename) != 0)
+ Error(ERR_EXIT, "cannot save CE graphics file '%s'", dst_filename);
FreeBitmap(bitmap);