Create a cheater to test strange save/resume cases.
[open-adventure.git] / saveresume.c
index 338615844b24cf6a945c4271d82a3ee887d2abf7..3546378a5ae6d4e7e6ae44db7fb18b7e91beeb46 100644 (file)
@@ -27,6 +27,20 @@ struct save_t {
 };
 struct save_t save;
 
+int savefile(FILE *fp)
+    /* Save game to file. No input or output from user. */
+{
+    long i, k;
+    datime(&i, &k);
+    k = i + 650 * k;
+    save.savetime = k;
+    save.mode = -1;
+    save.version = VRSION;
+    memcpy(&save.game, &game, sizeof(struct game_t));
+    IGNORE(fwrite(&save, sizeof(struct save_t), 1, fp));
+    return(0);
+}
+
 /* Suspend and resume */
 int suspend(void)
 {
@@ -38,7 +52,6 @@ int suspend(void)
 #ifdef ADVENT_NOSAVE
     return GO_UNKNOWN;
 #endif
-    long i, k;
     FILE *fp = NULL;
 
     rspeak(SUSPEND_WARNING);
@@ -55,12 +68,7 @@ int suspend(void)
         linenoiseFree(name);
     }
 
-    datime(&i, &k);
-    k = i + 650 * k;
-    save.savetime = k;
-    save.mode = -1;
-    save.version = VRSION;
-    memcpy(&save.game, &game, sizeof(struct game_t));
+    savefile(fp);
     IGNORE(fwrite(&save, sizeof(struct save_t), 1, fp));
     fclose(fp);
     rspeak(RESUME_HELP);