More fixed limits (NOBJECTS, LOCSIZ) stop being fixed.
[open-adventure.git] / saveresume.c
index 50091718bc25f125c57d76f3cef3fca06a76e191..cf3274640e41de39700786f082a0adac71e4d548 100644 (file)
@@ -24,13 +24,11 @@ struct save_t {
     long mode;         /* not used, must be present for version detection */
     long version;
     struct game_t game;
-    long bird;
-    long bivalve;
 };
 struct save_t save;
 
 /* Suspend and resume */
-int suspend(FILE *input)
+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
@@ -43,8 +41,8 @@ int suspend(FILE *input)
     long i, k;
     FILE *fp = NULL;
 
-    RSPEAK(SUSPEND_WARNING);
-    if (!YES(THIS_ACCEPTABLE, OK_MAN, OK_MAN)) return GO_CLEAROBJ;
+    rspeak(SUSPEND_WARNING);
+    if (!YES(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN])) return GO_CLEAROBJ;
     game.saved = game.saved + 5;
 
     while (fp == NULL) {
@@ -63,15 +61,13 @@ int suspend(FILE *input)
     save.mode = -1;
     save.version = VRSION;
     memcpy(&save.game, &game, sizeof(struct game_t));
-    save.bird = OBJSND[BIRD];
-    save.bivalve = OBJTXT[OYSTER];
     IGNORE(fwrite(&save, sizeof(struct save_t), 1, fp));
     fclose(fp);
-    RSPEAK(RESUME_HELP);
+    rspeak(RESUME_HELP);
     exit(0);
 }
 
-int resume(FILE *input)
+int resume(void)
 {
     /*  Resume.  Read a suspended game back from a file.
      *  If ADVENT_NOSAVE is defined, do nothing instead. */
@@ -82,8 +78,8 @@ int resume(FILE *input)
     FILE *fp = NULL;
 
     if (game.loc != 1 || game.abbrev[1] != 1) {
-        RSPEAK(RESUME_ABANDON);
-        if (!YES(THIS_ACCEPTABLE, OK_MAN, OK_MAN)) return GO_CLEAROBJ;
+        rspeak(RESUME_ABANDON);
+        if (!YES(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN])) return GO_CLEAROBJ;
     }
 
     while (fp == NULL) {
@@ -111,13 +107,9 @@ int restore(FILE* fp)
     IGNORE(fread(&save, sizeof(struct save_t), 1, fp));
     fclose(fp);
     if (save.version != VRSION) {
-        SETPRM(1, save.version / 10, MOD(save.version, 10));
-        SETPRM(3, VRSION / 10, MOD(VRSION, 10));
-        RSPEAK(VERSION_SKEW);
+        rspeak(VERSION_SKEW, save.version / 10, MOD(save.version, 10), VRSION / 10, MOD(VRSION, 10));
     } else {
         memcpy(&game, &save.game, sizeof(struct game_t));
-        OBJSND[BIRD] = save.bird;
-        OBJTXT[OYSTER] = save.bivalve;
         game.zzword = RNDVOC(3, game.zzword);
     }
     return GO_TOP;