Mercurial > hg > early-roguelike
comparison arogue5/player.c @ 78:aeabbca6dc0b
arogue5: fix some more drawing to the wrong window.
The spell-choosing and prayer-choosing routines, when the one-line
inventory option is set, displayed to cw instead of msgw. This caused
permanent corruption of the message line.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Sun, 09 Sep 2012 15:55:51 -0700 |
parents | 0ed67132cf10 |
children | 34a87d84ea31 |
comparison
equal
deleted
inserted
replaced
77:ae7643e1194b | 78:aeabbca6dc0b |
---|---|
166 } | 166 } |
167 if (which_spell >= 0 && which_spell < num_spells) nohw = TRUE; | 167 if (which_spell >= 0 && which_spell < num_spells) nohw = TRUE; |
168 | 168 |
169 else if (slow_invent) { | 169 else if (slow_invent) { |
170 register char c; | 170 register char c; |
171 char *spellp; | |
171 | 172 |
172 for (i=0; i<num_spells; i++) { | 173 for (i=0; i<num_spells; i++) { |
173 msg(""); | 174 msg(""); |
174 mvwaddch(cw, 0, 0, '['); | |
175 waddch(cw, (char) ((int) 'a' + i)); | |
176 waddstr(cw, "] A spell of "); | |
177 if (magic_spells[i].s_type == TYP_POTION) | 175 if (magic_spells[i].s_type == TYP_POTION) |
178 waddstr(cw, p_magic[magic_spells[i].s_which].mi_name); | 176 spellp = p_magic[magic_spells[i].s_which].mi_name; |
179 else if (magic_spells[i].s_type == TYP_SCROLL) | 177 else if (magic_spells[i].s_type == TYP_SCROLL) |
180 waddstr(cw, s_magic[magic_spells[i].s_which].mi_name); | 178 spellp = s_magic[magic_spells[i].s_which].mi_name; |
181 else if (magic_spells[i].s_type == TYP_STICK) | 179 else if (magic_spells[i].s_type == TYP_STICK) |
182 waddstr(cw, ws_magic[magic_spells[i].s_which].mi_name); | 180 spellp = ws_magic[magic_spells[i].s_which].mi_name; |
183 waddstr(cw, morestr); | 181 mvwprintw(msgw, 0, 0, "[%c] A spell of %s", (char) ((int) 'a' + i), |
184 draw(cw); | 182 spellp); |
183 waddstr(msgw, morestr); | |
184 draw(msgw); | |
185 do { | 185 do { |
186 c = readchar(); | 186 c = readchar(); |
187 } while (c != ' ' && c != ESCAPE); | 187 } while (c != ' ' && c != ESCAPE); |
188 if (c == ESCAPE) | 188 if (c == ESCAPE) |
189 break; | 189 break; |
190 } | 190 } |
191 msg(""); | 191 msg(""); |
192 mvwaddstr(cw, 0, 0, "Which spell are you casting? "); | 192 mvwaddstr(msgw, 0, 0, "Which spell are you casting? "); |
193 draw(cw); | 193 draw(msgw); |
194 } | 194 } |
195 else { | 195 else { |
196 /* Set up for redraw */ | 196 /* Set up for redraw */ |
197 msg(""); | 197 msg(""); |
198 clearok(cw, TRUE); | 198 clearok(cw, TRUE); |
373 } | 373 } |
374 if (which_prayer >= 0 && which_prayer < num_prayers) nohw = TRUE; | 374 if (which_prayer >= 0 && which_prayer < num_prayers) nohw = TRUE; |
375 | 375 |
376 else if (slow_invent) { | 376 else if (slow_invent) { |
377 register char c; | 377 register char c; |
378 char *prayerp; | |
378 | 379 |
379 for (i=0; i<num_prayers; i++) { | 380 for (i=0; i<num_prayers; i++) { |
380 msg(""); | 381 msg(""); |
381 mvwaddch(cw, 0, 0, '['); | |
382 waddch(cw, (char) ((int) 'a' + i)); | |
383 waddstr(cw, "] A prayer for "); | |
384 if (cleric_spells[i].s_type == TYP_POTION) | 382 if (cleric_spells[i].s_type == TYP_POTION) |
385 waddstr(cw, p_magic[cleric_spells[i].s_which].mi_name); | 383 prayerp = p_magic[cleric_spells[i].s_which].mi_name; |
386 else if (cleric_spells[i].s_type == TYP_SCROLL) | 384 else if (cleric_spells[i].s_type == TYP_SCROLL) |
387 waddstr(cw, s_magic[cleric_spells[i].s_which].mi_name); | 385 prayerp = s_magic[cleric_spells[i].s_which].mi_name; |
388 else if (cleric_spells[i].s_type == TYP_STICK) | 386 else if (cleric_spells[i].s_type == TYP_STICK) |
389 waddstr(cw, ws_magic[cleric_spells[i].s_which].mi_name); | 387 prayerp = ws_magic[cleric_spells[i].s_which].mi_name; |
390 waddstr(cw, morestr); | 388 mvwprintw(msgw, 0, 0, "[%c] A prayer for %s", |
391 draw(cw); | 389 (char) ((int) 'a' + i), prayerp); |
390 waddstr(msgw, morestr); | |
391 draw(msgw); | |
392 do { | 392 do { |
393 c = readchar(); | 393 c = readchar(); |
394 } while (c != ' ' && c != ESCAPE); | 394 } while (c != ' ' && c != ESCAPE); |
395 if (c == ESCAPE) | 395 if (c == ESCAPE) |
396 break; | 396 break; |
397 } | 397 } |
398 msg(""); | 398 msg(""); |
399 mvwaddstr(cw, 0, 0, "Which prayer are you offering? "); | 399 mvwaddstr(msgw, 0, 0, "Which prayer are you offering? "); |
400 draw(cw); | 400 draw(msgw); |
401 } | 401 } |
402 else { | 402 else { |
403 /* Set up for redraw */ | 403 /* Set up for redraw */ |
404 msg(""); | 404 msg(""); |
405 clearok(cw, TRUE); | 405 clearok(cw, TRUE); |