X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=45dec406063d6c3ed9d471506ecf4c70e1156710;hb=401f78b66d66488fe465945bef36b10faa6b55ef;hp=01c166e12a857dab0ef3212b5e0d0087e311620e;hpb=5500133caf57ac0d86b85c53b5fe38c466d65447;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 01c166e1..45dec406 100644 --- a/src/files.c +++ b/src/files.c @@ -1694,8 +1694,8 @@ static int getFileTypeFromBasename(char *basename) 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 ---------- */ @@ -5767,7 +5767,7 @@ static void LoadLevelFromFileInfo_DC(struct LevelInfo *level, 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; @@ -5777,8 +5777,8 @@ static void LoadLevelFromFileInfo_DC(struct LevelInfo *level, 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; @@ -8139,9 +8139,9 @@ static struct TokenInfo global_setup_tokens[] = { TYPE_STRING, &si.graphics_set, "graphics_set" }, { TYPE_STRING, &si.sounds_set, "sounds_set" }, { TYPE_STRING, &si.music_set, "music_set" }, - { 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_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" }, }; static boolean not_used = FALSE; @@ -8270,8 +8270,6 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) 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; @@ -8292,9 +8290,9 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) 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; @@ -8352,6 +8350,14 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) 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->override_level_graphics = AUTO; + si->override_level_sounds = AUTO; + si->override_level_music = AUTO; +#endif } static void setSetupInfoToDefaults_EditorCascade(struct SetupInfo *si) @@ -8469,8 +8475,6 @@ void LoadSetup() 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 */ @@ -8651,12 +8655,19 @@ void LoadCustomElementDescriptions() 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); @@ -8700,9 +8711,12 @@ static int get_token_parameter_value(char *token, char *value_raw) 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(); @@ -8712,6 +8726,7 @@ void InitMenuDesignSettings_Static() image_config[i].token, image_config[i].value); } +#endif #if 1 /* always start with reliable default values from static default config */ @@ -8945,7 +8960,8 @@ static void LoadMenuDesignSettingsFromFilename(char *filename) { 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); } @@ -8960,7 +8976,11 @@ void LoadMenuDesignSettings() 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);