aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/nebular/nebular_scenes2.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/nebular/nebular_scenes2.h')
-rw-r--r--engines/mads/nebular/nebular_scenes2.h325
1 files changed, 325 insertions, 0 deletions
diff --git a/engines/mads/nebular/nebular_scenes2.h b/engines/mads/nebular/nebular_scenes2.h
new file mode 100644
index 0000000000..c860db9470
--- /dev/null
+++ b/engines/mads/nebular/nebular_scenes2.h
@@ -0,0 +1,325 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * 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.
+ *
+ */
+
+#ifndef MADS_NEBULAR_SCENES2_H
+#define MADS_NEBULAR_SCENES2_H
+
+#include "common/scummsys.h"
+#include "mads/game.h"
+#include "mads/scene.h"
+#include "mads/nebular/nebular_scenes.h"
+
+namespace MADS {
+
+namespace Nebular {
+
+class Scene2xx : public NebularScene {
+protected:
+ /**
+ * Plays an appropriate sound when entering a scene
+ */
+ void setAAName();
+
+ /**
+ * Updates the prefix used for getting player sprites for the scene
+ */
+ void setPlayerSpritesPrefix();
+
+ void sceneEntrySound();
+public:
+ Scene2xx(MADSEngine *vm) : NebularScene(vm) {}
+};
+
+class Scene201 : public Scene2xx {
+private:
+ bool _pterodactylFlag;
+
+public:
+ Scene201(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void actions();
+};
+
+class Scene202 : public Scene2xx {
+private:
+ bool _activeMsgFl, _ladderTopFl, _waitingMeteoFl, _toStationFl, _toTeleportFl;
+ int _ladderHotspotId, _lastRoute, _stationCounter, _meteoFrame;
+ uint32 _meteoClock1, _meteoClock2, _startTime;
+ bool _meteorologistSpecial;
+
+ int subStep1(int randVal);
+ int subStep2(int randVal);
+ int subStep3(int randVal);
+ int subStep4(int randVal);
+
+public:
+ Scene202(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+
+ void setRandomKernelMessage();
+};
+
+class Scene203 : public Scene2xx {
+private:
+ bool _rhotundaEat2Fl, _rhotundaEatFl;
+
+public:
+ Scene203(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
+
+class Scene205 : public Scene2xx {
+private:
+ uint32 _lastFishTime, _chickenTime;
+ bool _beingKicked;
+ int _kernelMessage;
+ Conversation _dialog1;
+
+ void handleWomanSpeech(int quoteId);
+
+public:
+ Scene205(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void actions();
+};
+
+class Scene207 : public Scene2xx {
+private:
+ bool _vultureFl, _spiderFl, _eyeFl;
+ int _spiderHotspotId, _vultureHotspotId;
+ int32 _spiderTime, _vultureTime;
+
+ void moveVulture();
+ void moveSpider();
+
+public:
+ Scene207(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
+
+class Scene208 : public Scene2xx {
+private:
+ bool _rhotundaTurnFl, _boundingFl;
+ int32 _rhotundaTime;
+
+ void updateTrap();
+ void subAction(int mode);
+
+public:
+ Scene208(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
+
+class Scene209 : public Scene2xx {
+private:
+ bool _dodgeFl, _forceDodgeFl, _shouldDodgeFl;
+ bool _pitchFl;
+ bool _fallFl, _forceFallFl, _shouldFallFl;
+ bool _playingAnimFl, _playingDialogFl;
+ int _pauseMode, _pauseCounterThreshold, _pauseCounter;
+ bool _removeMonkeyFl;
+ int _monkeyPosition;
+ bool _shootReadyFl, _startShootingInTimerFl, _shootMissedLastFl;
+ bool _binocularsDroppedFl;
+ int _dialogAbortVal;
+ int _counter;
+
+ void handlePause();
+ void initPauseCounterThreshold();
+ void handlePeek();
+ void handleVerticalMove();
+ void handleLookStay();
+ void handleLookRight();
+ void handleBlink();
+ void handleGetBinoculars();
+ void handleStandFromPeek();
+ void handleDodge();
+ void handleBinocularBlink();
+ void handleBinocularScan();
+ void handleJumpInTree();
+ void handleTongue();
+ void handleMonkeyFall();
+ void handleJumpAndHide();
+ void handleMonkeyEating();
+ void handleMonkey1();
+ void handleStandBlink();
+ void handleMonkey2();
+
+public:
+ Scene209(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
+
+class Scene210 : public Scene2xx {
+private:
+ int _curDialogNode;
+ int _nextHandsPlace;
+ int _twinkleAnimationType;
+ int _twinklesCurrentFrame;
+ bool _shouldTalk, _shouldFaceRex, _shouldMoveHead;
+ bool _stopWalking;
+ bool _twinklesTalking;
+ bool _twinklesTalk2;
+ int _doorway;
+ Common::String _subQuote2;
+ Conversation _conv1, _conv2, _conv3;
+ Conversation _conv5, _conv6, _conv7, _conv8;
+
+ void handleConversations();
+ void handleConversation1();
+ void handleConversation2();
+ void handleConversation3();
+ void handleConversation5();
+ void handleConversation6();
+ void handleConversation7();
+ void handleConversation8();
+ void setDialogNode(int node);
+ void handleTwinklesSpeech(int quoteId, int shiftX, uint32 delay);
+ void newNode(int node);
+ void restoreDialogNode(int node, int msgId, int posY);
+
+public:
+ Scene210(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
+
+class Scene211 : public Scene2xx {
+private:
+ bool _ambushFl, _wakeFl;
+ int _monkeyFrame, _scrollY;
+ uint32 _monkeyTime;
+
+public:
+ Scene211(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
+
+class Scene212 : public Scene2xx {
+public:
+ Scene212(MADSEngine *vm) : Scene2xx(vm) {}
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
+
+class Scene213 : public SceneTeleporter {
+public:
+ Scene213(MADSEngine *vm) : SceneTeleporter(vm) {}
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void actions();
+};
+
+class Scene214 : public Scene2xx {
+private:
+ uint32 _devilTime;
+ bool _devilRunningFl;
+
+public:
+ Scene214(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void actions();
+};
+
+class Scene215 : public Scene2xx {
+public:
+ Scene215(MADSEngine *vm) : Scene2xx(vm) {}
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void actions();
+};
+
+class Scene216 : public Scene2xx {
+public:
+ Scene216(MADSEngine *vm) : Scene2xx(vm) {}
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void actions() {};
+};
+
+} // End of namespace Nebular
+
+} // End of namespace MADS
+
+#endif /* MADS_NEBULAR_SCENES2_H */