]> granicus.if.org Git - nethack/commitdiff
new status conditions
authorPatR <rankin@nethack.org>
Sat, 15 Feb 2020 23:41:24 +0000 (15:41 -0800)
committerPatR <rankin@nethack.org>
Sat, 15 Feb 2020 23:41:24 +0000 (15:41 -0800)
Several conditions result in stale data on the status line when
starting or stopping because things which didn't used to affect it
haven't been setting context.botl to force an update.  This wasn't
systematic; there are bound to be lots more.

doc/fixes37.0
src/do.c
src/hack.c
src/mhitu.c
src/mon.c
src/potion.c

index 72613ea5b87ab98e7ccb56f72f063db2b37237b8..95f64cd4452d517ac3f2ec84d55568b0254baa84 100644 (file)
@@ -1,4 +1,4 @@
-$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.101 $ $NHDT-Date: 1581803740 2020/02/15 21:55:40 $
+$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.102 $ $NHDT-Date: 1581810078 2020/02/15 23:41:18 $
 
 General Fixes and Modified Features
 -----------------------------------
@@ -96,6 +96,7 @@ set g.context.botl for glove and wielding actions that could start or end
        bare-handedness in support of condtests[bl_bareh]
 reinstate ranked ordering of the status condition fields
 grammar for messages about a monster removing items from a container was bad
+some new status conditions didn't always update when they should
 
 
 Platform- and/or Interface-Specific Fixes
index f7d60eec9b9397b8d1d7c0969567ed6d8da2feb1..4028d76d3bdfa91c6088695cfb6705b0e5e0e5de 100644 (file)
--- a/src/do.c
+++ b/src/do.c
@@ -1,4 +1,4 @@
-/* NetHack 3.6 do.c    $NHDT-Date: 1581322660 2020/02/10 08:17:40 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.224 $ */
+/* NetHack 3.6 do.c    $NHDT-Date: 1581810044 2020/02/15 23:40:44 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.226 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Derek S. Ray, 2015. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -2011,8 +2011,8 @@ dowipe()
 
 void
 set_wounded_legs(side, timex)
-register long side;
-register int timex;
+long side;
+int timex;
 {
     /* KMH -- STEED
      * If you are riding, your steed gets the wounded legs instead.
@@ -2020,13 +2020,12 @@ register int timex;
      * Caller is also responsible for adjusting messages.
      */
 
-    if (!Wounded_legs) {
+    g.context.botl = 1;
+    if (!Wounded_legs)
         ATEMP(A_DEX)--;
-        g.context.botl = 1;
-    }
 
-    if (!Wounded_legs || (HWounded_legs & TIMEOUT))
-        HWounded_legs = timex;
+    if (!Wounded_legs || (HWounded_legs & TIMEOUT) < timex)
+        set_itimeout(&HWounded_legs, (long) timex);
     EWounded_legs = side;
     (void) encumber_msg();
 }
