[Scummvm-cvs-logs] scummvm master -> 2657322f87c6dbf34705838430e9d8373c3f0877
sev-
sev at scummvm.org
Thu Apr 3 22:24:18 CEST 2014
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2657322f87 FULLPIPE: Implement sceneHandler29_winArcade()
Commit: 2657322f87c6dbf34705838430e9d8373c3f0877
https://github.com/scummvm/scummvm/commit/2657322f87c6dbf34705838430e9d8373c3f0877
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-03T23:23:29+03:00
Commit Message:
FULLPIPE: Implement sceneHandler29_winArcade()
Changed paths:
engines/fullpipe/scenes/scene29.cpp
diff --git a/engines/fullpipe/scenes/scene29.cpp b/engines/fullpipe/scenes/scene29.cpp
index e02a34e..b8747aa 100644
--- a/engines/fullpipe/scenes/scene29.cpp
+++ b/engines/fullpipe/scenes/scene29.cpp
@@ -172,7 +172,94 @@ void scene29_initScene(Scene *sc) {
}
void sceneHandler29_winArcade() {
- warning("STUB: sceneHandler29_winArcade()");
+ if (g_vars->scene29_shooter2->_flags & 4) {
+ g_vars->scene29_var13 = 0;
+
+ g_vars->scene29_shooter1->changeStatics2(ST_STR1_STAND);
+ g_vars->scene29_shooter2->changeStatics2(ST_STR2_STAND);
+
+ g_vars->scene29_shooter2->_flags &= 0xFFFB;
+
+ StaticANIObject *ani;
+ Ball *newball, *ball, *oldp0;
+
+ while (g_vars->scene29_var08.numBalls) {
+ ball = g_vars->scene29_var08.pHead;
+ ani = g_vars->scene29_var08.pHead->ani;
+ oldp0 = g_vars->scene29_var08.pHead->p0;
+ g_vars->scene29_var08.pHead = g_vars->scene29_var08.pHead->p0;
+
+ if (g_vars->scene29_var08.pHead)
+ oldp0->p1 = 0;
+ else
+ g_vars->scene29_var08.field_8 = 0;
+
+ ball->p0 = g_vars->scene29_var08.pTail;
+ g_vars->scene29_var08.pTail = ball;
+ g_vars->scene29_var08.numBalls--;
+
+ if (!g_vars->scene29_var08.numBalls)
+ g_vars->scene29_var08.reset();
+
+ ani->hide();
+
+ newball = g_vars->scene29_var05.sub04(g_vars->scene29_var05.field_8, 0);
+ newball->ani = ani;
+
+ if (g_vars->scene29_var05.field_8)
+ g_vars->scene29_var05.field_8->p0 = newball;
+ else
+ g_vars->scene29_var05.pHead = newball;
+
+ g_vars->scene29_var05.field_8 = newball;
+ }
+
+ while (g_vars->scene29_var07.numBalls) {
+ ball = g_vars->scene29_var07.pHead;
+ ani = g_vars->scene29_var07.pHead->ani;
+ oldp0 = g_vars->scene29_var07.pHead->p0;
+ g_vars->scene29_var07.pHead = g_vars->scene29_var07.pHead->p0;
+
+ if (g_vars->scene29_var07.pHead)
+ oldp0->p1 = 0;
+ else
+ g_vars->scene29_var07.field_8 = 0;
+
+ ball->p0 = g_vars->scene29_var07.pTail;
+ g_vars->scene29_var07.pTail = ball;
+ g_vars->scene29_var07.numBalls--;
+
+ if (!g_vars->scene29_var07.numBalls) {
+ g_vars->scene29_var07.numBalls = 0;
+ g_vars->scene29_var07.pTail = 0;
+ g_vars->scene29_var07.field_8 = 0;
+ g_vars->scene29_var07.pHead = 0;
+
+ free(g_vars->scene29_var07.cPlex);
+
+ g_vars->scene29_var07.cPlex = 0;
+ }
+
+ ani->hide();
+
+ newball = g_vars->scene29_var06.sub04(g_vars->scene29_var06.field_8, 0);
+ newball->ani = ani;
+
+ if (g_vars->scene29_var06.field_8)
+ g_vars->scene29_var06.field_8->p0 = newball;
+ else
+ g_vars->scene29_var06.pHead = newball;
+
+ g_vars->scene29_var06.field_8 = newball;
+ }
+
+ g_vars->scene29_ass->queueMessageQueue(0);
+ g_vars->scene29_ass->_flags &= 0xFFFB;
+
+ chainQueue(QU_SC29_ESCAPE, 1);
+ }
+
+ g_fp->setObjectState(sO_LeftPipe_29, g_fp->getObjectEnumState(sO_LeftPipe_29, sO_IsOpened));
}
void sceneHandler29_shootGreen() {
More information about the Scummvm-git-logs
mailing list