aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-19 16:59:18 +0400
committerEugene Sandulenko2014-01-19 16:59:18 +0400
commit7e07e3448e98fc1bcbe72e0855479a1c300cf611 (patch)
tree6c8b15e1643348e2277dfaf2291f940b8f109652 /engines
parent151a13d82ddb486ffc9775dc60a4b1b4d039ceac (diff)
downloadscummvm-rg350-7e07e3448e98fc1bcbe72e0855479a1c300cf611.tar.gz
scummvm-rg350-7e07e3448e98fc1bcbe72e0855479a1c300cf611.tar.bz2
scummvm-rg350-7e07e3448e98fc1bcbe72e0855479a1c300cf611.zip
FULLPIPE: Implement sceneHandler38()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h6
-rw-r--r--engines/fullpipe/scenes/scene38.cpp116
2 files changed, 122 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 86c8834b3f..25381b616d 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1305,6 +1305,12 @@ namespace Fullpipe {
#define ANI_DYLDA 2169
#define ANI_GLAVAR 2154
#define ANI_MALYSH 2165
+#define MSG_SC38_DRINK 2225
+#define MSG_SC38_HMRKICK 2224
+#define MSG_SC38_POINT 2226
+#define MSG_SC38_POSTHMRKICK 2256
+#define MSG_SC38_PROPOSE 2287
+#define MSG_SC38_TRYTAKEBOTTLE 3179
#define QU_SC38_SHOWBOTTLE 2199
#define QU_SC38_SHOWBOTTLE_ONTABLE 2838
#define QU_SC38_ENTERLIFT 2836
diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp
index 0b534614b5..67a4c21983 100644
--- a/engines/fullpipe/scenes/scene38.cpp
+++ b/engines/fullpipe/scenes/scene38.cpp
@@ -90,4 +90,120 @@ void scene38_initScene(Scene *sc) {
g_fp->lift_sub7(sc, ST_LBN_0N);
}
+void sceneHandler38_tryTakeBottle() {
+ warning("STUB: sceneHandler38_tryTakeBottle()");
+}
+
+void sceneHandler38_postHammerKick() {
+ warning("STUB: sceneHandler38_postHammerKick()");
+}
+
+void sceneHandler38_propose() {
+ warning("STUB: sceneHandler38_propose()");
+}
+
+void sceneHandler38_point() {
+ warning("STUB: sceneHandler38_point()");
+}
+
+void sceneHandler38_hammerKick() {
+ warning("STUB: sceneHandler38_hammerKick()");
+}
+
+void sceneHandler38_drink() {
+ warning("STUB: sceneHandler38_drink()");
+}
+
+void sceneHandler38_animateAlcoholics() {
+ warning("STUB: sceneHandler38_animateAlcoholics()");
+}
+
+int sceneHandler38(ExCommand *cmd) {
+ if (cmd->_messageKind != 17)
+ return 0;
+
+ switch (cmd->_messageNum) {
+ case MSG_LIFT_EXITLIFT:
+ g_fp->lift_exitSeq(cmd);
+ break;
+
+ case MSG_LIFT_CLOSEDOOR:
+ g_fp->lift_closedoorSeq();
+ break;
+
+ case MSG_LIFT_STARTEXITQUEUE:
+ g_fp->lift_startExitQueue();
+ break;
+
+ case MSG_SC38_TRYTAKEBOTTLE:
+ sceneHandler38_tryTakeBottle();
+ break;
+
+ case MSG_SC38_POSTHMRKICK:
+ sceneHandler38_postHammerKick();
+ break;
+
+ case MSG_SC38_PROPOSE:
+ sceneHandler38_propose();
+ break;
+
+ case MSG_LIFT_CLICKBUTTON:
+ g_fp->lift_animation3();
+ break;
+
+ case MSG_SC38_POINT:
+ sceneHandler38_point();
+ break;
+
+ case MSG_LIFT_GO:
+ g_fp->lift_goAnimation();
+ break;
+
+ case MSG_SC38_HMRKICK:
+ sceneHandler38_hammerKick();
+ break;
+
+ case MSG_SC38_DRINK:
+ sceneHandler38_drink();
+ break;
+
+ case 64:
+ g_fp->lift_sub05(cmd);
+ break;
+
+ case 29:
+ {
+ StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(g_fp->_sceneRect.left + cmd->_x, g_fp->_sceneRect.top + cmd->_y);
+
+ if (ani && ani->_id == ANI_LIFTBUTTON) {
+ g_fp->lift_sub1(ani);
+
+ cmd->_messageKind = 0;
+ }
+ break;
+ }
+
+ case 33:
+ if (g_fp->_aniMan2) {
+ int x = g_fp->_aniMan2->_ox;
+
+ if (x < g_fp->_sceneRect.left + g_vars->scene38_var01)
+ g_fp->_currentScene->_x = x - g_vars->scene38_var03 - g_fp->_sceneRect.left;
+
+ if (x > g_fp->_sceneRect.right - g_vars->scene38_var01 )
+ g_fp->_currentScene->_x = x + g_vars->scene38_var03 - g_fp->_sceneRect.right;
+ }
+
+ sceneHandler38_animateAlcoholics();
+
+ g_fp->_behaviorManager->updateBehaviors();
+
+ g_fp->startSceneTrack();
+
+ break;
+ }
+
+ return 0;
+}
+
} // End of namespace Fullpipe