aboutsummaryrefslogtreecommitdiff
path: root/engines/hopkins/objects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/hopkins/objects.cpp')
-rw-r--r--engines/hopkins/objects.cpp41
1 files changed, 21 insertions, 20 deletions
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 6beccf4db9..c42fb5b825 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -5357,7 +5357,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
if (!s4.empty()) {
if (!_vm->_globals.NOSPRECRAN)
_vm->_graphicsManager.INI_ECRAN(s4);
- if (!s4.empty() && _vm->_globals.NOSPRECRAN)
+ else
_vm->_graphicsManager.INI_ECRAN2(s4);
}
_vm->_eventsManager.mouseOn();
@@ -5366,15 +5366,14 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
_vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0);
- if (!_vm->_globals.PERSO_TYPE)
- goto LABEL_70;
- if (!_vm->_globals._saveData->data[svField122] && !_vm->_globals._saveData->data[svField356]) {
- _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR");
- _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER);
- _vm->_globals.PERSO_TYPE = 0;
+ if (_vm->_globals.PERSO_TYPE) {
+ if (!_vm->_globals._saveData->data[svField122] && !_vm->_globals._saveData->data[svField356]) {
+ _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR");
+ _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER);
+ _vm->_globals.PERSO_TYPE = 0;
+ }
}
if (!_vm->_globals.PERSO_TYPE) {
-LABEL_70:
if (_vm->_globals._saveData->data[svField122] == 1) {
_vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "HOPFEM.SPR");
_vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER);
@@ -5387,12 +5386,17 @@ LABEL_70:
_vm->_globals.PERSO_TYPE = 2;
}
_vm->_globals.HOPKINS_DATA();
- if (!_vm->_globals.PERSO_TYPE)
+ switch (_vm->_globals.PERSO_TYPE) {
+ case 0:
SPRITE(_vm->_globals.PERSO, _characterPos, 0, PERI, 0, 0, 34, 190);
- if (_vm->_globals.PERSO_TYPE == 1)
+ break;
+ case 1:
SPRITE(_vm->_globals.PERSO, _characterPos, 0, PERI, 0, 0, 28, 155);
- if (_vm->_globals.PERSO_TYPE == 2)
+ break;
+ case 2:
SPRITE(_vm->_globals.PERSO, _characterPos, 0, PERI, 0, 0, 20, 127);
+ break;
+ }
_vm->_eventsManager.setMouseXY(_characterPos);
if (_vm->_graphicsManager.DOUBLE_ECRAN)
_vm->_graphicsManager.SCROLL = (int16)getSpriteX(0) - 320;
@@ -5409,9 +5413,8 @@ LABEL_70:
_vm->_globals.Compteur = 0;
_vm->_globals.BPP_NOAFF = true;
- for (int idx = 0; idx < 5; ++idx) {
+ for (int idx = 0; idx < 5; ++idx)
_vm->_eventsManager.VBL();
- }
_vm->_globals.BPP_NOAFF = false;
_vm->_globals.iRegul = 1;
@@ -5432,13 +5435,11 @@ LABEL_70:
xp = _vm->_eventsManager.getMouseX();
yp = _vm->_eventsManager.getMouseY();
- if (xCheck == xp) {
- if (yCheck == yp) {
- _vm->_globals.chemin = (int16 *)g_PTRNUL;
- PARADISE();
- if (_vm->_globals._exitId)
- breakFlag = true;
- }
+ if ((xCheck == xp) && (yCheck == yp)) {
+ _vm->_globals.chemin = (int16 *)g_PTRNUL;
+ PARADISE();
+ if (_vm->_globals._exitId)
+ breakFlag = true;
}
xCheck = xp;
yCheck = yp;