aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Kiehl2003-05-24 21:52:35 +0000
committerOliver Kiehl2003-05-24 21:52:35 +0000
commit1457f95ec8c8151f4e2a8cbd1d4ef64b42fc01b6 (patch)
tree1110fd912b76d25e71276d505c7b9760fc96f076
parent24d9eb4ddb55c2876583f2e66b1c35234c59deea (diff)
downloadscummvm-rg350-1457f95ec8c8151f4e2a8cbd1d4ef64b42fc01b6.tar.gz
scummvm-rg350-1457f95ec8c8151f4e2a8cbd1d4ef64b42fc01b6.tar.bz2
scummvm-rg350-1457f95ec8c8151f4e2a8cbd1d4ef64b42fc01b6.zip
add some more functions
svn-id: r7906
-rw-r--r--sky/logic.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/sky/logic.cpp b/sky/logic.cpp
index a0b4a82843..c27d54309f 100644
--- a/sky/logic.cpp
+++ b/sky/logic.cpp
@@ -1352,8 +1352,10 @@ uint32 SkyLogic::fnWeWait(uint32 a, uint32 b, uint32 c) {
error("Stub: fnWeWait");
}
-uint32 SkyLogic::fnSendSync(uint32 a, uint32 b, uint32 c) {
- error("Stub: fnSendSync");
+uint32 SkyLogic::fnSendSync(uint32 mega, uint32 sync, uint32 c) {
+ Compact *cpt = SkyState::fetchCompact(mega);
+ cpt->sync = (uint16)(sync & 0xffff);
+ return 0;
}
uint32 SkyLogic::fnSendFastSync(uint32 a, uint32 b, uint32 c) {
@@ -1467,8 +1469,14 @@ uint32 SkyLogic::fnSimpleMod(uint32 a, uint32 b, uint32 c) {
error("Stub: fnSimpleMod");
}
-uint32 SkyLogic::fnRunFrames(uint32 a, uint32 b, uint32 c) {
- error("Stub: fnRunFrames");
+uint32 SkyLogic::fnRunFrames(uint32 sequenceNo, uint32 b, uint32 c) {
+ uint16 *sequence = (uint16 *)SkyState::fetchCompact(sequenceNo);
+
+ _compact->logic = L_FRAMES;
+ _compact->offset = *sequence++;
+ _compact->grafixProg = sequence;
+ simpleAnim();
+ return 0;
}
uint32 SkyLogic::fnAwaitSync(uint32 a, uint32 b, uint32 c) {