aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-28 00:19:28 +0200
committerEugene Sandulenko2013-12-28 00:19:28 +0200
commita67dcf27bf88746b7808ef1447bc513e029caeb6 (patch)
treee84eb40954b41dae4efe5d2c8141fd07b2588e0a
parent98598d2ec3d17e866ced96f52007a93ccd0e7bd9 (diff)
downloadscummvm-rg350-a67dcf27bf88746b7808ef1447bc513e029caeb6.tar.gz
scummvm-rg350-a67dcf27bf88746b7808ef1447bc513e029caeb6.tar.bz2
scummvm-rg350-a67dcf27bf88746b7808ef1447bc513e029caeb6.zip
FULLPIPE: Implement sceneHandler11_sub11()
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene11.cpp39
2 files changed, 39 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 15f73e45eb..f8fa0ef349 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -503,6 +503,7 @@ namespace Fullpipe {
#define MSG_SC11_SITSWINGER 5198
#define MV_KCH_MOVE2 1099
#define MV_KCH_START 1121
+#define MV_MAN11_JUMPHIT 1129
#define MV_MAN11_JUMPOVER 1131
#define MV_MAN11_SWING_0 1109
#define MV_MAN11_SWING_1 1111
diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp
index 4336432357..44cbf5656f 100644
--- a/engines/fullpipe/scenes/scene11.cpp
+++ b/engines/fullpipe/scenes/scene11.cpp
@@ -341,7 +341,44 @@ void sceneHandler11_sub10(double angle) {
}
void sceneHandler11_sub11(double angle) {
- warning("STUB: sceneHandler11_sub11()");
+ MGMInfo mgminfo;
+
+ sceneHandler11_sub09();
+
+ if (angle >= 0.0) {
+ if (angle > 1.0)
+ angle = 1.0;
+ } else {
+ angle = 0.0;
+ }
+
+ g_fp->_aniMan->show1(690 - (int)(sin(g_vars->scene11_var08) * -267.0), 215 - (int)(cos(g_vars->scene11_var08) * -267.0),
+ MV_MAN11_JUMPOVER, 0);
+ g_fp->_aniMan->_priority = 0;
+
+ mgminfo.staticsId2 = ST_MAN_1PIX;
+ mgminfo.ani = g_fp->_aniMan;
+ mgminfo.x1 = 1017 - (int)(angle * -214.0);
+ mgminfo.y1 = 700;
+ mgminfo.field_1C = 0;
+ mgminfo.field_10 = 1;
+ mgminfo.flags = 78;
+ mgminfo.movementId = MV_MAN11_JUMPHIT;
+
+ MessageQueue *mq = g_vars->scene11_var01.genMovement(&mgminfo);
+
+ if (mq) {
+ g_vars->scene11_var07 = SND_11_022;
+
+ ExCommand *ex = new ExCommand(0, 17, MSG_SC11_RESTARTMAN, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags = 2;
+
+ mq->addExCommandToEnd(ex);
+
+ if (!mq->chain(g_fp->_aniMan) )
+ delete mq;
+
+ }
}
void sceneHandler11_swingLogic() {