no autosave while error

This commit is contained in:
p.kosyh 2009-10-03 17:01:56 +00:00
parent 3ea2b78983
commit 59c4198a34
4 changed files with 8 additions and 8 deletions

View file

@ -267,7 +267,7 @@ void game_menu(int nr)
int game_error(const char *name)
{
game_done();
game_done(1);
if (game_init(NULL)) {
fprintf(stderr,"Fatal error! Can't init anything!!!\n");
exit(1);
@ -389,7 +389,7 @@ int game_restart(void)
{
char *og = curgame_dir;
game_save(-1);
game_done();
game_done(0);
if (game_init(og)) {
game_error(og);
return 0;
@ -547,14 +547,14 @@ void free_last(void)
}
void game_done(void)
void game_done(int err)
{
int i;
gfx_del_timer(timer_han);
timer_han = NULL;
if (opt_autosave && curgame_dir)
if (opt_autosave && curgame_dir && !err)
game_save(0);
chdir(game_cwd);
// cfg_save();

View file

@ -25,7 +25,7 @@ extern int game_theme_select(const char *name);
extern int game_init(const char *game);
extern int game_loop(void);
extern void game_done(void);
extern void game_done(int err);
extern int game_load_theme(const char *path);

View file

@ -108,7 +108,7 @@ int main(int argc, char **argv)
}
game_loop();
cfg_save();
game_done();
game_done(0);
if (debug_sw)
debug_done();
gfx_done();

View file

@ -426,7 +426,7 @@ int game_menu_act(const char *a)
char *p;
p = strdup(a);
if (p) {
game_done();
game_done(0);
if (game_init(p)) {
game_error(p);
}
@ -440,7 +440,7 @@ int game_menu_act(const char *a)
fprintf(stderr, "Can't select theme:%s:%s\n", p, strerror(errno));
char *og = curgame_dir;
game_save(-1);
game_done();
game_done(0);
if (game_init(og)) {
game_error(og);
} else if (curgame_dir && game_own_theme && opt_owntheme) {