changeset 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 19903deed392
children ae7643e1194b
files arogue5/command.c arogue5/misc.c arogue5/potions.c arogue5/rings.c arogue5/save.c arogue5/scrolls.c arogue5/wear.c
diffstat 7 files changed, 8 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/arogue5/command.c	Wed Sep 05 10:14:34 2012 -0700
+++ b/arogue5/command.c	Sat Sep 08 22:05:05 2012 -0700
@@ -312,7 +312,7 @@
 			    int tlev;
 			    prbuf[0] = '\0';
 			    msg("Which level? ");
-			    if(get_str(prbuf,cw) == NORM) {
+			    if(get_str(prbuf, msgw) == NORM) {
 				tlev = atoi(prbuf);
 				if(tlev < 1) {
 				    mpos = 0;
@@ -929,7 +929,7 @@
 	    free(guess[obj->o_which]);
 	strcpy(prbuf, elsewise);
     }
-    if (get_str(prbuf, cw) == NORM) {
+    if (get_str(prbuf, msgw) == NORM) {
 	if (mark) {
 	    strncpy(obj->o_mark, prbuf, MARKLEN-1);
 	    obj->o_mark[MARKLEN-1] = '\0';
--- a/arogue5/misc.c	Wed Sep 05 10:14:34 2012 -0700
+++ b/arogue5/misc.c	Sat Sep 08 22:05:05 2012 -0700
@@ -727,7 +727,7 @@
 	     (obj->o_flags & ISKNOW) == 0 &&
 	     m_guess[which] == NULL) {
 	msg(terse ? "Call it: " : "What do you want to call it? ");
-	if (get_str(buf, cw) == NORM) {
+	if (get_str(buf, msgw) == NORM) {
 	    m_guess[which] = new((unsigned int) strlen(buf) + 1);
 	    strcpy(m_guess[which], buf);
 	}
--- a/arogue5/potions.c	Wed Sep 05 10:14:34 2012 -0700
+++ b/arogue5/potions.c	Sat Sep 08 22:05:05 2012 -0700
@@ -607,7 +607,7 @@
 	     p_guess[which] == NULL)
     {
 	msg(terse ? "Call it: " : "What do you want to call it? ");
-	if (get_str(buf, cw) == NORM)
+	if (get_str(buf, msgw) == NORM)
 	{
 	    p_guess[which] = new((unsigned int) strlen(buf) + 1);
 	    strcpy(p_guess[which], buf);
--- a/arogue5/rings.c	Wed Sep 05 10:14:34 2012 -0700
+++ b/arogue5/rings.c	Sat Sep 08 22:05:05 2012 -0700
@@ -99,7 +99,7 @@
 	     (obj->o_flags & ISKNOW) == 0 &&
 	     r_guess[obj->o_which] == NULL) {
 	msg(terse ? "Call it: " : "What do you want to call it? ");
-	if (get_str(buf, cw) == NORM)
+	if (get_str(buf, msgw) == NORM)
 	{
 	    r_guess[obj->o_which] = new((unsigned int) strlen(buf) + 1);
 	    strcpy(r_guess[obj->o_which], buf);
--- a/arogue5/save.c	Wed Sep 05 10:14:34 2012 -0700
+++ b/arogue5/save.c	Sat Sep 08 22:05:05 2012 -0700
@@ -69,7 +69,7 @@
 	msg("File name: ");
 	mpos = 0;
 	buf[0] = '\0';
-	if (get_str(buf, cw) == QUIT)
+	if (get_str(buf, msgw) == QUIT)
 	{
 	    msg("");
 	    return FALSE;
--- a/arogue5/scrolls.c	Wed Sep 05 10:14:34 2012 -0700
+++ b/arogue5/scrolls.c	Sat Sep 08 22:05:05 2012 -0700
@@ -700,7 +700,7 @@
 	     (obj->o_flags & ISPOST) == 0 &&
 	     s_guess[which] == NULL) {
 	msg(terse ? "Call it: " : "What do you want to call it? ");
-	if (get_str(buf, cw) == NORM)
+	if (get_str(buf, msgw) == NORM)
 	{
 	    s_guess[which] = new(strlen(buf) + 1);
 	    strcpy(s_guess[which], buf);
--- a/arogue5/wear.c	Wed Sep 05 10:14:34 2012 -0700
+++ b/arogue5/wear.c	Sat Sep 08 22:05:05 2012 -0700
@@ -230,7 +230,7 @@
 		     (obj->o_flags & ISKNOW) == 0 &&
 		     m_guess[obj->o_which] == NULL) {
 		msg(terse ? "Call it: " : "What do you want to call it? ");
-		if (get_str(buf, cw) == NORM) {
+		if (get_str(buf, msgw) == NORM) {
 		    m_guess[obj->o_which] = new((unsigned int) strlen(buf) + 1);
 		    strcpy(m_guess[obj->o_which], buf);
 		}