aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-30 00:52:04 +0200
committerEugene Sandulenko2013-12-30 00:52:04 +0200
commit58f4940848c4b0e9e50a51a809ed18541269573a (patch)
treeb56ae005016417de1db49a1edd907d676f5c5524
parent562d539db9ecb8690006236449c78335fab8f120 (diff)
downloadscummvm-rg350-58f4940848c4b0e9e50a51a809ed18541269573a.tar.gz
scummvm-rg350-58f4940848c4b0e9e50a51a809ed18541269573a.tar.bz2
scummvm-rg350-58f4940848c4b0e9e50a51a809ed18541269573a.zip
FULLPIPE: Implement remaining scene13 functions
-rw-r--r--engines/fullpipe/constants.h5
-rw-r--r--engines/fullpipe/scenes/scene13.cpp26
2 files changed, 26 insertions, 5 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 5214c97145..83721edbcb 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -558,7 +558,11 @@ namespace Fullpipe {
#define QU_SC13_OPENSUCCESS 3047
#define QU_SC13_SHOWGUM 1216
#define QU_STR_CHEW 1190
+#define QU_STR_LTOR 3054
#define QU_STR_PLUU 1189
+#define QU_STR_RTOL 3053
+#define QU_STR_TURNR 1186
+#define QU_STR_TURNR_L 3059
#define SND_13_018 3763
#define SND_13_033 4685
#define SND_13_034 4686
@@ -571,6 +575,7 @@ namespace Fullpipe {
#define ST_HDLR_DOWN 1199
#define ST_HDLR_DOWN_GUM 3044
#define ST_HDLR_GUM 1201
+#define ST_STR_LEFT 1175
#define ST_STR_RIGHT 1174
// Scene 15
diff --git a/engines/fullpipe/scenes/scene13.cpp b/engines/fullpipe/scenes/scene13.cpp
index 5689918dac..42f3ffbb8f 100644
--- a/engines/fullpipe/scenes/scene13.cpp
+++ b/engines/fullpipe/scenes/scene13.cpp
@@ -217,16 +217,32 @@ void sceneHandler13_showGum() {
chainQueue(QU_SC13_SHOWGUM, 0);
}
+void sceneHandler13_setBehFlag(BehaviorEntryInfo *beh, bool flag) {
+ warning("STUB: sceneHandler13_sub03()");
+}
+
void sceneHandler13_sub01(bool flag) {
- warning("STUB: sceneHandler13_sub01()");
+ BehaviorEntryInfo *beh = g_fp->_behaviorManager->getBehaviorEntryInfoByMessageQueueDataId(g_vars->scene13_guard, ST_STR_RIGHT, QU_STR_RTOL);
+
+ sceneHandler13_setBehFlag(beh, flag);
+
+ beh = g_fp->_behaviorManager->getBehaviorEntryInfoByMessageQueueDataId(g_vars->scene13_guard, ST_STR_LEFT, QU_STR_TURNR);
+
+ sceneHandler13_setBehFlag(beh, flag);
+
+ beh->_flags &= 0xFE;
}
void sceneHandler13_sub02(bool flag) {
- warning("STUB: sceneHandler13_sub02()");
-}
+ BehaviorEntryInfo *beh = g_fp->_behaviorManager->getBehaviorEntryInfoByMessageQueueDataId(g_vars->scene13_guard, ST_STR_RIGHT|0x4000, QU_STR_LTOR);
-void sceneHandler13_sub03(bool flag) {
- warning("STUB: sceneHandler13_sub03()");
+ sceneHandler13_setBehFlag(beh, flag);
+
+ beh = g_fp->_behaviorManager->getBehaviorEntryInfoByMessageQueueDataId(g_vars->scene13_guard, ST_STR_LEFT|0x4000, QU_STR_TURNR_L);
+
+ sceneHandler13_setBehFlag(beh, flag);
+
+ beh->_flags &= 0xFE;
}
int sceneHandler13(ExCommand *cmd) {