{
static char *msdos_filename = NULL;
- if (filename != NULL)
- free(filename);
+ if (msdos_filename != NULL)
+ free(msdos_filename);
- filename = getStringCopy(basename_corrected);
- strncpy(&filename[8], &basename[strlen(basename) - 1+3], 1+3 + 1);
+ msdos_filename = getStringCopy(basename_corrected);
+ strncpy(&msdos_filename[8], &basename[strlen(basename) - 1+3], 1+3 + 1);
}
}
#endif
/* 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;
void freeSetupFileList(struct SetupFileList *setup_file_list)
{
- if (!setup_file_list)
+ if (setup_file_list == NULL)
return;
if (setup_file_list->token)
free(setup_file_list);
}
-static struct SetupFileList *newSetupFileList(char *token, char *value)
+struct SetupFileList *newSetupFileList(char *token, char *value)
{
struct SetupFileList *new = checked_malloc(sizeof(struct SetupFileList));
- new->token = checked_malloc(strlen(token) + 1);
- strcpy(new->token, token);
-
- new->value = checked_malloc(strlen(value) + 1);
- strcpy(new->value, value);
+ new->token = getStringCopy(token);
+ new->value = getStringCopy(value);
new->next = NULL;
char *getTokenValue(struct SetupFileList *setup_file_list, char *token)
{
- if (!setup_file_list)
+ if (setup_file_list == NULL)
return NULL;
if (strcmp(setup_file_list->token, token) == 0)
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)
+ if (setup_file_list == NULL)
return;
if (strcmp(setup_file_list->token, token) == 0)
{
- free(setup_file_list->value);
- setup_file_list->value = checked_malloc(strlen(value) + 1);
- strcpy(setup_file_list->value, value);
+ if (setup_file_list->value)
+ free(setup_file_list->value);
+
+ setup_file_list->value = getStringCopy(value);
}
else if (setup_file_list->next == NULL)
setup_file_list->next = newSetupFileList(token, value);
{
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:
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:
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")));