diff --git a/doc/fixes36.2 b/doc/fixes36.2 index 6679ce9b6..712f9da0a 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -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 diff --git a/src/dothrow.c b/src/dothrow.c index 3ddd65ff0..6ac0c521b 100644 --- a/src/dothrow.c +++ b/src/dothrow.c @@ -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. */ @@ -1376,7 +1376,10 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */ } } - if (!IS_SOFT(levl[g.bhitpos.x][g.bhitpos.y].typ) && breaktest(obj)) { + if ((!IS_SOFT(levl[g.bhitpos.x][g.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(g.bhitpos.x, g.bhitpos.y); delay_output(); @@ -1897,6 +1900,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); diff --git a/src/polyself.c b/src/polyself.c index 9634d0c76..19d46540a 100644 --- a/src/polyself.c +++ b/src/polyself.c @@ -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. */ @@ -1113,7 +1113,7 @@ dospit() break; default: impossible("bad attack type in dospit"); - /* fall through */ + /*FALLTHRU*/ case AD_ACID: otmp = mksobj(ACID_VENOM, TRUE, FALSE); break;