aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2014-02-03 15:33:41 +0200
committerEugene Sandulenko2014-02-03 15:46:39 +0200
commita7c0495d70f11981e6366a830c4b5178ab1e3ad1 (patch)
tree3a44dfe143696003a1173958371fb43e3a22ce6a /engines/fullpipe
parent8f9bc161f46b1b337c8a64254811b144dfebd9cd (diff)
downloadscummvm-rg350-a7c0495d70f11981e6366a830c4b5178ab1e3ad1.tar.gz
scummvm-rg350-a7c0495d70f11981e6366a830c4b5178ab1e3ad1.tar.bz2
scummvm-rg350-a7c0495d70f11981e6366a830c4b5178ab1e3ad1.zip
FULLPIPE: Implement sceneHandler27()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h9
-rw-r--r--engines/fullpipe/scenes/scene27.cpp125
2 files changed, 134 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index cc09d9e4c9..b1480833b9 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1088,7 +1088,16 @@ namespace Fullpipe {
#define ANI_BITAHANDLER 3349
#define ANI_MAID 2015
#define ANI_VODILLA 1994
+#define MSG_SC27_CLICKBET 2048
+#define MSG_SC27_HANDLERTOBACK 3372
+#define MSG_SC27_HANDLERTOFRONT 3371
+#define MSG_SC27_SHOWNEXTBET 3369
+#define MSG_SC27_STARTBET 2047
+#define MSG_SC27_STARTWIPE 2057
+#define MSG_SC27_TAKEVENT 4584
+#define MV_MAN27_FLOW 1990
#define PIC_SC27_HITZONE2 4756
+#define SND_27_027 4128
#define ST_MID_BROOM 2022
#define ST_MID_SPADE 3489
#define ST_MID_SWAB2 2019
diff --git a/engines/fullpipe/scenes/scene27.cpp b/engines/fullpipe/scenes/scene27.cpp
index 2f00878f4f..c3cba7fc74 100644
--- a/engines/fullpipe/scenes/scene27.cpp
+++ b/engines/fullpipe/scenes/scene27.cpp
@@ -157,4 +157,129 @@ int scene27_updateCursor() {
return g_fp->_cursorId;
}
+void sceneHandler27_winArcade() {
+ warning("STUB: sceneHandler27_winArcade()");
+}
+
+void sceneHandler27_takeVent() {
+ warning("STUB: sceneHandler27_takeVent()");
+}
+
+void sceneHandler27_showNextBat() {
+ warning("STUB: sceneHandler27_showNextBat()");
+}
+
+void sceneHandler27_clickBat(ExCommand *cmd) {
+ warning("STUB: sceneHandler27_clickBat()");
+}
+
+void sceneHandler27_startBat(StaticANIObject *bat) {
+ warning("STUB: sceneHandler27_startBat()");
+}
+
+void sceneHandler27_startAiming() {
+ warning("STUB: sceneHandler27_startAiming()");
+}
+
+void sceneHandler27_sub04(ExCommand *cmd) {
+ warning("STUB: sceneHandler27_sub04()");
+}
+
+void sceneHandler27_aimDude() {
+ warning("STUB: sceneHandler27_aimDude()");
+}
+
+void sceneHandler27_throwBat() {
+ warning("STUB: sceneHandler27_throwBat()");
+}
+
+void sceneHandler27_animateBats() {
+ warning("STUB: sceneHandler27_animateBats()");
+}
+
+
+
+int sceneHandler27(ExCommand *cmd) {
+ if (cmd->_messageKind != 17)
+ return 0;
+
+ switch (cmd->_messageNum) {
+ case MSG_CMN_WINARCADE:
+ sceneHandler27_winArcade();
+ break;
+
+ case MSG_SC27_TAKEVENT:
+ sceneHandler27_takeVent();
+ break;
+
+ case MSG_SC27_SHOWNEXTBET:
+ sceneHandler27_showNextBat();
+ break;
+
+ case MSG_SC27_HANDLERTOFRONT:
+ g_vars->scene27_batHandler->_priority = 1005;
+ break;
+
+ case MSG_SC27_STARTWIPE:
+ g_vars->scene27_var10 = 1;
+
+ g_fp->playSound(SND_27_027, 0);
+
+ break;
+
+ case MSG_SC27_CLICKBET:
+ sceneHandler27_clickBat(cmd);
+ break;
+
+ case MSG_SC27_STARTBET:
+ if (g_vars->scene27_bat)
+ sceneHandler27_startBat(g_vars->scene27_bat);
+
+ break;
+
+ case 30:
+ if (g_vars->scene27_var08)
+ sceneHandler27_startAiming();
+
+ break;
+
+ case 29:
+ if (g_fp->_aniMan == g_fp->_currentScene->getStaticANIObjectAtPos(g_fp->_sceneRect.left + cmd->_x, g_fp->_sceneRect.top + cmd->_y)
+ && g_vars->scene27_var09)
+ sceneHandler27_sub04(cmd);
+
+ break;
+
+ case 33:
+ if (g_fp->_aniMan2) {
+ int x = g_fp->_aniMan2->_ox;
+
+ if (x < g_fp->_sceneRect.left + g_vars->scene27_var01)
+ g_fp->_currentScene->_x = x - g_vars->scene27_var03 - g_fp->_sceneRect.left;
+
+ if (x > g_fp->_sceneRect.right - g_vars->scene27_var01)
+ g_fp->_currentScene->_x = x + g_vars->scene27_var03 - g_fp->_sceneRect.right;
+ }
+
+ if (g_vars->scene27_var08)
+ sceneHandler27_aimDude();
+
+ if (g_vars->scene27_var10) {
+ sceneHandler27_throwBat();
+
+ if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_RIGHT)
+ g_fp->_aniMan->startAnim(MV_MAN27_FLOW, 0, -1);
+ }
+
+ sceneHandler27_animateBats();
+
+ g_fp->_behaviorManager->updateBehaviors();
+ g_fp->startSceneTrack();
+
+ break;
+ }
+
+ return 0;
+}
+
} // End of namespace Fullpipe