X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=saveresume.c;h=f1d52d458423cedd5e01e7bff1dcfc4c45288eff;hp=cc000d8acf2ffbd8d291e6c70b321313246de612;hb=9e2cb3c19196a26af8e20803314f42b69dc0e014;hpb=43f0cb232b2c1982ba8b77e56c2f10fef32356f0;ds=sidebyside diff --git a/saveresume.c b/saveresume.c index cc000d8..f1d52d4 100644 --- a/saveresume.c +++ b/saveresume.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "advent.h" #include "dungeon.h" @@ -11,7 +12,7 @@ * see the history.adoc file in the source distribution for discussion. */ -#define VRSION 27 /* bump on save format change */ +#define VRSION 28 /* bump on save format change */ /* * If you change the first three members, the resume function may not properly @@ -20,16 +21,16 @@ * when you do that. */ struct save_t { - long savetime; - long mode; /* not used, must be present for version detection */ - long version; + int64_t savetime; + int32_t mode; /* not used, must be present for version detection */ + int32_t version; struct game_t game; }; struct save_t save; #define IGNORE(r) do{if (r){}}while(0) -int savefile(FILE *fp, long version) +int savefile(FILE *fp, int32_t version) /* Save game to file. No input or output from user. */ { save.savetime = time(NULL); @@ -139,15 +140,9 @@ bool is_valid(struct game_t* valgame) return false; } - /* Prevent RNG substitution. Why we are saving PRNG parameters? */ - - if (valgame->lcg_a != game.lcg_a || valgame->lcg_c != game.lcg_c || valgame->lcg_m != game.lcg_m) { - return false; - } - /* Check for RNG overflow. Truncate */ - if (valgame->lcg_x >= game.lcg_m) { - valgame->lcg_x %= game.lcg_m; + if (valgame->lcg_x >= LCG_M) { + valgame->lcg_x %= LCG_M; } /* Bounds check for locations */ @@ -241,4 +236,4 @@ bool is_valid(struct game_t* valgame) return true; } -/* end */ \ No newline at end of file +/* end */