[Scummvm-cvs-logs] scummvm master -> 906140e752d0084d7d7e2ec0c59cafcaed06843a
sev-
sev at scummvm.org
Thu Feb 20 21:24:49 CET 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:
906140e752 FULLPIPE: Implement sceneHandler09_eatBall()
Commit: 906140e752d0084d7d7e2ec0c59cafcaed06843a
https://github.com/scummvm/scummvm/commit/906140e752d0084d7d7e2ec0c59cafcaed06843a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-02-20T12:29:50-08:00
Commit Message:
FULLPIPE: Implement sceneHandler09_eatBall()
Changed paths:
engines/fullpipe/scenes/scene09.cpp
diff --git a/engines/fullpipe/scenes/scene09.cpp b/engines/fullpipe/scenes/scene09.cpp
index f8a78be..7952985 100644
--- a/engines/fullpipe/scenes/scene09.cpp
+++ b/engines/fullpipe/scenes/scene09.cpp
@@ -301,7 +301,64 @@ void sceneHandler09_spitterClick() {
}
void sceneHandler09_eatBall() {
- warning("STUB: sceneHandler09_eatBall()");
+ if (g_vars->scene09_flyingBall) {
+ g_vars->scene09_flyingBall->hide();
+
+ Ball *ball = g_vars->scene09_balls.pHead;
+ if (ball) {
+ while (ball && ball->ani != g_vars->scene09_flyingBall)
+ ball = ball->p0;
+
+ if (ball) {
+ if (ball == g_vars->scene09_balls.pHead)
+ g_vars->scene09_balls.pHead = ball->p0;
+ else
+ ball->p1->p0 = ball->p0;
+
+ if (ball == g_vars->scene09_balls.field_8)
+ g_vars->scene09_balls.field_8 = ball->p1;
+ else
+ ball->p0->p1 = ball->p1;
+
+ ball->p0 = g_vars->scene09_balls.pTail;
+ g_vars->scene09_balls.pTail = ball;
+
+ g_vars->scene09_balls.numBalls--;
+
+ if (!g_vars->scene09_balls.numBalls)
+ g_vars->scene09_balls.reset();
+ }
+ }
+
+ ball = g_vars->scene09_var07.sub04(g_vars->scene09_var07.field_8, 0);
+ ball->ani = g_vars->scene09_flyingBall;
+
+ if (g_vars->scene09_var07.field_8)
+ g_vars->scene09_var07.field_8->p0 = ball;
+ else
+ g_vars->scene09_var07.pHead = ball;
+
+ g_vars->scene09_var07.field_8 = ball;
+
+ g_vars->scene09_flyingBall = 0;
+ g_vars->scene09_var05++;
+
+ if (g_vars->scene09_var05 >= 3) {
+ MessageQueue *mq = g_vars->scene09_glotatel->getMessageQueue();
+
+ if (mq) {
+ ExCommand *ex = new ExCommand(ANI_GLOTATEL, 1, MV_GLT_FLYAWAY, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 2;
+
+ mq->addExCommandToEnd(ex);
+ }
+
+ g_fp->setObjectState(sO_Jug, g_fp->getObjectEnumState(sO_Jug, sO_Unblocked));
+ g_fp->setObjectState(sO_RightStairs_9, g_fp->getObjectEnumState(sO_RightStairs_9, sO_IsOpened));
+
+ g_vars->scene09_var08 = 0;
+ }
+ }
}
void sceneHandler09_showBall() {
More information about the Scummvm-git-logs
mailing list