aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/inter_v2.cpp
diff options
context:
space:
mode:
authorSven Hesse2007-01-23 19:40:28 +0000
committerSven Hesse2007-01-23 19:40:28 +0000
commita8c6b02a9c77364ed83159082f94bdd9dcd54547 (patch)
treedf44d74623cb0e38fad9adcce0eb993f0e4627f8 /engines/gob/inter_v2.cpp
parentac6bb86c96a82a9a7e3b9fdc409228752c7af559 (diff)
downloadscummvm-rg350-a8c6b02a9c77364ed83159082f94bdd9dcd54547.tar.gz
scummvm-rg350-a8c6b02a9c77364ed83159082f94bdd9dcd54547.tar.bz2
scummvm-rg350-a8c6b02a9c77364ed83159082f94bdd9dcd54547.zip
Added support for Infogrames/RobHubbard2 (amiga) music
svn-id: r25160
Diffstat (limited to 'engines/gob/inter_v2.cpp')
-rw-r--r--engines/gob/inter_v2.cpp38
1 files changed, 33 insertions, 5 deletions
diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp
index 3da95c0bcd..f0389dc201 100644
--- a/engines/gob/inter_v2.cpp
+++ b/engines/gob/inter_v2.cpp
@@ -1600,9 +1600,9 @@ bool Inter_v2::o2_playSound(char &cmdCount, int16 &counter, int16 &retFlag) {
}
// loc_E2F3
if (_vm->_game->_soundTypes[index] & 8) {
- _vm->_music->loadFromMemory((byte *) _vm->_game->_soundSamples[index], index);
- _vm->_music->setRepeating(repCount - 1);
- _vm->_music->startPlay();
+ _vm->_adlib->load((byte *) _vm->_game->_soundSamples[index], index);
+ _vm->_adlib->setRepeating(repCount - 1);
+ _vm->_adlib->startPlay();
} else {
_vm->_snd->stopSound(0);
_vm->_snd->playSample(_vm->_game->_soundSamples[index], repCount, frequency);
@@ -1613,11 +1613,33 @@ bool Inter_v2::o2_playSound(char &cmdCount, int16 &counter, int16 &retFlag) {
bool Inter_v2::o2_goblinFunc(char &cmdCount, int16 &counter, int16 &retFlag) {
int16 cmd;
+ char fileName[20];
cmd = load16();
_vm->_global->_inter_execPtr += 2;
- if (cmd == 100) {
+ switch (cmd) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 11:
+ case 13:
+ load16();
+ break;
+
+ case 10:
+ strcpy(fileName, GET_VAR_STR(load16()));
+ strcat(fileName, ".DUM");
+ if (!_vm->_infogrames) {
+ _vm->_infogrames = new Infogrames(_vm, true);
+ _vm->_infogrames->loadInstruments("i1.ins");
+ }
+ _vm->_infogrames->load(fileName);
+ _vm->_infogrames->startPlay();
+ break;
+
+ case 100:
_vm->_goblin->_word_2F9C0 = VAR(load16());
_vm->_goblin->_word_2F9BE = VAR(load16());
_vm->_goblin->_dword_2F9B6 = load16();
@@ -1625,10 +1647,16 @@ bool Inter_v2::o2_goblinFunc(char &cmdCount, int16 &counter, int16 &retFlag) {
_vm->_goblin->_word_2F9BC = VAR(load16());
_vm->_goblin->_word_2F9BA = VAR(load16());
_vm->_goblin->sub_19BD3();
- } else if (cmd != 101) {
+ break;
+
+ case 101:
+ break;
+
+ default:
_vm->_global->_inter_execPtr -= 2;
cmd = load16();
_vm->_global->_inter_execPtr += cmd << 1;
+ break;
}
return false;