aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h2
-rw-r--r--engines/fullpipe/scenes/scene04.cpp39
2 files changed, 39 insertions, 2 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index b0b6202caa..ee89d4eec8 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -107,6 +107,7 @@ namespace Fullpipe {
#define MSG_UPDATEBOTTLE 613
#define MV_EGTR_FATASK 5332
#define MV_IN1MAN_SLEEP 5111
+#define MV_KZW_GOR 564
#define MV_KZW_JUMP 558
#define MV_KZW_JUMPROTATE 561
#define MV_KZW_TOHOLERV 537
@@ -117,6 +118,7 @@ namespace Fullpipe {
#define MV_HND_POINT 602
#define MV_KZW_JUMPHIT 2857
#define MV_KZW_JUMPOUT 586
+#define MV_KZW_RAISEHEAD 577
#define MV_KZW_STANDUP 563
#define MV_KZW_TURN 562
#define MV_MAN_GOD 481
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 6bcefa3086..78695cc33a 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -666,9 +666,44 @@ MessageQueue *sceneHandler04_kozFly5(StaticANIObject *ani, double phase) {
}
MessageQueue *sceneHandler04_kozFly6(StaticANIObject *ani) {
- warning("STUB: sceneHandler04_kozFly6()");
+ MGM mgm;
+ MGMInfo mgminfo;
- return 0;
+ mgm.addItem(ANI_KOZAWKA);
+
+ mgminfo.ani = ani;
+ mgminfo.staticsId2 = ST_KZW_SIT;
+ mgminfo.x1 = 397 - 4 * g_fullpipe->_rnd->getRandomNumber(1);
+ mgminfo.field_1C = ani->_priority;
+ mgminfo.y1 = g_vars->scene04_bottle->_oy - 4 * g_fullpipe->_rnd->getRandomNumber(1) + 109;
+ mgminfo.field_10 = 1;
+ mgminfo.flags = 78;
+ mgminfo.movementId = MV_KZW_JUMPROTATE;
+
+ MessageQueue *mq = mgm.genMovement(&mgminfo);
+
+ if (mq) {
+ mq->deleteExCommandByIndex(mq->getCount() - 1, 1);
+
+ ExCommand *ex = new ExCommand(ANI_KOZAWKA, 1, MV_KZW_STANDUP, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 2;
+ ex->_keyCode = ani->_okeyCode;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(ANI_KOZAWKA, 1, MV_KZW_GOR, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 2;
+ ex->_keyCode = ani->_okeyCode;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(ANI_KOZAWKA, 1, MV_KZW_RAISEHEAD, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 2;
+ ex->_keyCode = ani->_okeyCode;
+ mq->addExCommandToEnd(ex);
+
+ g_vars->scene04_var11 = 1;
+ }
+
+ return mq;
}
void sceneHandler04_kozMove(Movement *mov, int from, int to, Common::Point *points, double phase) {