diff options
author | Paul Gilbert | 2012-10-13 11:03:06 +1100 |
---|---|---|
committer | Paul Gilbert | 2012-10-13 11:03:06 +1100 |
commit | 4c456f799994b50aeee9a7d04912b2cd7892c93d (patch) | |
tree | d6b644949ec650815eb2334d8d687703c533ee17 /engines | |
parent | 9bf3e363e0f85b23d7ec59333a45db8354cbea66 (diff) | |
download | scummvm-rg350-4c456f799994b50aeee9a7d04912b2cd7892c93d.tar.gz scummvm-rg350-4c456f799994b50aeee9a7d04912b2cd7892c93d.tar.bz2 scummvm-rg350-4c456f799994b50aeee9a7d04912b2cd7892c93d.zip |
HOPKINS: Cleaned up the PERSONAGE2 event loop method
Diffstat (limited to 'engines')
-rw-r--r-- | engines/hopkins/events.cpp | 8 | ||||
-rw-r--r-- | engines/hopkins/events.h | 2 | ||||
-rw-r--r-- | engines/hopkins/objects.cpp | 57 |
3 files changed, 32 insertions, 35 deletions
diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp index aaac4574b6..0b5bdb1e7f 100644 --- a/engines/hopkins/events.cpp +++ b/engines/hopkins/events.cpp @@ -98,7 +98,7 @@ int EventsManager::YMOUSE() { return souris_y + ofset_souris_y; } -bool EventsManager::BMOUSE() { +int EventsManager::BMOUSE() { CONTROLE_MES(); return souris_bb; } @@ -215,12 +215,14 @@ void EventsManager::pollEvents() { return; case Common::EVENT_LBUTTONDOWN: + souris_b = 1; + break; case Common::EVENT_RBUTTONDOWN: - souris_b = true; + souris_b = 2; break; case Common::EVENT_LBUTTONUP: case Common::EVENT_RBUTTONUP: - souris_b = false; + souris_b = 0; return; default: diff --git a/engines/hopkins/events.h b/engines/hopkins/events.h index 0ab4ea36a1..a4b5bd9afd 100644 --- a/engines/hopkins/events.h +++ b/engines/hopkins/events.h @@ -67,7 +67,7 @@ public: void souris_max(); int XMOUSE(); int YMOUSE(); - bool BMOUSE(); + int BMOUSE(); void MOUSE_ON(); void MOUSE_OFF(); void CHANGE_MOUSE(int id); diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp index 423a1e6014..449fa3d2e4 100644 --- a/engines/hopkins/objects.cpp +++ b/engines/hopkins/objects.cpp @@ -7596,25 +7596,16 @@ void ObjectsManager::PERSONAGE(const Common::String &s1, const Common::String &s void ObjectsManager::PERSONAGE2(const Common::String &s1, const Common::String &s2, const Common::String &s3, const Common::String &s4, int v) { - Common::String v5; - int v6; - int v7; - int v8; - int v10; - int v11; - int v12; - int v13; + int mouseButtons; + bool breakFlag; int xp, yp; - v5 = s2; INVENTFLAG = 0; KEY_INVENT = 0; _vm->_objectsManager.verbe = 4; _vm->_globals.MAX_COMPTE = 6; _vm->_graphicsManager.ofscroll = 0; VIRE_INVENT = 0; - v11 = 0; - v12 = 0; _vm->_globals.PLAN_FLAG = 0; _vm->_graphicsManager.NOFADE = 0; _vm->_globals.NOMARCHE = 0; @@ -7686,42 +7677,45 @@ LABEL_70: g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.BPP_NOAFF = 1; - v6 = 0; - do { + + for (int idx = 0; idx < 5; ++idx) { _vm->_eventsManager.VBL(); - ++v6; - } while (v6 <= 4); + } + _vm->_globals.BPP_NOAFF = 0; _vm->_globals.iRegul = 1; if (!_vm->_graphicsManager.NOFADE) _vm->_graphicsManager.FADE_INW(); _vm->_graphicsManager.NOFADE = 0; _vm->_eventsManager.CHANGE_MOUSE(4); - v13 = 0; - do { - v7 = _vm->_eventsManager.BMOUSE(); - v8 = v7; - if (v7) { - if (v7 == 1) { + + int xCheck = 0; + int yCheck = 0; + + breakFlag = false; + while (!_vm->shouldQuit() && !breakFlag) { + mouseButtons = _vm->_eventsManager.BMOUSE(); + if (mouseButtons) { + if (mouseButtons == 1) { if (_vm->_objectsManager.verbe == 16 && _vm->_eventsManager.btsouris == 16) { xp = _vm->_eventsManager.XMOUSE(); yp = _vm->_eventsManager.YMOUSE(); - v10 = yp; - if (v12 == xp) { - if (v11 == yp) { + + if (xCheck == xp) { + if (yCheck == yp) { _vm->_globals.chemin = g_PTRNUL; _vm->_objectsManager.PARADISE(); if (_vm->_globals.SORTIE) - v13 = 1; + breakFlag = true; } } - v12 = xp; - v11 = v10; + xCheck = xp; + yCheck = yp; } _vm->_objectsManager.BTGAUCHE(); - } - if (v8 == 2) + } else if (mouseButtons == 2) { _vm->_objectsManager.BTDROITE(); + } } if (!_vm->_globals.SORTIE) { TEST_INVENT(); @@ -7735,8 +7729,9 @@ LABEL_70: if (!_vm->_globals.SORTIE) continue; } - v13 = 1; - } while (v13 != 1); + breakFlag = true; + } + if (_vm->_globals.SORTIE != 8 || _vm->_globals.ECRAN != 5 || _vm->_globals.HELICO != 1) { if (!_vm->_graphicsManager.NOFADE) _vm->_graphicsManager.FADE_OUTW(); |