diff options
author | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-04-18 14:04:04 +0000 |
---|---|---|
committer | ennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-04-18 14:04:04 +0000 |
commit | 92a70a7bda3d5a52fd6cc016b748e6bf59fb81e4 (patch) | |
tree | aa54c8edd7be8cb3abfd5ef73fbf4484b4272680 /crawl-ref/source/tilesdl.cc | |
parent | 114bb236eb8cffa04f3544ee3e8775218eebab1a (diff) | |
download | crawl-ref-92a70a7bda3d5a52fd6cc016b748e6bf59fb81e4.tar.gz crawl-ref-92a70a7bda3d5a52fd6cc016b748e6bf59fb81e4.zip |
[2742178] Don't save when closing the window if the player is dead, allowing them to reload the save and still be alive.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9617 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/tilesdl.cc')
-rw-r--r-- | crawl-ref/source/tilesdl.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crawl-ref/source/tilesdl.cc b/crawl-ref/source/tilesdl.cc index 9db08291c6..b31ee1b9c0 100644 --- a/crawl-ref/source/tilesdl.cc +++ b/crawl-ref/source/tilesdl.cc @@ -847,8 +847,15 @@ int TilesFramework::getch_ck() break; case SDL_QUIT: - save_game(true); - ASSERT(!"Shouldn't get here"); + if (crawl_state.need_save) + { + for (unsigned i = 0; i < crawl_state.exit_hooks.size(); ++i) + crawl_state.exit_hooks[i]->restore_state(); + + crawl_state.exit_hooks.clear(); + save_game(true); + } + exit(0); break; case SDL_USEREVENT: |