Complain to user on save/resume.restore when it's disabled.
authorEric S. Raymond <esr@thyrsus.com>
Sun, 5 Mar 2023 00:48:17 +0000 (19:48 -0500)
committerEric S. Raymond <esr@thyrsus.com>
Sun, 5 Mar 2023 00:48:17 +0000 (19:48 -0500)
adventure.yaml
notes.adoc
saveresume.c

index cb577bd97b464454f2e10fe4bb3225a9e4e3f889..32c7d8b904c7dbaa0888dd46c6d4b69dd1959492 100644 (file)
@@ -3173,6 +3173,7 @@ arbitrary_messages:  !!omap
     To achieve the next higher rating would be a neat trick!
     Congratulations!!
 - OFF_SCALE: 'You just went off my scale!!'
+- SAVERESUME_DISABLED: 'Save abd resume are disabled.'
 - RESUME_HELP: 'To resume your Adventure, start a new game and then say "RESUME".'
 # This message is not currently used
 #- TABLE_SPACE: |-
index bc8db58bd85fc4834de81799a512b7d304bdf03e..9dfc9cd31ea6606478ac2c31cea18637a4340f4b 100644 (file)
@@ -126,6 +126,10 @@ tamper-proofing saves when everyone has the source code.
 A -r command-line option has been added. When it is given (with a file
 path argument) it is functionally equivalent to a RESTORE command.
 
+The game can be built in a mode that entirely disables save/resume, or
+thart autosaves only on a termination signal (for use in BBS doort
+systems).  There is a new nmessage to inform the user about this.
+
 == Translation ==
 
 The 2.5 code was a mechanical C translation of a FORTRAN original.
index ad9f844b16b7e289d2924432d43f5913909024ac..d66854344733de47951fb7a3cd33f9eba356f72c 100644 (file)
@@ -60,10 +60,11 @@ int suspend(void)
     /*  Suspend.  Offer to save things in a file, but charging
      *  some points (so can't win by using saved games to retry
      *  battles or to start over after learning zzword).
-     *  If ADVENT_NOSAVE is defined, do nothing instead. */
+     *  If ADVENT_NOSAVE is defined, gripe instead. */
 
 #if defined ADVENT_NOSAVE || defined ADVENT_AUTOSAVE
-    return GO_UNKNOWN;
+    rspeak(SAVERESUME_DISABLED)
+    return GO_TOP;
 #endif
     FILE *fp = NULL;
 
@@ -91,10 +92,11 @@ int suspend(void)
 int resume(void)
 {
     /*  Resume.  Read a suspended game back from a file.
-     *  If ADVENT_NOSAVE is defined, do nothing instead. */
+     *  If ADVENT_NOSAVE is defined, gripe instead. */
 
 #if defined ADVENT_NOSAVE || defined ADVENT_AUTOSAVE
-    return GO_UNKNOWN;
+    rspeak(SAVERESUME_DISABLED)
+    return GO_TOP;
 #endif
     FILE *fp = NULL;
 
@@ -125,9 +127,10 @@ int restore(FILE* fp)
 {
     /*  Read and restore game state from file, assuming
      *  sane initial state.
-     *  If ADVENT_NOSAVE is defined, do nothing instead. */
+     *  If ADVENT_NOSAVE is defined, gripe instead. */
 #ifdef ADVENT_NOSAVE
-    return GO_UNKNOWN;
+    rspeak(SAVERESUME_DISABLED)
+    return GO_TOP;
 #endif
 
     IGNORE(fread(&save, sizeof(struct save_t), 1, fp));