#include "advent.h"
#include "database.h"
+#include "newdb.h"
#include "linenoise/linenoise.h"
/*
{
long i, k;
FILE *fp = NULL;
- char *name;
-
+
if (!resume) {
/* Suspend. Offer to save things in a file, but charging
* some points (so can't win by using saved games to retry
* battles or to start over after learning zzword). */
- RSPEAK(260);
- if (!YES(input,200,54,54)) return(2012);
+ RSPEAK(ARB_260);
+ if (!YES(input,ARB_200,ARB_54,ARB_54)) return GO_CLEAROBJ;
game.saved=game.saved+5;
}
else
{
/* Resume. Read a suspended game back from a file. */
if (game.loc != 1 || game.abbrev[1] != 1) {
- RSPEAK(268);
- if (!YES(input,200,54,54)) return(2012);
+ RSPEAK(ARB_268);
+ if (!YES(input,ARB_200,ARB_54,ARB_54)) return GO_CLEAROBJ;
}
}
while (fp == NULL) {
- name = linenoise("File name: ");
+ char* name = linenoise("\nFile name: ");
+ if (name == NULL)
+ return GO_TOP;
fp = fopen(name,(resume ? READ_MODE : WRITE_MODE));
if (fp == NULL)
printf("Can't open file %s, try again.\n", name);
+ linenoiseFree(name);
}
- linenoiseFree(name);
DATIME(&i,&k);
k=i+650*k;
save.bivalve = OBJTXT[OYSTER];
IGNORE(fwrite(&save, sizeof(struct save_t), 1, fp));
fclose(fp);
- RSPEAK(266);
+ RSPEAK(ARB_266);
exit(0);
} else {
IGNORE(fread(&save, sizeof(struct save_t), 1, fp));
if (save.version != VRSION) {
SETPRM(1,k/10,MOD(k,10));
SETPRM(3,VRSION/10,MOD(VRSION,10));
- RSPEAK(269);
- return(2000);
+ RSPEAK(ARB_269);
+ } else {
+ memcpy(&game, &save.game, sizeof(struct game_t));
+ OBJSND[BIRD] = save.bird;
+ OBJTXT[OYSTER] = save.bivalve;
+ game.zzword=RNDVOC(3,game.zzword);
}
- memcpy(&game, &save.game, sizeof(struct game_t));
- OBJSND[BIRD] = save.bird;
- OBJTXT[OYSTER] = save.bivalve;
- game.zzword=RNDVOC(3,game.zzword);
- return(2000);
+ return GO_TOP;
}
}