]> granicus.if.org Git - nethack/commitdiff
fix #H8612 - splashes of venom might stay intact
authorPatR <rankin@nethack.org>
Thu, 25 Apr 2019 14:11:42 +0000 (07:11 -0700)
committerPatR <rankin@nethack.org>
Thu, 25 Apr 2019 14:11:42 +0000 (07:11 -0700)
If a poly'd hero spits venom and it lands at a 'soft' spot such as
water, it would remain as an intact venom object.  (Venom spat by
monsters seems to always be used up regardless of where it lands.)

doc/fixes36.2
src/dothrow.c
src/polyself.c

index 6679ce9b6c38da677182f9e20f3d48055ab72b4f..712f9da0a4b088544fee6d77fcecfed3a60a9d85 100644 (file)
@@ -1,4 +1,4 @@
-$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.309 $ $NHDT-Date: 1556150377 2019/04/24 23:59:37 $
+$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.310 $ $NHDT-Date: 1556201496 2019/04/25 14:11:36 $
 
 This fixes36.2 file is here to capture information about updates in the 3.6.x
 lineage following the release of 3.6.1 in April 2018. Please note, however,
@@ -419,6 +419,8 @@ if a mimic concealed itself as a corpse, it could pick a monster type which
 message given when shape-shifted vampire cheats death by reverting to its
        original form ignored hallucination when describing old and new forms
 Vlad wasn't set up as a vampshifter properly
+poly'd hero capable of spitting venom would leave intact venom object if it
+       reached end of range at a 'soft' location such as water
 
 
 Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
index 1da7d0dca352adff2e375723946d66903c341781..a88e504894adba83dbc329eaff25fcdcb1899b81 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 dothrow.c       $NHDT-Date: 1550868876 2019/02/22 20:54:36 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.158 $ */
+/* NetHack 3.6 dothrow.c       $NHDT-Date: 1556201496 2019/04/25 14:11:36 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.160 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Robert Patrick Rankin, 2013. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -1378,7 +1378,10 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */
             }
         }
 
-        if (!IS_SOFT(levl[bhitpos.x][bhitpos.y].typ) && breaktest(obj)) {
+        if ((!IS_SOFT(levl[bhitpos.x][bhitpos.y].typ) && breaktest(obj))
+            /* venom [via #monster to spit while poly'd] fails breaktest()
+               but we want to force breakage even when location IS_SOFT() */
+            || obj->oclass == VENOM_CLASS) {
             tmp_at(DISP_FLASH, obj_to_glyph(obj, rn2_on_display_rng));
             tmp_at(bhitpos.x, bhitpos.y);
             delay_output();
@@ -1899,6 +1902,7 @@ xchar x, y;          /* object location (ox, oy may not be right) */
 boolean from_invent; /* thrown or dropped by player; maybe on shop bill */
 {
     boolean in_view = Blind ? FALSE : (from_invent || cansee(x, y));
+
     if (!breaktest(obj))
         return 0;
     breakmsg(obj, in_view);
index 8ed827906c22c8e58d9d09ad36634a723c24fa27..084c2d4f82f6bcec024ae181bf5ae840ab6555d4 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 polyself.c      $NHDT-Date: 1550525094 2019/02/18 21:24:54 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.128 $ */
+/* NetHack 3.6 polyself.c      $NHDT-Date: 1556201497 2019/04/25 14:11:37 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.131 $ */
 /*      Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -1117,7 +1117,7 @@ dospit()
             break;
         default:
             impossible("bad attack type in dospit");
-        /* fall through */
+            /*FALLTHRU*/
         case AD_ACID:
             otmp = mksobj(ACID_VENOM, TRUE, FALSE);
             break;