1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef FULLPIPE_SCENES_H
24 #define FULLPIPE_SCENES_H
25 
26 namespace Fullpipe {
27 
28 struct Bat;
29 struct BehaviorMove;
30 struct Hanger;
31 class AniHandler;
32 class MctlLadder;
33 struct Ring;
34 class StaticANIObject;
35 struct Swinger;
36 struct WalkingBearder;
37 
38 int defaultUpdateCursor();
39 
40 int sceneIntro_updateCursor();
41 void sceneIntro_initScene(Scene *sc);
42 int sceneHandlerIntro(ExCommand *cmd);
43 
44 int sceneIntroDemo_updateCursor();
45 void sceneIntroDemo_initScene(Scene *sc);
46 int sceneHandlerIntroDemo(ExCommand *cmd);
47 
48 void scene01_fixEntrance();
49 void scene01_initScene(Scene *sc, int entrance);
50 int sceneHandler01(ExCommand *cmd);
51 
52 void scene02_initScene(Scene *sc);
53 int sceneHandler02(ExCommand *ex);
54 
55 void scene03_setEaterState();
56 int scene03_updateCursor();
57 void scene03_initScene(Scene *sc);
58 int sceneHandler03(ExCommand *cmd);
59 
60 int scene04_updateCursor();
61 void scene04_initScene(Scene *sc);
62 int sceneHandler04(ExCommand *cmd);
63 
64 void scene05_initScene(Scene *sc);
65 int sceneHandler05(ExCommand *cmd);
66 
67 void scene06_initScene(Scene *sc);
68 void scene06_initMumsy();
69 int sceneHandler06(ExCommand *cmd);
70 int scene06_updateCursor();
71 
72 void scene07_initScene(Scene *sc);
73 int sceneHandler07(ExCommand *cmd);
74 
75 void scene08_initScene(Scene *sc);
76 void scene08_setupMusic();
77 int sceneHandler08(ExCommand *cmd);
78 int scene08_updateCursor();
79 
80 int scene09_updateCursor();
81 void scene09_initScene(Scene *sc);
82 int sceneHandler09(ExCommand *cmd);
83 
84 void scene10_initScene(Scene *sc);
85 int sceneHandler10(ExCommand *cmd);
86 int scene10_updateCursor();
87 
88 void scene11_initScene(Scene *sc);
89 void scene11_setupMusic();
90 int sceneHandler11(ExCommand *cmd);
91 int scene11_updateCursor();
92 
93 void scene12_initScene(Scene *sc);
94 int sceneHandler12(ExCommand *ex);
95 
96 void scene13_initScene(Scene *sc);
97 int sceneHandler13(ExCommand *ex);
98 
99 void scene14_initScene(Scene *sc);
100 void scene14_setupMusic();
101 int sceneHandler14(ExCommand *cmd);
102 int scene14_updateCursor();
103 
104 int scene15_updateCursor();
105 void scene15_initScene(Scene *sc);
106 int sceneHandler15(ExCommand *cmd);
107 
108 void scene16_initScene(Scene *sc);
109 int sceneHandler16(ExCommand *cmd);
110 int scene16_updateCursor();
111 
112 void scene17_initScene(Scene *sc);
113 void scene17_restoreState();
114 int sceneHandler17(ExCommand *cmd);
115 int scene17_updateCursor();
116 
117 void scene18_preload();
118 void scene18_setupEntrance();
119 void scene18_initScene1(Scene *sc);
120 void scene18_initScene2(Scene *sc);
121 int sceneHandler18(ExCommand *cmd);
122 int scene18_updateCursor();
123 
124 void scene19_preload();
125 void scene19_setMovements(Scene *sc, int entranceId);
126 void scene19_initScene2();
127 void scene19_setMovements(Scene *sc, int key);
128 int sceneHandler19(ExCommand *cmd);
129 int scene19_updateCursor();
130 void scene19_setSugarState(Scene *sc);
131 
132 void scene20_initScene(Scene *sc);
133 int sceneHandler20(ExCommand *ex);
134 
135 int scene21_updateCursor();
136 void scene21_initScene(Scene *sc);
137 int sceneHandler21(ExCommand *cmd);
138 
139 void scene22_initScene(Scene *sc);
140 void scene22_setBagState();
141 int sceneHandler22(ExCommand *cmd);
142 int scene22_updateCursor();
143 
144 void scene23_initScene(Scene *sc);
145 void scene23_setGiraffeState();
146 int sceneHandler23(ExCommand *cmd);
147 int scene23_updateCursor();
148 
149 void scene24_initScene(Scene *sc);
150 void scene24_setPoolState();
151 int sceneHandler24(ExCommand *cmd);
152 
153 void scene25_initScene(Scene *sc, int entrance);
154 void scene25_setupWater(Scene *sc, int entrance);
155 int sceneHandler25(ExCommand *cmd);
156 int scene25_updateCursor();
157 
158 void scene26_initScene(Scene *sc);
159 void scene26_setupDrop(Scene *sc);
160 int sceneHandler26(ExCommand *cmd);
161 int scene26_updateCursor();
162 
163 void scene27_initScene(Scene *sc);
164 int sceneHandler27(ExCommand *ex);
165 int scene27_updateCursor();
166 
167 void scene28_initScene(Scene *sc);
168 int sceneHandler28(ExCommand *ex);
169 int scene28_updateCursor();
170 
171 int scene29_updateCursor();
172 void scene29_initScene(Scene *sc);
173 int sceneHandler29(ExCommand *cmd);
174 
175 int scene30_updateCursor();
176 void scene30_initScene(Scene *sc, int flag);
177 int sceneHandler30(ExCommand *cmd);
178 
179 void scene31_initScene(Scene *sc);
180 int sceneHandler31(ExCommand *ex);
181 
182 void scene32_initScene(Scene *sc);
183 void scene32_setupMusic();
184 int sceneHandler32(ExCommand *cmd);
185 int scene32_updateCursor();
186 
187 void scene33_initScene(Scene *sc);
188 void scene33_setupMusic();
189 int sceneHandler33(ExCommand *cmd);
190 int scene33_updateCursor();
191 
192 void scene34_initScene(Scene *sc);
193 void scene34_initBeh();
194 int sceneHandler34(ExCommand *cmd);
195 int scene34_updateCursor();
196 
197 void scene35_initScene(Scene *sc);
198 int sceneHandler35(ExCommand *cmd);
199 
200 int scene36_updateCursor();
201 void scene36_initScene(Scene *sc);
202 int sceneHandler36(ExCommand *cmd);
203 
204 void scene37_initScene(Scene *sc);
205 int sceneHandler37(ExCommand *ex);
206 int scene37_updateCursor();
207 
208 void scene38_initScene(Scene *sc);
209 int sceneHandler38(ExCommand *ex);
210 
211 int sceneFinal_updateCursor();
212 void sceneFinal_initScene();
213 int sceneHandlerFinal(ExCommand *cmd);
214 
215 void sceneDbgMenu_initScene(Scene *sc);
216 int sceneHandlerDbgMenu(ExCommand *cmd);
217 
218 class Vars {
219 public:
220 	Vars();
221 
222 	GameVar *swallowedEgg1;
223 	GameVar *swallowedEgg2;
224 	GameVar *swallowedEgg3;
225 
226 	StaticANIObject *sceneIntro_aniin1man;
227 	bool sceneIntro_needSleep;
228 	bool sceneIntro_needGetup;
229 	bool sceneIntro_skipIntro;
230 	bool sceneIntro_playing;
231 	bool sceneIntro_needBlackout;
232 
233 	PictureObject *scene01_picSc01Osk;
234 	PictureObject *scene01_picSc01Osk2;
235 
236 	StaticANIObject *scene02_guvTheDrawer;
237 	int scene02_boxDelay;
238 	bool scene02_boxOpen;
239 
240 	StaticANIObject *scene03_eggeater;
241 	StaticANIObject *scene03_domino;
242 
243 	PictureObject *scene04_bottle;
244 	StaticANIObject *scene04_hand;
245 	StaticANIObject *scene04_plank;
246 	StaticANIObject *scene04_clock;
247 	StaticANIObject *scene04_spring;
248 	StaticANIObject *scene04_mamasha;
249 	StaticANIObject *scene04_boot;
250 	StaticANIObject *scene04_speaker;
251 
252 	Common::Point scene04_jumpingKozyawki[20];
253 	Common::Point scene04_jumpRotateKozyawki[20];
254 
255 	Common::List<StaticANIObject *> scene04_kozyawkiObjList;
256 	Common::List<GameObject *> scene04_bottleObjList;
257 	Common::List<StaticANIObject *> scene04_kozyawkiAni;
258 
259 	MctlLadder *scene04_ladder;
260 	int scene04_ladderOffset;
261 
262 	bool scene04_coinPut;
263 	bool scene04_soundPlaying;
264 	bool scene04_dudeOnLadder;
265 
266 	int scene04_dynamicPhaseIndex;
267 	int scene04_sceneClickX;
268 	int scene04_sceneClickY;
269 	int scene04_dudePosX;
270 	int scene04_dudePosY;
271 	int scene04_bottleY;
272 
273 	StaticANIObject *scene04_walkingKozyawka;
274 
275 	int scene04_speakerVariant;
276 	int scene04_speakerPhase;
277 
278 	bool scene04_bottleIsTaken;
279 	bool scene04_kozyawkaOnLadder;
280 	int scene04_bottleWeight;
281 	bool scene04_var07;
282 	bool scene04_ladderClickable;
283 	bool scene04_handIsDown;
284 	bool scene04_dudeInBottle;
285 	bool scene04_kozHeadRaised;
286 	bool scene04_bottleIsDropped;
287 	bool scene04_bigBallIn;
288 	int scene04_bigBallCounter;
289 	bool scene04_bigBallFromLeft;
290 	bool scene04_clockCanGo;
291 	bool scene04_objectIsTaken;
292 	int scene04_springOffset;
293 	StaticANIObject *scene04_lastKozyawka;
294 	int scene04_springDelay;
295 	int scene04_musicStage;
296 
297 
298 	StaticANIObject *scene05_handle;
299 	StaticANIObject *scene05_wacko;
300 	StaticANIObject *scene05_bigHatch;
301 	int scene05_wackoTicker;
302 	int scene05_handleFlipper;
303 	int scene05_floatersTicker;
304 
305 	StaticANIObject *scene06_mumsy;
306 	int scene06_manX;
307 	int scene06_manY;
308 	int scene06_ballX;
309 	int scene06_ballY;
310 	StaticANIObject *scene06_someBall;
311 	StaticANIObject *scene06_invHandle;
312 	StaticANIObject *scene06_liftButton;
313 	StaticANIObject *scene06_ballDrop;
314 	bool scene06_arcadeEnabled;
315 	bool scene06_aimingBall;
316 	StaticANIObject *scene06_currentBall;
317 	StaticANIObject *scene06_ballInHands;
318 	StaticANIObject *scene06_flyingBall;
319 	Common::Array<StaticANIObject *> scene06_balls;
320 	int scene06_numBallsGiven;
321 	int scene06_mumsyNumBalls;
322 	int scene06_eggieTimeout;
323 	int scene06_eggieDirection;
324 	int scene06_mumsyGotBall;
325 	int scene06_ballDeltaX;
326 	int scene06_ballDeltaY;
327 	int scene06_sceneClickX;
328 	int scene06_sceneClickY;
329 	int scene06_mumsyPos;
330 	BehaviorMove *scene06_mumsyJumpBk;
331 	BehaviorMove *scene06_mumsyJumpFw;
332 	int scene06_mumsyJumpBkPercent;
333 	int scene06_mumsyJumpFwPercent;
334 
335 	BehaviorMove *scene07_lukeAnim;
336 	int scene07_lukePercent;
337 	StaticANIObject *scene07_plusMinus;
338 
339 	StaticANIObject *scene08_batuta;
340 	StaticANIObject *scene08_vmyats;
341 	StaticANIObject *scene08_clock;
342 	bool scene08_inAir;
343 	bool scene08_flyingUp;
344 	int scene08_onBelly;
345 	int scene08_stairsOffset;
346 	int scene08_snoringCountdown;
347 	bool scene08_inArcade;
348 	bool scene08_stairsVisible;
349 	int scene08_manOffsetY;
350 
351 	int scene09_dudeY;
352 	StaticANIObject *scene09_flyingBall;
353 	int scene09_numSwallenBalls;
354 	StaticANIObject *scene09_gulper;
355 	StaticANIObject *scene09_spitter;
356 	StaticANIObject *scene09_grit;
357 	bool scene09_gulperIsPresent;
358 	bool scene09_dudeIsOnLadder;
359 	int scene09_interactingHanger;
360 	int scene09_intHangerPhase;
361 	int scene09_intHangerMaxPhase;
362 	Common::Array<StaticANIObject *> scene09_flyingBalls;
363 	Common::Array<Hanger *> scene09_hangers;
364 	Common::Array<StaticANIObject *> scene09_sceneBalls;
365 	int scene09_numMovingHangers;
366 	int scene09_clickY;
367 	Common::Point scene09_hangerOffsets[4];
368 
369 	StaticANIObject *scene10_gum;
370 	StaticANIObject *scene10_packet;
371 	StaticANIObject *scene10_packet2;
372 	StaticANIObject *scene10_inflater;
373 	PictureObject *scene10_ladder;
374 	int scene10_hasGum;
375 
376 	StaticANIObject *scene11_swingie;
377 	StaticANIObject *scene11_boots;
378 	StaticANIObject *scene11_dudeOnSwing;
379 	PictureObject *scene11_hint;
380 	AniHandler scene11_aniHandler;
381 	bool scene11_arcadeIsOn;
382 	bool scene11_scrollIsEnabled;
383 	bool scene11_scrollIsMaximized;
384 	int scene11_hintCounter;
385 	int scene11_swingieScreenEdge;
386 	int scene11_crySound;
387 	double scene11_swingAngle;
388 	double scene11_swingOldAngle;
389 	double scene11_swingSpeed;
390 	double scene11_swingAngleDiff;
391 	double scene11_swingInertia;
392 	int scene11_swingCounter;
393 	int scene11_swingCounterPrevTurn;
394 	int scene11_swingDirection;
395 	int scene11_swingDirectionPrevTurn;
396 	bool scene11_swingIsSwinging;
397 	bool scene11_swingieStands;
398 	int scene11_dudeX;
399 	int scene11_dudeY;
400 	int scene11_swingMaxAngle;
401 
402 	int scene12_fly;
403 	int scene12_flyCountdown;
404 
405 	StaticANIObject *scene13_whirlgig;
406 	StaticANIObject *scene13_guard;
407 	StaticANIObject *scene13_handleR;
408 	StaticANIObject *scene13_handleL;
409 	StaticANIObject *scene13_bridge;
410 	bool scene13_guardDirection;
411 	int scene13_dudeX;
412 
413 	StaticANIObject *scene14_grandma;
414 	int scene14_sceneDeltaX;
415 	int scene14_sceneDeltaY;
416 	bool scene14_arcadeIsOn;
417 	bool scene14_dudeIsKicking;
418 	bool scene14_ballIsFlying;
419 	bool scene14_dudeCanKick;
420 	int scene14_sceneDiffX;
421 	int scene14_sceneDiffY;
422 	StaticANIObject *scene14_pink;
423 	StaticANIObject *scene14_flyingBall;
424 	Common::List<StaticANIObject *> scene14_balls;
425 	bool scene14_grandmaIsHere;
426 	int scene14_dudeX;
427 	int scene14_dudeY;
428 	int scene14_grandmaX;
429 	int scene14_grandmaY;
430 	int scene14_dude2X;
431 	int scene14_ballDeltaX;
432 	int scene14_ballDeltaY;
433 	int scene14_ballX;
434 	int scene14_ballY;
435 	int scene14_hitsLeft;
436 	Common::Point scene14_mouseCursorPos;
437 
438 	int scene15_chantingCountdown;
439 	StaticANIObject *scene15_plusminus;
440 	PictureObject *scene15_ladder;
441 	StaticANIObject *scene15_boot;
442 
443 	Common::List<StaticANIObject *> scene16_figures;
444 	StaticANIObject *scene16_walkingBoy;
445 	StaticANIObject *scene16_walkingGirl;
446 	int scene16_walkingCount;
447 	StaticANIObject *scene16_wire;
448 	StaticANIObject *scene16_mug;
449 	StaticANIObject *scene16_jettie;
450 	StaticANIObject *scene16_boot;
451 	bool scene16_girlIsLaughing;
452 	int scene16_sound;
453 	bool scene16_placeIsOccupied;
454 
455 	int scene17_flyState;
456 	bool scene17_sugarIsShown;
457 	int scene17_sceneOldEdgeX;
458 	int scene17_flyCountdown;
459 	StaticANIObject *scene17_hand;
460 	bool scene17_handPhase;
461 	int scene17_sceneEdgeX;
462 
463 	bool scene18_inScene18p1;
464 	StaticANIObject *scene18_whirlgig;
465 	Common::Array<Swinger *> scene18_swingers;
466 	int scene18_wheelCenterX;
467 	int scene18_wheelCenterY;
468 	bool scene18_bridgeIsConvoluted;
469 	int scene18_whirlgigMovMum;
470 	bool scene18_girlIsSwinging;
471 	int scene18_rotationCounter;
472 	int scene18_manY;
473 	bool scene18_wheelFlipper;
474 	bool scene18_wheelIsTurning;
475 	int scene18_kidIsOnWheel;
476 	int scene18_boyIsOnWheel;
477 	int scene18_girlIsOnWheel;
478 	bool scene18_boyJumpedOff;
479 	int scene18_manWheelPos;
480 	int scene18_manWheelPosTo;
481 	int scene18_kidWheelPos;
482 	int scene18_kidWheelPosTo;
483 	int scene18_jumpDistance;
484 	int scene18_jumpAngle;
485 	bool scene18_manIsReady;
486 	bool scene18_enteredTrubaRight;
487 	StaticANIObject *scene18_boy;
488 	StaticANIObject *scene18_girl;
489 	StaticANIObject *scene18_domino;
490 	int scene18_boyJumpX;
491 	int scene18_boyJumpY;
492 	int scene18_girlJumpX;
493 	int scene18_girlJumpY;
494 
495 	bool scene19_enteredTruba3;
496 
497 	int scene20_fliesCountdown;
498 	StaticANIObject *scene20_grandma;
499 
500 	StaticANIObject *scene21_giraffeBottom;
501 	int scene21_giraffeBottomX;
502 	int scene21_giraffeBottomY;
503 	int scene21_pipeIsOpen;
504 	double scene21_wigglePos;
505 	bool scene21_wiggleTrigger;
506 
507 	StaticANIObject *scene22_bag;
508 	StaticANIObject *scene22_giraffeMiddle;
509 	bool scene22_dudeIsOnStool;
510 	bool scene22_interactionIsDisabled;
511 	bool scene22_craneIsOut;
512 	int scene22_numBagFalls;
513 
514 	StaticANIObject *scene23_calend0;
515 	StaticANIObject *scene23_calend1;
516 	StaticANIObject *scene23_calend2;
517 	StaticANIObject *scene23_calend3;
518 	bool scene23_topReached;
519 	bool scene23_isOnStool;
520 	int scene23_someVar;
521 	StaticANIObject *scene23_giraffeTop;
522 	StaticANIObject *scene23_giraffee;
523 
524 	bool scene24_jetIsOn;
525 	bool scene24_flowIsLow;
526 	bool scene24_waterIsOn;
527 	StaticANIObject *scene24_water;
528 	StaticANIObject *scene24_jet;
529 	StaticANIObject *scene24_drop;
530 
531 	StaticANIObject *scene25_water;
532 	StaticANIObject *scene25_board;
533 	StaticANIObject *scene25_drop;
534 	bool scene25_dudeIsOnBoard;
535 	bool scene25_waterIsPresent;
536 	bool scene25_boardIsSelectable;
537 	bool scene25_beardersAreThere;
538 	int scene25_beardersCounter;
539 	Common::Array<StaticANIObject *> scene25_bearders;
540 	bool scene25_sneezeFlipper;
541 
542 	StaticANIObject *scene26_chhi;
543 	StaticANIObject *scene26_drop;
544 	PictureObject *scene26_sockPic;
545 	StaticANIObject *scene26_sock;
546 	StaticANIObject *scene26_activeVent;
547 
548 	PictureObject *scene27_hitZone;
549 	StaticANIObject *scene27_driver;
550 	StaticANIObject *scene27_maid;
551 	StaticANIObject *scene27_batHandler;
552 	bool scene27_driverHasVent;
553 	StaticANIObject *scene27_bat;
554 	bool scene27_dudeIsAiming;
555 	bool scene27_maxPhaseReached;
556 	bool scene27_wipeIsNeeded;
557 	bool scene27_driverPushedButton;
558 	int scene27_numLostBats;
559 	int scene27_knockCount;
560 	int scene27_aimStartX;
561 	int scene27_aimStartY;
562 	int scene27_launchPhase;
563 	Common::Array<StaticANIObject *> scene27_balls;
564 	Common::Array<Bat *> scene27_bats;
565 	Common::Array<Bat *> scene27_var07;
566 
567 	bool scene28_fliesArePresent;
568 	bool scene28_beardedDirection;
569 	PictureObject *scene28_darkeningObject;
570 	PictureObject *scene28_lighteningObject;
571 	bool scene28_headDirection;
572 	bool scene28_headBeardedFlipper;
573 	bool scene28_lift6inside;
574 
575 	StaticANIObject *scene29_porter;
576 	StaticANIObject *scene29_shooter1;
577 	StaticANIObject *scene29_shooter2;
578 	StaticANIObject *scene29_ass;
579 	Common::Array<StaticANIObject *> scene29_greenBalls;
580 	Common::Array<StaticANIObject *> scene29_redBalls;
581 	Common::Array<StaticANIObject *> scene29_flyingRedBalls;
582 	Common::Array<StaticANIObject *> scene29_flyingGreenBalls;
583 	bool scene29_manIsRiding;
584 	bool scene29_arcadeIsOn;
585 	bool scene29_reachedFarRight;
586 	bool scene29_rideBackEnabled;
587 	int scene29_shootCountdown;
588 	int scene29_shootDistance;
589 	int scene29_manIsHit;
590 	int scene29_scrollSpeed;
591 	bool scene29_scrollingDisabled;
592 	int scene29_hitBall;
593 	Common::Array<WalkingBearder *> scene29_bearders;
594 	int scene29_manX;
595 	int scene29_manY;
596 	AniHandler scene29_aniHandler;
597 
598 	StaticANIObject *scene30_leg;
599 	int scene30_liftFlag;
600 
601 	int scene31_chantingCountdown;
602 	StaticANIObject *scene31_cactus;
603 	StaticANIObject *scene31_plusMinus;
604 
605 	bool scene32_flagIsWaving;
606 	bool scene32_flagNeedsStopping;
607 	bool scene32_dudeIsSitting;
608 	int scene32_cactusCounter;
609 	bool scene32_dudeOnLadder;
610 	bool scene32_cactusIsGrowing;
611 	StaticANIObject *scene32_flag;
612 	StaticANIObject *scene32_cactus;
613 	StaticANIObject *scene32_massOrange;
614 	StaticANIObject *scene32_massBlue;
615 	StaticANIObject *scene32_massGreen;
616 	StaticANIObject *scene32_button;
617 
618 	StaticANIObject *scene33_mug;
619 	StaticANIObject *scene33_jettie;
620 	StaticANIObject *scene33_cube;
621 	int scene33_cubeX;
622 	bool scene33_handleIsDown;
623 	int scene33_ventsX[9];
624 	int scene33_ventsState[9];
625 
626 	StaticANIObject *scene34_cactus;
627 	StaticANIObject *scene34_vent;
628 	StaticANIObject *scene34_hatch;
629 	StaticANIObject *scene34_boot;
630 	bool scene34_dudeClimbed;
631 	bool scene34_dudeOnBoard;
632 	bool scene34_dudeOnCactus;
633 	int scene34_fliesCountdown;
634 
635 	StaticANIObject *scene35_hose;
636 	StaticANIObject *scene35_bellyInflater;
637 	int scene35_flowCounter;
638 	int scene35_fliesCounter;
639 
640 	StaticANIObject *scene36_rotohrust;
641 	StaticANIObject *scene36_scissors;
642 
643 	Common::Array<Ring *> scene37_rings;
644 	int scene37_lastDudeX;
645 	bool scene37_pipeIsOpen;
646 	StaticANIObject *scene37_plusMinus1;
647 	StaticANIObject *scene37_plusMinus2;
648 	StaticANIObject *scene37_plusMinus3;
649 	int scene37_soundFlipper;
650 	int scene37_dudeX;
651 
652 	StaticANIObject *scene38_boss;
653 	StaticANIObject *scene38_tally;
654 	StaticANIObject *scene38_shorty;
655 	StaticANIObject *scene38_domino0;
656 	StaticANIObject *scene38_dominos;
657 	StaticANIObject *scene38_domino1;
658 	StaticANIObject *scene38_bottle;
659 	int scene38_bossCounter;
660 	int scene38_lastBossAnim;
661 	int scene38_bossAnimCounter;
662 	int scene38_tallyCounter;
663 	int scene38_lastTallyAnim;
664 	int scene38_tallyAnimCounter;
665 	int scene38_shortyCounter;
666 	int scene38_lastShortyAnim;
667 	int scene38_shortyAnimCounter;
668 
669 	int sceneFinal_var01;
670 	int sceneFinal_var02;
671 	int sceneFinal_var03;
672 	bool sceneFinal_trackHasStarted;
673 
674 	PictureObject *selector;
675 };
676 
677 struct Ring {
678 	StaticANIObject *ani;
679 	int x;
680 	int y;
681 	int numSubRings;
682 	int subRings[10];
683 	bool state;
684 
685 	Ring();
686 };
687 
688 } // End of namespace Fullpipe
689 
690 #endif /* FULLPIPE_SCENES_H */
691