aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h13
-rw-r--r--engines/fullpipe/scenes.cpp2
-rw-r--r--engines/fullpipe/scenes.h2
-rw-r--r--engines/fullpipe/scenes/scene16.cpp158
4 files changed, 175 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index cc82ee22d0..ae5288fa49 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -648,6 +648,18 @@ namespace Fullpipe {
#define ANI_JETTIE 1392
#define ANI_MUG 1296
#define ANI_WIRE16 1344
+#define MSG_SC16_FILLMUG 1363
+#define MSG_SC16_HIDEMAN 1357
+#define MSG_SC16_HIDEMUG 1351
+#define MSG_SC16_HIDEWIRE 1349
+#define MSG_SC16_LAUGHSOUND 4993
+#define MSG_SC16_MUGCLICK 1366
+#define MSG_SC16_SHOWBEARDED 4956
+#define MSG_SC16_SHOWMAN 1358
+#define MSG_SC16_SHOWMUG 1352
+#define MSG_SC16_SHOWMUGFULL 1396
+#define MSG_SC16_SHOWWIRE 1350
+#define MSG_SC16_STARTLAUGH 1374
#define MV_GRL_LAUGH_POPA 3278
#define PIC_SC16_TUMBA 1368
#define SND_16_034 3854
@@ -658,6 +670,7 @@ namespace Fullpipe {
#define ANI_DROP_24 3505
#define ANI_JET24 1837
#define ANI_WATER24 1834
+#define MV_MAN_TURN_RL 332
#define MV_WTR24_FLOW 1835
#define MV_WTR24_FLOWLOWER 1844
#define MV_JET24_FLOW 1838
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 9ab3328448..679095a213 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -242,6 +242,8 @@ Vars::Vars() {
scene16_var09 = 0;
scene16_sound = 0;
scene16_var10 = 0;
+ scene16_var11 = 0;
+ scene16_var12 = 0;
scene24_jetIsOn = false;
scene24_flowIsLow = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index d8dcf8918a..1b9bd3a921 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -319,6 +319,8 @@ public:
int scene16_var09;
int scene16_sound;
int scene16_var10;
+ int scene16_var11;
+ int scene16_var12;
bool scene24_jetIsOn;
bool scene24_flowIsLow;
diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp
index b2053851d3..5804f7da72 100644
--- a/engines/fullpipe/scenes/scene16.cpp
+++ b/engines/fullpipe/scenes/scene16.cpp
@@ -124,4 +124,162 @@ int scene16_updateCursor() {
return g_fp->_cursorId;
}
+void sceneHandler16_laughSound() {
+ warning("STUB: sceneHandler16_laughSound()");
+}
+
+void sceneHandler16_showBearded() {
+ warning("STUB: sceneHandler16_showBearded()");
+}
+
+void sceneHandler16_showMugFull() {
+ warning("STUB: sceneHandler16_showMugFull()");
+}
+
+void sceneHandler16_fillMug() {
+ warning("STUB: sceneHandler16_fillMug()");
+}
+
+void sceneHandler16_startLaugh() {
+ warning("STUB: sceneHandler16_startLaugh()");
+}
+
+void sceneHandler16_mugClick() {
+ warning("STUB: sceneHandler16_mugClick()");
+}
+
+void sceneHandler16_showMan() {
+ warning("STUB: sceneHandler16_showMan()");
+}
+
+void sceneHandler16_showMug() {
+ warning("STUB: sceneHandler16_showMug()");
+}
+
+void sceneHandler16_hideMan() {
+ warning("STUB: sceneHandler16_hideMan()");
+}
+
+void sceneHandler16_hideMug() {
+ warning("STUB: sceneHandler16_hideMug()");
+}
+
+void sceneHandler16_hideWire() {
+ warning("STUB: sceneHandler16_hideWire()");
+}
+
+void sceneHandler16_showWire() {
+ warning("STUB: sceneHandler16_showWire()");
+}
+
+void sceneHandler16_sub01() {
+ warning("STUB: sceneHandler16_sub01()");
+}
+
+void sceneHandler16_sub02() {
+ warning("STUB: sceneHandler16_sub02()");
+}
+
+void sceneHandler16_sub03() {
+ warning("STUB: sceneHandler16_sub03()");
+}
+
+int sceneHandler16(ExCommand *cmd) {
+ if (cmd->_messageKind != 17)
+ return 0;
+
+ switch(cmd->_messageNum) {
+ case MSG_SC16_LAUGHSOUND:
+ sceneHandler16_laughSound();
+ break;
+
+ case MSG_SC16_SHOWBEARDED:
+ sceneHandler16_showBearded();
+ break;
+
+ case MSG_SC16_SHOWMUGFULL:
+ sceneHandler16_showMugFull();
+ break;
+
+ case MSG_SC16_FILLMUG:
+ sceneHandler16_fillMug();
+ break;
+
+ case MSG_SC16_STARTLAUGH:
+ sceneHandler16_startLaugh();
+ break;
+
+ case MSG_SC16_MUGCLICK:
+ if (!g_fp->_aniMan->isIdle() || g_fp->_aniMan->_flags & 0x100)
+ cmd->_messageKind = 0;
+ else
+ sceneHandler16_mugClick();
+
+ break;
+
+ case MSG_SC16_SHOWMAN:
+ sceneHandler16_showMan();
+ break;
+
+ case MSG_SC16_SHOWMUG:
+ sceneHandler16_showMug();
+ break;
+
+ case MSG_SC16_HIDEMAN:
+ sceneHandler16_hideMan();
+ break;
+
+ case MSG_SC16_HIDEMUG:
+ sceneHandler16_hideMug();
+ break;
+
+ case MSG_SC16_HIDEWIRE:
+ sceneHandler16_hideWire();
+ break;
+
+ case MSG_SC16_SHOWWIRE:
+ sceneHandler16_showWire();
+ break;
+
+ case 33:
+ if (g_fp->_aniMan2) {
+ int x = g_fp->_aniMan2->_ox;
+
+ g_vars->scene16_var11 = x;
+ g_vars->scene16_var12 = g_fp->_aniMan2->_oy;
+
+ if (x < g_fp->_sceneRect.left + g_vars->scene16_var01) {
+ g_fp->_currentScene->_x = x - g_vars->scene16_var03 - g_fp->_sceneRect.left;
+
+ x = g_vars->scene16_var11;
+ }
+
+ if (x > g_fp->_sceneRect.right - g_vars->scene16_var01)
+ g_fp->_currentScene->_x = x + g_vars->scene16_var03 - g_fp->_sceneRect.right;
+ }
+
+ if (g_vars->scene16_var10) {
+ g_vars->scene16_var08++;
+
+ if (g_vars->scene16_var08 < 280) {
+ sceneHandler16_sub01();
+
+ g_vars->scene16_var08 = 0;
+ }
+ }
+
+ if (g_vars->scene16_var09) {
+ if (g_fp->_aniMan->_movement)
+ if (g_fp->_aniMan->_movement->_id == MV_MAN_TURN_RL)
+ sceneHandler16_sub03();
+ }
+
+ g_fp->_behaviorManager->updateBehaviors();
+ g_fp->startSceneTrack();
+
+ }
+
+ return 0;
+}
+
} // End of namespace Fullpipe