From: PatR Date: Thu, 25 Apr 2019 14:11:42 +0000 (-0700) Subject: fix #H8612 - splashes of venom might stay intact X-Git-Tag: NetHack-3.6.2_Released~12^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=75db8e004d60cc80749d1b55536b011f8888a96b;p=nethack fix #H8612 - splashes of venom might stay intact 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.) --- 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 1da7d0dca..a88e50489 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. */ @@ -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); diff --git a/src/polyself.c b/src/polyself.c index 8ed827906..084c2d4f8 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. */ @@ -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;