From: Alex Smith Date: Thu, 16 Nov 2017 16:42:16 +0000 (+0000) Subject: Less misleading message when impossible() is called X-Git-Tag: NetHack-3.6.1_RC01~210 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8e1b28a4532222bc33c21adf86910dfa904094b5;p=nethack Less misleading message when impossible() is called Telling people to #quit due to something going wrong internally is probably a bad idea; the game might or might not be corrupted, but even if it is, most players will want to play on rather than lose their game entirely. Instead, advise saving and reloading; this will fix the underlying cause of many impossible()s (which are normally related to inconsistent internal structures; the save file format has much less redundancy, therefore less chance of inconsistency, than the in-memory format). Thanks to AmyBSOD for reminding me to do this. --- diff --git a/src/pline.c b/src/pline.c index 270272042..b35a29f18 100644 --- a/src/pline.c +++ b/src/pline.c @@ -436,7 +436,8 @@ VA_DECL(const char *, s) pbuf[BUFSZ - 1] = '\0'; /* sanity */ paniclog("impossible", pbuf); pline("%s", VA_PASS1(pbuf)); - pline("%s", VA_PASS1("Program in disorder - perhaps you'd better #quit.")); + pline( + "Program in disorder! (Saving and reloading may fix this problem.)"); program_state.in_impossible = 0; VA_END(); }