return LEVEL_FILE_TYPE_SP;
/* check for typical filename of a Diamond Caves II level package file */
- if (strEqualSuffix(basename, ".dc") ||
- strEqualSuffix(basename, ".dc2"))
+ if (strSuffix(basename, ".dc") ||
+ strSuffix(basename, ".dc2"))
return LEVEL_FILE_TYPE_DC;
/* ---------- try to determine file type from filesize ---------- */
fgets(magic_bytes, num_magic_bytes + 1, file);
/* check "magic bytes" for correct file format */
- if (!strEqualPrefix(magic_bytes, "DC2"))
+ if (!strPrefix(magic_bytes, "DC2"))
{
level->no_valid_file = TRUE;
return;
}
- if (strEqualPrefix(magic_bytes, "DC2Win95") ||
- strEqualPrefix(magic_bytes, "DC2Win98"))
+ if (strPrefix(magic_bytes, "DC2Win95") ||
+ strPrefix(magic_bytes, "DC2Win98"))
{
int position_first_level = 0x00fa;
int extra_bytes = 4;
#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 28
#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 29
#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 30
+#define SETUP_TOKEN_AUTO_OVERRIDE_ARTWORK 31
-#define NUM_GLOBAL_SETUP_TOKENS 31
+#define NUM_GLOBAL_SETUP_TOKENS 32
/* editor setup */
#define SETUP_TOKEN_EDITOR_EL_BOULDERDASH 0
{ TYPE_SWITCH, &si.override_level_graphics, "override_level_graphics" },
{ TYPE_SWITCH, &si.override_level_sounds, "override_level_sounds" },
{ TYPE_SWITCH, &si.override_level_music, "override_level_music" },
+ { TYPE_SWITCH, &si.auto_override_artwork, "auto_override_artwork" },
};
static boolean not_used = FALSE;
si->sound_music = TRUE;
si->sound_simple = TRUE;
si->toons = TRUE;
- si->double_buffering = TRUE;
- si->direct_draw = !si->double_buffering;
si->scroll_delay = TRUE;
si->scroll_delay_value = STD_SCROLL_DELAY;
si->soft_scrolling = TRUE;
si->prefer_aga_graphics = TRUE;
si->game_frame_delay = GAME_FRAME_DELAY;
- si->graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR);
- si->sounds_set = getStringCopy(SND_CLASSIC_SUBDIR);
- si->music_set = getStringCopy(MUS_CLASSIC_SUBDIR);
+ si->graphics_set = getStringCopy(GFX_DEFAULT_SUBDIR);
+ si->sounds_set = getStringCopy(SND_DEFAULT_SUBDIR);
+ si->music_set = getStringCopy(MUS_DEFAULT_SUBDIR);
si->override_level_graphics = FALSE;
si->override_level_sounds = FALSE;
si->override_level_music = FALSE;
+ si->auto_override_artwork = FALSE;
si->editor.el_boulderdash = TRUE;
si->editor.el_emerald_mine = TRUE;
si->system.audio_fragment_size = DEFAULT_AUDIO_FRAGMENT_SIZE;
si->options.verbose = FALSE;
+
+#if defined(CREATE_SPECIAL_EDITION_RND_JUE)
+ si->handicap = FALSE;
+ si->fullscreen = TRUE;
+ si->auto_override_artwork = TRUE;
+#endif
}
static void setSetupInfoToDefaults_EditorCascade(struct SetupInfo *si)
checkSetupFileHashIdentifier(setup_file_hash, filename,getCookie("SETUP"));
decodeSetupFileHash(setup_file_hash);
- setup.direct_draw = !setup.double_buffering;
-
freeSetupFileHash(setup_file_hash);
/* needed to work around problems with fixed length strings */
static int getElementFromToken(char *token)
{
+#if 1
+ char *value = getHashEntry(element_token_hash, token);
+
+ if (value != NULL)
+ return atoi(value);
+#else
int i;
/* !!! OPTIMIZE THIS BY USING HASH !!! */
for (i = 0; i < MAX_NUM_ELEMENTS; i++)
if (strEqual(token, element_info[i].token_name))
return i;
+#endif
Error(ERR_WARN, "unknown element token '%s'", token);
void InitMenuDesignSettings_Static()
{
+#if 0
static SetupFileHash *image_config_hash = NULL;
+#endif
int i;
+#if 0
if (image_config_hash == NULL)
{
image_config_hash = newSetupFileHash();
image_config[i].token,
image_config[i].value);
}
+#endif
#if 1
/* always start with reliable default values from static default config */
{
char *value = getHashEntry(setup_file_hash, image_config_vars[i].token);
- if (value != NULL)
+ /* (ignore definitions set to "[DEFAULT]" which are already initialized) */
+ if (value != NULL && !strEqual(value, ARG_DEFAULT))
*image_config_vars[i].value =
get_token_parameter_value(image_config_vars[i].token, value);
}
InitMenuDesignSettings_Static();
InitMenuDesignSettings_SpecialPreProcessing();
+#if 1
+ if (!GFX_OVERRIDE_ARTWORK(ARTWORK_TYPE_GRAPHICS))
+#else
if (!SETUP_OVERRIDE_ARTWORK(setup, ARTWORK_TYPE_GRAPHICS))
+#endif
{
/* first look for special settings configured in level series config */
filename_base = getCustomArtworkLevelConfigFilename(ARTWORK_TYPE_GRAPHICS);