summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilesdl.cc
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2009-04-18 14:04:04 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2009-04-18 14:04:04 +0000
commit92a70a7bda3d5a52fd6cc016b748e6bf59fb81e4 (patch)
treeaa54c8edd7be8cb3abfd5ef73fbf4484b4272680 /crawl-ref/source/tilesdl.cc
parent114bb236eb8cffa04f3544ee3e8775218eebab1a (diff)
downloadcrawl-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.cc11
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: