diff options
-rw-r--r-- | scumm/akos.cpp | 7 | ||||
-rw-r--r-- | scumm/script_v2.cpp | 8 |
2 files changed, 10 insertions, 5 deletions
diff --git a/scumm/akos.cpp b/scumm/akos.cpp index 6d7653bba0..98731c6b44 100644 --- a/scumm/akos.cpp +++ b/scumm/akos.cpp @@ -1217,7 +1217,10 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const a->flip = GW(2) != 0; continue; case AKC_CmdQue3: - tmp = GB(2) - 1; + if (_features & GF_HUMONGOUS) + tmp = GB(2); + else + tmp = GB(2) - 1; if ((uint) tmp < 8) akos_queCommand(3, a, a->sound[tmp], 0); continue; @@ -1240,6 +1243,8 @@ bool ScummEngine::akos_increaseAnim(Actor *a, int chan, const byte *aksq, const akos_queCommand(5, a, GB(2), 0); continue; case AKC_SoundStuff: + if (_features & GF_HUMONGOUS) + continue; tmp = GB(2) - 1; if (tmp >= 8) continue; diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index df4277dec4..f0cf8edede 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -771,6 +771,10 @@ void ScummEngine_v2::o2_resourceRoutines() { if ((opcode & 0x0f) == 0 || type == rtNumTypes) return; + // HACK V2 Maniac Mansion tries to load an invalid sound resource in demo script. + if (_gameId == GID_MANIAC && _version == 2 && vm.slot[_currentScript].number == 9 && type == rtSound && resid == 1) + return; + if ((opcode & 0x0f) == 1) { ensureResourceLoaded(type, resid); } else { @@ -1092,10 +1096,6 @@ void ScummEngine_v2::o2_putActor() { a->putActor(x, y, a->room); } -#ifndef BYPASS_COPY_PROT -#define BYPASS_COPY_PROT -#endif - void ScummEngine_v2::o2_startScript() { int script = getVarOrDirectByte(PARAM_1); |