From e51713bccfbbd20a6a35e1618727b11dbdf40141 Mon Sep 17 00:00:00 2001 From: cohrs Date: Sun, 3 Oct 2004 22:14:36 +0000 Subject: [PATCH] prevent a panic splitbill: no resident shopkeeper Patch was sent in by on Sep 8: This bug causes a number of impossible messages (starting with splitbill: no resident shopkeeper??) Repeat by: Enter a large shop. Wish for a large stack of projectiles. Sell your projectiles and then pick them up again. Trap shopkeeper against the door with a scroll of earth. Throw the projectiles at the shopkeeper to anger him. Move away from the boulder trap and wait for the shopkeeper to leave the shop. Throw one of the projectiles at the free space. --- doc/fixes34.4 | 1 + src/shk.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/fixes34.4 b/doc/fixes34.4 index c801cd4b2..b5f5ee46f 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -54,6 +54,7 @@ ensure that a sleeping steed doesn't answer a #chat eliminate two very minor anomalies when using Luck to adjust random numbers destroying a worn item via dipping in burning oil would not unwear/unwield the item properly, possibly leading to various strange behaviors +avoid a panic splitbill when shopkeeper is trapped by the door Platform- and/or Interface-Specific Fixes diff --git a/src/shk.c b/src/shk.c index b23226f8b..60a74eba8 100644 --- a/src/shk.c +++ b/src/shk.c @@ -3228,7 +3228,7 @@ register struct monst *shkp; Such voluntary abandonment left unpaid objects in invent, triggering billing impossibilities on the next level once the character fell through the hole.] */ - if (udist > 4 && eshkp->following) + if (udist > 4 && eshkp->following && !eshkp->billct) return(-1); /* leave it to m_move */ gx = u.ux; gy = u.uy; -- 2.40.0