aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/script_v2.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2008-02-18 23:04:37 +0000
committerFlorian Kagerer2008-02-18 23:04:37 +0000
commitbcdfe6ade076dc04590a6a8f57c9cdc70f9f13c0 (patch)
tree67f2c03c80ece5eb0ee6311a89b1bfd1555c8a1a /engines/kyra/script_v2.cpp
parentab40f56f478f09aab308670eecdb234380f55512 (diff)
downloadscummvm-rg350-bcdfe6ade076dc04590a6a8f57c9cdc70f9f13c0.tar.gz
scummvm-rg350-bcdfe6ade076dc04590a6a8f57c9cdc70f9f13c0.tar.bz2
scummvm-rg350-bcdfe6ade076dc04590a6a8f57c9cdc70f9f13c0.zip
some more opcodes (the fly tree is now operational) and some bug fixes
svn-id: r30903
Diffstat (limited to 'engines/kyra/script_v2.cpp')
-rw-r--r--engines/kyra/script_v2.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/engines/kyra/script_v2.cpp b/engines/kyra/script_v2.cpp
index 6f7d5a91f9..2df37121b9 100644
--- a/engines/kyra/script_v2.cpp
+++ b/engines/kyra/script_v2.cpp
@@ -680,6 +680,18 @@ int KyraEngine_v2::o2_defineRoom(ScriptState *script) {
return 0;
}
+int KyraEngine_v2::o2_setCountDown(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_setCountDown(%p) (%d)", (const void *)script, stackPos(0));
+ _scriptCountDown = _system->getMillis() + stackPos(0) * _tickLength;
+ return 0;
+}
+
+int KyraEngine_v2::o2_getCountDown(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_getCountDown(%p)", (const void *)script);
+ uint32 time = _system->getMillis();
+ return (time > _scriptCountDown) ? 0 : _scriptCountDown - time;
+}
+
int KyraEngine_v2::o2_objectChat(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "o2_objectChat(%p) ('%s', %d)", (const void *)script, stackPosString(0), stackPos(1));
if (_flags.isTalkie)
@@ -711,6 +723,17 @@ int KyraEngine_v2::o2_setColorCodeFlag2(ScriptState *script) {
return 0;
}
+int KyraEngine_v2::o2_getColorCodeValue(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_getColorCodeValue(%p) (%d)", (const void *)script, stackPos(0));
+ return _colorCode[stackPos(0)];
+}
+
+int KyraEngine_v2::o2_setColorCodeValue(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_setColorCodeValue(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
+ _colorCode[stackPos(0)] = stackPos(1) & 0xff;
+ return stackPos(1) & 0xff;
+}
+
int KyraEngine_v2::o2_countItemInstances(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "o2_countItemInstances(%p) (%d)", (const void *)script, stackPos(0));
uint16 item = stackPos(0);
@@ -819,6 +842,11 @@ int KyraEngine_v2::o2_customChatFinish(ScriptState *script) {
return 0;
}
+int KyraEngine_v2::o2_getBoolFromStack(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_getBoolFromStack(%p) ()", (const void *)script);
+ return stackPos(0) ? 1 : 0;
+}
+
int KyraEngine_v2::o2_setVocHigh(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "o2_setVocHigh(%p) (%d)", (const void *)script, stackPos(0));
_vocHigh = stackPos(0);
@@ -910,3 +938,4 @@ int KyraEngine_v2::o2t_setShapeFlag(ScriptState *script) {
+