Simplify and speed up testing.
[open-adventure.git] / saveresume.c
index afd04d37af00570a385e85b545bdad1fcced9352..d7fe76e5f3d9c79d69e87d57f9b1d082326d5ec0 100644 (file)
@@ -4,9 +4,9 @@
  * (ESR) This replaces  a bunch of particularly nasty FORTRAN-derived code;
  * see the history.adoc file in the source distribution for discussion.
  *
- * Copyright (c) 1977, 2005 by Will Crowther and Don Woods
- * Copyright (c) 2017 by Eric S. Raymond
- * SPDX-License-Identifier: BSD-2-clause
+ * SPDX-FileCopyrightText: 1977, 2005 by Will Crowther and Don Woods
+ * SPDX-FileCopyrightText: 2017 by Eric S. Raymond
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <stdlib.h>
@@ -29,8 +29,7 @@
 
 /*
  * If you change the first three members, the resume function may not properly
- * reject saves from older versions.  Yes, this glues us to a hardware-
- * dependent length of int.  Later members can change, but bump the version
+ * reject saves from older versions. Later members can change, but bump the version
  * when you do that.
  */
 struct save_t {
@@ -57,7 +56,7 @@ int savefile(FILE *fp, int32_t version)
 
 /* Suspend and resume */
 
-char *strip(char *name)
+static char *strip(char *name)
 {
     // Trim leading whitespace
     while(isspace((unsigned char)*name))
@@ -83,7 +82,7 @@ int suspend(void)
      *  If ADVENT_NOSAVE is defined, gripe instead. */
 
 #if defined ADVENT_NOSAVE || defined ADVENT_AUTOSAVE
-    rspeak(SAVERESUME_DISABLED)
+    rspeak(SAVERESUME_DISABLED);
     return GO_TOP;
 #endif
     FILE *fp = NULL;
@@ -118,13 +117,12 @@ int resume(void)
      *  If ADVENT_NOSAVE is defined, gripe instead. */
 
 #if defined ADVENT_NOSAVE || defined ADVENT_AUTOSAVE
-    rspeak(SAVERESUME_DISABLED)
+    rspeak(SAVERESUME_DISABLED);
     return GO_TOP;
 #endif
     FILE *fp = NULL;
 
-    if (game.loc != 1 ||
-        game.abbrev[1] != 1) {
+    if (game.loc != LOC_START || game.abbrev[LOC_START] != 1) {
         rspeak(RESUME_ABANDON);
         if (!yes_or_no(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN]))
             return GO_CLEAROBJ;
@@ -161,8 +159,8 @@ int restore(FILE* fp)
     if (save.version != VRSION) {
         rspeak(VERSION_SKEW, save.version / 10, MOD(save.version, 10), VRSION / 10, MOD(VRSION, 10));
     } else if (!is_valid(save.game)) {
-       rspeak(SAVE_TAMPERING); // LCOV_EXCL_LINE
-       exit(EXIT_SUCCESS);     // LCOV_EXCL_LINE
+       rspeak(SAVE_TAMPERING);
+       exit(EXIT_SUCCESS);
     } else {
         game = save.game;
     }
@@ -172,7 +170,7 @@ int restore(FILE* fp)
 bool is_valid(struct game_t valgame)
 {
     /*  Save files can be roughly grouped into three groups:
-     *  With valid, reacheable state, with valid, but unreachable
+     *  With valid, reachable state, with valid, but unreachable
      *  state and with invalid state. We check that state is
      *  valid: no states are outside minimal or maximal value
      */