From c25528dafe036a57817aa6b6fe0740a2876bc733 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sun, 26 Apr 2026 08:51:33 -0400 Subject: [PATCH] try to prevent panic encountering empty bones file --- src/bones.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bones.c b/src/bones.c index 2a3358678..3e484279f 100644 --- a/src/bones.c +++ b/src/bones.c @@ -659,16 +659,19 @@ getbones(void) return 0; } + restoreinfo.mread_flags = 1; /* return despite error for a bones file */ if (validate(nhfp, gb.bones, FALSE) != SF_UPTODATE) { if (!wizard) pline("Discarding unusable bones; no need to panic..."); ok = FALSE; + restoreinfo.mread_flags = 0; } else { ok = TRUE; if (wizard) { if (y_n("Get bones?") == 'n') { close_nhfile(nhfp); compress_bonesfile(); + restoreinfo.mread_flags = 0; return 0; } } @@ -684,6 +687,7 @@ getbones(void) close_nhfile(nhfp); compress_bonesfile(); /* ToDo: maybe unlink these problematic bones? */ + restoreinfo.mread_flags = 0; return 0; } if (strcmp(bonesid, oldbonesid) != 0) { @@ -695,6 +699,7 @@ getbones(void) pline1(errbuf); ok = FALSE; /* won't die of trickery */ } + restoreinfo.mread_flags = 0; trickery(errbuf); } else { struct monst *mtmp; @@ -726,6 +731,7 @@ getbones(void) fix_shop_damage(); } } + restoreinfo.mread_flags = 0; close_nhfile(nhfp); sanitize_engravings(); u.uroleplay.numbones++;