diff options
author | Tobias Gunkel | 2012-01-29 17:11:54 +0100 |
---|---|---|
committer | Tobias Gunkel | 2012-02-11 08:29:52 +0100 |
commit | 984c2a05e4e4ec643c1135c6b087f6e7faf1997f (patch) | |
tree | 64a11454410530323743d86cae3ae7e5ba1bba54 | |
parent | d4ddd2ca840fc91cd75cdb4545db30f2f0a78722 (diff) | |
download | scummvm-rg350-984c2a05e4e4ec643c1135c6b087f6e7faf1997f.tar.gz scummvm-rg350-984c2a05e4e4ec643c1135c6b087f6e7faf1997f.tar.bz2 scummvm-rg350-984c2a05e4e4ec643c1135c6b087f6e7faf1997f.zip |
SCUMM: replace o_beginOverride() with o2_beginOverride()
In contrast to the comment in o_beginOverride() VAR(VAR_OVERRIDE) is not set in the disassembly. In addition the cutscene stack-pointer is always 0 as this feature is not used in v0. This makes o_beginOverride() work the same way o2_beginOverride() and so it is not needed anymore.
Note that fetchScriptWord() was changed to ScummEngine::fetchScriptWord() in o2_beginOverride() as ScummEngine_v0::fetchScriptWord() only fetches a byte.
As we need two bytes here we have to use ScummEngine::fetchScriptWord().
-rw-r--r-- | engines/scumm/script_v0.cpp | 19 | ||||
-rw-r--r-- | engines/scumm/script_v2.cpp | 2 | ||||
-rw-r--r-- | engines/scumm/scumm_v0.h | 1 |
3 files changed, 2 insertions, 20 deletions
diff --git a/engines/scumm/script_v0.cpp b/engines/scumm/script_v0.cpp index 46052cdf49..a7187237f3 100644 --- a/engines/scumm/script_v0.cpp +++ b/engines/scumm/script_v0.cpp @@ -145,7 +145,7 @@ void ScummEngine_v0::setupOpcodes() { OPCODE(0x56, o_getActorMoving); OPCODE(0x57, o2_clearState08); /* 58 */ - OPCODE(0x58, o_beginOverride); + OPCODE(0x58, o2_beginOverride); OPCODE(0x59, o_stopCurrentScript); OPCODE(0x5a, o2_add); OPCODE(0x5b, o_getActorBitVar); @@ -952,23 +952,6 @@ void ScummEngine_v0::o_endCutscene() { } } -void ScummEngine_v0::o_beginOverride() { - const int idx = vm.cutSceneStackPointer; - assert(0 <= idx && idx < 5); - - vm.cutScenePtr[idx] = _scriptPointer - _scriptOrgPointer; - vm.cutSceneScript[idx] = _currentScript; - - // Skip the jump instruction following the override instruction - // (the jump is responsible for "skipping" cutscenes, and the reason - // why we record the current script position in vm.cutScenePtr). - fetchScriptByte(); - ScummEngine::fetchScriptWord(); - - // This is based on disassembly - VAR(VAR_OVERRIDE) = 0; -} - void ScummEngine_v0::o_setOwnerOf() { int obj, owner; diff --git a/engines/scumm/script_v2.cpp b/engines/scumm/script_v2.cpp index 2b2bad32a7..6857f8635b 100644 --- a/engines/scumm/script_v2.cpp +++ b/engines/scumm/script_v2.cpp @@ -1527,7 +1527,7 @@ void ScummEngine_v2::o2_beginOverride() { // Skip the jump instruction following the override instruction fetchScriptByte(); - fetchScriptWord(); + ScummEngine::fetchScriptWord(); } void ScummEngine_v2::o2_chainScript() { diff --git a/engines/scumm/scumm_v0.h b/engines/scumm/scumm_v0.h index 8b13569042..a5af34b1ff 100644 --- a/engines/scumm/scumm_v0.h +++ b/engines/scumm/scumm_v0.h @@ -153,7 +153,6 @@ protected: void o_unlockSound(); void o_cutscene(); void o_endCutscene(); - void o_beginOverride(); void o_setOwnerOf(); byte VAR_ACTIVE_OBJECT2; |