Advanced Rogue family: fix the "score" option.
Changing the score file (when permitted) now works again, closing the old score file and opening the new one.
This commit is contained in:
parent
ea4244de91
commit
e3620a3781
14 changed files with 105 additions and 14 deletions
|
|
@ -40,6 +40,7 @@ int put_bool(),
|
|||
put_str(),
|
||||
get_str(),
|
||||
get_restr(),
|
||||
get_score(),
|
||||
put_abil(),
|
||||
get_abil(),
|
||||
get_quest(),
|
||||
|
|
@ -65,7 +66,7 @@ OPTION optlist[] = {
|
|||
{"file", "Save file: ",
|
||||
(int *) file_name, put_str, get_restr },
|
||||
{"score", "Score file: ",
|
||||
(int *) score_file, put_str, get_restr },
|
||||
(int *) score_file, put_str, get_score },
|
||||
{"class", "Character class: ",
|
||||
(int *)&char_type, put_abil, get_abil },
|
||||
{"quest", "Quest item: ",
|
||||
|
|
@ -87,6 +88,26 @@ int get_restr(char *optstr, WINDOW *win)
|
|||
return get_str(optstr, win);
|
||||
}
|
||||
|
||||
/* For the score file, which must be opened. */
|
||||
int get_score(char *optstr, WINDOW *win)
|
||||
{
|
||||
char old_score_file[LINELEN];
|
||||
int status;
|
||||
|
||||
if (use_savedir)
|
||||
return get_restr(optstr, win);
|
||||
|
||||
strcpy(old_score_file, optstr);
|
||||
status = get_str(optstr, win);
|
||||
if (status != NORM)
|
||||
return status;
|
||||
if (strcmp(old_score_file, optstr))
|
||||
{
|
||||
md_reopen_score();
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
* The ability field is read-only
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue