ScummVM API documentation
module2800_sprites.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 NEVERHOOD_MODULES_MODULE2800_SPRITES_H
23 #define NEVERHOOD_MODULES_MODULE2800_SPRITES_H
24 
25 #include "neverhood/neverhood.h"
26 #include "neverhood/module.h"
27 #include "neverhood/scene.h"
28 
29 namespace Neverhood {
30 
32 public:
33  AsScene2803LightCord(NeverhoodEngine *vm, Scene *parentScene, uint32 fileHash1, uint32 fileHash2, int16 x, int16 y);
34  void stPulled();
35  void stIdle();
36  void setFileHashes(uint32 fileHash1, uint32 fileHash2);
37 protected:
38  Scene *_parentScene;
39  uint32 _fileHash1, _fileHash2;
40  bool _isPulled, _isBusy;
41  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
42  uint32 hmPulled(int messageNum, const MessageParam &param, Entity *sender);
43 };
44 
46 public:
47  AsScene2803TestTubeOne(NeverhoodEngine *vm, uint32 fileHash1, uint32 fileHash2);
48 protected:
49  uint32 _fileHash1, _fileHash2;
50  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
51 };
52 
54 public:
55  AsScene2803Rope(NeverhoodEngine *vm, Scene *parentScene, int16 x);
56 protected:
57  Scene *_parentScene;
58  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
59  uint32 hmReleased(int messageNum, const MessageParam &param, Entity *sender);
60  void stReleased();
61  void stHide();
62 };
63 
64 class Scene2804;
65 
67 public:
69 protected:
70  Scene2804 *_parentScene;
71  int _countdown;
72  void update();
73  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
74 };
75 
77 public:
79 protected:
80  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
81 };
82 
84 public:
86 };
87 
89 public:
91 protected:
92  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
93 };
94 
96 public:
98  void show();
99 };
100 
102 public:
103  AsScene2804CrystalWaves(NeverhoodEngine *vm, uint crystalIndex);
104  void show();
105  void hide();
106 protected:
107  uint _crystalIndex;
108 };
109 
111 public:
112  AsScene2804Crystal(NeverhoodEngine *vm, AsScene2804CrystalWaves *asCrystalWaves, uint crystalIndex);
113  void show();
114  void hide();
115  void activate();
116  int16 getColorNum() const { return _colorNum; }
117 protected:
118  AsScene2804CrystalWaves *_asCrystalWaves;
119  uint _crystalIndex;
120  int16 _colorNum;
121  bool _isLightOn;
122  bool _isShowing;
123 };
124 
126 public:
127  SsScene2804CrystalButton(NeverhoodEngine *vm, Scene2804 *parentScene, AsScene2804Crystal *asCrystal, uint crystalIndex);
128 protected:
129  Scene2804 *_parentScene;
130  AsScene2804Crystal *_asCrystal;
131  uint _crystalIndex;
132  int _countdown;
133  void update();
134  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
135 };
136 
138 public:
139  AsScene2804BeamCoil(NeverhoodEngine *vm, Scene *parentScene, SsScene2804BeamCoilBody *ssBeamCoilBody);
140  ~AsScene2804BeamCoil() override;
141 protected:
142  Scene *_parentScene;
143  SsScene2804BeamCoilBody *_ssBeamCoilBody;
144  int _countdown;
145  void update();
146  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
147  void show();
148  void hide();
149  void stBeaming();
150  uint32 hmBeaming(int messageNum, const MessageParam &param, Entity *sender);
151 };
152 
154 public:
156 protected:
157  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
158 };
159 
161 public:
163 protected:
164  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
165 };
166 
168 public:
169  SsScene2808Dispenser(NeverhoodEngine *vm, Scene *parentScene, int testTubeSetNum, int testTubeIndex);
170  void startCountdown(int index);
171 protected:
172  Scene *_parentScene;
173  int _countdown;
174  int _testTubeSetNum, _testTubeIndex;
175  void update();
176  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
177 };
178 
180 public:
181  AsScene2808TestTube(NeverhoodEngine *vm, int testTubeSetNum, int testTubeIndex, SsScene2808Dispenser *ssDispenser);
182  void fill();
183  void flush();
184  uint32 getFillLevel() const { return _fillLevel; }
185 protected:
186  SsScene2808Dispenser *_ssDispenser;
187  int _testTubeSetNum;
188  uint32 _fillLevel;
189  int _testTubeIndex;
190  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
191 };
192 
194 public:
195  AsScene2808Handle(NeverhoodEngine *vm, Scene *parentScene, int testTubeSetNum);
196  void activate();
197  void stActivated();
198 protected:
199  Scene *_parentScene;
200  int _testTubeSetNum;
201  bool _isActivated;
202  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
203  uint32 hmActivating(int messageNum, const MessageParam &param, Entity *sender);
204 };
205 
207 public:
208  AsScene2808Flow(NeverhoodEngine *vm, Scene *parentScene, int testTubeSetNum);
209  void start();
210  void stKeepFlowing();
211 protected:
212  Scene *_parentScene;
213  int _testTubeSetNum;
214  uint32 hmFlowing(int messageNum, const MessageParam &param, Entity *sender);
215 };
216 
218 public:
219  AsScene2808LightEffect(NeverhoodEngine *vm, int which);
220 protected:
221  int _countdown;
222  void update();
223 };
224 
226 public:
228 protected:
229  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
230 };
231 
233 public:
234  AsScene2810Rope(NeverhoodEngine *vm, Scene *parentScene, int16 x);
235 protected:
236  Scene *_parentScene;
237  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
238 };
239 
241 public:
243  ~AsScene2812Winch() override;
244 protected:
245  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
246 };
247 
249 public:
250  AsScene2812Rope(NeverhoodEngine *vm, Scene *parentScene);
251 protected:
252  Scene *_parentScene;
253  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
254  uint32 hmRopingDown(int messageNum, const MessageParam &param, Entity *sender);
255  void stRopingDown();
256 };
257 
259 public:
261 protected:
262  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
263 };
264 
265 class KmScene2801 : public Klaymen {
266 public:
267  KmScene2801(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
268 protected:
269  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
270 };
271 
272 class KmScene2803 : public Klaymen {
273 public:
274  KmScene2803(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y, NRect *clipRects, int clipRectsCount);
275 protected:
276  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
277 };
278 
279 class KmScene2803Small : public Klaymen {
280 public:
281  KmScene2803Small(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
282 protected:
283  void stShrink();
284  uint32 hmShrink(int messageNum, const MessageParam &param, Entity *sender);
285 
286  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
287 };
288 
289 class KmScene2805 : public Klaymen {
290 public:
291  KmScene2805(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
292 protected:
293  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
294 };
295 
296 class KmScene2806 : public Klaymen {
297 public:
298  KmScene2806(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y,
299  bool needsLargeSurface, NRect *clipRects, uint clipRectsCount);
300 protected:
301  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
302 };
303 
304 class KmScene2809 : public Klaymen {
305 public:
306  KmScene2809(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y,
307  bool needsLargeSurface, NRect *clipRects, uint clipRectsCount);
308 protected:
309  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
310 };
311 
312 class KmScene2810Small : public Klaymen {
313 public:
314  KmScene2810Small(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
315 protected:
316  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
317 };
318 
319 class KmScene2810 : public Klaymen {
320 public:
321  KmScene2810(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y,
322  NRect *clipRects, uint clipRectsCount);
323 protected:
324  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
325 };
326 
327 class KmScene2812 : public Klaymen {
328 public:
329  KmScene2812(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
330 protected:
331  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
332 };
333 
334 } // End of namespace Neverhood
335 
336 #endif /* NEVERHOOD_MODULES_MODULE2800_SPRITES_H */
Definition: module2800_sprites.h:319
Definition: module2800_sprites.h:31
Definition: background.h:30
Definition: module2800.h:132
Definition: module2800_sprites.h:225
Definition: module2800_sprites.h:66
Definition: neverhood.h:60
Definition: module2800_sprites.h:296
Definition: module2800_sprites.h:76
Definition: module2800_sprites.h:153
Definition: module2800_sprites.h:304
Definition: module2800_sprites.h:83
Definition: module2800_sprites.h:193
Definition: module2800_sprites.h:110
Definition: module2800_sprites.h:217
Definition: module2800_sprites.h:206
Definition: module2800_sprites.h:101
Definition: sprite.h:140
Definition: module2800_sprites.h:289
Definition: graphics.h:42
Definition: entity.h:42
Definition: module2800_sprites.h:167
Definition: module2800_sprites.h:179
Definition: entity.h:77
Definition: module2800_sprites.h:232
Definition: module2800_sprites.h:265
Definition: module2800_sprites.h:160
Definition: module2800_sprites.h:327
Definition: scene.h:41
Definition: module2800_sprites.h:88
Definition: sprite.h:119
Definition: module2800_sprites.h:137
Definition: module2800_sprites.h:258
Definition: module2800_sprites.h:53
Definition: module2800_sprites.h:45
signed char * fill(signed char *first, signed char *last, Value val)
Definition: algorithm.h:168
Definition: module2800_sprites.h:240
Definition: module2800_sprites.h:248
Definition: module2800_sprites.h:312
Definition: module2800_sprites.h:272
Definition: klaymen.h:59
Definition: module2800_sprites.h:279
Definition: module2800_sprites.h:95
Definition: module2800_sprites.h:125