aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2012-10-13 11:03:06 +1100
committerPaul Gilbert2012-10-13 11:03:06 +1100
commit4c456f799994b50aeee9a7d04912b2cd7892c93d (patch)
treed6b644949ec650815eb2334d8d687703c533ee17 /engines
parent9bf3e363e0f85b23d7ec59333a45db8354cbea66 (diff)
downloadscummvm-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.cpp8
-rw-r--r--engines/hopkins/events.h2
-rw-r--r--engines/hopkins/objects.cpp57
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();