(svn r6380) -Codechange: unify all ways to quit OTTD.

This means that in the intro menu the 'Quit' button immediatelly quits
  and the 'Quit' in the menu of the normal game and scenario editor
  immediatelly quits when the 'autosave_on_exit' patch is turned on.
  This is the same way as the OS/window manager initiated quits, like
  alt-F4 and the 'x' in the (OS/window manager drawn) title bar of OTTD.
This commit is contained in:
rubidium
2006-09-04 17:30:30 +00:00
parent 56d06ba0a7
commit a7cfb80c40
8 changed files with 23 additions and 49 deletions

View File

@@ -197,22 +197,6 @@ static void QZ_CheckPaletteAnim(void)
extern void DoExitSave(void);
static void QZ_AskQuit(void)
{
if (_game_mode == GM_MENU) { // do not ask to quit on the main screen
_exit_game = true;
} else if (_patches.autosave_on_exit) {
DoExitSave();
_exit_game = true;
} else {
AskExitGame();
}
}
typedef struct VkMapping {
unsigned short vk_from;
byte map_to;
@@ -921,7 +905,7 @@ static void QZ_SetPortAlphaOpaque(void)
@implementation OTTD_QuartzWindowDelegate
- (BOOL)windowShouldClose:(id)sender
{
QZ_AskQuit();
HandleExitGameRequest();
return NO;
}

View File

@@ -303,8 +303,6 @@ static uint32 ConvertSdlKeyIntoMy(SDL_keysym *sym)
return (key << 16) + sym->unicode;
}
extern void DoExitSave(void);
static int PollEvent(void)
{
SDL_Event ev;
@@ -376,21 +374,9 @@ static int PollEvent(void)
}
break;
case SDL_QUIT:
// do not ask to quit on the main screen
if (_game_mode != GM_MENU) {
if (_patches.autosave_on_exit) {
DoExitSave();
return 0;
} else {
AskExitGame();
}
} else {
return 0;
}
break;
case SDL_QUIT: HandleExitGameRequest(); break;
case SDL_KEYDOWN: /* Toggle full-screen on ALT + ENTER/F */
case SDL_KEYDOWN: /* Toggle full-screen on ALT + ENTER/F */
if ((ev.key.keysym.mod & (KMOD_ALT | KMOD_META)) &&
(ev.key.keysym.sym == SDLK_RETURN || ev.key.keysym.sym == SDLK_f)) {
ToggleFullScreen(!_fullscreen);
@@ -448,8 +434,6 @@ static void SdlVideoMainLoop(void)
InteractiveRandom(); // randomness
while ((i = PollEvent()) == -1) {}
if (i >= 0) return;
if (_exit_game) return;
mod = SDL_CALL SDL_GetModState();

View File

@@ -151,8 +151,6 @@ static void ClientSizeChanged(int w, int h)
}
}
extern void DoExitSave(void);
#ifdef _DEBUG
// Keep this function here..
// It allows you to redraw the screen from within the MSVC debugger
@@ -256,14 +254,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
}
case WM_CLOSE:
if (_game_mode == GM_MENU) { // do not ask to quit on the main screen
_exit_game = true;
} else if (_patches.autosave_on_exit) {
DoExitSave();
_exit_game = true;
} else {
AskExitGame();
}
HandleExitGameRequest();
_window_maximize = IsZoomed(_wnd.main_wnd);
return 0;