aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scenes
diff options
context:
space:
mode:
authorEugene Sandulenko2014-03-30 17:04:13 +0300
committerEugene Sandulenko2014-03-30 17:04:13 +0300
commit6d51c401be9498d2f36dec0220fe441c54a6b3ee (patch)
tree23efc73cca55a0c90f417ad070ba4ef3ca52809b /engines/fullpipe/scenes
parent190a656c08914db94d09f1829312e78aa8084a87 (diff)
downloadscummvm-rg350-6d51c401be9498d2f36dec0220fe441c54a6b3ee.tar.gz
scummvm-rg350-6d51c401be9498d2f36dec0220fe441c54a6b3ee.tar.bz2
scummvm-rg350-6d51c401be9498d2f36dec0220fe441c54a6b3ee.zip
FULLPIPE: Implement sceneHandler29_manHit()
Diffstat (limited to 'engines/fullpipe/scenes')
-rw-r--r--engines/fullpipe/scenes/scene29.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/engines/fullpipe/scenes/scene29.cpp b/engines/fullpipe/scenes/scene29.cpp
index 13da04da38..8d0fb5d6e1 100644
--- a/engines/fullpipe/scenes/scene29.cpp
+++ b/engines/fullpipe/scenes/scene29.cpp
@@ -265,6 +265,55 @@ bool sceneHandler29_sub16(StaticANIObject *ani, int maxx) {
return false;
}
+void sceneHandler29_manHit() {
+ MGMInfo mgminfo;
+
+ g_vars->scene29_var15 = 1;
+
+ g_fp->_aniMan->changeStatics2(ST_MAN29_RUNR);
+ g_fp->_aniMan->setOXY(g_vars->scene29_var20, g_vars->scene29_var21);
+
+ mgminfo.ani = g_fp->_aniMan;
+ mgminfo.staticsId2 = ST_MAN29_SITR;
+ mgminfo.y1 = 463;
+ mgminfo.x1 = g_vars->scene29_var20 <= 638 ? 351 : 0;
+ mgminfo.field_1C = 10;
+ mgminfo.field_10 = 1;
+ mgminfo.flags = (g_vars->scene29_var20 <= 638 ? 2 : 0) | 0x44;
+ mgminfo.movementId = MV_MAN29_HIT;
+
+ MessageQueue *mq = g_vars->scene29_mgm.genMovement(&mgminfo);
+ ExCommand *ex;
+
+ if (mq) {
+ if (g_vars->scene29_var20 <= 638) {
+ ex = new ExCommand(ANI_MAN, 1, MV_MAN29_STANDUP_NORM, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags = 2;
+ ex->_keyCode = g_fp->_aniMan->_okeyCode;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(0, 17, MSG_SC29_STOPRIDE, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags = 2;
+ mq->addExCommandToEnd(ex);
+
+ g_vars->scene29_var09 = 0;
+ g_vars->scene29_var10 = 0;
+ g_vars->scene29_var11 = 0;
+ g_vars->scene29_var12 = 0;
+ } else {
+ ex = new ExCommand(ANI_MAN, 1, MV_MAN29_STANDUP, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags = 2;
+ ex->_keyCode = g_fp->_aniMan->_okeyCode;
+ mq->addExCommandToEnd(ex);
+ }
+
+ mq->setFlags(mq->getFlags() | 1);
+
+ if (!mq->chain(g_fp->_aniMan))
+ delete mq;
+ }
+}
+
void sceneHandler29_sub03() {
warning("STUB: sceneHandler29_sub03()");
}