diff options
author | Benjamin Haisch | 2008-05-21 10:07:33 +0000 |
---|---|---|
committer | Benjamin Haisch | 2008-05-21 10:07:33 +0000 |
commit | 4074d49844d6851d377374f1d04d43fb9fdad6a8 (patch) | |
tree | 4c8d8e059958223ded9d44a345a4b8ded1c62124 /engines/made/made.cpp | |
parent | 529800e1728b9d1ce89bf7faf4dfd86d6cb25e5f (diff) | |
download | scummvm-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.cpp | 64 |
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(); |