From bccb4d8f00b6f5abf404bcabbd53817c4d407a83 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sun, 22 Dec 2013 00:51:13 +0200 Subject: FULLPIPE: More code to scene08 --- engines/fullpipe/constants.h | 2 ++ engines/fullpipe/scenes/scene08.cpp | 35 ++++++++++++++++++++++++++--------- 2 files changed, 28 insertions(+), 9 deletions(-) (limited to 'engines') diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index ee5bf249e3..a55bfc8c4c 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -287,6 +287,7 @@ namespace Fullpipe { #define PIC_SC6_LADDER 1104 #define PIC_SC8_ARCADENOW 1043 #define PIC_SC8_LADDER 754 +#define PIC_SC8_LADDER_D 755 #define PIC_SC8_LADDERD 1106 #define PIC_SC10_DTRUBA 974 #define PIC_SC10_LADDER 995 @@ -330,6 +331,7 @@ namespace Fullpipe { #define QU_SC6_FALLBALL 2690 #define QU_SC6_SHOWHANDLE 1689 #define QU_SC6_SHOWNEXTBALL 2689 +#define QU_SC8_STANDUP 2975 #define QU_SC10_ENTERLIFT 1067 #define QU_SC10_EXITLIFT 2809 #define SC_1 301 diff --git a/engines/fullpipe/scenes/scene08.cpp b/engines/fullpipe/scenes/scene08.cpp index d3e81cbe0d..a523dd94c0 100644 --- a/engines/fullpipe/scenes/scene08.cpp +++ b/engines/fullpipe/scenes/scene08.cpp @@ -129,16 +129,22 @@ int scene08_updateCursor() { return g_fp->_cursorId; } -void sceneHandler08_winArcade() { - warning("STUB: sceneHandler08_winArcade()"); -} - void sceneHandler08_enterUp() { warning("STUB: sceneHandler08_enterUp()"); } +void sceneHandler08_winArcade() { + if (g_vars->scene08_var06) { + g_vars->scene08_var06 = 0; + g_fp->_sceneRect.top = 0; + g_fp->_sceneRect.bottom = 600; + + sceneHandler08_enterUp(); + } +} + void sceneHandler08_hideLadder() { - warning("STUB: sceneHandler08_hideLadder()"); + g_fp->_currentScene->getPictureObjectById(PIC_SC8_LADDER_D, 0)->_flags &= 0xFFFB; } void sceneHandler08_arcadeNow() { @@ -153,7 +159,10 @@ void sceneHandler08_arcadeNow() { } void sceneHandler08_resumeFlight() { - warning("STUB: sceneHandler08_resumeFlight()"); + g_vars->scene08_var08 = 3; + g_vars->scene08_var04 = -39; + g_vars->scene08_var01 = 1; + g_vars->scene08_var07 = 0; } void sceneHandler08_startArcade() { @@ -201,11 +210,19 @@ void sceneHandler08_sitDown() { } void sceneHandler08_standUp() { - warning("STUB: sceneHandler08_standUp()"); + chainQueue(QU_SC8_STANDUP, 1); + g_vars->scene08_var03 = 0; } -void sceneHandler08_updateScreenCallback() { - warning("STUB: sceneHandler08_updateScreenCallback()"); +int sceneHandler08_updateScreenCallback() { + int res; + + res = g_fp->drawArcadeOverlay(g_vars->scene08_var06); + + if (!res) + g_fp->_updateScreenCallback = 0; + + return res; } int sceneHandler08(ExCommand *cmd) { -- cgit v1.2.3