ScummVM API documentation
nebular_scenes6.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_SCENES6_H
23 #define MADS_NEBULAR_SCENES6_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 Scene6xx : public NebularScene {
35 protected:
39  void setAAName();
40 
45 
46  void sceneEntrySound();
47 
48 public:
49  Scene6xx(MADSEngine *vm) : NebularScene(vm) {}
50 };
51 
52 class Scene601 : public Scene6xx{
53 public:
54  Scene601(MADSEngine *vm) : Scene6xx(vm) {}
55 
56  void setup() override;
57  void enter() override;
58  void step() override;
59  void actions() override;
60 };
61 
62 class Scene602 : public Scene6xx{
63 private:
64  int _lastSpriteIdx;
65  int _lastSequenceIdx;
66  int _cycleIndex;
67  int _safeMode;
68 
69  void handleSafeActions();
70 
71 public:
72  Scene602(MADSEngine *vm);
73  void synchronize(Common::Serializer &s) override;
74 
75  void setup() override;
76  void enter() override;
77  void actions() override;
78 };
79 
80 class Scene603 : public Scene6xx{
81 private:
82  int _compactCaseHotspotId;
83  int _noteHotspotId;
84 
85 public:
86  Scene603(MADSEngine *vm);
87  void synchronize(Common::Serializer &s) override;
88 
89  void setup() override;
90  void enter() override;
91  void actions() override;
92 };
93 
94 class Scene604 : public Scene6xx{
95 private:
96  int _timebombHotspotId;
97  int _bombMode;
98  int _monsterFrame;
99 
100  uint32 _monsterTimer;
101 
102  bool _monsterActive;
103  bool _animationActiveFl;
104 
105  void handleBombActions();
106 
107 public:
108  Scene604(MADSEngine *vm);
109  void synchronize(Common::Serializer &s) override;
110 
111  void setup() override;
112  void enter() override;
113  void step() override;
114  void actions() override;
115 };
116 
117 class Scene605 : public Scene6xx{
118 public:
119  Scene605(MADSEngine *vm) : Scene6xx(vm) {}
120 
121  void setup() override;
122  void enter() override;
123  void step() override;
124  void actions() override;
125 };
126 
127 class Scene607 : public Scene6xx{
128 private:
129  uint32 _dogTimer;
130  uint32 _lastFrameTime;
131 
132  bool _dogLoop;
133  bool _dogEatsRex;
134  bool _dogBarking;
135  bool _shopAvailable;
136 
137  int _animationMode;
138  int _animationActive;
139  int _counter;
140 
141  void handleThrowingBone();
142 
143 public:
144  Scene607(MADSEngine *vm);
145  void synchronize(Common::Serializer &s) override;
146 
147  void setup() override;
148  void enter() override;
149  void step() override;
150  void preActions() override;
151  void actions() override;
152 };
153 
154 class Scene608 : public Scene6xx{
155 private:
156  int _carMode;
157  int _carFrame;
158  int _carMoveMode;
159  int _dogDeathMode;
160  int _carHotspotId;
161  int _barkCount;
162  int _polycementHotspotId;
163  int _animationMode;
164  int _nextTrigger;
165  int _throwMode;
166 
167  bool _resetPositionsFl;
168  bool _dogActiveFl;
169  bool _dogBarkingFl;
170  bool _dogFirstEncounter;
171  bool _rexBeingEaten;
172  bool _dogHitWindow;
173  bool _checkFl;
174  bool _dogSquashFl;
175  bool _dogSafeFl;
176  bool _buttonPressedonTimeFl;
177  bool _dogUnderCar;
178  bool _dogYelping;
179 
180  long _dogWindowTimer;
181  long _dogRunTimer;
182 
183  uint32 _dogTimer1;
184  uint32 _dogTimer2;
185 
186  void resetDogVariables();
187  void restoreAnimations();
188  void setCarAnimations();
189  void handleThrowingBone();
190 
191 public:
192  Scene608(MADSEngine *vm);
193  void synchronize(Common::Serializer &s) override;
194 
195  void setup() override;
196  void enter() override;
197  void step() override;
198  void preActions() override;
199  void actions() override;
200 };
201 
202 class Scene609 : public Scene6xx{
203 private:
204  int _videoDoorMode;
205 
206  void enterStore();
207 
208 public:
209  Scene609(MADSEngine *vm);
210  void synchronize(Common::Serializer &s) override;
211 
212  void setup() override;
213  void enter() override;
214  void step() override;
215  void preActions() override;
216  void actions() override;
217 };
218 
219 class Scene610 : public Scene6xx{
220 private:
221  int _handsetHotspotId;
222  int _checkVal;
223 
224  bool _cellCharging;
225 
226  long _cellChargingTimer;
227  uint32 _lastFrameTimer;
228 
229 public:
230  Scene610(MADSEngine *vm);
231  void synchronize(Common::Serializer &s) override;
232 
233  void setup() override;
234  void enter() override;
235  void step() override;
236  void actions() override;
237 };
238 
239 class Scene611 : public Scene6xx{
240 private:
241  bool _seenRatFl;
242  bool _eyesRunningFl;
243  bool _shouldRemoveEyes;
244  bool _ratPresentFl;
245  bool _duringDialogFl;
246  bool _resetBatterieText;
247  bool _hermitTalkingFl;
248  bool _hermitMovingFl;
249  bool _alreadyTalkingFl;
250  bool _giveBatteriesFl;
251  bool _startTradingFl;
252  bool _check1Fl;
253  bool _stickFingerFl;
254 
255  int _randVal;
256  int _ratHotspotId;
257  int _hermitDialogNode;
258  int _hermitDisplayedQuestion;
259  int _nextFrame;
260  int _hermitMode;
261 
262  uint32 _ratTimer;
263 
264  Conversation _dialog1;
265  Conversation _dialog2;
266 
267  Common::Point _defaultDialogPos;
268 
269  void handleTrading();
270  void handleRatMoves();
271  void handleDialog();
272  void handleSubDialog1();
273  void handleSubDialog2();
274  void handleTalking(int delay);
275  void setDialogNode(int node);
276  void displayHermitQuestions(int question);
277 
278  bool check2ChargedBatteries();
279  bool check4ChargedBatteries();
280 
281 public:
282  Scene611(MADSEngine *vm);
283  void synchronize(Common::Serializer &s) override;
284 
285  void setup() override;
286  void enter() override;
287  void step() override;
288  void preActions() override;
289  void actions() override;
290 };
291 
292 class Scene612 : public Scene6xx{
293 private:
294  int _actionMode;
295  int _cycleIndex;
296 
297  void handleWinchMovement();
298 
299 public:
300  Scene612(MADSEngine *vm);
301  void synchronize(Common::Serializer &s) override;
302 
303  void setup() override;
304  void enter() override;
305  void step() override;
306  void actions() override;
307 };
308 
309 class Scene620 : public Scene6xx{
310 public:
311  Scene620(MADSEngine *vm) : Scene6xx(vm) {}
312 
313  void setup() override;
314  void enter() override;
315  void step() override;
316  void actions() override {};
317 };
318 } // End of namespace Nebular
319 } // End of namespace MADS
320 
321 #endif /* MADS_NEBULAR_SCENES6_H */
virtual void synchronize(Common::Serializer &s)
Definition: scene_data.h:126
Definition: nebular_scenes6.h:117
virtual void actions()=0
Definition: nebular_scenes6.h:219
virtual void preActions()
Definition: scene_data.h:106
virtual void enter()=0
Definition: serializer.h:79
virtual void setup()=0
Definition: nebular_scenes6.h:127
Definition: nebular_scenes6.h:34
NebularScene(MADSEngine *vm)
Definition: nebular_scenes6.h:239
Definition: nebular_scenes6.h:80
Definition: rect.h:45
Definition: nebular_scenes6.h:154
Definition: nebular_scenes6.h:309
void actions() override
Definition: nebular_scenes6.h:316
Definition: mads.h:87
Definition: nebular_scenes6.h:52
Definition: nebular_scenes.h:1348
Definition: nebular_scenes6.h:292
Definition: action.h:28
Definition: nebular_scenes6.h:94
Definition: nebular_scenes6.h:62
virtual void step()
Definition: scene_data.h:101
Definition: user_interface.h:96
Definition: nebular_scenes6.h:202