From 8e1b28a4532222bc33c21adf86910dfa904094b5 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Thu, 16 Nov 2017 16:42:16 +0000 Subject: [PATCH] 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. --- src/pline.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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(); } -- 2.40.0