From ecd7afd9ffe8f764cf8fbc6f01aeef55b9e2aa7f Mon Sep 17 00:00:00 2001 From: oy Date: Sat, 11 Dec 2010 22:04:50 +0100 Subject: added cleaner exit on quit event by Choupom --- src/engine/client/client.cpp | 3 ++- src/engine/client/input.cpp | 8 ++++---- src/engine/client/input.h | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/engine/client') diff --git a/src/engine/client/client.cpp b/src/engine/client/client.cpp index ac15d128..82e79a85 100644 --- a/src/engine/client/client.cpp +++ b/src/engine/client/client.cpp @@ -1856,7 +1856,8 @@ void CClient::Run() } // update input - Input()->Update(); + if(Input()->Update()) + break; // SDL_QUIT // update sound Sound()->Update(); diff --git a/src/engine/client/input.cpp b/src/engine/client/input.cpp index 3bb04448..5cd58342 100644 --- a/src/engine/client/input.cpp +++ b/src/engine/client/input.cpp @@ -108,7 +108,7 @@ int CInput::KeyState(int Key) return m_aInputState[m_InputCurrent][Key]; } -void CInput::Update() +int CInput::Update() { if(m_InputGrabbed && !Graphics()->WindowActive()) MouseModeAbsolute(); @@ -185,9 +185,7 @@ void CInput::Update() // other messages case SDL_QUIT: - // TODO: cleaner exit - exit(0); // ignore_convention - break; + return 1; } // @@ -201,6 +199,8 @@ void CInput::Update() } } + + return 0; } diff --git a/src/engine/client/input.h b/src/engine/client/input.h index 77fa5447..34f880f7 100644 --- a/src/engine/client/input.h +++ b/src/engine/client/input.h @@ -31,7 +31,7 @@ public: int ButtonPressed(int Button) { return m_aInputState[m_InputCurrent][Button]; } - virtual void Update(); + virtual int Update(); }; #endif -- cgit 1.4.1