diff options
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/scenes/scene14.cpp | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp index 00f5647aba..ca2b34bf0c 100644 --- a/engines/fullpipe/scenes/scene14.cpp +++ b/engines/fullpipe/scenes/scene14.cpp @@ -380,10 +380,6 @@ void sceneHandler14_startArcade() { g_fp->_updateScreenCallback = sceneHandler14_updateScreenCallback; } -void sceneHandler14_sub01() { - warning("STUB: sceneHandler14_sub01()"); -} - void sceneHandler14_sub06() { g_fp->_aniMan->_callback2 = 0; g_vars->scene14_var04 = 0; @@ -626,6 +622,36 @@ void sceneHandler14_sub11() { } } +void sceneHandler14_sub01() { + int x = g_vars->scene14_var20 + g_vars->scene14_var22; + int y = g_vars->scene14_var21 + g_vars->scene14_var23; + + g_vars->scene14_var22 += g_vars->scene14_var20; + g_vars->scene14_var23 += g_vars->scene14_var21; + + g_vars->scene14_var21++; + + if (g_vars->scene14_var21 - 1 + g_vars->scene14_var23 > 517) { + if (x <= g_vars->scene14_var14 - 16 ) { + if ( g_vars->scene14_var20 >= 0 || x >= g_vars->scene14_var16 + 65 || x <= g_vars->scene14_var16 - 135 || y <= g_vars->scene14_var17 - 102 ) { + if (g_vars->scene14_var10->_movement) + g_vars->scene14_var10->_movement->setOXY(x, y); + else + g_vars->scene14_var10->setOXY(x, y); + } else { + sceneHandler14_sub11(); + g_vars->scene14_var05 = 0; + } + } else { + sceneHandler14_sub09(); + g_vars->scene14_var05 = 0; + } + } else { + sceneHandler14_sub07(); + g_vars->scene14_var05 = 0; + } +} + int sceneHandler14(ExCommand *cmd) { if (cmd->_messageKind != 17) return 0; |