{
FILE *fp;
fp = fopen("victrix-abyssi.sav", "wb");
- /* Write out the snapshot we took of the RNG before generating the
- * current level. */
- fwrite(saved_state, sizeof saved_state, 1, fp);
- /* Write out the map flags; if we decide to have at-generation
- * flags as well as at-exploration flags, the at-generation flags
- * will be stored in a separate array. */
+ fwrite(lvl.terrain, 1, sizeof lvl.terrain, fp);
fwrite(lvl.flags, 1, sizeof lvl.flags, fp);
- /* Write out the permanent object data. This is hideously
- * wasteful (and guarantees savefile breakage at version-up), but
- * it makes handling flavours much easier... */
fwrite(permobjs, NUM_OF_PERMOBJS, sizeof (struct permobj), fp);
- /* Write out the dynamic monster/object arrays. */
fwrite(monsters, MONSTERS_IN_PLAY, sizeof (struct mon), fp);
fwrite(objects, OBJECTS_IN_PLAY, sizeof (struct obj), fp);
/* Write out the depth */
FILE *fp;
system("gunzip victrix-abyssi.sav");
fp = fopen("victrix-abyssi.sav", "rb");
- fread(rng_state, sizeof rng_state, 1, fp);
- build_level();
+ fread(lvl.terrain, 1, sizeof lvl.terrain, fp);
fread(lvl.flags, 1, sizeof lvl.flags, fp);
fread(permobjs, NUM_OF_PERMOBJS, sizeof (struct permobj), fp);
fread(monsters, MONSTERS_IN_PLAY, sizeof (struct mon), fp);
void new_game(void)
{
- rng_init();
u_init();
flavours_init();
make_new_level();
display_init();
memset(lvl.objs, -1, sizeof lvl.objs);
memset(lvl.mons, -1, sizeof lvl.mons);
+ rng_init();
/* Do we have a saved game? */
i = stat("victrix-abyssi.sav.gz", &s);
if (!i)