summaryrefslogtreecommitdiff
path: root/win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32.c')
-rw-r--r--win32.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/win32.c b/win32.c
index 7442764ca..0cbb38b5a 100644
--- a/win32.c
+++ b/win32.c
@@ -181,6 +181,8 @@ static void ClientSizeChanged(int w, int h)
}
}
+void DoExitSave();
+
static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg) {
@@ -224,7 +226,15 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
}
case WM_CLOSE:
- AskExitGame();
+ // do not ask to quit on the main screen
+ if (_game_mode != GM_MENU) {
+ if(_patches.autosave_on_exit) {
+ DoExitSave();
+ _exit_game = true;
+ } else
+ AskExitGame();
+ } else
+ return ML_QUIT;
return 0;
case WM_LBUTTONDOWN: