]> granicus.if.org Git - nethack/commitdiff
Less misleading message when impossible() is called
authorAlex Smith <ais523@nethack4.org>
Thu, 16 Nov 2017 16:42:16 +0000 (16:42 +0000)
committerAlex Smith <ais523@nethack4.org>
Thu, 16 Nov 2017 17:19:19 +0000 (17:19 +0000)
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.

src/pline.c

index 27027204256e6b4edd0bda79b3964169d7e98ed8..b35a29f18e4ace8dd00d24f72494c9a2079809ab 100644 (file)
@@ -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();
 }