diff options
author | Strangerke | 2012-12-24 18:24:08 +0100 |
---|---|---|
committer | Strangerke | 2012-12-24 18:24:08 +0100 |
commit | 1c5a6f8c74a794e9a913c9b2c0bebfd59ac0fd9e (patch) | |
tree | 3da06ccabfd97dff417cf8e2c7f3125a0a12b743 /engines/hopkins | |
parent | 74e3e45732aede72dbf171a890f013646c8ef95b (diff) | |
download | scummvm-rg350-1c5a6f8c74a794e9a913c9b2c0bebfd59ac0fd9e.tar.gz scummvm-rg350-1c5a6f8c74a794e9a913c9b2c0bebfd59ac0fd9e.tar.bz2 scummvm-rg350-1c5a6f8c74a794e9a913c9b2c0bebfd59ac0fd9e.zip |
HOPKINS: Start refactoring handleOpcode
Diffstat (limited to 'engines/hopkins')
-rw-r--r-- | engines/hopkins/graphics.cpp | 2 | ||||
-rw-r--r-- | engines/hopkins/objects.cpp | 2 | ||||
-rw-r--r-- | engines/hopkins/script.cpp | 1888 | ||||
-rw-r--r-- | engines/hopkins/script.h | 4 | ||||
-rw-r--r-- | engines/hopkins/talk.cpp | 2 |
5 files changed, 1024 insertions, 874 deletions
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp index cb4abd9d9d..832f0c97d4 100644 --- a/engines/hopkins/graphics.cpp +++ b/engines/hopkins/graphics.cpp @@ -1966,7 +1966,7 @@ void GraphicsManager::OPTI_INI(const Common::String &file, int mode) { int dataOffset = 1; do { - int dataVal1 = _vm->_scriptManager.Traduction(ptr + 20 * dataOffset); + int dataVal1 = _vm->_scriptManager.handleOpcode(ptr + 20 * dataOffset); if (_vm->shouldQuit()) return; diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp index cb054842c6..118fcc3419 100644 --- a/engines/hopkins/objects.cpp +++ b/engines/hopkins/objects.cpp @@ -3967,7 +3967,7 @@ void ObjectsManager::OPTI_OBJET() { } else { v7 = 0; do { - v5 = _vm->_scriptManager.Traduction(data + 20 * v0); + v5 = _vm->_scriptManager.handleOpcode(data + 20 * v0); if (_vm->shouldQuit()) return; diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 8b6642da46..a93133fa13 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -42,19 +42,20 @@ void ScriptManager::setParent(HopkinsEngine *vm) { _vm = vm; } -int ScriptManager::Traduction(byte *a1) { - int v1 = 0; - int v70 = 0; - if (*a1 != 'F' || *(a1 + 1) != 'C') +int ScriptManager::handleOpcode(byte *dataP) { + if (dataP[0] != 'F' || dataP[1] != 'C') return 0; - if (*(a1 + 2) == 'T' && *(a1 + 3) == 'X' && *(a1 + 4) == 'T') { - v70 = *(a1 + 6); - int v2 = *(a1 + 7); - int v69 = *(a1 + 8); - int v67 = (int16)READ_LE_UINT16(a1 + 9); - int v65 = (int16)READ_LE_UINT16(a1 + 11); - int mesgId = (int16)READ_LE_UINT16(a1 + 13); - v1 = 1; + + int opcodeType = 0; + int v70 = 0; + if (dataP[2] == 'T' && dataP[3] == 'X' && dataP[4] == 'T') { + v70 = *(dataP + 6); + byte v2 = dataP[7]; + byte v69 = dataP[8]; + int v67 = (int16)READ_LE_UINT16(dataP + 9); + int v65 = (int16)READ_LE_UINT16(dataP + 11); + int mesgId = (int16)READ_LE_UINT16(dataP + 13); + opcodeType = 1; if (!TRAVAILOBJET) { if (_vm->_globals._saveData->data[svField356] == 1) { if (mesgId == 53) @@ -162,17 +163,15 @@ int ScriptManager::Traduction(byte *a1) { _vm->_soundManager.mixVoice(mesgId, 5); } } - } - - if (*(a1 + 2) == 'B' && *(a1 + 3) == 'O' && *(a1 + 4) == 'B') { + } else if (dataP[2] == 'B' && dataP[3] == 'O' && dataP[4] == 'B') { if (_vm->_objectsManager.DESACTIVE != true) { - int v72 = *(a1 + 5); - v70 = *(a1 + 6); - int v4 = *(a1 + 7); - int v68 = (int16)READ_LE_UINT16(a1 + 8); - int v66 = (int16)READ_LE_UINT16(a1 + 10); + int v72 = *(dataP + 5); + v70 = *(dataP + 6); + int v4 = *(dataP + 7); + int v68 = (int16)READ_LE_UINT16(dataP + 8); + int v66 = (int16)READ_LE_UINT16(dataP + 10); if (v72 == 52) { - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, v68, (int16)READ_LE_UINT16(a1 + 10), v70); + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, v68, (int16)READ_LE_UINT16(dataP + 10), v70); } else if (v72 == 51) { _vm->_objectsManager.BOB_VIVANT(v70); } else { @@ -195,15 +194,13 @@ LABEL_1141: _vm->_objectsManager.AFFICHE_SPEED1(_vm->_globals.SPRITE_ECRAN, v68, v66, v70); } } - v1 = 1; - } - if (*(a1 + 2) == 'S') { - if (*(a1 + 3) == 'T' && *(a1 + 4) == 'P') { - if (_vm->_objectsManager.DESACTIVE != true) { + opcodeType = 1; + } else if (dataP[2] == 'S' && dataP[3] == 'T' && dataP[4] == 'P') { + if (!_vm->_objectsManager.DESACTIVE) { _vm->_objectsManager.DEUXPERSO = false; - int v5 = *(a1 + 5); - int v6 = (int16)READ_LE_UINT16(a1 + 8); - _vm->_objectsManager.PERX = (int16)READ_LE_UINT16(a1 + 6); + int v5 = *(dataP + 5); + int v6 = (int16)READ_LE_UINT16(dataP + 8); + _vm->_objectsManager.PERX = (int16)READ_LE_UINT16(dataP + 6); _vm->_objectsManager.PERY = v6; _vm->_objectsManager.PERI = v5; if (_vm->_objectsManager.CH_TETE == 1) { @@ -260,37 +257,33 @@ LABEL_1141: _vm->_objectsManager.DEUXPERSO = true; } } - v1 = 1; + opcodeType = 1; _vm->_objectsManager.CH_TETE = 0; - } - if (*(a1 + 2) == 'S' && *(a1 + 3) == 'T' && *(a1 + 4) == 'E') { - if (_vm->_objectsManager.DESACTIVE != true) { - int v7 = *(a1 + 5); - v70 = *(a1 + 6); - int v8 = *(a1 + 7); - int v9 = *(a1 + 8); - _vm->_objectsManager.RECALL = 0; - _vm->_globals.OLD_ECRAN = _vm->_globals._screenId; - _vm->_globals._saveData->data[svField6] = _vm->_globals._screenId; - _vm->_globals._screenId = v7; - _vm->_globals._saveData->data[svField5] = v7; - _vm->_objectsManager.PTAILLE = v70; - _vm->_objectsManager.PEROFX = v8; - _vm->_objectsManager.PEROFY = v9; - } - v1 = 1; - } - } - if (*(a1 + 2) == 'B' && *(a1 + 3) == 'O' && *(a1 + 4) == 'F') { + } else if (dataP[2] == 'S' && dataP[3] == 'T' && dataP[4] == 'E') { + if (_vm->_objectsManager.DESACTIVE != true) { + int v7 = *(dataP + 5); + v70 = *(dataP + 6); + int v8 = *(dataP + 7); + int v9 = *(dataP + 8); + _vm->_objectsManager.RECALL = 0; + _vm->_globals.OLD_ECRAN = _vm->_globals._screenId; + _vm->_globals._saveData->data[svField6] = _vm->_globals._screenId; + _vm->_globals._screenId = v7; + _vm->_globals._saveData->data[svField5] = v7; + _vm->_objectsManager.PTAILLE = v70; + _vm->_objectsManager.PEROFX = v8; + _vm->_objectsManager.PEROFY = v9; + } + opcodeType = 1; + } else if (dataP[2] == 'B' && dataP[3] == 'O' && dataP[4] == 'F') { if (_vm->_objectsManager.DESACTIVE != true) - _vm->_objectsManager.VBOB_OFF((int16)READ_LE_UINT16(a1 + 5)); - v1 = 1; - } - if (*(a1 + 2) == 'P' && *(a1 + 3) == 'E' && *(a1 + 4) == 'R') { - int v73 = (int16)READ_LE_UINT16(a1 + 5); + _vm->_objectsManager.VBOB_OFF((int16)READ_LE_UINT16(dataP + 5)); + opcodeType = 1; + } else if (dataP[2] == 'P' && dataP[3] == 'E' && dataP[4] == 'R') { + int v73 = (int16)READ_LE_UINT16(dataP + 5); if (!_vm->_globals._saveData->data[svField122] && !_vm->_globals._saveData->data[svField356]) { v70 = 0; - if ((int16)READ_LE_UINT16(a1 + 5) == 14) + if ((int16)READ_LE_UINT16(dataP + 5) == 14) v73 = 1; if (v73 == 17) v73 = 7; @@ -467,12 +460,11 @@ LABEL_1141: _vm->_objectsManager.ACTION_GAUCHE(8); } } - v1 = 1; - } - if (*(a1 + 2) == 'M' && *(a1 + 3) == 'U' && *(a1 + 4) == 'S') - v1 = 1; - if (*(a1 + 2) == 'W' && *(a1 + 3) == 'A' && *(a1 + 4) == 'I') { - uint v74 = READ_LE_UINT16(a1 + 5) / _vm->_globals._speed; + opcodeType = 1; + } else if (dataP[2] == 'M' && dataP[3] == 'U' && dataP[4] == 'S') { + opcodeType = 1; + } else if (dataP[2] == 'W' && dataP[3] == 'A' && dataP[4] == 'I') { + uint v74 = READ_LE_UINT16(dataP + 5) / _vm->_globals._speed; if (!v74) v74 = 1; for (uint v10 = 0; v10 < v74 + 1; v10++) { @@ -481,206 +473,67 @@ LABEL_1141: _vm->_eventsManager.VBL(); } - v1 = 1; - } - if (*(a1 + 2) == 'O') { - if (*(a1 + 3) == 'B' && *(a1 + 4) == 'P') { - v1 = 1; - _vm->_objectsManager.addObject((int16)READ_LE_UINT16(a1 + 5)); - } - if (*(a1 + 2) == 'O' && *(a1 + 3) == 'B' && *(a1 + 4) == 'M') { - v1 = 1; - _vm->_objectsManager.removeObject((int16)READ_LE_UINT16(a1 + 5)); - } - } - if (*(a1 + 2) == 'G' && *(a1 + 3) == 'O' && *(a1 + 4) == 'T') - v1 = 2; - if (*(a1 + 2) == 'Z') { - if (*(a1 + 3) == 'O' && *(a1 + 4) == 'N') { - _vm->_objectsManager.ZONE_ON((int16)READ_LE_UINT16(a1 + 5)); - v1 = 1; - } - if (*(a1 + 2) == 'Z' && *(a1 + 3) == 'O' && *(a1 + 4) == 'F') { - _vm->_objectsManager.ZONE_OFF((int16)READ_LE_UINT16(a1 + 5)); - v1 = 1; - } - } - if (*(a1 + 2) == 'E' && *(a1 + 3) == 'X' && *(a1 + 4) == 'I') - v1 = 5; - if (*(a1 + 2) == 'S' && *(a1 + 3) == 'O' && *(a1 + 4) == 'R') { - _vm->_globals._exitId = (int16)READ_LE_UINT16(a1 + 5); - v1 = 5; - } - if (*(a1 + 2) == 'B' && *(a1 + 3) == 'C' && *(a1 + 4) == 'A') { - _vm->_globals.CACHE_OFF((int16)READ_LE_UINT16(a1 + 5)); - v1 = 1; - } - if (*(a1 + 2) == 'A' && *(a1 + 3) == 'N' && *(a1 + 4) == 'I') { - int v75 = (int16)READ_LE_UINT16(a1 + 5); + opcodeType = 1; + } else if (dataP[2] == 'O' && dataP[3] == 'B' && dataP[4] == 'P') { + opcodeType = 1; + _vm->_objectsManager.addObject((int16)READ_LE_UINT16(dataP + 5)); + } else if (dataP[2] == 'O' && dataP[3] == 'B' && dataP[4] == 'M') { + opcodeType = 1; + _vm->_objectsManager.removeObject((int16)READ_LE_UINT16(dataP + 5)); + } else if (dataP[2] == 'G' && dataP[3] == 'O' && dataP[4] == 'T') { + opcodeType = 2; + } else if (dataP[2] == 'Z' && dataP[3] == 'O' && dataP[4] == 'N') { + _vm->_objectsManager.ZONE_ON((int16)READ_LE_UINT16(dataP + 5)); + opcodeType = 1; + } else if (dataP[2] == 'Z' && dataP[3] == 'O' && dataP[4] == 'F') { + _vm->_objectsManager.ZONE_OFF((int16)READ_LE_UINT16(dataP + 5)); + opcodeType = 1; + } else if (dataP[2] == 'E' && dataP[3] == 'X' && dataP[4] == 'I') { + opcodeType = 5; + } else if (dataP[2] == 'S' && dataP[3] == 'O' && dataP[4] == 'R') { + _vm->_globals._exitId = (int16)READ_LE_UINT16(dataP + 5); + opcodeType = 5; + } else if (dataP[2] == 'B' && dataP[3] == 'C' && dataP[4] == 'A') { + _vm->_globals.CACHE_OFF((int16)READ_LE_UINT16(dataP + 5)); + opcodeType = 1; + } else if (dataP[2] == 'A' && dataP[3] == 'N' && dataP[4] == 'I') { + int v75 = (int16)READ_LE_UINT16(dataP + 5); if (v75 <= 100) _vm->_objectsManager.setBobAnimation(v75); else _vm->_objectsManager.stopBobAnimation(v75 - 100); - v1 = 1; - } - if (*(a1 + 2) == 'S' && *(a1 + 3) == 'P' && *(a1 + 4) == 'E') { - int v76 = (int16)READ_LE_UINT16(a1 + 5); - if (v76 == 7) - _vm->_talkManager.PARLER_PERSO("rueh1.pe2"); - if (v76 == 8) - _vm->_talkManager.PARLER_PERSO("ruef1.pe2"); - if (v76 == 6) { + opcodeType = 1; + } else if (dataP[2] == 'S' && dataP[3] == 'P' && dataP[4] == 'E') { + switch ((int16)READ_LE_UINT16(dataP + 5)) { + case 6: _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.OPTI_ONE(20, 0, 14, 4); - } - if (v76 == 12) { + break; + + case 7: + _vm->_talkManager.PARLER_PERSO("rueh1.pe2"); + break; + + case 8: + _vm->_talkManager.PARLER_PERSO("ruef1.pe2"); + break; + + case 10: + _vm->_talkManager.PARLER_PERSO("bqeflic1.pe2"); + break; + + case 11: + _vm->_talkManager.PARLER_PERSO("bqeflic2.pe2"); + break; + + case 12: _vm->_fontManager.hideText(9); _vm->_eventsManager.VBL(); _vm->_eventsManager.VBL(); _vm->_talkManager.PARLER_PERSO("bqetueur.pe2"); - } - if (v76 == 600) { - if (!_vm->_globals._internetFl) { - _vm->_graphicsManager.FADE_LINUX = 2; - _vm->_graphicsManager.FADESPD = 1; - if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE1A.ANM", 100, 18, 100); - else if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE1.ANM", 100, 18, 100); - } - _vm->_graphicsManager.loadImage("BOMBEB"); - _vm->_graphicsManager.SETCOLOR3(252, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0); - _vm->_graphicsManager.OPTI_INI("BOMBE", 2); - _vm->_graphicsManager.FADE_INS(); - } - if (v76 == 601) { - _vm->_globals.NO_VISU = true; - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); - _vm->_globals.NO_VISU = false; - _vm->_objectsManager.OPTI_ONE(2, 0, 16, 4); - } - if (v76 == 602) { - _vm->_globals.NO_VISU = true; - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); - _vm->_globals.NO_VISU = false; - _vm->_objectsManager.OPTI_ONE(4, 0, 16, 4); - } - if (v76 == 603) { - _vm->_globals.NO_VISU = true; - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); - _vm->_globals.NO_VISU = false; - _vm->_objectsManager.OPTI_ONE(3, 0, 16, 4); - _vm->_soundManager.SPECIAL_SOUND = 199; - _vm->_graphicsManager.FADE_LINUX = 2; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); - _vm->_soundManager.SPECIAL_SOUND = 0; - memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); - _vm->_graphicsManager.NOFADE = true; - _vm->_globals._exitId = 151; - } - if (v76 == 604) { - _vm->_globals.NO_VISU = true; - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); - _vm->_globals.NO_VISU = false; - _vm->_objectsManager.OPTI_ONE(1, 0, 16, 4); - _vm->_soundManager.SPECIAL_SOUND = 199; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); - _vm->_soundManager.SPECIAL_SOUND = 0; - _vm->_graphicsManager.NOFADE = true; - memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); - _vm->_globals._exitId = 151; - } - if (v76 == 605) { - _vm->_globals.NO_VISU = true; - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); - _vm->_globals.NO_VISU = false; - _vm->_objectsManager.OPTI_ONE(5, 0, 16, 4); - _vm->_graphicsManager.FADE_OUTS(); - _vm->_soundManager.SPECIAL_SOUND = 199; - _vm->_graphicsManager.FADE_LINUX = 2; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); - _vm->_soundManager.SPECIAL_SOUND = 0; - _vm->_graphicsManager.NOFADE = true; - memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); - _vm->_globals._exitId = 151; - } - if (v76 == 606) { - _vm->_globals.NO_VISU = true; - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); - _vm->_globals.NO_VISU = false; - _vm->_objectsManager.OPTI_ONE(6, 0, 16, 4); - if ((_vm->getPlatform() != Common::kPlatformWindows) || !_vm->getIsDemo()) { - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE3.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE3A.ANM", 50, 14, 500); - memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); - } - _vm->_globals._exitId = 6; - } - if (v76 == 607) { - if (!_vm->_globals._internetFl) { - memcpy(_vm->_graphicsManager._oldPalette, _vm->_graphicsManager._palette, 769); - v1 = _vm->_graphicsManager._oldPalette[769]; - _vm->_animationManager.playAnim2("PLAN.ANM", 50, 10, 800); - } - _vm->_globals.NBBLOC = 0; - } - if (v76 == 608) { - _vm->_objectsManager.stopBobAnimation(2); - _vm->_objectsManager.stopBobAnimation(3); - _vm->_objectsManager.stopBobAnimation(4); - _vm->_objectsManager.stopBobAnimation(6); - _vm->_objectsManager.stopBobAnimation(11); - _vm->_objectsManager.stopBobAnimation(10); - } - if (v76 == 609) { - _vm->_objectsManager.setBobAnimation(2); - _vm->_objectsManager.setBobAnimation(3); - _vm->_objectsManager.setBobAnimation(4); - _vm->_objectsManager.setBobAnimation(6); - _vm->_objectsManager.setBobAnimation(11); - _vm->_objectsManager.setBobAnimation(10); - } - if (v76 == 611) { - _vm->_objectsManager.setBobAnimation(5); - _vm->_objectsManager.setBobAnimation(7); - _vm->_objectsManager.setBobAnimation(8); - _vm->_objectsManager.setBobAnimation(9); - _vm->_objectsManager.setBobAnimation(12); - _vm->_objectsManager.setBobAnimation(13); - } - if (v76 == 610) { - _vm->_objectsManager.stopBobAnimation(5); - _vm->_objectsManager.stopBobAnimation(7); - _vm->_objectsManager.stopBobAnimation(8); - _vm->_objectsManager.stopBobAnimation(9); - _vm->_objectsManager.stopBobAnimation(12); - _vm->_objectsManager.stopBobAnimation(13); - } - if (v76 == 10) - _vm->_talkManager.PARLER_PERSO("bqeflic1.pe2"); - if (v76 == 11) - _vm->_talkManager.PARLER_PERSO("bqeflic2.pe2"); - if (v76 == 16) - _vm->_talkManager.PARLER_PERSO("ftoubib.pe2"); - if (v76 == 17) - _vm->_talkManager.PARLER_PERSO("flic2b.pe2"); - if (v76 == 18) - _vm->_talkManager.PARLER_PERSO("fjour.pe2"); - if (v76 == 13) { + break; + + case 13: _vm->_eventsManager._mouseButton = _vm->_eventsManager._curMouseButton; _vm->_globals._disableInventFl = true; _vm->_graphicsManager.FADE_OUTW(); @@ -759,8 +612,74 @@ LABEL_1141: _vm->_globals._disableInventFl = false; _vm->_globals.HELICO = 1; - } - if (v76 == 36) { + break; + + case 16: + _vm->_talkManager.PARLER_PERSO("ftoubib.pe2"); + break; + + case 17: + _vm->_talkManager.PARLER_PERSO("flic2b.pe2"); + break; + + case 18: + _vm->_talkManager.PARLER_PERSO("fjour.pe2"); + break; + + case 20: + _vm->_talkManager.PARLER_PERSO("PUNK.pe2"); + break; + + case 21: + _vm->_talkManager.PARLER_PERSO("MEDLEG.pe2"); + break; + + case 22: + _vm->_talkManager.OBJET_VIVANT("CADAVRE1.pe2"); + break; + + case 23: + _vm->_talkManager.PARLER_PERSO2("CHERCHE1.pe2"); + break; + + case 25: + _vm->_talkManager.PARLER_PERSO("AGENT1.pe2"); + break; + + case 26: + _vm->_talkManager.PARLER_PERSO("AGENT2.pe2"); + break; + + case 27: + if (_vm->_globals._saveData->data[svField94] != 1 || _vm->_globals._saveData->data[svField95] != 1) + _vm->_talkManager.PARLER_PERSO("STANDAR.pe2"); + else + _vm->_talkManager.PARLER_PERSO("STANDAR1.pe2"); + break; + + case 29: + _vm->_globals._disableInventFl = true; + _vm->_talkManager.OBJET_VIVANT("TELEP.pe2"); + _vm->_globals._disableInventFl = false; + break; + + case 32: + _vm->_talkManager.PARLER_PERSO("SAMAN.pe2"); + break; + + case 35: + if (!_vm->_soundManager.SOUNDOFF) { + do { + if (_vm->shouldQuit()) + return -1; // Exiting game + + _vm->_eventsManager.VBL(); + } while (_vm->_soundManager.SOUND_FLAG); + } + _vm->_talkManager.PARLER_PERSO("PTLAB.pe2"); + break; + + case 36: if (_vm->_globals._saveData->data[svField270] == 2 && _vm->_globals._saveData->data[svField94] == 1 && _vm->_globals._saveData->data[svField95] == 1) _vm->_globals._saveData->data[svField270] = 3; if (!_vm->_globals._saveData->data[svField270]) @@ -775,13 +694,15 @@ LABEL_1141: _vm->_talkManager.PARLER_PERSO2("PATRON4.pe2"); _vm->_globals._saveData->data[svField270] = 5; } - } - if (v76 == 37) { + break; + + case 37: _vm->_graphicsManager.FADE_LINUX = 2; _vm->_animationManager.playSequence2("corde.SEQ", 32, 32, 100); _vm->_graphicsManager.NOFADE = true; - } - if (v76 == 38) { + break; + + case 38: _vm->_soundManager.loadSample(1, "SOUND44.WAV"); _vm->_soundManager.loadSample(2, "SOUND42.WAV"); _vm->_soundManager.loadSample(3, "SOUND41.WAV"); @@ -794,30 +715,33 @@ LABEL_1141: _vm->_soundManager.DEL_SAMPLE(2); _vm->_soundManager.DEL_SAMPLE(3); _vm->_graphicsManager.NOFADE = true; - } - if (v76 == 29) { - _vm->_globals._disableInventFl = true; - _vm->_talkManager.OBJET_VIVANT("TELEP.pe2"); - _vm->_globals._disableInventFl = false; - } - if (v76 == 22) - _vm->_talkManager.OBJET_VIVANT("CADAVRE1.pe2"); - if (v76 == 20) - _vm->_talkManager.PARLER_PERSO("PUNK.pe2"); - if (v76 == 23) - _vm->_talkManager.PARLER_PERSO2("CHERCHE1.pe2"); - if (v76 == 35) { - if (!_vm->_soundManager.SOUNDOFF) { - do { - if (_vm->shouldQuit()) - return -1; // Exiting game + break; - _vm->_eventsManager.VBL(); - } while (_vm->_soundManager.SOUND_FLAG); - } - _vm->_talkManager.PARLER_PERSO("PTLAB.pe2"); - } - if (v76 == 46) { + case 40: + _vm->_talkManager.PARLER_PERSO("MAGE.pe2"); + break; + + case 41: + _vm->_talkManager.PARLER_PERSO("MORT3.pe2"); + break; + + case 42: + _vm->_talkManager.PARLER_PERSO("MORT2.pe2"); + break; + + case 43: + _vm->_talkManager.PARLER_PERSO("MORT1.pe2"); + break; + + case 44: + _vm->_talkManager.PARLER_PERSO("MORT3A.pe2"); + break; + + case 45: + _vm->_talkManager.PARLER_PERSO("FEM3.pe2"); + break; + + case 46: { _vm->_globals.NOT_VERIF = 1; _vm->_globals.chemin = (int16 *)g_PTRNUL; int v13 = _vm->_objectsManager.getSpriteY(0); @@ -836,47 +760,47 @@ LABEL_1141: _vm->_soundManager.loadSample(1, "SOUND44.WAV"); _vm->_soundManager.loadSample(2, "SOUND45.WAV"); _vm->_objectsManager.OPTI_BOBON(9, 10, -1, 0, 0, 0, 0); - int v15 = 0; + bool v15 = false; do { if (_vm->shouldQuit()) return -1; // Exiting game if (_vm->_objectsManager.BOBPOSI(9) == 4 && !v15) { _vm->_soundManager.PLAY_SAMPLE2(1); - v15 = 1; + v15 = true; } if (_vm->_objectsManager.BOBPOSI(9) == 5) - v15 = 0; + v15 = false; if (_vm->_objectsManager.BOBPOSI(9) == 16 && !v15) { _vm->_soundManager.PLAY_SAMPLE2(1); - v15 = 1; + v15 = true; } if (_vm->_objectsManager.BOBPOSI(9) == 17) - v15 = 0; + v15 = false; if (_vm->_objectsManager.BOBPOSI(9) == 28 && !v15) { _vm->_soundManager.PLAY_SAMPLE2(1); - v15 = 1; + v15 = true; } if (_vm->_objectsManager.BOBPOSI(9) == 29) - v15 = 0; + v15 = false; if (_vm->_objectsManager.BOBPOSI(10) == 10 && !v15) { _vm->_soundManager.PLAY_SAMPLE2(2); - v15 = 1; + v15 = true; } if (_vm->_objectsManager.BOBPOSI(10) == 11) - v15 = 0; + v15 = false; if (_vm->_objectsManager.BOBPOSI(10) == 22 && !v15) { _vm->_soundManager.PLAY_SAMPLE2(2); - v15 = 1; + v15 = true; } if (_vm->_objectsManager.BOBPOSI(10) == 23) - v15 = 0; + v15 = false; if (_vm->_objectsManager.BOBPOSI(10) == 33 && !v15) { _vm->_soundManager.PLAY_SAMPLE2(2); - v15 = 1; + v15 = true; } if (_vm->_objectsManager.BOBPOSI(10) == 34) - v15 = 0; + v15 = false; if (_vm->_objectsManager.BOBPOSI(10) == 12) _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 249, 1); if (_vm->_objectsManager.BOBPOSI(10) == 23) @@ -890,8 +814,147 @@ LABEL_1141: _vm->_objectsManager.stopBobAnimation(10); _vm->_soundManager.DEL_SAMPLE(1); _vm->_soundManager.DEL_SAMPLE(2); - } - if (v76 == 59) { + break; + } + + case 47: + _vm->_talkManager.PARLER_PERSO("BARMAN.pe2"); + break; + + case 48: + _vm->_talkManager.PARLER_PERSO("SAMAN2.pe2"); + break; + + case 49: { + _vm->_globals.CACHE_OFF(); + _vm->_objectsManager.removeSprite(0); + _vm->_objectsManager.OPTI_BOBON(9, 10, -1, 0, 0, 0, 0); + int v19 = 12; + if (_vm->_globals._saveData->data[svField133] == 1) + v19 = 41; + int v20 = 0; + do { + if (_vm->shouldQuit()) + return -1; // Exiting game + + if (_vm->_objectsManager.BOBPOSI(9) == 4 && !v20) { + _vm->_soundManager.PLAY_SOUND2("SOUND44.WAV"); + v20 = 1; + } + if (_vm->_objectsManager.BOBPOSI(9) == 5) + v20 = 0; + if (_vm->_objectsManager.BOBPOSI(9) == 18 && !v20) { + _vm->_soundManager.PLAY_SOUND2("SOUND46.WAV"); + v20 = 1; + } + if (_vm->_objectsManager.BOBPOSI(9) == 19) + v20 = 0; + if (_vm->_objectsManager.BOBPOSI(10) == 11 && !v20) { + _vm->_soundManager.PLAY_SOUND2("SOUND45.WAV"); + v20 = 1; + } + if (_vm->_objectsManager.BOBPOSI(10) == 12) + v20 = 0; + _vm->_eventsManager.VBL(); + } while (_vm->_objectsManager.BOBPOSI(9) != v19); + if (v19 == 12) { + _vm->_objectsManager.SPRITE_ON(0); + _vm->_objectsManager.stopBobAnimation(9); + } + _vm->_globals.CACHE_ON(); + break; + } + + case 50: + _vm->_soundManager.PLAY_SOUND("SOUND46.WAv"); + _vm->_objectsManager.OPTI_ONE(11, 0, 23, 0); + break; + + case 51: { + _vm->_graphicsManager.FADE_OUTW(); + _vm->_globals.CACHE_OFF(); + _vm->_objectsManager.removeSprite(0); + _vm->_fontManager.hideText(5); + _vm->_fontManager.hideText(9); + _vm->_graphicsManager.FIN_VISU(); + _vm->_graphicsManager.loadImage("IM20f"); + _vm->_animationManager.loadAnim("ANIM20f"); + _vm->_graphicsManager.VISU_ALL(); + _vm->_eventsManager.mouseOff(); + _vm->_graphicsManager.FADE_INW(); + bool v52 = false; + _vm->_soundManager.LOAD_WAV("SOUND46.WAV", 1); + do { + if (_vm->shouldQuit()) + return -1; // Exiting game + + if (_vm->_objectsManager.BOBPOSI(12) == 5 && !v52) { + _vm->_soundManager.PLAY_WAV(1); + v52 = true; + } + _vm->_eventsManager.VBL(); + } while (_vm->_objectsManager.BOBPOSI(12) != 34); + _vm->_objectsManager.stopBobAnimation(2); + _vm->_graphicsManager.FADE_OUTW(); + _vm->_graphicsManager.NOFADE = true; + _vm->_globals._exitId = 20; + break; + } + + case 52: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("GARDE.PE2"); + _vm->_globals.NOPARLE = false; + break; + + case 53: + _vm->_talkManager.PARLER_PERSO("GARDE1.pe2"); + break; + + case 54: + _vm->_talkManager.PARLER_PERSO("GARDE2.pe2"); + break; + + case 55: + _vm->_objectsManager.stopBobAnimation(1); + _vm->_objectsManager.OPTI_ONE(15, 0, 12, 0); + _vm->_objectsManager.stopBobAnimation(15); + _vm->_objectsManager.OBSSEUL = 1; + _vm->_objectsManager.INILINK("IM19a"); + _vm->_objectsManager.OBSSEUL = 0; + break; + + case 56: + _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "HOPFEM.SPR"); + _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER); + _vm->_globals.PERSO_TYPE = 1; + _vm->_globals._saveData->data[svField122] = 1; + _vm->_globals.HOPKINS_DATA(); + _vm->_objectsManager._sprite[0].field12 = 28; + _vm->_objectsManager._sprite[0].field14 = 155; + _vm->_objectsManager.VERIFTAILLE(); + break; + + case 57: + _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR"); + _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER); + _vm->_globals.PERSO_TYPE = 0; + _vm->_globals._saveData->data[svField122] = 0; + _vm->_globals.HOPKINS_DATA(); + _vm->_objectsManager._sprite[0].field12 = 34; + _vm->_objectsManager._sprite[0].field14 = 190; + _vm->_objectsManager.VERIFTAILLE(); + break; + + case 58: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("Gm1.PE2"); + _vm->_globals._saveData->data[svField176] = 1; + _vm->_globals._saveData->data[svField270] = 2; + _vm->_globals.NOPARLE = false; + break; + + case 59: { _vm->_globals.NOT_VERIF = 1; _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; @@ -939,50 +1002,18 @@ LABEL_1141: _vm->_objectsManager.setBobAnimation(6); _vm->_objectsManager.stopBobAnimation(7); _vm->_objectsManager.stopBobAnimation(3); - } - if (v76 == 50) { - _vm->_soundManager.PLAY_SOUND("SOUND46.WAv"); - _vm->_objectsManager.OPTI_ONE(11, 0, 23, 0); - } - if (v76 == 49) { - _vm->_globals.CACHE_OFF(); - _vm->_objectsManager.removeSprite(0); - _vm->_objectsManager.OPTI_BOBON(9, 10, -1, 0, 0, 0, 0); - int v19 = 12; - if (_vm->_globals._saveData->data[svField133] == 1) - v19 = 41; - int v20 = 0; - do { - if (_vm->shouldQuit()) - return -1; // Exiting game - - if (_vm->_objectsManager.BOBPOSI(9) == 4 && !v20) { - _vm->_soundManager.PLAY_SOUND2("SOUND44.WAV"); - v20 = 1; - } - if (_vm->_objectsManager.BOBPOSI(9) == 5) - v20 = 0; - if (_vm->_objectsManager.BOBPOSI(9) == 18 && !v20) { - _vm->_soundManager.PLAY_SOUND2("SOUND46.WAV"); - v20 = 1; - } - if (_vm->_objectsManager.BOBPOSI(9) == 19) - v20 = 0; - if (_vm->_objectsManager.BOBPOSI(10) == 11 && !v20) { - _vm->_soundManager.PLAY_SOUND2("SOUND45.WAV"); - v20 = 1; - } - if (_vm->_objectsManager.BOBPOSI(10) == 12) - v20 = 0; - _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(9) != v19); - if (v19 == 12) { - _vm->_objectsManager.SPRITE_ON(0); - _vm->_objectsManager.stopBobAnimation(9); + break; } - _vm->_globals.CACHE_ON(); - } - if (v76 == 80) { + + case 62: + _vm->_talkManager.OBJET_VIVANT("SBCADA.pe2"); + break; + + case 65: + _vm->_talkManager.OBJET_VIVANT("ScCADA.pe2"); + break; + + case 80: { _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(12); _vm->_objectsManager.setBobAnimation(13); @@ -1022,8 +1053,10 @@ LABEL_1141: _vm->_objectsManager.OBSSEUL = 1; _vm->_objectsManager.INILINK("IM27a"); _vm->_objectsManager.OBSSEUL = 0; - } - if (v76 == 81) { + break; + } + + case 81: { _vm->_globals.NOT_VERIF = 1; _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; @@ -1086,36 +1119,20 @@ LABEL_1141: _vm->_objectsManager.stopBobAnimation(6); _vm->_objectsManager.setBobAnimation(9); _vm->_objectsManager.setBobAnimation(7); - } - if (v76 == 95) { - _vm->_objectsManager.setBobAnimation(9); - _vm->_objectsManager.setBobAnimation(10); - _vm->_objectsManager.setBobAnimation(12); - _vm->_objectsManager.SET_BOBPOSI(9, 0); - _vm->_objectsManager.SET_BOBPOSI(10, 0); - _vm->_objectsManager.SET_BOBPOSI(12, 0); - _vm->_objectsManager.removeSprite(0); - do { - if (_vm->shouldQuit()) - return -1; // Exiting game + break; + } - _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(9) != 15); - _vm->_objectsManager.stopBobAnimation(9); - _vm->_objectsManager.SPRITE_ON(0); - _vm->_soundManager.PLAY_SOUND("SOUND50.WAV"); - do { - if (_vm->shouldQuit()) - return -1; // Exiting game + case 83: + _vm->_talkManager.PARLER_PERSO("CVIGIL.pe2"); + break; - _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(12) != 117); - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 830, 122, 0); - _vm->_objectsManager.stopBobAnimation(12); - _vm->_objectsManager.stopBobAnimation(10); - _vm->_objectsManager.setBobAnimation(11); - } - if (v76 == 85) { + case 84: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("CVIGIL1.PE2"); + _vm->_globals.NOPARLE = false; + break; + + case 85: _vm->_objectsManager.stopBobAnimation(3); _vm->_objectsManager.setBobAnimation(5); _vm->_objectsManager.SET_BOBPOSI(5, 0); @@ -1130,8 +1147,26 @@ LABEL_1141: _vm->_objectsManager.OBSSEUL = 1; _vm->_objectsManager.INILINK("IM24a"); _vm->_objectsManager.OBSSEUL = 0; - } - if (v76 == 88) { + break; + + case 86: + if (_vm->_globals._saveData->data[svField231] == 1) { + _vm->_talkManager.PARLER_PERSO("chotess1.pe2"); + } else { + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("chotesse.pe2"); + _vm->_globals.NOPARLE = false; + } + break; + + case 87: + if (_vm->_globals._saveData->data[svField188]) + _vm->_talkManager.PARLER_PERSO("stand2.pe2"); + else + _vm->_talkManager.PARLER_PERSO("stand1.pe2"); + break; + + case 88: if (_vm->_globals._saveData->data[svField183] == 1) { _vm->_objectsManager.SET_BOBPOSI(1, 0); _vm->_objectsManager.SET_BOBPOSI(2, 0); @@ -1216,8 +1251,9 @@ LABEL_1141: _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 283, 161, 8); _vm->_soundManager.DEL_SAMPLE(1); } - } - if (v76 == 90) { + break; + + case 90: _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals._saveData->data[svField186]) { _vm->_animationManager.playSequence("CIB5A.SEQ", 1, 12, 1); @@ -1228,8 +1264,9 @@ LABEL_1141: _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 329, 87, 2); } - } - if (v76 == 91) { + break; + + case 91: _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals._saveData->data[svField186]) { _vm->_animationManager.playSequence("CIB5B.SEQ", 1, 12, 1); @@ -1240,8 +1277,9 @@ LABEL_1141: _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 5); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 283, 160, 6); } - } - if (v76 == 92) { + break; + + case 92: _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals._saveData->data[svField184]) { _vm->_animationManager.playSequence("CIB6A.SEQ", 1, 12, 1); @@ -1252,8 +1290,9 @@ LABEL_1141: _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 293, 139, 3); } - } - if (v76 == 93) { + break; + + case 93: _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals._saveData->data[svField184]) { _vm->_animationManager.playSequence("CIB6B.SEQ", 1, 12, 1); @@ -1264,12 +1303,81 @@ LABEL_1141: _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 5); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 283, 161, 8); } - } - if (v76 == 62) - _vm->_talkManager.OBJET_VIVANT("SBCADA.pe2"); - if (v76 == 65) - _vm->_talkManager.OBJET_VIVANT("ScCADA.pe2"); - if (v76 == 105) { + break; + + case 94: + if (!_vm->_globals._saveData->data[svField228]) + _vm->_talkManager.PARLER_PERSO("flicn.pe2"); + if (_vm->_globals._saveData->data[svField228] == 1) + _vm->_talkManager.PARLER_PERSO("flicn1.pe2"); + break; + + case 95: + _vm->_objectsManager.setBobAnimation(9); + _vm->_objectsManager.setBobAnimation(10); + _vm->_objectsManager.setBobAnimation(12); + _vm->_objectsManager.SET_BOBPOSI(9, 0); + _vm->_objectsManager.SET_BOBPOSI(10, 0); + _vm->_objectsManager.SET_BOBPOSI(12, 0); + _vm->_objectsManager.removeSprite(0); + do { + if (_vm->shouldQuit()) + return -1; // Exiting game + + _vm->_eventsManager.VBL(); + } while (_vm->_objectsManager.BOBPOSI(9) != 15); + _vm->_objectsManager.stopBobAnimation(9); + _vm->_objectsManager.SPRITE_ON(0); + _vm->_soundManager.PLAY_SOUND("SOUND50.WAV"); + do { + if (_vm->shouldQuit()) + return -1; // Exiting game + + _vm->_eventsManager.VBL(); + } while (_vm->_objectsManager.BOBPOSI(12) != 117); + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 830, 122, 0); + _vm->_objectsManager.stopBobAnimation(12); + _vm->_objectsManager.stopBobAnimation(10); + _vm->_objectsManager.setBobAnimation(11); + break; + + case 98: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("CVIGIL2.PE2"); + _vm->_globals.NOPARLE = false; + break; + + case 100: + _vm->_talkManager.PARLER_PERSO("tourist.pe2"); + break; + + case 101: + _vm->_talkManager.PARLER_PERSO("tahi1.pe2"); + break; + + case 103: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("tourist1.pe2"); + _vm->_globals.NOPARLE = false; + if (_vm->_globals.SVGA == 1) + _vm->_animationManager.playAnim2("T421.ANM", 100, 14, 500); + else if (_vm->_globals.SVGA == 2) + _vm->_animationManager.playAnim2("T421a.ANM", 100, 14, 500); + _vm->_eventsManager.VBL(); + _vm->_eventsManager.VBL(); + _vm->_eventsManager.VBL(); + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("tourist2.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 104: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("tourist3.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 105: _vm->_globals.NOT_VERIF = 1; _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; @@ -1391,8 +1499,9 @@ LABEL_1141: _vm->_objectsManager.SPRITE_ON(0); _vm->_objectsManager.ACTION_DOS(1); _vm->_soundManager.DEL_SAMPLE(1); - } - if (v76 == 106) { + break; + + case 106: _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(4); _vm->_objectsManager.SET_BOBPOSI(4, 0); @@ -1428,8 +1537,9 @@ LABEL_1141: } while (_vm->_objectsManager.BOBPOSI(4) != 77); _vm->_objectsManager.stopBobAnimation(4); _vm->_objectsManager.SPRITE_ON(0); - } - if (v76 == 107) { + break; + + case 107: _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(5); _vm->_objectsManager.SET_BOBPOSI(5, 0); @@ -1465,68 +1575,103 @@ LABEL_1141: } while (_vm->_objectsManager.BOBPOSI(5) != 53); _vm->_objectsManager.stopBobAnimation(5); _vm->_objectsManager.SPRITE_ON(0); - } - if (v76 == 210) { - _vm->_animationManager.NO_SEQ = true; - _vm->_soundManager.SPECIAL_SOUND = 210; - _vm->_animationManager.playSequence2("SECRET1.SEQ", 1, 12, 1); - _vm->_soundManager.SPECIAL_SOUND = 0; - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 192, 152, 0); - _vm->_objectsManager.setBobAnimation(9); - _vm->_objectsManager.OBSSEUL = 1; - _vm->_objectsManager.INILINK("IM73a"); - _vm->_objectsManager.OBSSEUL = 0; - _vm->_globals.CACHE_ON(); - _vm->_animationManager.NO_SEQ = false; - _vm->_globals.CACHE_ADD(0); - _vm->_globals.CACHE_ADD(1); - _vm->_graphicsManager.SETCOLOR4(252, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR4(253, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR4(251, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR4(254, 0, 0, 0); - } - if (v76 == 211) { - _vm->_objectsManager.removeSprite(0); - _vm->_globals.CACHE_OFF(); - _vm->_animationManager.NO_SEQ = true; - _vm->_globals.NO_VISU = false; - _vm->_soundManager.SPECIAL_SOUND = 211; - _vm->_animationManager.playSequence("SECRET2.SEQ", 1, 12, 100); - _vm->_soundManager.SPECIAL_SOUND = 0; - _vm->_animationManager.NO_SEQ = false; - _vm->_graphicsManager.NOFADE = true; - _vm->_graphicsManager.FADE_OUTW(); + break; - for (int i = 1; i <= 39; i++) { + case 108: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("peche1.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 109: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("peche2.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 110: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("peche3.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 111: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("peche4.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 112: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("teint1.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 113: + _vm->_talkManager.PARLER_PERSO("teint.pe2"); + break; + + case 114: + _vm->_talkManager.PARLER_PERSO("tahibar.pe2"); + break; + + case 115: + _vm->_talkManager.PARLER_PERSO("ilebar.pe2"); + break; + + case 116: + _vm->_talkManager.PARLER_PERSO("Profred.pe2"); + break; + + case 170: + _vm->_talkManager.PARLER_PERSO("GRED.pe2"); + break; + + case 171: { + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("gred1.pe2"); + _vm->_globals.NOPARLE = false; + _vm->_globals.NOT_VERIF = 1; + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); + _vm->_globals.g_old_sens = -1; + _vm->_globals.Compteur = 0; + _vm->_globals.chemin = (int16 *)g_PTRNUL; + _vm->_globals.NOT_VERIF = 1; + int v55 = _vm->_objectsManager.getSpriteY(0); + int v56 = _vm->_objectsManager.getSpriteX(0); + _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v56, v55, 361, 325); + _vm->_globals.NOT_VERIF = 1; + _vm->_objectsManager.NUMZONE = -1; + do { if (_vm->shouldQuit()) return -1; // Exiting game + _vm->_objectsManager.GOHOME(); _vm->_eventsManager.VBL(); + } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); + _vm->_globals._exitId = 59; + break; } - _vm->_graphicsManager.SETCOLOR4(252, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR4(253, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR4(251, 100, 100, 100); - _vm->_graphicsManager.SETCOLOR4(254, 0, 0, 0); - } - if (v76 == 207) - _vm->_talkManager.OBJET_VIVANT("PANNEAU.PE2"); - if (v76 == 208) { - _vm->_globals._disableInventFl = true; - if (_vm->_globals._saveData->data[svField6] != _vm->_globals._saveData->data[svField401]) { - _vm->_soundManager.SPECIAL_SOUND = 208; - _vm->_eventsManager._disableEscKeyFl = true; - _vm->_animationManager.playSequence("SORT.SEQ", 10, 4, 10); - _vm->_eventsManager._disableEscKeyFl = false; - _vm->_soundManager.SPECIAL_SOUND = 0; - } + case 172: + _vm->_talkManager.PARLER_PERSO("GBLEU.pe2"); + break; + + case 173: { + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("gbleu1.pe2"); + _vm->_globals.NOPARLE = false; _vm->_globals.NOT_VERIF = 1; + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); + _vm->_globals.g_old_sens = -1; + _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; - int v37 = _vm->_objectsManager.getSpriteY(0); - int v38 = _vm->_objectsManager.getSpriteX(0); - _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v38, v37, 330, 418); _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.NUMZONE = 0; + int v57 = _vm->_objectsManager.getSpriteY(0); + int v58 = _vm->_objectsManager.getSpriteX(0); + _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v58, v57, 361, 325); + _vm->_globals.NOT_VERIF = 1; + _vm->_objectsManager.NUMZONE = -1; do { if (_vm->shouldQuit()) return -1; // Exiting game @@ -1534,51 +1679,80 @@ LABEL_1141: _vm->_objectsManager.GOHOME(); _vm->_eventsManager.VBL(); } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); - _vm->_objectsManager.setSpriteIndex(0, 64); - _vm->_globals._exitId = _vm->_globals._saveData->data[svField401]; - _vm->_globals._disableInventFl = false; - } - if (v76 == 209) { - _vm->_objectsManager.SET_BOBPOSI(1, 0); - _vm->_objectsManager.SET_BOBPOSI(2, 0); - _vm->_objectsManager.setSpriteIndex(0, 60); - _vm->_objectsManager.stopBobAnimation(4); - _vm->_objectsManager.setBobAnimation(1); + _vm->_globals._exitId = 59; + break; + } + + case 174: + _vm->_talkManager.PARLER_PERSO("Profbl.pe2"); + break; + + case 175: + _vm->_objectsManager.setSpriteIndex(0, 55); + _vm->_objectsManager.removeSprite(0); + _vm->_objectsManager.setBobAnimation(9); + _vm->_objectsManager.setBobAnimation(10); + _vm->_objectsManager.BOB_OFFSET(10, 300); + _vm->_soundManager.PLAY_SOUND("SOUND44.WAV"); do { if (_vm->shouldQuit()) return -1; // Exiting game _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(1) != 9); - _vm->_objectsManager.stopBobAnimation(1); - _vm->_globals.NO_VISU = true; - _vm->_globals.chemin = (int16 *)g_PTRNUL; - _vm->_globals.NOT_VERIF = 1; - int v39 = _vm->_objectsManager.getSpriteY(0); - int v40 = _vm->_objectsManager.getSpriteX(0); - _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v40, v39, 330, 314); - _vm->_objectsManager.NUMZONE = 0; - _vm->_globals.NOT_VERIF = 1; + } while (_vm->_objectsManager.BOBPOSI(10) != 7); + _vm->_objectsManager.setBobAnimation(6); + _vm->_objectsManager.stopBobAnimation(3); do { if (_vm->shouldQuit()) return -1; // Exiting game - _vm->_objectsManager.GOHOME(); _vm->_eventsManager.VBL(); - } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); - _vm->_objectsManager.setSpriteIndex(0, 64); - _vm->_objectsManager.setBobAnimation(2); - _vm->_soundManager.PLAY_SOUND("SOUND66.WAV"); + } while (_vm->_objectsManager.BOBPOSI(6) != 10); + _vm->_soundManager.PLAY_SOUND("SOUND71.WAV"); + _vm->_objectsManager.setBobAnimation(7); + _vm->_objectsManager.stopBobAnimation(4); do { if (_vm->shouldQuit()) return -1; // Exiting game _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(2) != 10); - _vm->_objectsManager.stopBobAnimation(2); - _vm->_objectsManager.setBobAnimation(4); - } - if (v76 == 201) { + } while (_vm->_objectsManager.BOBPOSI(7) != 15); + _vm->_objectsManager.stopBobAnimation(5); + _vm->_objectsManager.setBobAnimation(8); + _vm->_soundManager.PLAY_SOUND("SOUND70.WAV"); + do { + if (_vm->shouldQuit()) + return -1; // Exiting game + + _vm->_eventsManager.VBL(); + } while (_vm->_objectsManager.BOBPOSI(8) != 76); + _vm->_objectsManager.stopBobAnimation(6); + _vm->_objectsManager.stopBobAnimation(7); + _vm->_objectsManager.stopBobAnimation(8); + _vm->_objectsManager.stopBobAnimation(9); + _vm->_objectsManager.stopBobAnimation(10); + _vm->_objectsManager.SPRITE_ON(0); + break; + + case 176: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("gred2.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 177: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("gbleu2.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 200: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("Gm2.PE2"); + _vm->_globals.NOPARLE = false; + break; + + case 201: _vm->_objectsManager.setBobAnimation(3); do { if (_vm->shouldQuit()) @@ -1588,8 +1762,15 @@ LABEL_1141: } while (_vm->_objectsManager.BOBPOSI(3) != 18); _vm->_objectsManager.stopBobAnimation(3); _vm->_objectsManager.setBobAnimation(4); - } - if (v76 == 203) { + break; + + case 202: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("SVGARD2.PE2"); + _vm->_globals.NOPARLE = false; + break; + + case 203: _vm->_globals.NO_VISU = true; _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(4); @@ -1604,8 +1785,9 @@ LABEL_1141: _vm->_objectsManager.stopBobAnimation(4); _vm->_globals.NO_VISU = false; _vm->_objectsManager.SPRITE_ON(0); - } - if (v76 == 204) { + break; + + case 204: { _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(3); _vm->_soundManager.LOAD_WAV("SOUND67.WAV", 1); @@ -1624,8 +1806,10 @@ LABEL_1141: } while (_vm->_objectsManager.BOBPOSI(3) != 50); _vm->_objectsManager.stopBobAnimation(3); _vm->_objectsManager.SPRITE_ON(0); - } - if (v76 == 205) { + break; + } + + case 205: { _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(4); _vm->_soundManager.LOAD_WAV("SOUND69.WAV", 1); @@ -1644,60 +1828,149 @@ LABEL_1141: } while (_vm->_objectsManager.BOBPOSI(4) != 24); _vm->_objectsManager.stopBobAnimation(4); _vm->_objectsManager.SPRITE_ON(0); - } - if (v76 == 175) { - _vm->_objectsManager.setSpriteIndex(0, 55); - _vm->_objectsManager.removeSprite(0); - _vm->_objectsManager.setBobAnimation(9); - _vm->_objectsManager.setBobAnimation(10); - _vm->_objectsManager.BOB_OFFSET(10, 300); - _vm->_soundManager.PLAY_SOUND("SOUND44.WAV"); + break; + } + + case 207: + _vm->_talkManager.OBJET_VIVANT("PANNEAU.PE2"); + break; + + case 208: { + _vm->_globals._disableInventFl = true; + if (_vm->_globals._saveData->data[svField6] != _vm->_globals._saveData->data[svField401]) { + _vm->_soundManager.SPECIAL_SOUND = 208; + _vm->_eventsManager._disableEscKeyFl = true; + _vm->_animationManager.playSequence("SORT.SEQ", 10, 4, 10); + _vm->_eventsManager._disableEscKeyFl = false; + _vm->_soundManager.SPECIAL_SOUND = 0; + } + _vm->_globals.NOT_VERIF = 1; + _vm->_globals.chemin = (int16 *)g_PTRNUL; + int v37 = _vm->_objectsManager.getSpriteY(0); + int v38 = _vm->_objectsManager.getSpriteX(0); + _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v38, v37, 330, 418); + _vm->_globals.NOT_VERIF = 1; + _vm->_objectsManager.NUMZONE = 0; do { if (_vm->shouldQuit()) return -1; // Exiting game + _vm->_objectsManager.GOHOME(); _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(10) != 7); - _vm->_objectsManager.setBobAnimation(6); - _vm->_objectsManager.stopBobAnimation(3); + } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); + _vm->_objectsManager.setSpriteIndex(0, 64); + _vm->_globals._exitId = _vm->_globals._saveData->data[svField401]; + _vm->_globals._disableInventFl = false; + break; + } + + case 209: { + _vm->_objectsManager.SET_BOBPOSI(1, 0); + _vm->_objectsManager.SET_BOBPOSI(2, 0); + _vm->_objectsManager.setSpriteIndex(0, 60); + _vm->_objectsManager.stopBobAnimation(4); + _vm->_objectsManager.setBobAnimation(1); do { if (_vm->shouldQuit()) return -1; // Exiting game _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(6) != 10); - _vm->_soundManager.PLAY_SOUND("SOUND71.WAV"); - _vm->_objectsManager.setBobAnimation(7); - _vm->_objectsManager.stopBobAnimation(4); + } while (_vm->_objectsManager.BOBPOSI(1) != 9); + _vm->_objectsManager.stopBobAnimation(1); + _vm->_globals.NO_VISU = true; + _vm->_globals.chemin = (int16 *)g_PTRNUL; + _vm->_globals.NOT_VERIF = 1; + int v39 = _vm->_objectsManager.getSpriteY(0); + int v40 = _vm->_objectsManager.getSpriteX(0); + _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v40, v39, 330, 314); + _vm->_objectsManager.NUMZONE = 0; + _vm->_globals.NOT_VERIF = 1; do { if (_vm->shouldQuit()) return -1; // Exiting game + _vm->_objectsManager.GOHOME(); _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(7) != 15); - _vm->_objectsManager.stopBobAnimation(5); - _vm->_objectsManager.setBobAnimation(8); - _vm->_soundManager.PLAY_SOUND("SOUND70.WAV"); + } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); + _vm->_objectsManager.setSpriteIndex(0, 64); + _vm->_objectsManager.setBobAnimation(2); + _vm->_soundManager.PLAY_SOUND("SOUND66.WAV"); do { if (_vm->shouldQuit()) return -1; // Exiting game _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(8) != 76); - _vm->_objectsManager.stopBobAnimation(6); - _vm->_objectsManager.stopBobAnimation(7); - _vm->_objectsManager.stopBobAnimation(8); - _vm->_objectsManager.stopBobAnimation(9); - _vm->_objectsManager.stopBobAnimation(10); - _vm->_objectsManager.SPRITE_ON(0); - } - if (v76 == 229) { + } while (_vm->_objectsManager.BOBPOSI(2) != 10); + _vm->_objectsManager.stopBobAnimation(2); + _vm->_objectsManager.setBobAnimation(4); + break; + } + + case 210: + _vm->_animationManager.NO_SEQ = true; + _vm->_soundManager.SPECIAL_SOUND = 210; + _vm->_animationManager.playSequence2("SECRET1.SEQ", 1, 12, 1); + _vm->_soundManager.SPECIAL_SOUND = 0; + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 192, 152, 0); + _vm->_objectsManager.setBobAnimation(9); + _vm->_objectsManager.OBSSEUL = 1; + _vm->_objectsManager.INILINK("IM73a"); + _vm->_objectsManager.OBSSEUL = 0; + _vm->_globals.CACHE_ON(); + _vm->_animationManager.NO_SEQ = false; + _vm->_globals.CACHE_ADD(0); + _vm->_globals.CACHE_ADD(1); + _vm->_graphicsManager.SETCOLOR4(252, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR4(253, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR4(251, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR4(254, 0, 0, 0); + break; + + case 211: + _vm->_objectsManager.removeSprite(0); + _vm->_globals.CACHE_OFF(); + _vm->_animationManager.NO_SEQ = true; + _vm->_globals.NO_VISU = false; + _vm->_soundManager.SPECIAL_SOUND = 211; + _vm->_animationManager.playSequence("SECRET2.SEQ", 1, 12, 100); + _vm->_soundManager.SPECIAL_SOUND = 0; + _vm->_animationManager.NO_SEQ = false; + _vm->_graphicsManager.NOFADE = true; + _vm->_graphicsManager.FADE_OUTW(); + + for (int i = 1; i <= 39; i++) { + if (_vm->shouldQuit()) + return -1; // Exiting game + + _vm->_eventsManager.VBL(); + } + + _vm->_graphicsManager.SETCOLOR4(252, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR4(253, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR4(251, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR4(254, 0, 0, 0); + break; + + case 215: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("aviat.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 216: + _vm->_globals.NOPARLE = true; + _vm->_talkManager.PARLER_PERSO("aviat1.pe2"); + _vm->_globals.NOPARLE = false; + break; + + case 229: _vm->_soundManager.SPECIAL_SOUND = 229; _vm->_animationManager.playSequence("MUR.SEQ", 1, 12, 1); _vm->_soundManager.SPECIAL_SOUND = 0; _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 340, 157, 2); - } - if (v76 == 230) { + break; + + case 230: { _vm->_objectsManager.OBSSEUL = 1; _vm->_objectsManager.INILINK("IM93a"); _vm->_objectsManager.OBSSEUL = 0; @@ -1741,8 +2014,10 @@ LABEL_1141: _vm->_objectsManager.INILINK("IM93c"); _vm->_objectsManager.OBSSEUL = 0; _vm->_globals.CACHE_ON(); - } - if (v76 == 231) { + break; + } + + case 231: _vm->_globals.CACHE_OFF(); _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(12); @@ -1764,8 +2039,9 @@ LABEL_1141: _vm->_objectsManager.SPRITE_ON(0); _vm->_objectsManager.stopBobAnimation(12); _vm->_globals.CACHE_ON(); - } - if (v76 == 233) { + break; + + case 233: { _vm->_globals.CACHE_OFF(); _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.setBobAnimation(11); @@ -1794,19 +2070,10 @@ LABEL_1141: _vm->_objectsManager.stopBobAnimation(13); _vm->_graphicsManager.NOFADE = true; _vm->_globals._exitId = 94; - } - if (v76 == 52) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("GARDE.PE2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 53) - _vm->_talkManager.PARLER_PERSO("GARDE1.pe2"); - if (v76 == 54) - _vm->_talkManager.PARLER_PERSO("GARDE2.pe2"); - if (v76 == 40) - _vm->_talkManager.PARLER_PERSO("MAGE.pe2"); - if (v76 == 236) { + break; + } + + case 236: { char v47 = _vm->_globals._saveData->data[svField341]; if (v47) { if (v47 == 2) @@ -1833,8 +2100,10 @@ LABEL_1141: _vm->_soundManager.PLAY_SOUND("SOUND83.WAV"); _vm->_objectsManager.OPTI_ONE(6, 0, 23, 0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 27, 117, 1); - } - if (v76 == 237) { + break; + } + + case 237: { char v48 = _vm->_globals._saveData->data[svField341]; if (v48) { if (v48 == 2) @@ -1861,8 +2130,10 @@ LABEL_1141: _vm->_soundManager.PLAY_SOUND("SOUND83.WAV"); _vm->_objectsManager.OPTI_ONE(5, 0, 23, 0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 145, 166, 3); - } - if (v76 == 238) { + break; + } + + case 238: { char v49 = _vm->_globals._saveData->data[svField341]; if (v49) { if (v49 == 2) @@ -1889,13 +2160,16 @@ LABEL_1141: _vm->_soundManager.PLAY_SOUND("SOUND83.WAV"); _vm->_objectsManager.OPTI_ONE(4, 0, 23, 0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 296, 212, 5); - } - if (v76 == 239) { + break; + } + + case 239: _vm->_objectsManager.removeSprite(0); _vm->_soundManager.PLAY_SOUND("SOUND84.WAV"); _vm->_objectsManager.OPTI_ONE(16, 0, 10, 0); - } - if (v76 == 240) { + break; + + case 240: { _vm->_objectsManager.setBobAnimation(1); bool soundFlag = false; do { @@ -1940,221 +2214,14 @@ LABEL_1141: _vm->_globals._saveData->data[svField352] = 1; _vm->_globals._saveData->data[svField353] = 1; _vm->_globals._saveData->data[svField354] = 1; - } - if (v76 == 56) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "HOPFEM.SPR"); - _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER); - _vm->_globals.PERSO_TYPE = 1; - _vm->_globals._saveData->data[svField122] = 1; - _vm->_globals.HOPKINS_DATA(); - _vm->_objectsManager._sprite[0].field12 = 28; - _vm->_objectsManager._sprite[0].field14 = 155; - _vm->_objectsManager.VERIFTAILLE(); - } - if (v76 == 57) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR"); - _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER); - _vm->_globals.PERSO_TYPE = 0; - _vm->_globals._saveData->data[svField122] = 0; - _vm->_globals.HOPKINS_DATA(); - _vm->_objectsManager._sprite[0].field12 = 34; - _vm->_objectsManager._sprite[0].field14 = 190; - _vm->_objectsManager.VERIFTAILLE(); - } - if (v76 == 25) - _vm->_talkManager.PARLER_PERSO("AGENT1.pe2"); - if (v76 == 26) - _vm->_talkManager.PARLER_PERSO("AGENT2.pe2"); - if (v76 == 87) { - if (_vm->_globals._saveData->data[svField188]) - _vm->_talkManager.PARLER_PERSO("stand2.pe2"); - else - _vm->_talkManager.PARLER_PERSO("stand1.pe2"); - } - if (v76 == 86) { - if (_vm->_globals._saveData->data[svField231] == 1) { - _vm->_talkManager.PARLER_PERSO("chotess1.pe2"); - } else { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("chotesse.pe2"); - _vm->_globals.NOPARLE = false; + break; } - } - if (v76 == 51) { - _vm->_graphicsManager.FADE_OUTW(); - _vm->_globals.CACHE_OFF(); - _vm->_objectsManager.removeSprite(0); - _vm->_fontManager.hideText(5); - _vm->_fontManager.hideText(9); - _vm->_graphicsManager.FIN_VISU(); - _vm->_graphicsManager.loadImage("IM20f"); - _vm->_animationManager.loadAnim("ANIM20f"); - _vm->_graphicsManager.VISU_ALL(); - _vm->_eventsManager.mouseOff(); - _vm->_graphicsManager.FADE_INW(); - bool v52 = false; - _vm->_soundManager.LOAD_WAV("SOUND46.WAV", 1); - do { - if (_vm->shouldQuit()) - return -1; // Exiting game - if (_vm->_objectsManager.BOBPOSI(12) == 5 && !v52) { - _vm->_soundManager.PLAY_WAV(1); - v52 = true; - } - _vm->_eventsManager.VBL(); - } while (_vm->_objectsManager.BOBPOSI(12) != 34); - _vm->_objectsManager.stopBobAnimation(2); - _vm->_graphicsManager.FADE_OUTW(); - _vm->_graphicsManager.NOFADE = true; - _vm->_globals._exitId = 20; - } - if (v76 == 41) - _vm->_talkManager.PARLER_PERSO("MORT3.pe2"); - if (v76 == 44) - _vm->_talkManager.PARLER_PERSO("MORT3A.pe2"); - if (v76 == 42) - _vm->_talkManager.PARLER_PERSO("MORT2.pe2"); - if (v76 == 43) - _vm->_talkManager.PARLER_PERSO("MORT1.pe2"); - if (v76 == 47) - _vm->_talkManager.PARLER_PERSO("BARMAN.pe2"); - if (v76 == 45) - _vm->_talkManager.PARLER_PERSO("FEM3.pe2"); - if (v76 == 48) - _vm->_talkManager.PARLER_PERSO("SAMAN2.pe2"); - if (v76 == 21) - _vm->_talkManager.PARLER_PERSO("MEDLEG.pe2"); - if (v76 == 94) { - if (!_vm->_globals._saveData->data[svField228]) - _vm->_talkManager.PARLER_PERSO("flicn.pe2"); - if (_vm->_globals._saveData->data[svField228] == 1) - _vm->_talkManager.PARLER_PERSO("flicn1.pe2"); - } - if (v76 == 27) { - if (_vm->_globals._saveData->data[svField94] != 1 || _vm->_globals._saveData->data[svField95] != 1) - _vm->_talkManager.PARLER_PERSO("STANDAR.pe2"); - else - _vm->_talkManager.PARLER_PERSO("STANDAR1.pe2"); - } - if (v76 == 58) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("Gm1.PE2"); - _vm->_globals._saveData->data[svField176] = 1; - _vm->_globals._saveData->data[svField270] = 2; - _vm->_globals.NOPARLE = false; - } - if (v76 == 200) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("Gm2.PE2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 84) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("CVIGIL1.PE2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 98) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("CVIGIL2.PE2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 83) - _vm->_talkManager.PARLER_PERSO("CVIGIL.pe2"); - if (v76 == 32) - _vm->_talkManager.PARLER_PERSO("SAMAN.pe2"); - if (v76 == 215) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("aviat.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 216) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("aviat1.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 170) - _vm->_talkManager.PARLER_PERSO("GRED.pe2"); - if (v76 == 172) - _vm->_talkManager.PARLER_PERSO("GBLEU.pe2"); - if (v76 == 100) - _vm->_talkManager.PARLER_PERSO("tourist.pe2"); - if (v76 == 103) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("tourist1.pe2"); - _vm->_globals.NOPARLE = false; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim2("T421.ANM", 100, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim2("T421a.ANM", 100, 14, 500); - _vm->_eventsManager.VBL(); - _vm->_eventsManager.VBL(); - _vm->_eventsManager.VBL(); - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("tourist2.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 104) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("tourist3.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 108) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("peche1.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 109) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("peche2.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 110) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("peche3.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 111) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("peche4.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 112) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("teint1.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 176) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("gred2.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 177) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("gbleu2.pe2"); - _vm->_globals.NOPARLE = false; - } - if (v76 == 113) - _vm->_talkManager.PARLER_PERSO("teint.pe2"); - if (v76 == 114) - _vm->_talkManager.PARLER_PERSO("tahibar.pe2"); - if (v76 == 115) - _vm->_talkManager.PARLER_PERSO("ilebar.pe2"); - if (v76 == 116) - _vm->_talkManager.PARLER_PERSO("Profred.pe2"); - if (v76 == 101) - _vm->_talkManager.PARLER_PERSO("tahi1.pe2"); - if (v76 == 243) { - _vm->_soundManager.PLAY_SOUND("SOUND88.WAV"); - if (_vm->_globals._saveData->data[svField341] == 2) { - _vm->_animationManager.NO_SEQ = true; - _vm->_animationManager.playSequence("RESU.SEQ", 2, 24, 2); - _vm->_animationManager.NO_SEQ = false; - } else { - _vm->_objectsManager.OPTI_ONE(7, 0, 14, 0); - } - } - if (v76 == 242) { + case 241: + _vm->_talkManager.PARLER_PERSO("RECEP.PE2"); + break; + + case 242: { _vm->_soundManager.PLAY_SOUND("SOUND87.WAV"); _vm->_animationManager.NO_SEQ = true; _vm->_animationManager.playSequence("RESUF.SEQ", 1, 24, 1); @@ -2168,8 +2235,7 @@ LABEL_1141: int v54 = _vm->_globals.STAILLE[790 / 2]; if (_vm->_globals.STAILLE[790 / 2] < 0) v54 = -_vm->_globals.STAILLE[790 / 2]; - v76 = -(100 * (67 - (100 - v54)) / 67); - v53->field4 = v76; + v53->field4 = 242 - (100 * (67 - (100 - v54)) / 67); _vm->_globals._saveData->data[svField357] = 1; _vm->_globals._saveData->data[svField354] = 0; _vm->_globals._saveData->data[svField356] = 0; @@ -2178,16 +2244,30 @@ LABEL_1141: _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 373, 191, 3); _vm->_objectsManager.SPRITE(_vm->_globals.TETE, v53->_pos, 1, 3, v53->field4, 0, 20, 127); _vm->_objectsManager.SPRITE_ON(1); - } - if (v76 == 245) { + break; + } + + case 243: + _vm->_soundManager.PLAY_SOUND("SOUND88.WAV"); + if (_vm->_globals._saveData->data[svField341] == 2) { + _vm->_animationManager.NO_SEQ = true; + _vm->_animationManager.playSequence("RESU.SEQ", 2, 24, 2); + _vm->_animationManager.NO_SEQ = false; + } else { + _vm->_objectsManager.OPTI_ONE(7, 0, 14, 0); + } + break; + + case 245: _vm->_soundManager.PLAY_SOUND("SOUND89.WAV"); _vm->_objectsManager.OPTI_ONE(5, 0, 6, 0); _vm->_globals.ZONEP[4]._destX = 276; _vm->_objectsManager.VERBE_ON(4, 19); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 285, 379, 0); _vm->_globals._saveData->data[svField399] = 1; - } - if (v76 == 246) { + break; + + case 246: _vm->_objectsManager.removeSprite(0); _vm->_objectsManager.OPTI_ONE(6, 0, 15, 0); _vm->_objectsManager.PERSO_ON = true; @@ -2199,118 +2279,188 @@ LABEL_1141: _vm->_graphicsManager.FADE_OUTW(); _vm->_objectsManager.PERSO_ON = false; _vm->_globals._exitId = 100; - } - if (v76 == 55) { - _vm->_objectsManager.stopBobAnimation(1); - _vm->_objectsManager.OPTI_ONE(15, 0, 12, 0); - _vm->_objectsManager.stopBobAnimation(15); - _vm->_objectsManager.OBSSEUL = 1; - _vm->_objectsManager.INILINK("IM19a"); - _vm->_objectsManager.OBSSEUL = 0; - } - if (v76 == 241) - _vm->_talkManager.PARLER_PERSO("RECEP.PE2"); - if (v76 == 171) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("gred1.pe2"); - _vm->_globals.NOPARLE = false; - _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); - _vm->_globals.g_old_sens = -1; - _vm->_globals.Compteur = 0; - _vm->_globals.chemin = (int16 *)g_PTRNUL; - _vm->_globals.NOT_VERIF = 1; - int v55 = _vm->_objectsManager.getSpriteY(0); - int v56 = _vm->_objectsManager.getSpriteX(0); - _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v56, v55, 361, 325); - _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.NUMZONE = -1; - do { - if (_vm->shouldQuit()) - return -1; // Exiting game + break; - _vm->_objectsManager.GOHOME(); - _vm->_eventsManager.VBL(); - } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); - _vm->_globals._exitId = 59; - } - if (v76 == 173) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("gbleu1.pe2"); - _vm->_globals.NOPARLE = false; - _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); - _vm->_globals.g_old_sens = -1; - _vm->_globals.Compteur = 0; - _vm->_globals.chemin = (int16 *)g_PTRNUL; - _vm->_globals.NOT_VERIF = 1; - int v57 = _vm->_objectsManager.getSpriteY(0); - int v58 = _vm->_objectsManager.getSpriteX(0); - _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v58, v57, 361, 325); - _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.NUMZONE = -1; - do { - if (_vm->shouldQuit()) - return -1; // Exiting game + case 600: + if (!_vm->_globals._internetFl) { + _vm->_graphicsManager.FADE_LINUX = 2; + _vm->_graphicsManager.FADESPD = 1; + if (_vm->_globals.SVGA == 2) + _vm->_animationManager.playAnim("BOMBE1A.ANM", 100, 18, 100); + else if (_vm->_globals.SVGA == 1) + _vm->_animationManager.playAnim("BOMBE1.ANM", 100, 18, 100); + } + _vm->_graphicsManager.loadImage("BOMBEB"); + _vm->_graphicsManager.SETCOLOR3(252, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100); + _vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0); + _vm->_graphicsManager.OPTI_INI("BOMBE", 2); + _vm->_graphicsManager.FADE_INS(); + break; - _vm->_objectsManager.GOHOME(); - _vm->_eventsManager.VBL(); - } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); - _vm->_globals._exitId = 59; - } - if (v76 == 174) - _vm->_talkManager.PARLER_PERSO("Profbl.pe2"); - if (v76 == 202) { - _vm->_globals.NOPARLE = true; - _vm->_talkManager.PARLER_PERSO("SVGARD2.PE2"); - _vm->_globals.NOPARLE = false; - } - v1 = 1; - } - if (*(a1 + 2) == 'E' && *(a1 + 3) == 'I' && *(a1 + 4) == 'F') - v1 = 4; - if (*(a1 + 2) == 'V' && *(a1 + 3) == 'A' && *(a1 + 4) == 'L') { - v1 = 1; - _vm->_globals._saveData->data[(int16)READ_LE_UINT16(a1 + 5)] = (int16)READ_LE_UINT16(a1 + 7); - } - if (*(a1 + 2) == 'A' && *(a1 + 3) == 'D' && *(a1 + 4) == 'D') { - v1 = 1; - _vm->_globals._saveData->data[(int16)READ_LE_UINT16(a1 + 5)] += *(a1 + 7); - } - if (*(a1 + 2) == 'B' && *(a1 + 3) == 'O' && *(a1 + 4) == 'S') { - v1 = 1; - _vm->_objectsManager.BOB_OFFSET((int16)READ_LE_UINT16(a1 + 5), (int16)READ_LE_UINT16(a1 + 7)); - } - if (*(a1 + 2) == 'V' && *(a1 + 3) == 'O' && *(a1 + 4) == 'N') { - _vm->_objectsManager.VERBE_ON((int16)READ_LE_UINT16(a1 + 5), (int16)READ_LE_UINT16(a1 + 7)); - v1 = 1; - } - if (*(a1 + 2) == 'Z' && *(a1 + 3) == 'C' && *(a1 + 4) == 'H') { - _vm->_globals.ZONEP[(int16)READ_LE_UINT16(a1 + 5)].field12 = (int16)READ_LE_UINT16(a1 + 7); - v1 = 1; - } - if (*(a1 + 2) == 'J' && *(a1 + 3) == 'U' && *(a1 + 4) == 'M') { - int v59 = (int16)READ_LE_UINT16(a1 + 7); - _vm->_objectsManager.NVZONE = (int16)READ_LE_UINT16(a1 + 5); + case 601: + _vm->_globals.NO_VISU = true; + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); + _vm->_globals.NO_VISU = false; + _vm->_objectsManager.OPTI_ONE(2, 0, 16, 4); + break; + + case 602: + _vm->_globals.NO_VISU = true; + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); + _vm->_globals.NO_VISU = false; + _vm->_objectsManager.OPTI_ONE(4, 0, 16, 4); + break; + + case 603: + _vm->_globals.NO_VISU = true; + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); + _vm->_globals.NO_VISU = false; + _vm->_objectsManager.OPTI_ONE(3, 0, 16, 4); + _vm->_soundManager.SPECIAL_SOUND = 199; + _vm->_graphicsManager.FADE_LINUX = 2; + if (_vm->_globals.SVGA == 1) + _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); + else if (_vm->_globals.SVGA == 2) + _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); + _vm->_soundManager.SPECIAL_SOUND = 0; + memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); + _vm->_graphicsManager.NOFADE = true; + _vm->_globals._exitId = 151; + break; + + case 604: + _vm->_globals.NO_VISU = true; + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); + _vm->_globals.NO_VISU = false; + _vm->_objectsManager.OPTI_ONE(1, 0, 16, 4); + _vm->_soundManager.SPECIAL_SOUND = 199; + if (_vm->_globals.SVGA == 1) + _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); + else if (_vm->_globals.SVGA == 2) + _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); + _vm->_soundManager.SPECIAL_SOUND = 0; + _vm->_graphicsManager.NOFADE = true; + memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); + _vm->_globals._exitId = 151; + break; + + case 605: + _vm->_globals.NO_VISU = true; + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); + _vm->_globals.NO_VISU = false; + _vm->_objectsManager.OPTI_ONE(5, 0, 16, 4); + _vm->_graphicsManager.FADE_OUTS(); + _vm->_soundManager.SPECIAL_SOUND = 199; + _vm->_graphicsManager.FADE_LINUX = 2; + if (_vm->_globals.SVGA == 1) + _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); + else if (_vm->_globals.SVGA == 2) + _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); + _vm->_soundManager.SPECIAL_SOUND = 0; + _vm->_graphicsManager.NOFADE = true; + memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); + _vm->_globals._exitId = 151; + break; + + case 606: + _vm->_globals.NO_VISU = true; + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 513, 163, 7); + _vm->_globals.NO_VISU = false; + _vm->_objectsManager.OPTI_ONE(6, 0, 16, 4); + if ((_vm->getPlatform() != Common::kPlatformWindows) || !_vm->getIsDemo()) { + if (_vm->_globals.SVGA == 1) + _vm->_animationManager.playAnim("BOMBE3.ANM", 50, 14, 500); + else if (_vm->_globals.SVGA == 2) + _vm->_animationManager.playAnim("BOMBE3A.ANM", 50, 14, 500); + memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); + } + _vm->_globals._exitId = 6; + break; + + case 607: + if (!_vm->_globals._internetFl) { + memcpy(_vm->_graphicsManager._oldPalette, _vm->_graphicsManager._palette, 769); + _vm->_graphicsManager._oldPalette[769]; + _vm->_animationManager.playAnim2("PLAN.ANM", 50, 10, 800); + } + _vm->_globals.NBBLOC = 0; + break; + + case 608: + _vm->_objectsManager.stopBobAnimation(2); + _vm->_objectsManager.stopBobAnimation(3); + _vm->_objectsManager.stopBobAnimation(4); + _vm->_objectsManager.stopBobAnimation(6); + _vm->_objectsManager.stopBobAnimation(11); + _vm->_objectsManager.stopBobAnimation(10); + break; + + case 609: + _vm->_objectsManager.setBobAnimation(2); + _vm->_objectsManager.setBobAnimation(3); + _vm->_objectsManager.setBobAnimation(4); + _vm->_objectsManager.setBobAnimation(6); + _vm->_objectsManager.setBobAnimation(11); + _vm->_objectsManager.setBobAnimation(10); + break; + + case 610: + _vm->_objectsManager.stopBobAnimation(5); + _vm->_objectsManager.stopBobAnimation(7); + _vm->_objectsManager.stopBobAnimation(8); + _vm->_objectsManager.stopBobAnimation(9); + _vm->_objectsManager.stopBobAnimation(12); + _vm->_objectsManager.stopBobAnimation(13); + break; + + case 611: + _vm->_objectsManager.setBobAnimation(5); + _vm->_objectsManager.setBobAnimation(7); + _vm->_objectsManager.setBobAnimation(8); + _vm->_objectsManager.setBobAnimation(9); + _vm->_objectsManager.setBobAnimation(12); + _vm->_objectsManager.setBobAnimation(13); + break; + } + opcodeType = 1; + } else if (dataP[2] == 'E' && dataP[3] == 'I' && dataP[4] == 'F') { + opcodeType = 4; + } else if (dataP[2] == 'V' && dataP[3] == 'A' && dataP[4] == 'L') { + opcodeType = 1; + _vm->_globals._saveData->data[(int16)READ_LE_UINT16(dataP + 5)] = (int16)READ_LE_UINT16(dataP + 7); + } else if (dataP[2] == 'A' && dataP[3] == 'D' && dataP[4] == 'D') { + opcodeType = 1; + _vm->_globals._saveData->data[(int16)READ_LE_UINT16(dataP + 5)] += *(dataP + 7); + } else if (dataP[2] == 'B' && dataP[3] == 'O' && dataP[4] == 'S') { + opcodeType = 1; + _vm->_objectsManager.BOB_OFFSET((int16)READ_LE_UINT16(dataP + 5), (int16)READ_LE_UINT16(dataP + 7)); + } else if (dataP[2] == 'V' && dataP[3] == 'O' && dataP[4] == 'N') { + _vm->_objectsManager.VERBE_ON((int16)READ_LE_UINT16(dataP + 5), (int16)READ_LE_UINT16(dataP + 7)); + opcodeType = 1; + } else if (dataP[2] == 'Z' && dataP[3] == 'C' && dataP[4] == 'H') { + _vm->_globals.ZONEP[(int16)READ_LE_UINT16(dataP + 5)].field12 = (int16)READ_LE_UINT16(dataP + 7); + opcodeType = 1; + } else if (dataP[2] == 'J' && dataP[3] == 'U' && dataP[4] == 'M') { + int v59 = (int16)READ_LE_UINT16(dataP + 7); + _vm->_objectsManager.NVZONE = (int16)READ_LE_UINT16(dataP + 5); _vm->_objectsManager.NVVERBE = v59; - v1 = 6; - } - if (*(a1 + 2) == 'S' && *(a1 + 3) == 'O' && *(a1 + 4) == 'U') { - int v60 = (int16)READ_LE_UINT16(a1 + 5); + opcodeType = 6; + } else if (dataP[2] == 'S' && dataP[3] == 'O' && dataP[4] == 'U') { + int v60 = (int16)READ_LE_UINT16(dataP + 5); Common::String file = Common::String::format("SOUND%d.WAV", v60); _vm->_soundManager.PLAY_SOUND(file); - v1 = 1; - } - if (*(a1 + 2) == 'V' && *(a1 + 3) == 'O' && *(a1 + 4) == 'F') { - _vm->_objectsManager.VERBE_OFF((int16)READ_LE_UINT16(a1 + 5), (int16)READ_LE_UINT16(a1 + 7)); - v1 = 1; - } - if (*(a1 + 2) == 'I' && *(a1 + 3) == 'I' && *(a1 + 4) == 'F') { - v1 = 3; + opcodeType = 1; + } else if (dataP[2] == 'V' && dataP[3] == 'O' && dataP[4] == 'F') { + _vm->_objectsManager.VERBE_OFF((int16)READ_LE_UINT16(dataP + 5), (int16)READ_LE_UINT16(dataP + 7)); + opcodeType = 1; + } else if (dataP[2] == 'I' && dataP[3] == 'I' && dataP[4] == 'F') { + opcodeType = 3; } - return v1; + return opcodeType; } @@ -2334,7 +2484,7 @@ LABEL_2: return 0; // Exiting game ++v3; - v4 = checkSignature(dataP + 20 * v3); + v4 = checkOpcode(dataP + 20 * v3); if (v3 > 400) error("Control if failed"); } while (v4 != 4); // EIF @@ -2346,7 +2496,7 @@ LABEL_2: return 0; // Exiting game ++v6; - if (checkSignature(dataP + 20 * v6) == 3) // IIF + if (checkOpcode(dataP + 20 * v6) == 3) // IIF v7 = true; if (v6 > 400) error("Control if failed "); @@ -2395,7 +2545,7 @@ LABEL_2: return (v20 + 1); } -int ScriptManager::checkSignature(const byte *dataP) { +int ScriptManager::checkOpcode(const byte *dataP) { if (dataP[0] != 'F' || dataP[1] != 'C') { return 0; } @@ -2403,23 +2553,23 @@ int ScriptManager::checkSignature(const byte *dataP) { int result = 0; if ((dataP[2] == 'A' && dataP[3] == 'N' && dataP[4] == 'I') || - (dataP[2] == 'B' && dataP[3] == 'C' && dataP[4] == 'A') || + (dataP[2] == 'B' && dataP[3] == 'C' && dataP[4] == 'A') || (dataP[2] == 'B' && dataP[3] == 'O' && dataP[4] == 'B') || (dataP[2] == 'B' && dataP[3] == 'O' && dataP[4] == 'F') || - (dataP[2] == 'B' && dataP[3] == 'O' && dataP[4] == 'S') || - (dataP[2] == 'M' && dataP[3] == 'U' && dataP[4] == 'S') || - (dataP[2] == 'O' && dataP[3] == 'B' && dataP[4] == 'M') || - (dataP[2] == 'O' && dataP[3] == 'B' && dataP[4] == 'P') || + (dataP[2] == 'B' && dataP[3] == 'O' && dataP[4] == 'S') || + (dataP[2] == 'M' && dataP[3] == 'U' && dataP[4] == 'S') || + (dataP[2] == 'O' && dataP[3] == 'B' && dataP[4] == 'M') || + (dataP[2] == 'O' && dataP[3] == 'B' && dataP[4] == 'P') || (dataP[2] == 'P' && dataP[3] == 'E' && dataP[4] == 'R') || (dataP[2] == 'S' && dataP[3] == 'O' && dataP[4] == 'U') || - (dataP[2] == 'S' && dataP[3] == 'P' && dataP[4] == 'E') || - (dataP[2] == 'T' && dataP[3] == 'X' && dataP[4] == 'T') || + (dataP[2] == 'S' && dataP[3] == 'P' && dataP[4] == 'E') || + (dataP[2] == 'T' && dataP[3] == 'X' && dataP[4] == 'T') || (dataP[2] == 'V' && dataP[3] == 'A' && dataP[4] == 'L') || - (dataP[2] == 'V' && dataP[3] == 'O' && dataP[4] == 'F') || + (dataP[2] == 'V' && dataP[3] == 'O' && dataP[4] == 'F') || (dataP[2] == 'V' && dataP[3] == 'O' && dataP[4] == 'N') || - (dataP[2] == 'Z' && dataP[3] == 'C' && dataP[4] == 'H') || - (dataP[2] == 'Z' && dataP[3] == 'O' && dataP[4] == 'F') || - (dataP[2] == 'Z' && dataP[3] == 'O' && dataP[4] == 'N')) + (dataP[2] == 'Z' && dataP[3] == 'C' && dataP[4] == 'H') || + (dataP[2] == 'Z' && dataP[3] == 'O' && dataP[4] == 'F') || + (dataP[2] == 'Z' && dataP[3] == 'O' && dataP[4] == 'N')) result = 1; if (dataP[2] == 'G' && dataP[3] == 'O' && dataP[4] == 'T') diff --git a/engines/hopkins/script.h b/engines/hopkins/script.h index 9bb9c3e1fa..f37baffdac 100644 --- a/engines/hopkins/script.h +++ b/engines/hopkins/script.h @@ -39,8 +39,8 @@ public: ScriptManager(); void setParent(HopkinsEngine *vm); - int Traduction(byte *a1); - int checkSignature(const byte *dataP); + int handleOpcode(byte *dataP); + int checkOpcode(const byte *dataP); int handleGoto(const byte *dataP); int handleIf(const byte *dataP, int a2); }; diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp index add8ecface..4d6c880b7f 100644 --- a/engines/hopkins/talk.cpp +++ b/engines/hopkins/talk.cpp @@ -1004,7 +1004,7 @@ LABEL_2: loopCond = false; v13 = 1; do { - v10 = _vm->_scriptManager.Traduction(ptr + 20 * v13); + v10 = _vm->_scriptManager.handleOpcode(ptr + 20 * v13); if (_vm->shouldQuit()) return; |