X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=saveresume.c;h=ad9f844b16b7e289d2924432d43f5913909024ac;hb=dfff80faa8b5cf4cd286fee2d1ef5eebcdb49829;hp=783e6714262b8857b487bec49a4cdbaf2b0b97a0;hpb=989bdad3eeab310eadeb01638b16839b58999795;p=open-adventure.git diff --git a/saveresume.c b/saveresume.c index 783e671..ad9f844 100644 --- a/saveresume.c +++ b/saveresume.c @@ -11,7 +11,6 @@ #include #include -#include #include #include @@ -63,18 +62,18 @@ int suspend(void) * battles or to start over after learning zzword). * If ADVENT_NOSAVE is defined, do nothing instead. */ -#ifdef ADVENT_NOSAVE +#if defined ADVENT_NOSAVE || defined ADVENT_AUTOSAVE return GO_UNKNOWN; #endif FILE *fp = NULL; rspeak(SUSPEND_WARNING); - if (!yes(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN])) + if (!yes_or_no(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN])) return GO_CLEAROBJ; game.saved = game.saved + 5; while (fp == NULL) { - char* name = readline("\nFile name: "); + char* name = myreadline("\nFile name: "); if (name == NULL) return GO_TOP; fp = fopen(name, WRITE_MODE); @@ -94,7 +93,7 @@ int resume(void) /* Resume. Read a suspended game back from a file. * If ADVENT_NOSAVE is defined, do nothing instead. */ -#ifdef ADVENT_NOSAVE +#if defined ADVENT_NOSAVE || defined ADVENT_AUTOSAVE return GO_UNKNOWN; #endif FILE *fp = NULL; @@ -102,12 +101,15 @@ int resume(void) if (game.loc != 1 || game.abbrev[1] != 1) { rspeak(RESUME_ABANDON); - if (!yes(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN])) + if (!yes_or_no(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN])) return GO_CLEAROBJ; } while (fp == NULL) { - char* name = readline("\nFile name: "); + char* name = myreadline("\nFile name: "); + // Autocomplete can leave the input with an extra trailing space. + if (name != NULL && strlen(name) > 0 && name[strlen(name) - 1] == ' ') + name[strlen(name) - 1] = '\0'; if (name == NULL) return GO_TOP; fp = fopen(name, READ_MODE); @@ -141,8 +143,8 @@ int restore(FILE* fp) bool is_valid(struct game_t valgame) { /* Save files can be roughly grouped into three groups: - * With valid, reaceable state, with valid, but unreachable - * state and with invaild state. We check that state is + * With valid, reacheable state, with valid, but unreachable + * state and with invalid state. We check that state is * valid: no states are outside minimal or maximal value */