From c928cda7753998ff294835051d1c35d30ed8e4e6 Mon Sep 17 00:00:00 2001 From: Bart House Date: Sun, 30 Jun 2019 16:34:41 -0700 Subject: [PATCH] Need to check ball and chain after we have procesed floor objects. --- src/restore.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/restore.c b/src/restore.c index 69d4660c5..14612e08e 100644 --- a/src/restore.c +++ b/src/restore.c @@ -672,13 +672,6 @@ unsigned int *stuckid, *steedid; if (otmp->owornmask) setworn(otmp, otmp->owornmask); - if ((uball && !uchain) || (uchain && !uball)) { - impossible("restgamestate: lost ball & chain"); - /* poor man's unpunish() */ - setworn((struct obj *) 0, W_CHAIN); - setworn((struct obj *) 0, W_BALL); - } - /* reset weapon so that player will get a reminder about "bashing" during next fight when bare-handed or wielding an unconventional item; for pick-axe, we aren't able to distinguish between having @@ -921,6 +914,13 @@ register int fd; if (otmp->owornmask) setworn(otmp, otmp->owornmask); + if ((uball && !uchain) || (uchain && !uball)) { + impossible("restgamestate: lost ball & chain"); + /* poor man's unpunish() */ + setworn((struct obj *) 0, W_CHAIN); + setworn((struct obj *) 0, W_BALL); + } + /* in_use processing must be after: * + The inventory has been read so that freeinv() works. * + The current level has been restored so billing information