[Scummvm-cvs-logs] CVS: scummvm/sky logic.cpp,1.29,1.30
Oliver Kiehl
olki at users.sourceforge.net
Sat May 24 15:23:02 CEST 2003
Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv1109
Modified Files:
logic.cpp
Log Message:
and some more functions
Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/logic.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- logic.cpp 24 May 2003 21:52:35 -0000 1.29
+++ logic.cpp 24 May 2003 22:22:23 -0000 1.30
@@ -406,7 +406,15 @@
}
void SkyLogic::listen() {
- error("Stub: SkyLogic::listen");
+ // Stay in this mode until id in c_get_to_flag leaves l_talk mode
+
+ Compact *cpt = SkyState::fetchCompact(_compact->flag);
+
+ if (cpt->logic == L_TALK)
+ return;
+
+ _compact->logic = L_SCRIPT;
+ logicScript();
}
void SkyLogic::stopped() {
@@ -418,7 +426,12 @@
}
void SkyLogic::frames() {
- error("Stub: SkyLogic::frames");
+ if (!_compact->sync)
+ simpleAnim();
+
+ _compact->downFlag = 0; // return 'ok' to script
+ _compact->logic = L_SCRIPT;
+ logicScript();
}
void SkyLogic::pause() {
@@ -1220,8 +1233,10 @@
return 1; // keep going
}
-uint32 SkyLogic::fnSetAlternate(uint32 a, uint32 b, uint32 c) {
- error("Stub: fnSetAlternate");
+uint32 SkyLogic::fnSetAlternate(uint32 scr, uint32 b, uint32 c) {
+ _compact->extCompact->alt = scr;
+ _compact->logic = L_ALT;
+ return 0;
}
uint32 SkyLogic::fnAltSetAlternate(uint32 a, uint32 b, uint32 c) {
@@ -1268,7 +1283,8 @@
}
uint32 SkyLogic::fnSpeakMe(uint32 a, uint32 b, uint32 c) {
- error("Stub: fnSpeakMe");
+ warning("Stub: fnSpeakMe");
+ return 0;
}
uint32 SkyLogic::fnSpeakMeDir(uint32 a, uint32 b, uint32 c) {
@@ -1276,8 +1292,10 @@
return 0;
}
-uint32 SkyLogic::fnSpeakWait(uint32 a, uint32 b, uint32 c) {
- error("Stub: fnSpeakWait");
+uint32 SkyLogic::fnSpeakWait(uint32 id, uint32 message, uint32 animation) {
+ _compact->flag = id;
+ _compact->logic = L_LISTEN;
+ return fnSpeakMe(id, message, animation);
}
uint32 SkyLogic::fnSpeakWaitDir(uint32 a, uint32 b, uint32 c) {
@@ -1465,8 +1483,15 @@
return 0; // drop from script
}
-uint32 SkyLogic::fnSimpleMod(uint32 a, uint32 b, uint32 c) {
- error("Stub: fnSimpleMod");
+uint32 SkyLogic::fnSimpleMod(uint32 animSeqNo, uint32 b, uint32 c) {
+ uint16 *animSeq = (uint16 *)SkyState::fetchCompact(animSeqNo);
+
+ _compact->offset = *animSeq++;
+ assert(*animSeq != 0);
+ _compact->grafixProg = animSeq;
+ _compact->logic = L_SIMPLE_MOD;
+ simpleAnim();
+ return 0;
}
uint32 SkyLogic::fnRunFrames(uint32 sequenceNo, uint32 b, uint32 c) {
More information about the Scummvm-git-logs
mailing list