aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scenes/scene06.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe/scenes/scene06.cpp')
-rw-r--r--engines/fullpipe/scenes/scene06.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 5a63b6c230..4f76714660 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -73,6 +73,50 @@ void sceneHandler06_setExits(Scene *sc) {
}
void sceneHandler06_winArcade() {
+ g_fullpipe->setObjectState(sO_BigMumsy, g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsGone));
+
+ if (g_fullpipe->getObjectState(sO_ClockAxis) == g_fullpipe->getObjectEnumState(sO_ClockAxis, sO_IsNotAvailable))
+ g_fullpipe->setObjectState(sO_ClockAxis, g_fullpipe->getObjectEnumState(sO_ClockAxis, sO_WithoutHandle));
+
+ if (g_vars->scene06_var07) {
+ g_fullpipe->_aniMan->_callback2 = 0;
+
+ g_fullpipe->_aniMan->changeStatics2(ST_MAN_RIGHT | 0x4000);
+
+ if (g_vars->scene06_var06) {
+ g_vars->scene06_var06->_flags &= 0xFFFB;
+
+ g_vars->scene06_balls.push_back(g_vars->scene06_var06);
+
+ g_vars->scene06_var06 = 0;
+ }
+
+ if (g_vars->scene06_var11) {
+ g_vars->scene06_var11->_flags &= 0xFFFB;
+
+ g_vars->scene06_balls.push_back(g_vars->scene06_var11);
+
+ g_vars->scene06_var11 = 0;
+ }
+
+ if (g_vars->scene06_var10) {
+ g_vars->scene06_var10->_flags &= 0xFFFB;
+
+ g_vars->scene06_balls.push_back(g_vars->scene06_var10);
+
+ g_vars->scene06_var10 = 0;
+ }
+
+ g_vars->scene06_var07 = 0;
+ g_vars->scene06_var08 = 0;
+ }
+
+ g_vars->scene06_mumsy->_flags &= 0xFFFB;
+
+ sceneHandler06_setExits(g_fullpipe->_currentScene);
+
+ getCurrSceneSc2MotionController()->setEnabled();
+ getGameLoaderInteractionController()->enableFlag24();
}
void sceneHandler06_enableDrops() {