@@ -2036,10 +2035,9 @@ heal_legs(how)
 int how; /* 0: ordinary, 1: dismounting steed, 2: limbs turn to stone */
 {
     if (Wounded_legs) {
-        if (ATEMP(A_DEX) < 0) {
+        g.context.botl = 1;
+        if (ATEMP(A_DEX) < 0)
             ATEMP(A_DEX)++;
-            g.context.botl = 1;
-        }
 
         /* when mounted, wounded legs applies to the steed;
            during petrification countdown, "your limbs turn to stone"
index 18c0157eab3f4ee8475bfcfb013b3c46c3c79abf..ac61723158d453e1185afb222c85f99ed29073d1 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 hack.c  $NHDT-Date: 1579261288 2020/01/17 11:41:28 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.245 $ */
+/* NetHack 3.6 hack.c  $NHDT-Date: 1581810065 2020/02/15 23:41:05 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.247 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Derek S. Ray, 2015. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -2925,10 +2925,11 @@ monster_nearby()
 
 void
 nomul(nval)
-register int nval;
+int nval;
 {
     if (g.multi < nval)
         return;              /* This is a bug fix by ab@unido */
+    g.context.botl |= (g.multi >= 0);
     u.uinvulnerable = FALSE; /* Kludge to avoid ctrl-C bug -dlc */
     u.usleep = 0;
     g.multi = nval;
@@ -2942,6 +2943,7 @@ void
 unmul(msg_override)
 const char *msg_override;
 {
+    g.context.botl = 1;
     g.multi = 0; /* caller will usually have done this already */
     if (msg_override)
         g.nomovemsg = msg_override;
index 677561dca63ba38ad6ff312795ddfc8d245f4d2b..fd9786262053af089c89574c94eed698d085a65d 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 mhitu.c $NHDT-Date: 1575245065 2019/12/02 00:04:25 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.168 $ */
+/* NetHack 3.6 mhitu.c $NHDT-Date: 1581810070 2020/02/15 23:41:10 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.182 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Robert Patrick Rankin, 2012. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -217,6 +217,7 @@ struct monst *mtmp;
 struct permonst *mdat; /* if mtmp is polymorphed, mdat != mtmp->data */
 boolean message;
 {
+    g.context.botl = 1;
     if (message) {
         if (is_animal(mdat)) {
             You("get regurgitated!");
@@ -1267,8 +1268,10 @@ register struct attack *mattk;
         break;
     case AD_STCK:
         hitmsg(mtmp, mattk);
-        if (uncancelled && !u.ustuck && !sticks(g.youmonst.data))
+        if (uncancelled && !u.ustuck && !sticks(g.youmonst.data)) {
+            g.context.botl = 1;
             u.ustuck = mtmp;
+        }
         break;
     case AD_WRAP:
         if ((!mtmp->mcan || u.ustuck == mtmp) && !sticks(g.youmonst.data)) {
@@ -1276,6 +1279,7 @@ register struct attack *mattk;
                 if (u_slip_free(mtmp, mattk)) {
                     dmg = 0;
                 } else {
+                    g.context.botl = 1;
                     pline("%s swings itself around you!", Monnam(mtmp));
                     u.ustuck = mtmp;
                 }
index 0e22e93077c419c09089388d2a9cc775f658ea68..24f7cd7faf028fb58eb7eb4f42c3128d1deef883 100644 (file)
--- a/src/mon.c
+++ b/src/mon.c
@@ -1,4 +1,4 @@
-/* NetHack 3.6 mon.c   $NHDT-Date: 1581637127 2020/02/13 23:38:47 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.322 $ */
+/* NetHack 3.6 mon.c   $NHDT-Date: 1581810072 2020/02/15 23:41:12 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.323 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Derek S. Ray, 2015. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -2319,6 +2319,10 @@ unstuck(mtmp)
 struct monst *mtmp;
 {
     if (u.ustuck == mtmp) {
+        g.context.botl = 1;
+        /* do this first so that docrt()'s botl update is accurate;
+           safe to do as long as u.uswallow is also cleared before docrt() */
+        u.ustuck = (struct monst *) 0;
         if (u.uswallow) {
             u.ux = mtmp->mx;
             u.uy = mtmp->my;
@@ -2333,7 +2337,6 @@ struct monst *mtmp;
             if (attacktype(mtmp->data, AT_ENGL) && !mtmp->mspec_used)
                 mtmp->mspec_used = rnd(2);
         }
-        u.ustuck = 0;
     }
 }
 
index 612ba938810f3a618dbe1d41593ec05b42389c10..ca15a2287a061ac78f53f710c07b02ebd625d267 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 potion.c        $NHDT-Date: 1579655028 2020/01/22 01:03:48 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.179 $ */
+/* NetHack 3.6 potion.c        $NHDT-Date: 1581810073 2020/02/15 23:41:13 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.180 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Robert Patrick Rankin, 2013. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -442,6 +442,7 @@ void
 make_glib(xtime)
 int xtime;
 {
+    g.context.botl |= (!Glib ^ !!xtime);
     set_itimeout(&Glib, xtime);
     /* may change "(being worn)" to "(being worn; slippery)" or vice versa */
     if (uarmg)