comparison arogue5/options.c @ 145:aac28331e71d

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.
author John "Elwin" Edwards
date Wed, 20 May 2015 08:42:17 -0400
parents d4bf99f82ea0
children 56e748983fa8
comparison
equal deleted inserted replaced
144:708bb2dea17c 145:aac28331e71d
38 int put_bool(), 38 int put_bool(),
39 get_bool(), 39 get_bool(),
40 put_str(), 40 put_str(),
41 get_str(), 41 get_str(),
42 get_restr(), 42 get_restr(),
43 get_score(),
43 put_abil(), 44 put_abil(),
44 get_abil(), 45 get_abil(),
45 get_quest(), 46 get_quest(),
46 put_quest(); 47 put_quest();
47 48
63 {"fruit", "Fruit: ", 64 {"fruit", "Fruit: ",
64 (int *) fruit, put_str, get_str }, 65 (int *) fruit, put_str, get_str },
65 {"file", "Save file: ", 66 {"file", "Save file: ",
66 (int *) file_name, put_str, get_restr }, 67 (int *) file_name, put_str, get_restr },
67 {"score", "Score file: ", 68 {"score", "Score file: ",
68 (int *) score_file, put_str, get_restr }, 69 (int *) score_file, put_str, get_score },
69 {"class", "Character class: ", 70 {"class", "Character class: ",
70 (int *)&char_type, put_abil, get_abil }, 71 (int *)&char_type, put_abil, get_abil },
71 {"quest", "Quest item: ", 72 {"quest", "Quest item: ",
72 (int *) &quest_item, put_quest, get_quest } 73 (int *) &quest_item, put_quest, get_quest }
73 }; 74 };
83 put_str(optstr, win); 84 put_str(optstr, win);
84 return get_ro(win, oy, ox); 85 return get_ro(win, oy, ox);
85 } 86 }
86 else 87 else
87 return get_str(optstr, win); 88 return get_str(optstr, win);
89 }
90
91 /* For the score file, which must be opened. */
92 int get_score(char *optstr, WINDOW *win)
93 {
94 char old_score_file[LINELEN];
95 int status;
96
97 if (use_savedir)
98 return get_restr(optstr, win);
99
100 strcpy(old_score_file, optstr);
101 status = get_str(optstr, win);
102 if (status != NORM)
103 return status;
104 if (strcmp(old_score_file, optstr))
105 {
106 md_reopen_score();
107 }
108 return status;
88 } 109 }
89 110
90 /* 111 /*
91 * The ability field is read-only 112 * The ability field is read-only
92 */ 113 */