diff options
Diffstat (limited to 'engines/fullpipe/scenes.cpp')
-rw-r--r-- | engines/fullpipe/scenes.cpp | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index 3fe8704d3b..7420c1b1cf 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -378,26 +378,22 @@ Vars::Vars() { scene28_headBeardedFlipper = false; scene28_lift6inside = false; - scene29_var01 = 0; - scene29_var02 = 0; - scene29_var03 = 0; - scene29_var04 = 0; scene29_porter = 0; scene29_shooter1 = 0; scene29_shooter2 = 0; scene29_ass = 0; - scene29_var09 = 0; - scene29_var10 = 0; - scene29_var11 = 0; - scene29_var12 = 0; - scene29_var13 = 0; - scene29_var14 = 75; - scene29_var15 = 0; - scene29_var16 = 0; - scene29_var17 = 0; - scene29_var18 = 0; - scene29_var20 = 0; - scene29_var21 = 0; + scene29_manIsRiding = false; + scene29_arcadeIsOn = false; + scene29_reachedFarRight = false; + scene29_rideBackEnabled = false; + scene29_shootCountdown = 0; + scene29_shootDistance = 75; + scene29_manIsHit = 0; + scene29_scrollSpeed = 0; + scene29_scrollingDisabled = 0; + scene29_hitBall = 0; + scene29_manX = 0; + scene29_manY = 0; scene30_leg = 0; scene30_liftFlag = 1; @@ -1110,10 +1106,6 @@ int defaultUpdateCursor() { return g_fp->_cursorId; } -void FullpipeEngine::processArcade(ExCommand *ex) { - warning("STUB: FullpipeEngine::processArcade()"); -} - void FullpipeEngine::updateMapPiece(int mapId, int update) { for (int i = 0; i < 200; i++) { int hiWord = (_mapTable[i] >> 16) & 0xffff; @@ -1469,5 +1461,31 @@ Ball *BallChain::sub04(Ball *ballP, Ball *ballN) { return pTail; } +void BallChain::removeBall(Ball *ball) { + if (ball == pHead) + pHead = ball->p0; + else + ball->p1->p0 = ball->p0; + + if (ball == field_8) + field_8 = ball->p1; + else + ball->p0->p1 = ball->p1; + + ball->p0 = pTail; + pTail = ball; + + numBalls--; + + if (!numBalls) { + numBalls = 0; + pTail = 0; + field_8 = 0; + pHead = 0; + free(cPlex); + cPlex = 0; + } +} + } // End of namespace Fullpipe |