ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
phantom_scenes3.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 #ifdef ENABLE_MADSV2
23 
24 #ifndef MADS_PHANTOM_SCENES3_H
25 #define MADS_PHANTOM_SCENES3_H
26 
27 #include "common/serializer.h"
28 #include "mads/phantom/phantom_scenes.h"
29 
30 namespace MADS {
31 
32 namespace Phantom {
33 
34 class Scene3xx : public PhantomScene {
35 protected:
39  void sceneEntrySound();
40 
44  void setAAName();
45 
49  void setPlayerSpritesPrefix();
50 public:
51  Scene3xx(MADSEngine *vm) : PhantomScene(vm) {}
52 };
53 
54 class Scene301 : public Scene3xx {
55 private:
56  bool _anim0ActvFl;
57  bool _skip1Fl;
58  bool _skip2Fl;
59 
60  int _lightingHotspotId;
61  int _sandbagHotspotId;
62 
63 public:
64  Scene301(MADSEngine *vm);
65  void synchronize(Common::Serializer &s) override;
66 
67  void setup() override;
68  void enter() override;
69  void step() override;
70  void preActions() override;
71  void actions() override;
72 };
73 
74 class Scene302 : public Scene3xx {
75 public:
76  Scene302(MADSEngine *vm);
77  void synchronize(Common::Serializer &s) override;
78 
79  void setup() override;
80  void enter() override;
81  void step() override;
82  void preActions() override;
83  void actions() override;
84 };
85 
86 class Scene303 : public Scene3xx {
87 private:
88  bool _anim0ActvFl;
89  int _hempHotspotId;
90  int _skipFrameCheckFl;
91 public:
92  Scene303(MADSEngine *vm);
93  void synchronize(Common::Serializer &s) override;
94 
95  void setup() override;
96  void enter() override;
97  void step() override;
98  void preActions() override;
99  void actions() override;
100 };
101 
102 class Scene304 : public Scene3xx {
103 private:
104  bool _anim0ActvFl;
105  bool _anim1ActvFl;
106  bool _anim2ActvFl;
107 
108  int _raoulFrame;
109  int _raoulStatus;
110  int _fightFrame;
111  int _fightStatus;
112  int _fightCount;
113  int _phantomFrame;
114  int _phantomStatus;
115 
116  void handleConversation23();
117  void handleRaoulAnimation();
118  void handlePhantomAnimation();
119  void handleFightAnimation();
120 
121 public:
122  Scene304(MADSEngine *vm);
123  void synchronize(Common::Serializer &s) override;
124 
125  void setup() override;
126  void enter() override;
127  void step() override;
128  void preActions() override;
129  void actions() override;
130 };
131 
132 class Scene305 : public Scene3xx {
133 private:
134  bool _anim0ActvFl;
135  bool _anim1ActvFl;
136  bool _skipFl;
137  bool _unmaskFl;
138 
139  int _unmaskFrame;
140 
141  void handle_animation_unmask();
142 
143 public:
144  Scene305(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 Scene306 : public Scene3xx {
155 private:
156  bool _speechDoneFl;
157 
158 public:
159  Scene306(MADSEngine *vm);
160  void synchronize(Common::Serializer &s) override;
161 
162  void setup() override;
163  void enter() override;
164  void step() override;
165  void preActions() override;
166  void actions() override;
167 };
168 
169 class Scene307 : public Scene3xx {
170 public:
171  Scene307(MADSEngine *vm);
172  void synchronize(Common::Serializer &s) override;
173 
174  void setup() override;
175  void enter() override;
176  void step() override;
177  void preActions() override;
178  void actions() override;
179 };
180 
181 class Scene308 : public Scene3xx {
182 private:
183  bool _anim0ActvFl;
184  bool _anim1ActvFl;
185  bool _anim2ActvFl;
186  bool _anim3ActvFl;
187  bool _skip1Fl;
188  bool _skip2Fl;
189  int _currentFloor;
190 
191 public:
192  Scene308(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 Scene309 : public Scene3xx {
203 private:
204  bool _anim0ActvFl;
205 
206  int _boatStatus;
207  int _boatFrame;
208  int _talkCount;
209 
210  void handleBoatAnimation();
211 
212 public:
213  Scene309(MADSEngine *vm);
214  void synchronize(Common::Serializer &s) override;
215 
216  void setup() override;
217  void enter() override;
218  void step() override;
219  void preActions() override;
220  void actions() override;
221 };
222 
223 class Scene310 : public Scene3xx {
224 private:
225  int _raoulMessageColor;
226  int _chrisMessageColor;
227  int _multiplanePosX[4];
228  int _lakeFrame;
229 
230  void setMultiplanePos(int x_new);
231  void handleLakeAnimation();
232 
233 public:
234  Scene310(MADSEngine *vm);
235  void synchronize(Common::Serializer &s) override;
236 
237  void setup() override;
238  void enter() override;
239  void step() override;
240  void preActions() override;
241  void actions() override;
242 };
243 } // End of namespace Phantom
244 } // End of namespace MADS
245 
246 #endif /* MADS_PHANTOM_SCENES3_H */
247 
248 #endif
Definition: serializer.h:79
Definition: action.h:28