From 2d2c9929f6a4ace150219cb803e796a1cdbaedce Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 6 Feb 2014 23:15:20 +0200 Subject: FULLPIPE: Implement sceneHandler27_calcWinArcade() --- engines/fullpipe/scenes/scene27.cpp | 40 ++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'engines/fullpipe') diff --git a/engines/fullpipe/scenes/scene27.cpp b/engines/fullpipe/scenes/scene27.cpp index 1807266c23..c6d945eeab 100644 --- a/engines/fullpipe/scenes/scene27.cpp +++ b/engines/fullpipe/scenes/scene27.cpp @@ -441,8 +441,46 @@ void sceneHandler27_batSetColors(int batn) { } } +void sceneHandler27_driverPushButton() { + warning("STUB: sceneHandler27_driverPushButton()"); +} + +void sceneHandler27_maidSwitchback() { + warning("STUB: sceneHandler27_maidSwitchback()"); +} + +void sceneHandler27_batLogic() { + warning("STUB: sceneHandler27_batLogic()"); +} + void sceneHandler27_calcWinArcade() { - warning("STUB: sceneHandler27_calcWinArcade()"); + if (!g_vars->scene27_var10 && !g_vars->scene27_var11) { + int numHilite = 0; + + for (uint i = 0; i < g_vars->scene27_bats.size(); i++) { + if (g_vars->scene27_bats[i]->ani->_statics->_staticsId == ST_BTA_HILITE) + numHilite++; + } + + if (numHilite >= 3) { + if (g_fp->getObjectState(sO_Driver) == g_fp->getObjectEnumState(sO_Driver, sO_WithSteering)) { + sceneHandler27_driverGiveVent(); + sceneHandler27_maidSwitchback(); + + return; + } + } + + if (!g_vars->scene27_balls.numBalls) { + sceneHandler27_driverPushButton(); + sceneHandler27_maidSwitchback(); + return; + } + + sceneHandler27_batLogic(); + } + + sceneHandler27_maidSwitchback(); } void sceneHandler27_sub02() { -- cgit v1.2.3