aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/scenes/scene14.cpp34
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;