ball and chain panic when teleporting

"remove_obj: obj not on floor" when trying to move the iron ball.
For the circumstances involved, the ball wasn't supposed to be
moved anyway, just the chain.

I could reproduce the problem using the steps specified.  I didn't
track down the precise point of failure but after this fix the
panic can't be reproduced anymore.
This commit is contained in:
PatR
2020-03-10 15:59:01 -07:00
parent f664e83070
commit 5d2f719b02
2 changed files with 8 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 teleport.c $NHDT-Date: 1581886867 2020/02/16 21:01:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.113 $ */
/* NetHack 3.6 teleport.c $NHDT-Date: 1583881126 2020/03/10 22:58:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.116 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */
@@ -302,8 +302,9 @@ int nux, nuy;
int teleds_flags;
{
boolean ball_active, ball_still_in_range;
boolean allow_drag = teleds_flags & TELEDS_ALLOW_DRAG;
boolean is_teleport = teleds_flags & TELEDS_TELEPORT;
boolean allow_drag = ((teleds_flags & TELEDS_ALLOW_DRAG) != 0
&& near_capacity() <= SLT_ENCUMBER);
boolean is_teleport = (teleds_flags & TELEDS_TELEPORT) != 0;
struct monst *vault_guard = vault_occupied(u.urooms) ? findgd() : 0;
if (u.utraptype == TT_BURIEDBALL) {