aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-01 16:50:04 +0200
committerEugene Sandulenko2013-12-01 16:50:04 +0200
commit521eeb9b42d0b37c5fe79843e7ecbda08f5b8065 (patch)
tree64d896be0b600b9e42b314921efdcc37424ea9df /engines/fullpipe
parent9bf28664b9e0f4c36c51ad3cf327db049b570ee1 (diff)
downloadscummvm-rg350-521eeb9b42d0b37c5fe79843e7ecbda08f5b8065.tar.gz
scummvm-rg350-521eeb9b42d0b37c5fe79843e7ecbda08f5b8065.tar.bz2
scummvm-rg350-521eeb9b42d0b37c5fe79843e7ecbda08f5b8065.zip
FULLPIPE: Implement sceneHandler04_winArcade()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/fullpipe.h1
-rw-r--r--engines/fullpipe/scenes/scene04.cpp26
-rw-r--r--engines/fullpipe/sound.cpp3
4 files changed, 30 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index e1ec51a947..76739b6632 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -187,6 +187,7 @@ namespace Fullpipe {
#define QU_EGTR_MD2_SHOW 4698
#define QU_EGTR_MD1_SHOW 4697
#define QU_EGTR_SLIMSHOW 4883
+#define QU_HND_TAKEBOTTLE 1443
#define QU_IN2_DO 5144
#define QU_INTR_FINISH 5138
#define QU_INTR_GETUPMAN 5136
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 63dde5042b..00d2863c94 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -142,6 +142,7 @@ public:
void toggleMute();
void playSound(int id, int flag);
void startSceneTrack();
+ void stopSoundStream2();
int _sfxVolume;
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index f2fbfd3ef4..137133ba28 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -33,6 +33,7 @@
#include "fullpipe/interaction.h"
#include "fullpipe/gameloader.h"
#include "fullpipe/behavior.h"
+#include "fullpipe/motion.h"
namespace Fullpipe {
@@ -446,7 +447,30 @@ void sceneHandler04_updateBottle() {
}
void sceneHandler04_winArcade() {
- warning("sceneHandler04_winArcade()");
+ if (g_fullpipe->getObjectState(sO_LowerPipe) == g_fullpipe->getObjectEnumState(sO_LowerPipe, sO_IsClosed)
+ && g_vars->scene04_soundPlaying) {
+ g_vars->scene04_clock->changeStatics2(ST_CLK_CLOSED);
+ g_vars->scene04_hand->changeStatics2(ST_HND_EMPTY);
+
+ chainQueue(QU_HND_TAKEBOTTLE, 1);
+
+ if (g_vars->scene04_walkingKozyawka) {
+ g_vars->scene04_kozyawkiObjList.push_back(g_vars->scene04_walkingKozyawka);
+
+ g_vars->scene04_walkingKozyawka->changeStatics2(ST_KZW_EMPTY);
+ g_vars->scene04_walkingKozyawka->hide();
+ g_vars->scene04_walkingKozyawka = 0;
+ }
+
+ g_vars->scene04_var19 = 0;
+ g_vars->scene04_soundPlaying = 0;
+
+ getSc2MctlCompoundBySceneId(g_fullpipe->_currentScene->_sceneId)->setEnabled();
+
+ getGameLoaderInteractionController()->enableFlag24();
+
+ g_fullpipe->stopSoundStream2();
+ }
}
int sceneHandler04(ExCommand *ex) {
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 6da848a621..b4a864d164 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -135,6 +135,9 @@ void global_messageHandler_handleSound(ExCommand *cmd) {
debug(0, "STUB: global_messageHandler_handleSound()");
}
+void FullpipeEngine::stopSoundStream2() {
+ warning("STUB: FullpipeEngine::stopSoundStream2()");
+}
} // End of namespace Fullpipe