ScummVM API documentation
nebular_scenes4.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_SCENES4_H
23 #define MADS_NEBULAR_SCENES4_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 Scene4xx : public NebularScene {
35 protected:
39  void setAAName();
40 
45 
46  void sceneEntrySound();
47 
48 public:
49  Scene4xx(MADSEngine *vm) : NebularScene(vm) {}
50 };
51 
52 class Scene401 : public Scene4xx {
53 private:
54  bool _northFl;
55  Common::Point _destPos;
56  uint32 _timer;
57 
58 public:
59  Scene401(MADSEngine *vm);
60  void synchronize(Common::Serializer &s) override;
61 
62  void setup() override;
63  void enter() override;
64  void step() override;
65  void preActions() override;
66  void actions() override;
67 };
68 
69 class Scene402 : public Scene4xx {
70 private:
71  bool _lightOn;
72  bool _blowingSmoke;
73  bool _leftWomanMoving;
74  bool _rightWomanMoving;
75  bool _firstTalkToGirlInChair;
76  bool _waitingGinnyMove;
77  bool _ginnyLooking;
78  bool _bigBeatFl;
79  bool _roxOnStool;
80  bool _bartenderSteady;
81  bool _bartenderHandsHips;
82  bool _bartenderLooksLeft;
83  bool _bartenderReady;
84  bool _bartenderTalking;
85  bool _bartenderCalled;
86  bool _conversationFl;
87  bool _activeTeleporter;
88  bool _activeArrows;
89  bool _activeArrow1;
90  bool _activeArrow2;
91  bool _activeArrow3;
92  bool _cutSceneReady;
93  bool _cutSceneNeeded;
94  bool _helgaReady;
95  bool _refuseAlienLiquor;
96 
97  int _drinkTimer;
98  int _beatCounter;
99  int _bartenderMode;
100  int _bartenderDialogNode;
101  int _bartenderCurrentQuestion;
102  int _helgaTalkMode;
103  int _roxMode;
104  int _rexMode;
105  int _talkTimer;
106 
107  Conversation _dialog1;
108  Conversation _dialog2;
109  Conversation _dialog3;
110  Conversation _dialog4;
111 
112  void setDialogNode(int node);
113  void handleConversation1();
114  void handleConversation2();
115  void handleConversation3();
116  void handleConversation4();
117  void handleDialogs();
118 
119 public:
120  Scene402(MADSEngine *vm);
121  void synchronize(Common::Serializer &s) override;
122 
123  void setup() override;
124  void enter() override;
125  void step() override;
126  void preActions() override;
127  void actions() override;
128 };
129 
130 class Scene405 : public Scene4xx {
131 public:
132  Scene405(MADSEngine *vm) : Scene4xx(vm) {}
133 
134  void setup() override;
135  void enter() override;
136  void step() override;
137  void preActions() override;
138  void actions() override;
139 };
140 
141 class Scene406 : public Scene4xx {
142 private:
143  bool _hitStorageDoor;
144 
145 public:
146  Scene406(MADSEngine *vm);
147  void synchronize(Common::Serializer &s) override;
148 
149  void setup() override;
150  void enter() override;
151  void step() override;
152  void preActions() override;
153  void actions() override;
154 };
155 
156 class Scene407 : public Scene4xx {
157 private:
158  bool _fromNorth;
159  Common::Point _destPos;
160 
161 public:
162  Scene407(MADSEngine *vm);
163  void synchronize(Common::Serializer &s) override;
164 
165  void setup() override;
166  void enter() override;
167  void step() override;
168  void preActions() override;
169  void actions() override;
170 };
171 
172 class Scene408 : public Scene4xx {
173 public:
174  Scene408(MADSEngine *vm) : Scene4xx(vm) {}
175 
176  void setup() override;
177  void enter() override;
178  void preActions() override;
179  void actions() override;
180 };
181 
182 class Scene409 : public SceneTeleporter {
183 public:
184  Scene409(MADSEngine *vm) : SceneTeleporter(vm) {}
185 
186  void setup() override;
187  void enter() override;
188  void step() override;
189  void actions() override;
190 };
191 
192 class Scene410 : public Scene4xx {
193 public:
194  Scene410(MADSEngine *vm) : Scene4xx(vm) {}
195 
196  void setup() override;
197  void enter() override;
198  void step() override;
199  void preActions() override;
200  void actions() override;
201 };
202 
203 class Scene411 : public Scene4xx {
204 private:
205  int _curAnimationFrame;
206  int _newIngredient;
207  int _newQuantity;
208  int _resetFrame;
209  int _badThreshold;
210 
211  bool _killRox;
212  bool _makeMushroomCloud;
213 
214  Conversation _dialog1;
215  Conversation _dialog2;
216  Conversation _dialog3;
217  Conversation _dialog4;
218 
219  void giveToRex(int object);
220  void handleDialog();
221  void handleKettleAction();
222 
223  int computeQuoteAndQuantity();
224 
225  bool addQuantity();
226  bool addIngredient();
227 
228 public:
229  Scene411(MADSEngine *vm);
230  void synchronize(Common::Serializer &s) override;
231 
232  void setup() override;
233  void enter() override;
234  void step() override;
235  void preActions() override;
236  void actions() override;
237 };
238 
239 class Scene413 : public Scene4xx {
240 private:
241  int _rexDeath;
242  int _canMove;
243 
244 public:
245  Scene413(MADSEngine *vm);
246  void synchronize(Common::Serializer &s) override;
247 
248  void setup() override;
249  void enter() override;
250  void step() override;
251  void preActions() override;
252  void actions() override;
253 };
254 } // End of namespace Nebular
255 } // End of namespace MADS
256 
257 #endif /* MADS_NEBULAR_SCENES4_H */
virtual void synchronize(Common::Serializer &s)
Definition: scene_data.h:126
Definition: nebular_scenes4.h:130
virtual void actions()=0
Definition: nebular_scenes4.h:192
virtual void preActions()
Definition: scene_data.h:106
Definition: nebular_scenes4.h:141
virtual void enter()=0
Definition: serializer.h:79
virtual void setup()=0
Definition: nebular_scenes4.h:239
Definition: nebular_scenes4.h:156
NebularScene(MADSEngine *vm)
Definition: nebular_scenes4.h:34
Definition: nebular_scenes4.h:203
Definition: rect.h:45
Definition: nebular_scenes4.h:172
Definition: mads.h:87
Definition: nebular_scenes4.h:52
Definition: nebular_scenes.h:1348
Definition: action.h:28
Definition: nebular_scenes.h:1385
Definition: nebular_scenes4.h:69
virtual void step()
Definition: scene_data.h:101
Definition: user_interface.h:96
Definition: nebular_scenes4.h:182