diff --git a/doc/fixes37.0 b/doc/fixes37.0 index 72613ea5b..95f64cd44 100644 --- a/doc/fixes37.0 +++ b/doc/fixes37.0 @@ -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 diff --git a/src/do.c b/src/do.c index f7d60eec9..4028d76d3 100644 --- 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" diff --git a/src/hack.c b/src/hack.c index 18c0157ea..ac6172315 100644 --- a/src/hack.c +++ b/src/hack.c @@ -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; diff --git a/src/mhitu.c b/src/mhitu.c index 677561dca..fd9786262 100644 --- a/src/mhitu.c +++ b/src/mhitu.c @@ -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; } diff --git a/src/mon.c b/src/mon.c index 0e22e9307..24f7cd7fa 100644 --- 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; } } diff --git a/src/potion.c b/src/potion.c index 612ba9388..ca15a2287 100644 --- a/src/potion.c +++ b/src/potion.c @@ -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)