From 9ca2d7c030ecb85a1184db8ae0fe45e8f0f0cfc9 Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Sat, 3 Jun 2006 17:55:24 +0000 Subject: [PATCH] lost ball and chain (trunk only) Saving the game while punished, not carrying the attached ball, and while swallowed by a purple worm resulted in losing the ball and chain. Since the required information was not being written to the save file at all, I couldn't come up with a clean way to do this for the branch, and preserve save file format. I could think of lots of kludgy ways to do it (insert ball and chain into the hero's inventory prior to saving, and remove it on restore, etc.) --- src/save.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/save.c b/src/save.c index 6820b4699..4666ae707 100644 --- a/src/save.c +++ b/src/save.c @@ -352,6 +352,10 @@ register int fd, mode; uball->nobj = uchain; uchain->nobj = (struct obj *)0; saveobjchn(fd, uball, mode); + } else { + int minusone = -1; + if (perform_bwrite(mode)) + bwrite(fd, (genericptr_t) &minusone, sizeof(int)); } saveobjchn(fd, migrating_objs, mode);