int holdng; // number of objects being carried
int igo; // # uses of "go" instead of a direction
int iwest; // # times he's said "west" instead of "w"
- int knfloc; // knife location; 0 if none, -1 after caveat
+ loc_t knfloc; // knife location; LOC_NOWERE if none, -1 after caveat
turn_t limit; // lifetime of lamp
loc_t loc; // where player is now
loc_t newloc; // where player is going
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
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 */
};
* 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
* 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;
};
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