aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Page2008-06-04 05:21:47 +0000
committerChristopher Page2008-06-04 05:21:47 +0000
commit18b892e534c9fedf60a57c71e0978965d353fd60 (patch)
treee5f43349199e3fd57f0925136cdf0994173273e0
parentfa75221e484d8649ab4506ec49b698328dd7649b (diff)
downloadscummvm-rg350-18b892e534c9fedf60a57c71e0978965d353fd60.tar.gz
scummvm-rg350-18b892e534c9fedf60a57c71e0978965d353fd60.tar.bz2
scummvm-rg350-18b892e534c9fedf60a57c71e0978965d353fd60.zip
QUEEN: Modified engine to use a quit flag instead of system->quit() in order to return to the launcher
svn-id: r32525
-rw-r--r--engines/queen/input.cpp9
-rw-r--r--engines/queen/input.h4
-rw-r--r--engines/queen/journal.cpp4
-rw-r--r--engines/queen/queen.cpp2
4 files changed, 11 insertions, 8 deletions
diff --git a/engines/queen/input.cpp b/engines/queen/input.cpp
index 146e95bcef..9f03c341c9 100644
--- a/engines/queen/input.cpp
+++ b/engines/queen/input.cpp
@@ -27,6 +27,7 @@
#include "common/events.h"
#include "common/system.h"
+#include "queen/queen.h"
#include "queen/input.h"
namespace Queen {
@@ -51,12 +52,12 @@ const Verb Input::_verbKeys[] = {
VERB_USE
};
-Input::Input(Common::Language language, OSystem *system) :
+Input::Input(Common::Language language, OSystem *system, QueenEngine *vm) :
_system(system), _eventMan(system->getEventManager()), _fastMode(false),
_keyVerb(VERB_NONE), _cutawayRunning(false), _canQuit(false),
_cutawayQuit(false), _dialogueRunning(false), _talkQuit(false),
_quickSave(false), _quickLoad(false), _debugger(false), _inKey(Common::KEYCODE_INVALID),
- _mouseButton(0), _idleTime(0) {
+ _mouseButton(0), _idleTime(0) , _vm(vm) {
switch (language) {
case Common::EN_ANY:
@@ -119,8 +120,8 @@ void Input::delay(uint amount) {
break;
case Common::EVENT_QUIT:
- _system->quit();
- break;
+ _vm->quitGame();
+ return;
default:
break;
diff --git a/engines/queen/input.h b/engines/queen/input.h
index 86092aeed6..43a57729c6 100644
--- a/engines/queen/input.h
+++ b/engines/queen/input.h
@@ -49,7 +49,7 @@ public:
MOUSE_RBUTTON = 2
};
- Input(Common::Language language, OSystem *system);
+ Input(Common::Language language, OSystem *system, QueenEngine *vm);
void delay(uint amount);
@@ -99,6 +99,8 @@ private:
Common::EventManager *_eventMan;
+ QueenEngine *_vm;
+
//! some cutaways require update() run faster
bool _fastMode;
diff --git a/engines/queen/journal.cpp b/engines/queen/journal.cpp
index bfbcfa4e59..0327fb74b8 100644
--- a/engines/queen/journal.cpp
+++ b/engines/queen/journal.cpp
@@ -85,8 +85,8 @@ void Journal::use() {
handleMouseWheel(1);
break;
case Common::EVENT_QUIT:
- _system->quit();
- break;
+ _vm->quitGame();
+ return;
default:
break;
}
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index d1a1247c46..c95e44b477 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -418,7 +418,7 @@ int QueenEngine::init() {
_display = new Display(this, _system);
_graphics = new Graphics(this);
_grid = new Grid(this);
- _input = new Input(_resource->getLanguage(), _system);
+ _input = new Input(_resource->getLanguage(), _system, this);
if (_resource->isDemo()) {
_logic = new LogicDemo(this);