aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/script_v2.cpp
diff options
context:
space:
mode:
authorOystein Eftevaag2007-10-13 18:47:52 +0000
committerOystein Eftevaag2007-10-13 18:47:52 +0000
commit4f93e96d5ff321ad051f0cee9c6083fe85ad1686 (patch)
treebabb7327da4e35b703453a14a87c32f077815e8c /engines/kyra/script_v2.cpp
parent3f7b4e62ccb9ee97d75aecc773ff7a125903c4bd (diff)
downloadscummvm-rg350-4f93e96d5ff321ad051f0cee9c6083fe85ad1686.tar.gz
scummvm-rg350-4f93e96d5ff321ad051f0cee9c6083fe85ad1686.tar.bz2
scummvm-rg350-4f93e96d5ff321ad051f0cee9c6083fe85ad1686.zip
Implemented the o2_setCharacterAnimFrame opcode and made sure o2_delay does game updates during the delay
svn-id: r29208
Diffstat (limited to 'engines/kyra/script_v2.cpp')
-rw-r--r--engines/kyra/script_v2.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/kyra/script_v2.cpp b/engines/kyra/script_v2.cpp
index 5b45be410b..deea962690 100644
--- a/engines/kyra/script_v2.cpp
+++ b/engines/kyra/script_v2.cpp
@@ -90,6 +90,18 @@ int KyraEngine_v2::o2_setSceneComment(ScriptState *script) {
return 0;
}
+int KyraEngine_v2::o2_setCharacterAnimFrame(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_setCharacterAnimFrame(%p) (-, %d, %d)", (const void *)script, stackPos(1), stackPos(2));
+ int animFrame = stackPos(1);
+ int skipRefresh = stackPos(2);
+
+ _mainCharacter.animFrame = animFrame;
+ if (skipRefresh)
+ updateCharacterAnim(0);
+
+ return 0;
+}
+
int KyraEngine_v2::o2_trySceneChange(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "o2_trySceneChange(%p) (%d, %d, %d, %d)", (const void *)script,
stackPos(0), stackPos(1), stackPos(2), stackPos(3));
@@ -292,7 +304,7 @@ int KyraEngine_v2::o2_delay(ScriptState *script) {
//if (stackPos(1))
// sub_27100(stackPos(0) * _tickLength);
//else
- delay(stackPos(0) * _tickLength);
+ delay(stackPos(0) * _tickLength, true);
return 0;
}