diff options
author | Travis Howell | 2004-09-11 00:49:22 +0000 |
---|---|---|
committer | Travis Howell | 2004-09-11 00:49:22 +0000 |
commit | 5e8ccb315f0f0144cbfa691c36a7fd0f86240e56 (patch) | |
tree | 92fb586044aeb3630e820c685cb96f73bfa900d3 | |
parent | 28c0ea02a33c1fc91f9b17c60c004d155194a6a7 (diff) | |
download | scummvm-rg350-5e8ccb315f0f0144cbfa691c36a7fd0f86240e56.tar.gz scummvm-rg350-5e8ccb315f0f0144cbfa691c36a7fd0f86240e56.tar.bz2 scummvm-rg350-5e8ccb315f0f0144cbfa691c36a7fd0f86240e56.zip |
Add stub
svn-id: r15000
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_v7he.cpp | 3 | ||||
-rw-r--r-- | scumm/script_v80he.cpp | 46 | ||||
-rw-r--r-- | scumm/script_v90he.cpp | 2 |
4 files changed, 46 insertions, 6 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index e2253e3af7..81c3c3f885 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -788,6 +788,7 @@ protected: /* HE version 80 script opcodes */ + void o80_unknown45(); void o80_unknown49(); void o80_unknown4D(); void o80_cursorCommand(); diff --git a/scumm/script_v7he.cpp b/scumm/script_v7he.cpp index 53a9050c8b..3f6a993ae4 100644 --- a/scumm/script_v7he.cpp +++ b/scumm/script_v7he.cpp @@ -506,6 +506,9 @@ void ScummEngine_v7he::o7_startSound() { case 23: debug(1,"o7_startSound: case 29 (%d, %d, %d)", pop(), pop(), pop()); break; + case 56: + _heSndLoop |= 2; + break; case 164: _heSndLoop |= 2; break; diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp index 98d2cb8b65..99de3ed62f 100644 --- a/scumm/script_v80he.cpp +++ b/scumm/script_v80he.cpp @@ -131,7 +131,7 @@ void ScummEngine_v80he::setupOpcodes() { OPCODE(o6_writeWordVar), /* 44 */ OPCODE(o6_invalid), - OPCODE(o6_invalid), + OPCODE(o80_unknown45), OPCODE(o6_invalid), OPCODE(o72_wordArrayWrite), /* 48 */ @@ -378,12 +378,48 @@ const char *ScummEngine_v80he::getOpcodeDesc(byte i) { return _opcodesV80he[i].desc; } +void ScummEngine_v80he::o80_unknown45() { + // Sound related + byte subOp = fetchScriptByte(); + + switch (subOp) { + case 27: + pop(); + break; + case 217: + break; + case 232: + _heSndSoundId = pop(); + break; + case 255: + //Case doesn't match disasm. + _sound->addSoundToQueue(_heSndSoundId); + break; + default: + warning("o80_unknown45: default type %d", subOp); + } + debug(1,"o80_unknown45 stub (%d)",subOp); +} + void ScummEngine_v80he::o80_unknown49() { - int a = pop(); - int b = pop(); + // Sound related + int result = 0; + int subOp = pop(); + int snd = pop(); + + switch (subOp) { + case 0: + result = !_sound->isSoundRunning(snd); + break; + case 1: + result = _sound->isSoundRunning(snd); + break; + default: + warning("o80_unknown49: default type %d", subOp); + } - push (0); - debug(1,"o80_unknown49 stub (%d, %d)", b, a); + push (result); + debug(1,"o80_unknown49 stub (%d, %d)", subOp, snd); } void ScummEngine_v80he::o80_unknown4D() { diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 6f67d2ea29..f2f623c432 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -131,7 +131,7 @@ void ScummEngine_v90he::setupOpcodes() { OPCODE(o6_writeWordVar), /* 44 */ OPCODE(o6_invalid), - OPCODE(o6_invalid), + OPCODE(o80_unknown45), OPCODE(o6_invalid), OPCODE(o72_wordArrayWrite), /* 48 */ |