- for (i=FIRST_PLAYER_SETUP_TOKEN; i<=LAST_PLAYER_SETUP_TOKEN; i++)
- fprintf(file, "%s\n", getSetupLine(prefix, i));
- }
-
- fclose(file);
-
- chmod(filename, SETUP_PERMS);
-}
-
-void LoadLevelSetup()
-{
- char filename[MAX_FILENAME_LEN];
-
- /* always start with reliable default setup values */
-
- leveldir_nr = 0;
- level_nr = 0;
-
- sprintf(filename, "%s/%s", SETUP_PATH, LEVELSETUP_FILENAME);
-
- if (level_setup_list)
- freeSetupFileList(level_setup_list);
-
- level_setup_list = loadSetupFileList(filename);
-
- if (level_setup_list)
- {
- char *last_level_series =
- getTokenValue(level_setup_list, TOKEN_STR_LAST_LEVEL_SERIES);
-
- leveldir_nr = getLevelSeriesNrFromLevelSeriesName(last_level_series);
- level_nr = getLastPlayedLevelOfLevelSeries(last_level_series);
-
- checkSetupFileListIdentifier(level_setup_list, LEVELSETUP_COOKIE);
- }
- else
- Error(ERR_WARN, "using default setup values");
-}
-
-void SaveLevelSetup()
-{
- char filename[MAX_FILENAME_LEN];
- struct SetupFileList *list_entry = level_setup_list;
- FILE *file;
-
- setTokenValue(level_setup_list,
- TOKEN_STR_LAST_LEVEL_SERIES, leveldir[leveldir_nr].filename);
-
- setTokenValue(level_setup_list,
- leveldir[leveldir_nr].filename, int2str(level_nr, 0));
-
- sprintf(filename, "%s/%s", SETUP_PATH, LEVELSETUP_FILENAME);
-
- if (!(file = fopen(filename, "w")))
- {
- Error(ERR_WARN, "cannot write setup file '%s'", filename);
- return;
- }
-
- fprintf(file, "%s: %s\n\n",
- TOKEN_STR_FILE_IDENTIFIER, LEVELSETUP_COOKIE);
-
- while (list_entry)
- {
- if (strcmp(list_entry->token, TOKEN_STR_FILE_IDENTIFIER) != 0)
- fprintf(file, "%s\n",
- getFormattedSetupEntry(list_entry->token, list_entry->value));
-
- /* just to make things nicer :) */
- if (strcmp(list_entry->token, TOKEN_STR_LAST_LEVEL_SERIES) == 0)
- fprintf(file, "\n");
-
- list_entry = list_entry->next;