diff options
Diffstat (limited to 'engines/fullpipe/scenes.h')
-rw-r--r-- | engines/fullpipe/scenes.h | 158 |
1 files changed, 153 insertions, 5 deletions
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h index 5f77f74706..ef6af54c0f 100644 --- a/engines/fullpipe/scenes.h +++ b/engines/fullpipe/scenes.h @@ -8,12 +8,12 @@ * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -25,11 +25,15 @@ namespace Fullpipe { +struct Bat; struct BehaviorEntryInfo; +struct Hanger; class MGM; class MctlLadder; struct Ring; class StaticANIObject; +struct Swinger; +struct WalkingBearder; int defaultUpdateCursor(); @@ -69,6 +73,10 @@ void scene08_setupMusic(); int sceneHandler08(ExCommand *cmd); int scene08_updateCursor(); +int scene09_updateCursor(); +void scene09_initScene(Scene *sc); +int sceneHandler09(ExCommand *cmd); + void scene10_initScene(Scene *sc); int sceneHandler10(ExCommand *cmd); int scene10_updateCursor(); @@ -103,7 +111,19 @@ int sceneHandler17(ExCommand *cmd); int scene17_updateCursor(); void scene18_preload(); -void scene19_preload(Scene *sc, int key); +void scene18_setupEntrance(); +void scene18_initScene1(Scene *sc); +void scene18_initScene2(Scene *sc); +int sceneHandler18(ExCommand *cmd); +int scene18_updateCursor(); + +void scene19_preload(); +void scene19_setMovements(Scene *sc, int entranceId); +void scene19_initScene2(); +void scene19_setMovements(Scene *sc, int key); +int sceneHandler19(ExCommand *cmd); +int scene19_updateCursor(); +void scene19_setSugarState(Scene *sc); void scene20_initScene(Scene *sc); int sceneHandler20(ExCommand *ex); @@ -136,10 +156,18 @@ void scene26_setupDrop(Scene *sc); int sceneHandler26(ExCommand *cmd); int scene26_updateCursor(); +void scene27_initScene(Scene *sc); +int sceneHandler27(ExCommand *ex); +int scene27_updateCursor(); + void scene28_initScene(Scene *sc); - int sceneHandler28(ExCommand *ex); +int sceneHandler28(ExCommand *ex); int scene28_updateCursor(); +int scene29_updateCursor(); +void scene29_initScene(Scene *sc); +int sceneHandler29(ExCommand *cmd); + int scene30_updateCursor(); void scene30_initScene(Scene *sc, int flag); int sceneHandler30(ExCommand *cmd); @@ -183,6 +211,30 @@ int sceneHandlerFinal(ExCommand *cmd); void sceneDbgMenu_initScene(Scene *sc); int sceneHandlerDbgMenu(ExCommand *cmd); +struct Ball { + Ball *p0; + Ball *p1; + StaticANIObject *ani; + + Ball() : p0(0), p1(0), ani(0) {} +}; + +struct BallChain { + Ball *pHead; + Ball *field_8; + int numBalls; + Ball *pTail; + byte *cPlex; + int cPlexLen; + + BallChain() : pHead(0), field_8(0), pTail(0), numBalls(0), cPlex(0), cPlexLen(0) {} + ~BallChain() { free(cPlex); } + + void init(Ball **ball); + Ball *sub04(Ball *ballP, Ball *ballN); + void reset() { pHead = 0; pTail = 0; field_8 = 0; numBalls = 0; free(cPlex); cPlex = 0; cPlexLen = 0; } +}; + class Vars { public: Vars(); @@ -314,6 +366,24 @@ public: bool scene08_stairsVisible; int scene08_manOffsetY; + int scene09_dudeY; + StaticANIObject *scene09_flyingBall; + int scene09_numSwallenBalls; + StaticANIObject *scene09_gulper; + StaticANIObject *scene09_spitter; + StaticANIObject *scene09_grit; + bool scene09_gulperIsPresent; + bool scene09_dudeIsOnLadder; + int scene09_interactingHanger; + int scene09_intHangerPhase; + int scene09_intHangerMaxPhase; + BallChain scene09_balls; + Common::Array<Hanger *> scene09_hangers; + BallChain scene09_flyingBalls; + int scene09_numMovingHangers; + int scene09_clickY; + Common::Point scene09_hangerOffsets[4]; + StaticANIObject *scene10_gum; StaticANIObject *scene10_packet; StaticANIObject *scene10_packet2; @@ -408,7 +478,39 @@ public: bool scene17_handPhase; int scene17_sceneEdgeX; - int scene18_var01; + bool scene18_inScene18p1; + StaticANIObject *scene18_whirlgig; + Common::Array<Swinger *> scene18_swingers; + int scene18_wheelCenterX; + int scene18_wheelCenterY; + bool scene18_bridgeIsConvoluted; + int scene18_whirlgigMovMum; + bool scene18_girlIsSwinging; + int scene18_rotationCounter; + int scene18_manY; + bool scene18_wheelFlipper; + bool scene18_wheelIsTurning; + int scene18_kidIsOnWheel; + int scene18_boyIsOnWheel; + int scene18_girlIsOnWheel; + bool scene18_boyJumpedOff; + int scene18_manWheelPos; + int scene18_manWheelPosTo; + int scene18_kidWheelPos; + int scene18_kidWheelPosTo; + int scene18_jumpDistance; + int scene18_jumpAngle; + bool scene18_manIsReady; + bool scene18_enteredTrubaRight; + StaticANIObject *scene18_boy; + StaticANIObject *scene18_girl; + StaticANIObject *scene18_domino; + int scene18_boyJumpX; + int scene18_boyJumpY; + int scene18_girlJumpX; + int scene18_girlJumpY; + + bool scene19_enteredTruba3; int scene20_fliesCountdown; StaticANIObject *scene20_grandma; @@ -461,6 +563,25 @@ public: StaticANIObject *scene26_sock; StaticANIObject *scene26_activeVent; + PictureObject *scene27_hitZone; + StaticANIObject *scene27_driver; + StaticANIObject *scene27_maid; + StaticANIObject *scene27_batHandler; + bool scene27_driverHasVent; + StaticANIObject *scene27_bat; + bool scene27_dudeIsAiming; + bool scene27_maxPhaseReached; + bool scene27_wipeIsNeeded; + bool scene27_driverPushedButton; + int scene27_numLostBats; + int scene27_knockCount; + int scene27_aimStartX; + int scene27_aimStartY; + int scene27_launchPhase; + BallChain scene27_balls; + Common::Array<Bat *> scene27_bats; + Common::Array<Bat *> scene27_var07; + bool scene28_fliesArePresent; bool scene28_beardedDirection; PictureObject *scene28_darkeningObject; @@ -469,6 +590,33 @@ public: bool scene28_headBeardedFlipper; bool scene28_lift6inside; + int scene29_var01; + int scene29_var02; + int scene29_var03; + int scene29_var04; + StaticANIObject *scene29_porter; + StaticANIObject *scene29_shooter1; + StaticANIObject *scene29_shooter2; + StaticANIObject *scene29_ass; + BallChain scene29_var05; + BallChain scene29_var06; + BallChain scene29_var07; + BallChain scene29_var08; + int scene29_var09; + int scene29_var10; + int scene29_var11; + int scene29_var12; + int scene29_var13; + int scene29_var14; + int scene29_var15; + int scene29_var16; + int scene29_var17; + int scene29_var18; + Common::Array<WalkingBearder *> scene29_var19; + int scene29_var20; + int scene29_var21; + MGM scene29_mgm; + StaticANIObject *scene30_leg; int scene30_liftFlag; |