aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-23 11:42:26 -0800
committerEugene Sandulenko2014-01-23 12:01:25 -0800
commit7ce04e0383906c28b17206b988d610e6ec429bf3 (patch)
treed544910f29256477fafbdf757c0efc036d0d2c95 /engines
parent34c2ba5ff3b7ede24b847b853c30aaef846c2322 (diff)
downloadscummvm-rg350-7ce04e0383906c28b17206b988d610e6ec429bf3.tar.gz
scummvm-rg350-7ce04e0383906c28b17206b988d610e6ec429bf3.tar.bz2
scummvm-rg350-7ce04e0383906c28b17206b988d610e6ec429bf3.zip
FULLPIPE: Implement sceneHandlerFinal()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h8
-rw-r--r--engines/fullpipe/scenes/sceneFinal.cpp79
2 files changed, 87 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 9e79b1c732..1dd5fcd624 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1350,6 +1350,14 @@ namespace Fullpipe {
#define QU_SC38_ENTERLIFT 2836
#define QU_SC38_EXITLIFT 2837
+// Final scene
+#define MSG_FIN_ENDFINAL 5109
+#define MSG_FIN_GOTO2 5024
+#define MSG_FIN_GOTO3 5071
+#define MSG_FIN_GOTO4 5075
+#define MSG_FIN_STARTFINAL 5025
+#define MSG_FN4_STARTMUSIC 5356
+
// Debug scene
#define MSG_RESTARTGAME 4767
#define PIC_SCD_1 727
diff --git a/engines/fullpipe/scenes/sceneFinal.cpp b/engines/fullpipe/scenes/sceneFinal.cpp
index 56dc9bfd65..332fccfef3 100644
--- a/engines/fullpipe/scenes/sceneFinal.cpp
+++ b/engines/fullpipe/scenes/sceneFinal.cpp
@@ -64,4 +64,83 @@ int sceneFinal_updateCursor() {
return g_fp->_cursorId;
}
+void sceneHandlerFinal_endFinal() {
+ warning("STUB: sceneHandlerFinal_endFinal()");
+}
+
+void sceneHandlerFinal_startMusic(const char *track) {
+ warning("STUB: sceneHandlerFinal_startMusic()");
+}
+
+void sceneHandlerFinal_goto4() {
+ warning("STUB: sceneHandlerFinal_goto4()");
+}
+
+void sceneHandlerFinal_goto3() {
+ warning("STUB: sceneHandlerFinal_goto3()");
+}
+
+void sceneHandlerFinal_goto2() {
+ warning("STUB: sceneHandlerFinal_goto2()");
+}
+
+void sceneHandlerFinal_startFinal() {
+ warning("STUB: sceneHandlerFinal_startFinal()");
+}
+
+void sceneHandlerFinal_fallCoin() {
+ warning("STUB: sceneHandlerFinal_fallCoin()");
+}
+
+int sceneHandlerFinal(ExCommand *cmd) {
+ if (cmd->_messageKind != 17)
+ return 0;
+
+ switch (cmd->_messageNum) {
+ case MSG_FIN_ENDFINAL:
+ sceneHandlerFinal_endFinal();
+ break;
+
+ case MSG_FN4_STARTMUSIC:
+ sceneHandlerFinal_startMusic("track16.ogg");
+ break;
+
+ case MSG_FIN_GOTO4:
+ sceneHandlerFinal_goto4();
+
+ g_fp->playTrack(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_FINAL1"), "MUSIC3", 1);
+ break;
+
+ case MSG_FIN_GOTO3:
+ sceneHandlerFinal_goto3();
+ break;
+
+ case MSG_FIN_GOTO2:
+ sceneHandlerFinal_goto2();
+ break;
+
+ case MSG_FIN_STARTFINAL:
+ sceneHandlerFinal_startFinal();
+ break;
+
+ case 33:
+ if (g_fp->_aniMan2) {
+ g_vars->sceneFinal_var03 = g_fp->_aniMan2->_ox;
+
+ if (g_vars->sceneFinal_var03 < 450 && g_vars->sceneFinal_var02 >= 450 )
+ sceneHandlerFinal_fallCoin();
+
+ g_vars->sceneFinal_var02 = g_vars->sceneFinal_var03;
+ }
+
+ g_fp->_behaviorManager->updateBehaviors();
+
+ g_fp->startSceneTrack();
+
+ break;
+ }
+
+ return 0;
+}
+
} // End of namespace Fullpipe