aboutsummaryrefslogtreecommitdiff
path: root/engines/made/made.cpp
diff options
context:
space:
mode:
authorBenjamin Haisch2008-05-21 10:07:33 +0000
committerBenjamin Haisch2008-05-21 10:07:33 +0000
commit4074d49844d6851d377374f1d04d43fb9fdad6a8 (patch)
tree4c8d8e059958223ded9d44a345a4b8ded1c62124 /engines/made/made.cpp
parent529800e1728b9d1ce89bf7faf4dfd86d6cb25e5f (diff)
downloadscummvm-rg350-4074d49844d6851d377374f1d04d43fb9fdad6a8.tar.gz
scummvm-rg350-4074d49844d6851d377374f1d04d43fb9fdad6a8.tar.bz2
scummvm-rg350-4074d49844d6851d377374f1d04d43fb9fdad6a8.zip
- Moved event polling from sfPollEvent to runScript
- LGOP2: Fixed problem where Barth's gun was drawn at the wrong position svn-id: r32205
Diffstat (limited to 'engines/made/made.cpp')
-rw-r--r--engines/made/made.cpp64
1 files changed, 63 insertions, 1 deletions
diff --git a/engines/made/made.cpp b/engines/made/made.cpp
index 76482b03bb..08d00af9f4 100644
--- a/engines/made/made.cpp
+++ b/engines/made/made.cpp
@@ -171,6 +171,64 @@ Common::String MadeEngine::getSavegameFilename(int16 saveNum) {
return filename;
}
+void MadeEngine::handleEvents() {
+
+ Common::Event event;
+ Common::EventManager *eventMan = _system->getEventManager();
+
+ // NOTE: Don't reset _eventNum to 0 here or no events will come through to the scripts.
+
+ while (eventMan->pollEvent(event)) {
+ switch (event.type) {
+
+ case Common::EVENT_MOUSEMOVE:
+ _eventMouseX = event.mouse.x;
+ _eventMouseY = event.mouse.y;
+ break;
+
+ case Common::EVENT_LBUTTONDOWN:
+ _eventNum = 1;
+ break;
+
+ /*
+ case Common::EVENT_LBUTTONUP:
+ _eventNum = 2; // TODO: Is this correct?
+ break;
+ */
+
+ case Common::EVENT_RBUTTONDOWN:
+ _eventNum = 3;
+ break;
+
+ /*
+ case Common::EVENT_RBUTTONUP:
+ eventNum = 4; // TODO: Is this correct?
+ break;
+ */
+
+ case Common::EVENT_KEYDOWN:
+ _eventKey = event.kbd.ascii;
+ // For unknown reasons, the game accepts ASCII code
+ // 9 as backspace
+ if (_eventKey == Common::KEYCODE_BACKSPACE)
+ _eventKey = 9;
+ _eventNum = 5;
+ break;
+
+ case Common::EVENT_QUIT:
+ _quit = true;
+ break;
+
+ default:
+ break;
+
+ }
+ }
+
+ _system->updateScreen();
+
+}
+
int MadeEngine::go() {
for (int i = 0; i < ARRAYSIZE(_timers); i++)
@@ -205,7 +263,11 @@ int MadeEngine::go() {
error ("Unknown MADE game");
}
- _eventKey = _eventMouseX = _eventMouseY = 0;
+ // FIXME: This should make things a little faster until proper dirty rectangles
+ // are implemented.
+ _system->setFeatureState(OSystem::kFeatureAutoComputeDirtyRects, true);
+
+ _eventNum = _eventKey = _eventMouseX = _eventMouseY = 0;
#ifdef DUMP_SCRIPTS
_script->dumpAllScripts();