[net.games.hack] minor bug fix for the look command

ab@unido.UUCP (05/24/85)

There is a minor bug in hack.pager.c: When you are blind and want to know
what is lying on the floor, you get the message:

      "You try to feel what is lying here on the floor."

but if there is more than one item, the list of objects follows
immediately without a "--more--".

Here is the fix (add the starred lines):

--- hack.pager.c, line 220:
>       /* --- now we really do it --- */
>       if(mode == 2 && linect == 1)                        /* topline only */
>               pline(texthead->line_text);
>       else
>       if(mode == 2) {
>           register int curline, lth;
>
*           if(flags.toplin == 1) more();
*           remember_topl();
>           lth = CO - maxlen - 2;                 /* Use full screen width */
>           if (linect < LI && lth >= 10) {                  /* in a corner */
>               home ();
>               cl_end ();
>               flags.toplin = 0;
>               curline = 1;
---

Also if you are levitated and blind you shouldn't be able to
feel the things lying on the floor. The fix follows:

*** hack.invent.c.orig  Mon Apr 15 15:11:48 1985
--- hack.invent.c       Fri May 24 13:36:41 1985
***************
*** 625,630
      char *verb = Blind ? "feel" : "see";
      int       ct = 0;
  
      if(!u.uswallow) {
	otmp0 = o_at(u.ux, u.uy);
	gold = g_at(u.ux, u.uy);

--- 625,637 -----
      char *verb = Blind ? "feel" : "see";
      int ct = 0;
  
+     if(Blind) {
+       pline("You try to feel what is lying here on the floor.");
+       if(Levitation) {
+           pline("You cannot reach the floor!");
+           return(1);
+       }
+     }
      if(!u.uswallow) {
	otmp0 = o_at(u.ux, u.uy);
	gold = g_at(u.ux, u.uy);
***************
*** 633,640
	pline("You %s no objects here.", verb);
	return(!!Blind);
      }
- 
-     if(Blind) pline("You try to feel what is lying here on the floor.");
      cornline(0, "Things that are here:");
      for(otmp = otmp0; otmp; otmp = otmp->nobj) {
	if(otmp->ox == u.ux && otmp->oy == u.uy) {

--- 640,645 -----
	pline("You %s no objects here.", verb);
	return(!!Blind);
      }
      cornline(0, "Things that are here:");
      for(otmp = otmp0; otmp; otmp = otmp->nobj) {
	if(otmp->ox == u.ux && otmp->oy == u.uy) {

--
Andreas Bormann                 ab@unido.UUCP
University of Dortmund          N 51 29' 05"   E 07 24' 42"
West Germany

ab@unido.UUCP (05/28/85)

Sorry... the levitation fix should be as follows:

*** hack.invent.c.orig  Mon Apr 15 15:11:48 1985
--- hack.invent.c       Tue May 28 09:23:41 1985
***************
*** 626,631
      int ct = 0;
  
      if(!u.uswallow) {
	otmp0 = o_at(u.ux, u.uy);
	gold = g_at(u.ux, u.uy);
      }

--- 626,638 -----
      int ct = 0;
  
      if(!u.uswallow) {
+       if(Blind) {
+           pline("You try to feel what is lying here on the floor.");
+           if(Levitation) {
+               pline("You cannot reach the floor!");
+               return(1);
+           }
+       }
	otmp0 = o_at(u.ux, u.uy);
	gold = g_at(u.ux, u.uy);
      }
***************
*** 633,640
	pline("You %s no objects here.", verb);
	return(!!Blind);
      }
- 
-     if(Blind) pline("You try to feel what is lying here on the floor.");
      cornline(0, "Things that are here:");
      for(otmp = otmp0; otmp; otmp = otmp->nobj) {
	if(otmp->ox == u.ux && otmp->oy == u.uy) {

--- 640,645 -----
	pline("You %s no objects here.", verb);
	return(!!Blind);
      }
      cornline(0, "Things that are here:");
      for(otmp = otmp0; otmp; otmp = otmp->nobj) {
	if(otmp->ox == u.ux && otmp->oy == u.uy) {

--
Andreas Bormann                 ab@unido.UUCP
University of Dortmund          N 51 29' 05"   E 07 24' 42"
West Germany