diff options
author | Strangerke | 2012-11-11 18:52:43 +0100 |
---|---|---|
committer | Strangerke | 2012-11-11 18:52:43 +0100 |
commit | 678f13397752e93494b2d1ca069beadf0d688c64 (patch) | |
tree | f14b81f88c184242b4fe2a9bcb712548bf6a0e70 | |
parent | e0f06d7f96e49b60e16e829099bd2b8b9a748da9 (diff) | |
download | scummvm-rg350-678f13397752e93494b2d1ca069beadf0d688c64.tar.gz scummvm-rg350-678f13397752e93494b2d1ca069beadf0d688c64.tar.bz2 scummvm-rg350-678f13397752e93494b2d1ca069beadf0d688c64.zip |
HOPKINS: Implement BASED(), remove a parameter to PLAY_SEQ()
-rw-r--r-- | engines/hopkins/anim.cpp | 2 | ||||
-rw-r--r-- | engines/hopkins/anim.h | 2 | ||||
-rw-r--r-- | engines/hopkins/hopkins.cpp | 41 | ||||
-rw-r--r-- | engines/hopkins/objects.cpp | 2 | ||||
-rw-r--r-- | engines/hopkins/script.cpp | 28 |
5 files changed, 57 insertions, 18 deletions
diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp index 5102a883a6..0296b9ec3b 100644 --- a/engines/hopkins/anim.cpp +++ b/engines/hopkins/anim.cpp @@ -957,7 +957,7 @@ void AnimationManager::RECHERCHE_ANIM(const byte *data, int animIndex, int count } while (v21 <= count && v3 != 1); } -void AnimationManager::PLAY_SEQ(int a1, const Common::String &a2, uint32 a3, uint32 a4, uint32 a5) { +void AnimationManager::PLAY_SEQ(const Common::String &a2, uint32 a3, uint32 a4, uint32 a5) { int v5; int v7; byte *ptr = NULL; diff --git a/engines/hopkins/anim.h b/engines/hopkins/anim.h index 339355ef75..66afcfcc5e 100644 --- a/engines/hopkins/anim.h +++ b/engines/hopkins/anim.h @@ -50,7 +50,7 @@ public: void CHARGE_ANIM(const Common::String &animName); void CLEAR_ANIM(); void RECHERCHE_ANIM(const byte *data, int animIndex, int count); - void PLAY_SEQ(int a1, const Common::String &a2, uint32 a3, uint32 a4, uint32 a5); + void PLAY_SEQ(const Common::String &a2, uint32 a3, uint32 a4, uint32 a5); void PLAY_SEQ2(const Common::String &a1, uint32 a2, uint32 a3, uint32 a4); }; diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp index 378c5026f0..a95d7b3523 100644 --- a/engines/hopkins/hopkins.cpp +++ b/engines/hopkins/hopkins.cpp @@ -1931,7 +1931,46 @@ void HopkinsEngine::BASE() { } void HopkinsEngine::BASED() { - warning("STUB - BASED()"); + warning("BASED()"); + + _graphicsManager.DD_Lock(); + _graphicsManager.Cls_Video(); + _graphicsManager.DD_Unlock(); + _graphicsManager.Cls_Pal(); + _animationManager.NO_SEQ = false; + _soundManager.WSOUND(26); + _globals.iRegul = 1; + _globals.DESACTIVE_INVENT = true; + _animationManager.NO_COUL = true; + _graphicsManager.FADE_LINUX = 2; + _animationManager.PLAY_SEQ("abase.seq", 50, 15, 50); + _animationManager.NO_COUL = false; + _graphicsManager.LOAD_IMAGE("IM92"); + _animationManager.CHARGE_ANIM("ANIM92"); + _graphicsManager.VISU_ALL(); + _objectsManager.INILINK("IM92"); + _globals.BPP_NOAFF = true; + + int cpt = 0; + do { + _eventsManager.VBL(); + ++cpt; + } while (cpt <= 4); + + _globals.BPP_NOAFF = false; + _graphicsManager.FADE_INW(); + _globals.CACHE_ON(); + + do + _eventsManager.VBL(); + while (_objectsManager.BOBPOSI(8) != 22); + + _graphicsManager.FADE_OUTW(); + _graphicsManager.FIN_VISU(); + _globals.RESET_CACHE(); + _globals.DESACTIVE_INVENT = false; + _globals.SORTIE = 93; + _globals.iRegul = 0; } void HopkinsEngine::JOUE_FIN() { diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp index e2f0685d79..dd1f9cdd1d 100644 --- a/engines/hopkins/objects.cpp +++ b/engines/hopkins/objects.cpp @@ -5615,7 +5615,7 @@ void ObjectsManager::PERSONAGE(const Common::String &s1, const Common::String &s _vm->_globals.BPP_NOAFF = false; _vm->_graphicsManager.FADE_INW(); if (_vm->_globals.ECRAN == 61) { - _vm->_animationManager.PLAY_SEQ(0, "OUVRE.SEQ", 10, 4, 10); + _vm->_animationManager.PLAY_SEQ("OUVRE.SEQ", 10, 4, 10); BOBANIM_OFF(3); _vm->_globals.NOT_VERIF = 1; g_old_x = XSPR(0); diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 6b0aabf26c..ba0d81b8bf 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -857,7 +857,7 @@ LABEL_1141: _vm->_soundManager.CHARGE_SAMPLE(2, "SOUND42.WAV"); _vm->_soundManager.CHARGE_SAMPLE(3, "SOUND41.WAV"); _vm->_soundManager.SPECIAL_SOUND = 17; - _vm->_animationManager.PLAY_SEQ(v1, "grenade.SEQ", 1, 32, 100); + _vm->_animationManager.PLAY_SEQ("grenade.SEQ", 1, 32, 100); _vm->_soundManager.SPECIAL_SOUND = 0; _vm->_graphicsManager.FADE_LINUX = 2; _vm->_animationManager.PLAY_ANM("CREVE17.ANM", 24, 24, 200); @@ -1291,11 +1291,11 @@ LABEL_1141: if (v76 == 90) { _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals.SAUVEGARDE->data[svField186]) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB5A.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB5A.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 0); } if (_vm->_globals.SAUVEGARDE->data[svField186] == 1) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB5C.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB5C.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 329, 87, 2); } @@ -1303,11 +1303,11 @@ LABEL_1141: if (v76 == 91) { _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals.SAUVEGARDE->data[svField186]) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB5B.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB5B.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 5); } if (_vm->_globals.SAUVEGARDE->data[svField186] == 1) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB5D.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB5D.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 5); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 283, 160, 6); } @@ -1315,11 +1315,11 @@ LABEL_1141: if (v76 == 92) { _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals.SAUVEGARDE->data[svField184]) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB6A.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB6A.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 0); } if (_vm->_globals.SAUVEGARDE->data[svField184] == 1) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB6C.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB6C.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 293, 139, 3); } @@ -1327,11 +1327,11 @@ LABEL_1141: if (v76 == 93) { _vm->_soundManager.PLAY_SOUND("SOUND52.WAV"); if (!_vm->_globals.SAUVEGARDE->data[svField184]) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB6B.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB6B.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 5); } if (_vm->_globals.SAUVEGARDE->data[svField184] == 1) { - _vm->_animationManager.PLAY_SEQ(v1, "CIB6D.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("CIB6D.SEQ", 1, 12, 1); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 155, 29, 5); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 283, 161, 8); } @@ -1562,7 +1562,7 @@ LABEL_1141: _vm->_animationManager.NO_SEQ = true; _vm->_globals.NO_VISU = false; _vm->_soundManager.SPECIAL_SOUND = 211; - _vm->_animationManager.PLAY_SEQ(v1, "SECRET2.SEQ", 1, 12, 100); + _vm->_animationManager.PLAY_SEQ("SECRET2.SEQ", 1, 12, 100); _vm->_soundManager.SPECIAL_SOUND = 0; _vm->_animationManager.NO_SEQ = false; _vm->_graphicsManager.NOFADE = true; @@ -1587,7 +1587,7 @@ LABEL_1141: if (_vm->_globals.SAUVEGARDE->data[svField6] != _vm->_globals.SAUVEGARDE->data[svField401]) { _vm->_soundManager.SPECIAL_SOUND = 208; _vm->_eventsManager.NOESC = true; - _vm->_animationManager.PLAY_SEQ(v1, "SORT.SEQ", 10, 4, 10); + _vm->_animationManager.PLAY_SEQ("SORT.SEQ", 10, 4, 10); _vm->_eventsManager.NOESC = false; _vm->_soundManager.SPECIAL_SOUND = 0; } @@ -1764,7 +1764,7 @@ LABEL_1141: } if (v76 == 229) { _vm->_soundManager.SPECIAL_SOUND = 229; - _vm->_animationManager.PLAY_SEQ(v1, "MUR.SEQ", 1, 12, 1); + _vm->_animationManager.PLAY_SEQ("MUR.SEQ", 1, 12, 1); _vm->_soundManager.SPECIAL_SOUND = 0; _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 340, 157, 2); } @@ -2221,7 +2221,7 @@ LABEL_1141: _vm->_soundManager.PLAY_SOUND("SOUND88.WAV"); if (_vm->_globals.SAUVEGARDE->data[svField341] == 2) { _vm->_animationManager.NO_SEQ = true; - _vm->_animationManager.PLAY_SEQ(v1, "RESU.SEQ", 2, 24, 2); + _vm->_animationManager.PLAY_SEQ("RESU.SEQ", 2, 24, 2); _vm->_animationManager.NO_SEQ = false; } else { _vm->_objectsManager.OPTI_ONE(7, 0, 14, 0); @@ -2230,7 +2230,7 @@ LABEL_1141: if (v76 == 242) { _vm->_soundManager.PLAY_SOUND("SOUND87.WAV"); _vm->_animationManager.NO_SEQ = true; - _vm->_animationManager.PLAY_SEQ(v1, "RESUF.SEQ", 1, 24, 1); + _vm->_animationManager.PLAY_SEQ("RESUF.SEQ", 1, 24, 1); _vm->_animationManager.NO_SEQ = false; v53 = &_vm->_globals.SAUVEGARDE->field380; v53->field0 = 404; |