aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2012-11-11 18:52:43 +0100
committerStrangerke2012-11-11 18:52:43 +0100
commit678f13397752e93494b2d1ca069beadf0d688c64 (patch)
treef14b81f88c184242b4fe2a9bcb712548bf6a0e70
parente0f06d7f96e49b60e16e829099bd2b8b9a748da9 (diff)
downloadscummvm-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.cpp2
-rw-r--r--engines/hopkins/anim.h2
-rw-r--r--engines/hopkins/hopkins.cpp41
-rw-r--r--engines/hopkins/objects.cpp2
-rw-r--r--engines/hopkins/script.cpp28
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;