aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/script_v3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/script_v3.cpp')
-rw-r--r--engines/kyra/script_v3.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/engines/kyra/script_v3.cpp b/engines/kyra/script_v3.cpp
index f74a9f2417..b5261f16a1 100644
--- a/engines/kyra/script_v3.cpp
+++ b/engines/kyra/script_v3.cpp
@@ -63,7 +63,7 @@ int KyraEngine_v3::o3_defineObject(ScriptState *script) {
obj.x = stackPos(4);
obj.y = stackPos(5);
obj.color = stackPos(6);
- obj.unk14 = stackPos(7);
+ obj.sceneId = stackPos(7);
return 0;
}
@@ -675,6 +675,16 @@ int KyraEngine_v3::o3_defineRoomEntrance(ScriptState *script) {
return 0;
}
+int KyraEngine_v3::o3_runTemporaryScript(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_runTemporaryScript(%p) ('%s', %d, %d, %d)", (const void *)script,
+ stackPosString(0), stackPos(1), stackPos(2), stackPos(3));
+ const int newShapes = stackPos(1);
+ const int unloadShapes = stackPos(2);
+ const int allowSkip = stackPos(3);
+ runTemporaryScript(stackPosString(0), allowSkip, (unloadShapes != 0) ? 1 : 0, newShapes, unloadShapes);
+ return 0;
+}
+
int KyraEngine_v3::o3_setSpecialSceneScriptRunTime(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_setSpecialSceneScriptRunTime(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
assert(stackPos(0) >= 0 && stackPos(0) < 10);
@@ -1120,7 +1130,7 @@ void KyraEngine_v3::setupOpcodeTable() {
// 0x6c
Opcode(o3_dummy);
Opcode(o3_defineRoomEntrance);
- OpcodeUnImpl();
+ Opcode(o3_runTemporaryScript);
Opcode(o3_setSpecialSceneScriptRunTime);
// 0x70
Opcode(o3_defineSceneAnim);