comparison arogue5/rings.c @ 76:ad2cb9a07aaa

arogue5: fix player's typed responses getting put at the wrong place. Some sections of code that prompt the user for a string of input were calling get_str() with cw (the player-visible screen containing the map), which caused whatever the player typed to get printed starting at cw's idea of the cursor position, which was usually the Rogue's @-sign. This corrupted the map. The problem has been fixed by passing msgw (the message line at the top of the screen) to get_str(), so the player's typing appears where msgw thinks the cursor should be, which is in the sensible place right after the prompt. Some other get_str() invocations which used hw or stdscr have been left unmodified.
author John "Elwin" Edwards <elwin@sdf.org>
date Sat, 08 Sep 2012 22:05:05 -0700
parents c49f7927b0fa
children f2951c4e28d9
comparison
equal deleted inserted replaced
75:19903deed392 76:ad2cb9a07aaa
97 else if (!r_know[obj->o_which] && 97 else if (!r_know[obj->o_which] &&
98 askme && 98 askme &&
99 (obj->o_flags & ISKNOW) == 0 && 99 (obj->o_flags & ISKNOW) == 0 &&
100 r_guess[obj->o_which] == NULL) { 100 r_guess[obj->o_which] == NULL) {
101 msg(terse ? "Call it: " : "What do you want to call it? "); 101 msg(terse ? "Call it: " : "What do you want to call it? ");
102 if (get_str(buf, cw) == NORM) 102 if (get_str(buf, msgw) == NORM)
103 { 103 {
104 r_guess[obj->o_which] = new((unsigned int) strlen(buf) + 1); 104 r_guess[obj->o_which] = new((unsigned int) strlen(buf) + 1);
105 strcpy(r_guess[obj->o_which], buf); 105 strcpy(r_guess[obj->o_which], buf);
106 } 106 }
107 msg(""); 107 msg("");