From 675e6643f7c283f7d9c5320a49c15fd3a8893e4e Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 18 Dec 2013 18:38:30 +0200 Subject: FULLPIPE: Implement sceneHandler06_winArcade() --- engines/fullpipe/scenes/scene06.cpp | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) 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() { -- cgit v1.2.3