diff options
author | Johannes Schickel | 2007-10-09 09:15:12 +0000 |
---|---|---|
committer | Johannes Schickel | 2007-10-09 09:15:12 +0000 |
commit | ca0161b76ad3f90e0fd340ecdfbeb75bee7db467 (patch) | |
tree | 4db7aeb3fcaa82e376c6c1c3647d4539518bdb62 | |
parent | 99efa084fe26a52fbcf1b9105eef0b39afe21924 (diff) | |
download | scummvm-rg350-ca0161b76ad3f90e0fd340ecdfbeb75bee7db467.tar.gz scummvm-rg350-ca0161b76ad3f90e0fd340ecdfbeb75bee7db467.tar.bz2 scummvm-rg350-ca0161b76ad3f90e0fd340ecdfbeb75bee7db467.zip |
HoF
- Implemented opcodes
-> o2_switchScene 0x51
-> o2_getShapeFlag1 0x52
svn-id: r29180
-rw-r--r-- | engines/kyra/kyra_v2.cpp | 4 | ||||
-rw-r--r-- | engines/kyra/kyra_v2.h | 2 | ||||
-rw-r--r-- | engines/kyra/script_v2.cpp | 16 |
3 files changed, 20 insertions, 2 deletions
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp index e39267f962..b67ac94a04 100644 --- a/engines/kyra/kyra_v2.cpp +++ b/engines/kyra/kyra_v2.cpp @@ -1460,8 +1460,8 @@ void KyraEngine_v2::setupOpcodeTable() { Opcode(o2_dummy), // 0x50 Opcode(o2_enterNewSceneEx), - OpcodeUnImpl(), - OpcodeUnImpl(), + Opcode(o2_switchScene), + Opcode(o2_getShapeFlag1), OpcodeUnImpl(), // 0x54 OpcodeUnImpl(), diff --git a/engines/kyra/kyra_v2.h b/engines/kyra/kyra_v2.h index e7d3f6c2d0..221c0b89c5 100644 --- a/engines/kyra/kyra_v2.h +++ b/engines/kyra/kyra_v2.h @@ -529,6 +529,8 @@ protected: int o2_update(ScriptState *script); int o2_fadeScenePal(ScriptState *script); int o2_enterNewSceneEx(ScriptState *script); + int o2_switchScene(ScriptState *script); + int o2_getShapeFlag1(ScriptState *script); int o2_setLayerFlag(ScriptState *script); int o2_setZanthiaPos(ScriptState *script); int o2_getRand(ScriptState *script); diff --git a/engines/kyra/script_v2.cpp b/engines/kyra/script_v2.cpp index 9794844cc8..13b7b6ae6d 100644 --- a/engines/kyra/script_v2.cpp +++ b/engines/kyra/script_v2.cpp @@ -403,6 +403,22 @@ int KyraEngine_v2::o2_enterNewSceneEx(ScriptState *script) { return 0; } +int KyraEngine_v2::o2_switchScene(ScriptState *script) { + debugC(3, kDebugLevelScriptFuncs, "o2_switchScene(%p) (%d)", (const void *)script, stackPos(0)); + setGameFlag(0x1EF); + _mainCharX = _mainCharacter.x1; + _mainCharY = _mainCharacter.y1; + _noScriptEnter = 0; + enterNewScene(stackPos(0), _mainCharacter.facing, 0, 0, 0); + _noScriptEnter = 1; + return 0; +} + +int KyraEngine_v2::o2_getShapeFlag1(ScriptState *script) { + debugC(3, kDebugLevelScriptFuncs, "o2_getShapeFlag1(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1)); + return _screen->getShapeFlag1(stackPos(0), stackPos(1)); +} + int KyraEngine_v2::o2_setLayerFlag(ScriptState *script) { debugC(3, kDebugLevelScriptFuncs, "o2_setLayerFlag(%p) (%d)", (const void *)script, stackPos(0)); int layer = stackPos(0); |