aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h2
-rw-r--r--engines/fullpipe/scenes/scene08.cpp20
2 files changed, 21 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index af495eec32..77968b68b5 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -208,6 +208,7 @@ namespace Fullpipe {
#define MV_MAN_TURN_SUD 1089
#define MV_MAN6_TAKEBALL 2691
#define MV_MAN6_THROWBALL 2692
+#define MV_MAN8_BADLUCK 783
#define MV_MAN8_SITDOWN 2968
#define MV_MANHDL_HANDLEDOWN 630
#define MV_MANHDL_HANDLEUP 631
@@ -453,6 +454,7 @@ namespace Fullpipe {
#define ST_MAN_UP 449
#define ST_MAN6_BALL 2688
#define ST_MAN8_FLYDOWN 771
+#define ST_MAN8_HANDSUP 773
#define ST_MOM_SITS 659
#define ST_MOM_STANDS 658
#define ST_NBL_NORM 1076
diff --git a/engines/fullpipe/scenes/scene08.cpp b/engines/fullpipe/scenes/scene08.cpp
index 1f2d4bc4cc..1452744b7a 100644
--- a/engines/fullpipe/scenes/scene08.cpp
+++ b/engines/fullpipe/scenes/scene08.cpp
@@ -187,7 +187,25 @@ void sceneHandler08_checkEndArcade() {
}
void sceneHandler08_badLuck() {
- warning("STUB: sceneHandler08_badLuck()");
+ g_fp->_currentScene->getPictureObjectById(PIC_SC8_LADDER, 0)->_flags &= 0xFFFB;
+
+ g_fp->_aniMan->changeStatics2(ST_MAN8_HANDSUP);
+ g_fp->_aniMan->setOXY(376, 280);
+ g_fp->_aniMan->_priority = 10;
+
+ MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact());
+
+ ExCommand *ex = new ExCommand(g_fp->_aniMan->_id, 1, MV_MAN8_BADLUCK, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 2;
+ ex->_keyCode = g_fp->_aniMan->_okeyCode;
+ mq->addExCommandToEnd(ex);
+
+ mq->setFlags(mq->getFlags() | 1);
+ mq->chain(0);
+
+ g_fp->setObjectState(sO_StairsUp_8, g_fp->getObjectEnumState(sO_StairsUp_8, sO_NotBroken));
+
+ g_vars->scene08_var01 = 0;
}
void sceneHandler08_calcOffset() {