aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/scenes/scene16.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp
index 23030a30c4..818b479a3b 100644
--- a/engines/fullpipe/scenes/scene16.cpp
+++ b/engines/fullpipe/scenes/scene16.cpp
@@ -162,8 +162,25 @@ void sceneHandler16_startLaugh() {
warning("STUB: sceneHandler16_startLaugh()");
}
+void sceneHandler16_sub02() {
+ warning("STUB: sceneHandler16_sub02()");
+}
+
void sceneHandler16_mugClick() {
- warning("STUB: sceneHandler16_mugClick()");
+ if (abs(310 - g_fp->_aniMan->_ox) >= 1 || abs(449 - g_fp->_aniMan->_oy) >= 1
+ || g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_RIGHT) {
+ MessageQueue *mq = getCurrSceneSc2MotionController()->method34(g_fp->_aniMan, 310, 449, 1, ST_MAN_RIGHT);
+
+ if (mq) {
+ ExCommand *ex = new ExCommand(0, 17, MSG_SC16_MUGCLICK, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags = 2;
+ mq->addExCommandToEnd(ex);
+
+ postExCommand(g_fp->_aniMan->_id, 2, 310, 449, 0, -1);
+ }
+ } else {
+ sceneHandler16_sub02();
+ }
}
void sceneHandler16_showMan() {
@@ -200,10 +217,6 @@ void sceneHandler16_sub01() {
warning("STUB: sceneHandler16_sub01()");
}
-void sceneHandler16_sub02() {
- warning("STUB: sceneHandler16_sub02()");
-}
-
void sceneHandler16_girlROTFL() {
StaticANIObject *girl = g_fp->_currentScene->getStaticANIObject1ById(ANI_GIRL, -1);