X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=7754e5e4ff42861a6d25f9c681610caca47bb7c8;hb=ee0895b12e544444db37febb1242bcc8a72d6ad8;hp=614bb613cec6cc7185c78f423daca63193f7d89d;hpb=8afc6199767a6fcb7451efd2b3d5b070f6c99efb;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 614bb613..7754e5e4 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -462,10 +462,14 @@ char *getCustomImageFilename(char *basename) if (fileExists(filename)) return filename; + free(filename); + /* 2nd try: look for special artwork in current level series directory */ filename = getPath3(getCurrentLevelDir(), GRAPHICS_DIRECTORY, basename); if (fileExists(filename)) return filename; + + free(filename); } /* 3rd try: look for special artwork in configured artwork directory */ @@ -473,11 +477,15 @@ char *getCustomImageFilename(char *basename) if (fileExists(filename)) return filename; + free(filename); + /* 4th try: look for default artwork in new default artwork directory */ filename = getPath2(getDefaultGraphicsDir(GRAPHICS_SUBDIR), basename); if (fileExists(filename)) return filename; + free(filename); + /* 5th try: look for default artwork in old default artwork directory */ filename = getPath2(options.graphics_directory, basename); if (fileExists(filename)) @@ -500,10 +508,14 @@ char *getCustomSoundFilename(char *basename) if (fileExists(filename)) return filename; + free(filename); + /* 2nd try: look for special artwork in current level series directory */ filename = getPath3(getCurrentLevelDir(), SOUNDS_DIRECTORY, basename); if (fileExists(filename)) return filename; + + free(filename); } /* 3rd try: look for special artwork in configured artwork directory */ @@ -511,11 +523,15 @@ char *getCustomSoundFilename(char *basename) if (fileExists(filename)) return filename; + free(filename); + /* 4th try: look for default artwork in new default artwork directory */ filename = getPath2(getDefaultSoundsDir(SOUNDS_SUBDIR), basename); if (fileExists(filename)) return filename; + free(filename); + /* 5th try: look for default artwork in old default artwork directory */ filename = getPath2(options.sounds_directory, basename); if (fileExists(filename)) @@ -553,10 +569,14 @@ char *getCustomMusicDirectory(void) if (fileExists(directory)) return directory; + free(directory); + /* 2nd try: look for special artwork in current level series directory */ directory = getPath2(getCurrentLevelDir(), MUSIC_DIRECTORY); if (fileExists(directory)) return directory; + + free(directory); } /* 3rd try: look for special artwork in configured artwork directory */ @@ -564,11 +584,15 @@ char *getCustomMusicDirectory(void) if (fileExists(directory)) return directory; + free(directory); + /* 4th try: look for default artwork in new default artwork directory */ directory = getStringCopy(getDefaultMusicDir(MUSIC_SUBDIR)); if (fileExists(directory)) return directory; + free(directory); + /* 5th try: look for default artwork in old default artwork directory */ directory = getStringCopy(options.music_directory); if (fileExists(directory)) @@ -989,58 +1013,6 @@ boolean checkCookieString(const char *cookie, const char *template) /* setup file list handling functions */ /* ------------------------------------------------------------------------- */ -int get_string_integer_value(char *s) -{ - static char *number_text[][3] = - { - { "0", "zero", "null", }, - { "1", "one", "first" }, - { "2", "two", "second" }, - { "3", "three", "third" }, - { "4", "four", "fourth" }, - { "5", "five", "fifth" }, - { "6", "six", "sixth" }, - { "7", "seven", "seventh" }, - { "8", "eight", "eighth" }, - { "9", "nine", "ninth" }, - { "10", "ten", "tenth" }, - { "11", "eleven", "eleventh" }, - { "12", "twelve", "twelfth" }, - }; - - int i, j; - char *s_lower = getStringToLower(s); - int result = -1; - - for (i=0; i<13; i++) - for (j=0; j<3; j++) - if (strcmp(s_lower, number_text[i][j]) == 0) - result = i; - - if (result == -1) - result = atoi(s); - - free(s_lower); - - return result; -} - -boolean get_string_boolean_value(char *s) -{ - char *s_lower = getStringToLower(s); - boolean result = FALSE; - - if (strcmp(s_lower, "true") == 0 || - strcmp(s_lower, "yes") == 0 || - strcmp(s_lower, "on") == 0 || - get_string_integer_value(s) == 1) - result = TRUE; - - free(s_lower); - - return result; -} - char *getFormattedSetupEntry(char *token, char *value) { int i; @@ -1097,8 +1069,8 @@ char *getTokenValue(struct SetupFileList *setup_file_list, char *token) return getTokenValue(setup_file_list->next, token); } -static void setTokenValue(struct SetupFileList *setup_file_list, - char *token, char *value) +void setTokenValue(struct SetupFileList *setup_file_list, + char *token, char *value) { if (!setup_file_list) return; @@ -1387,7 +1359,7 @@ void setSetupInfo(struct TokenInfo *token_info, { case TYPE_BOOLEAN: case TYPE_SWITCH: - *(boolean *)setup_value = get_string_boolean_value(token_value); + *(boolean *)setup_value = get_boolean_from_string(token_value); break; case TYPE_KEY: @@ -1399,7 +1371,7 @@ void setSetupInfo(struct TokenInfo *token_info, break; case TYPE_INTEGER: - *(int *)setup_value = get_string_integer_value(token_value); + *(int *)setup_value = get_integer_from_string(token_value); break; case TYPE_STRING: @@ -2074,6 +2046,9 @@ static void SaveUserLevelInfo() ldi.first_level = 1; ldi.sort_priority = LEVELCLASS_USER_START; ldi.readonly = FALSE; + ldi.graphics_set = getStringCopy(GRAPHICS_SUBDIR); + ldi.sounds_set = getStringCopy(SOUNDS_SUBDIR); + ldi.music_set = getStringCopy(MUSIC_SUBDIR); fprintf(file, "%s\n\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER, getCookie("LEVELINFO")));