ScummVM API documentation
nebular_scenes2.h
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 modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (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, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef MADS_NEBULAR_SCENES2_H
23 #define MADS_NEBULAR_SCENES2_H
24 
25 #include "common/scummsys.h"
26 #include "mads/game.h"
27 #include "mads/scene.h"
28 #include "mads/nebular/nebular_scenes.h"
29 
30 namespace MADS {
31 
32 namespace Nebular {
33 
34 class Scene2xx : public NebularScene {
35 protected:
39  void setAAName();
40 
45 
46  void sceneEntrySound();
47 public:
48  Scene2xx(MADSEngine *vm) : NebularScene(vm) {}
49 };
50 
51 class Scene201 : public Scene2xx {
52 private:
53  bool _pterodactylFlag;
54 
55 public:
56  Scene201(MADSEngine *vm);
57  void synchronize(Common::Serializer &s) override;
58 
59  void setup() override;
60  void enter() override;
61  void step() override;
62  void actions() override;
63 };
64 
65 class Scene202 : public Scene2xx {
66 private:
67  bool _activeMsgFl, _ladderTopFl, _waitingMeteoFl, _toStationFl, _toTeleportFl;
68  int _ladderHotspotId, _lastRoute, _stationCounter, _meteoFrame;
69  uint32 _meteoClock1, _meteoClock2, _startTime;
70  bool _meteorologistSpecial;
71 
72  int subStep1(int randVal);
73  int subStep2(int randVal);
74  int subStep3(int randVal);
75  int subStep4(int randVal);
76 
77 public:
78  Scene202(MADSEngine *vm);
79  void synchronize(Common::Serializer &s) override;
80 
81  void setup() override;
82  void enter() override;
83  void step() override;
84  void preActions() override;
85  void actions() override;
86 
87  void setRandomKernelMessage();
88 };
89 
90 class Scene203 : public Scene2xx {
91 private:
92  bool _rhotundaEat2Fl, _rhotundaEatFl;
93 
94 public:
95  Scene203(MADSEngine *vm);
96  void synchronize(Common::Serializer &s) override;
97 
98  void setup() override;
99  void enter() override;
100  void step() override;
101  void preActions() override;
102  void actions() override;
103 };
104 
105 class Scene205 : public Scene2xx {
106 private:
107  uint32 _lastFishTime, _chickenTime;
108  bool _beingKicked;
109  int _kernelMessage;
110  Conversation _dialog1;
111 
112  void handleWomanSpeech(int quoteId);
113 
114 public:
115  Scene205(MADSEngine *vm);
116  void synchronize(Common::Serializer &s) override;
117 
118  void setup() override;
119  void enter() override;
120  void step() override;
121  void actions() override;
122 };
123 
124 class Scene207 : public Scene2xx {
125 private:
126  bool _vultureFl, _spiderFl, _eyeFl;
127  int _spiderHotspotId, _vultureHotspotId;
128  int32 _spiderTime, _vultureTime;
129 
130  void moveVulture();
131  void moveSpider();
132 
133 public:
134  Scene207(MADSEngine *vm);
135  void synchronize(Common::Serializer &s) override;
136 
137  void setup() override;
138  void enter() override;
139  void step() override;
140  void preActions() override;
141  void actions() override;
142 };
143 
144 class Scene208 : public Scene2xx {
145 private:
146  bool _rhotundaTurnFl, _boundingFl;
147  int32 _rhotundaTime;
148 
149  void updateTrap();
150  void subAction(int mode);
151 
152 public:
153  Scene208(MADSEngine *vm);
154  void synchronize(Common::Serializer &s) override;
155 
156  void setup() override;
157  void enter() override;
158  void step() override;
159  void preActions() override;
160  void actions() override;
161 };
162 
163 class Scene209 : public Scene2xx {
164 private:
165  bool _dodgeFl, _forceDodgeFl, _shouldDodgeFl;
166  bool _pitchFl;
167  bool _fallFl, _forceFallFl, _shouldFallFl;
168  bool _playingAnimFl, _playingDialogFl;
169  int _pauseMode, _pauseCounterThreshold, _pauseCounter;
170  bool _removeMonkeyFl;
171  int _monkeyPosition;
172  bool _shootReadyFl, _startShootingInTimerFl, _shootMissedLastFl;
173  bool _binocularsDroppedFl;
174  int _dialogAbortVal;
175  int _counter;
176 
177  void handlePause();
178  void initPauseCounterThreshold();
179  void handlePeek();
180  void handleVerticalMove();
181  void handleLookStay();
182  void handleLookRight();
183  void handleBlink();
184  void handleGetBinoculars();
185  void handleStandFromPeek();
186  void handleDodge();
187  void handleBinocularBlink();
188  void handleBinocularScan();
189  void handleJumpInTree();
190  void handleTongue();
191  void handleMonkeyFall();
192  void handleJumpAndHide();
193  void handleMonkeyEating();
194  void handleMonkey1();
195  void handleStandBlink();
196  void handleMonkey2();
197 
198 public:
199  Scene209(MADSEngine *vm);
200  void synchronize(Common::Serializer &s) override;
201 
202  void setup() override;
203  void enter() override;
204  void step() override;
205  void preActions() override;
206  void actions() override;
207 };
208 
209 class Scene210 : public Scene2xx {
210 private:
211  int _curDialogNode;
212  int _nextHandsPlace;
213  int _twinkleAnimationType;
214  int _twinklesCurrentFrame;
215  bool _shouldTalk, _shouldFaceRex, _shouldMoveHead;
216  bool _stopWalking;
217  bool _twinklesTalking;
218  bool _twinklesTalk2;
219  int _doorway;
220  Common::String _subQuote2;
221  Conversation _conv1, _conv2, _conv3;
222  Conversation _conv5, _conv6, _conv7, _conv8;
223 
224  void handleConversations();
225  void handleConversation1();
226  void handleConversation2();
227  void handleConversation3();
228  void handleConversation5();
229  void handleConversation6();
230  void handleConversation7();
231  void handleConversation8();
232  void setDialogNode(int node);
233  void handleTwinklesSpeech(int quoteId, int shiftX, uint32 delay);
234  void newNode(int node);
235  void restoreDialogNode(int node, int msgId, int posY);
236 
237 public:
238  Scene210(MADSEngine *vm);
239  void synchronize(Common::Serializer &s) override;
240 
241  void setup() override;
242  void enter() override;
243  void step() override;
244  void preActions() override;
245  void actions() override;
246 };
247 
248 class Scene211 : public Scene2xx {
249 private:
250  bool _ambushFl, _wakeFl;
251  int _monkeyFrame, _scrollY;
252  uint32 _monkeyTime;
253 
254 public:
255  Scene211(MADSEngine *vm);
256  void synchronize(Common::Serializer &s) override;
257 
258  void setup() override;
259  void enter() override;
260  void step() override;
261  void preActions() override;
262  void actions() override;
263 };
264 
265 class Scene212 : public Scene2xx {
266 public:
267  Scene212(MADSEngine *vm) : Scene2xx(vm) {}
268  void setup() override;
269  void enter() override;
270  void step() override;
271  void preActions() override;
272  void actions() override;
273 };
274 
275 class Scene213 : public SceneTeleporter {
276 public:
277  Scene213(MADSEngine *vm) : SceneTeleporter(vm) {}
278 
279  void setup() override;
280  void enter() override;
281  void step() override;
282  void actions() override;
283 };
284 
285 class Scene214 : public Scene2xx {
286 private:
287  uint32 _devilTime;
288  bool _devilRunningFl;
289 
290 public:
291  Scene214(MADSEngine *vm);
292  void synchronize(Common::Serializer &s) override;
293 
294  void setup() override;
295  void enter() override;
296  void step() override;
297  void actions() override;
298 };
299 
300 class Scene215 : public Scene2xx {
301 public:
302  Scene215(MADSEngine *vm) : Scene2xx(vm) {}
303 
304  void setup() override;
305  void enter() override;
306  void step() override;
307  void actions() override;
308 };
309 
310 class Scene216 : public Scene2xx {
311 public:
312  Scene216(MADSEngine *vm) : Scene2xx(vm) {}
313 
314  void setup() override;
315  void enter() override;
316  void step() override;
317  void actions() override {};
318 };
319 
320 } // End of namespace Nebular
321 
322 } // End of namespace MADS
323 
324 #endif /* MADS_NEBULAR_SCENES2_H */
Definition: str.h:59
virtual void synchronize(Common::Serializer &s)
Definition: scene_data.h:126
Definition: nebular_scenes2.h:105
virtual void actions()=0
Definition: nebular_scenes2.h:310
Definition: nebular_scenes2.h:209
Definition: nebular_scenes2.h:300
virtual void preActions()
Definition: scene_data.h:106
virtual void enter()=0
Definition: serializer.h:79
virtual void setup()=0
Definition: nebular_scenes2.h:275
Definition: nebular_scenes2.h:124
NebularScene(MADSEngine *vm)
Definition: nebular_scenes2.h:34
Definition: nebular_scenes2.h:248
Definition: nebular_scenes2.h:90
Definition: nebular_scenes2.h:285
Definition: nebular_scenes2.h:144
Definition: nebular_scenes2.h:51
Definition: mads.h:87
Definition: nebular_scenes2.h:265
Definition: nebular_scenes.h:1348
Definition: action.h:28
void actions() override
Definition: nebular_scenes2.h:317
Definition: nebular_scenes.h:1385
Definition: nebular_scenes2.h:65
virtual void step()
Definition: scene_data.h:101
Definition: user_interface.h:96
Definition: nebular_scenes2.h:163