X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=advent.h;h=1162106f3a3b6a18399634ba93de11ec9fcf4076;hb=4369284c75828ca78e7ab7ad3dfe732d3538c132;hp=faf298e04af52eee8aed786dbfcecd0b56c235b1;hpb=3640e5cb96db9057dec008b05e69d27676ecbfbb;p=open-adventure.git diff --git a/advent.h b/advent.h index faf298e..1162106 100644 --- a/advent.h +++ b/advent.h @@ -178,7 +178,7 @@ struct game_t { int saved; // point penalty for saves int tally; // count of treasures gained int thresh; // current threshold for endgame scoring tier - bool seenbigwords; // have we red the grafitti in the Giant's Room? + bool seenbigwords; // have we red the graffiti in the Giant's Room? turn_t trnluz; // # points lost so far due to turns used turn_t turns; // counts commands given (ignores yes/no) char zzword[TOKLEN + 1]; // randomly generated magic word from bird @@ -190,8 +190,8 @@ struct game_t { loc_t fixed[NOBJECTS + 1]; // fixed location of object (if not IS_FREE) obj_t link[NOBJECTS * 2 + 1];// object-list links loc_t place[NOBJECTS + 1]; // location of object - int hinted[NHINTS]; // hinted[i] = true iff hint i has been used. - int hintlc[NHINTS]; // hintlc[i] = how int at LOC with cond bit i + bool hinted[NHINTS]; // hinted[i] = true iff hint i has been used. + int hintlc[NHINTS]; // hintlc[i] = show int at LOC with cond bit i int prop[NOBJECTS + 1]; // object state array */ }; @@ -233,7 +233,12 @@ typedef struct { * files afterwards. Otherwise you will get a spurious failure due to the old version * having been generated into a check file. */ -#define SAVE_VERSION 29 +#define SAVE_VERSION 30 + +/* + * Goes at start of file so saves can be identified by file(1) and the like. + */ +#define ADVENT_MAGIC "open-adventure\n" /* * If you change the first three members, the resume function may not properly @@ -241,9 +246,9 @@ typedef struct { * when you do that. */ struct save_t { - int64_t savetime; - int32_t mode; /* not used, must be present for version detection */ + char magic[sizeof(ADVENT_MAGIC)]; int32_t version; + int32_t canary; struct game_t game; }; @@ -273,7 +278,7 @@ extern void set_seed(int32_t); extern int32_t randrange(int32_t); extern int score(enum termination); extern void terminate(enum termination) __attribute__((noreturn)); -extern int savefile(FILE *, int32_t); +extern int savefile(FILE *); #if defined ADVENT_AUTOSAVE extern void autosave(void); #endif