ScummVM API documentation
module1400_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_MODULE1400_SPRITES_H
23 #define NEVERHOOD_MODULES_MODULE1400_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:
34  ~AsScene1401Pipe() override;
35 protected:
36  int _countdown1;
37  int _countdown2;
38  void update();
39  void upSuckInProjector();
40  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
41  uint32 hmSuckInProjector(int messageNum, const MessageParam &param, Entity *sender);
42  void stStartSucking();
43  void stDoneSucking();
44  void stSuckInProjector();
45 };
46 
48 public:
50 protected:
51  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
52  void suSuckedIn();
53  void stSuckedIn();
54 };
55 
57 public:
59 protected:
60  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
61  void suSuckedIn();
62  void stSuckedIn();
63 };
64 
66 public:
67  AsScene1401BackDoor(NeverhoodEngine *vm, Sprite *klaymen, bool isOpen);
68 protected:
69  Sprite *_klaymen;
70  int _countdown;
71  bool _isOpen;
72  void update();
73  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
74  void stOpenDoor();
75  void stCloseDoor();
76  void stCloseDoorDone();
77 };
78 
80  NPoint point;
81  int8 maxSlotCount;
82  int8 lockSlotIndex;
83  int8 index1;
84  int8 leftBorderLeaves;
85  int8 rightBorderLeaves;
86 };
87 
89 public:
90  AsCommonProjector(NeverhoodEngine *vm, Scene *parentScene, Sprite *klaymen, Sprite *asPipe);
91  ~AsCommonProjector() override;
92 protected:
93  Scene *_parentScene;
94  Sprite *_klaymen;
95  Sprite *_asPipe;
96  const AsCommonProjectorItem *_asProjectorItem;
97  int16 _beforeMoveX;
98  bool _lockedInSlot;
99  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
100  uint32 hmLockedInSlot(int messageNum, const MessageParam &param, Entity *sender);
101  uint32 hmAnimation(int messageNum, const MessageParam &param, Entity *sender);
102  void suMoving();
103  void moveProjector();
104  void stSuckedIn();
105  void stIdle();
106  void stMoving();
107  void stStartLockedInSlot();
108  void stStayLockedInSlot();
109  void stStartProjecting();
110  void stLockedInSlot();
111  void stStopProjecting();
112  void stTurnToFront();
113  void stStartSuckedIn();
114 };
115 
117 public:
118  SsScene1402BridgePart(NeverhoodEngine *vm, uint32 fileHash, int surfacePriority);
119 };
120 
122 public:
123  AsScene1402PuzzleBox(NeverhoodEngine *vm, Scene *parentScene, int status);
124 protected:
125  Scene *_parentScene;
126  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
127  void stMoveUpDone();
128  void stMoveDownDone();
129  void stMoveDownSolvedDone();
130 };
131 
133 public:
134  AsScene1407Mouse(NeverhoodEngine *vm, Scene *parentScene);
135 protected:
136  Scene *_parentScene;
137  int16 _walkDestX;
138  int16 _currSectionIndex;
139  int16 _nextHoleIndex;
140  int _countdown;
141  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
142  void suWalkTo();
143  void upGoThroughHole();
144  void stIdleLookAtGoodHole();
145  void stWalkToDest();
146  void stWalkToHole();
147  void stGoThroughHole();
148  void stArriveAtHole();
149 };
150 
151 class Scene1405;
152 
154 public:
155  AsScene1405Tile(NeverhoodEngine *vm, Scene1405 *parentScene, uint32 tileIndex);
156  void show();
157  void hide(bool playClickSound);
158 protected:
159  Scene1405 *_parentScene;
160  bool _isShowing;
161  uint32 _tileIndex;
162  int _countdown;
163  void update();
164  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
165 };
166 
167 class KmScene1401 : public Klaymen {
168 public:
169  KmScene1401(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
170 protected:
171  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
172 };
173 
174 class KmScene1402 : public Klaymen {
175 public:
176  KmScene1402(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
177 protected:
178  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
179 };
180 
181 class KmScene1403 : public Klaymen {
182 public:
183  KmScene1403(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
184 protected:
185  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
186 };
187 
188 class KmScene1404 : public Klaymen {
189 public:
190  KmScene1404(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
191 protected:
192  uint32 xHandleMessage(int messageNum, const MessageParam &param) override;
193 };
194 
195 } // End of namespace Neverhood
196 
197 #endif /* NEVERHOOD_MODULES_MODULE1400_SPRITES_H */
Definition: module1400_sprites.h:56
Definition: background.h:30
Definition: module1400_sprites.h:31
Definition: neverhood.h:60
Definition: module1400_sprites.h:116
Definition: module1400_sprites.h:153
Definition: module1400_sprites.h:174
Definition: sprite.h:140
Definition: module1400_sprites.h:47
Definition: entity.h:42
Definition: entity.h:77
Definition: module1400_sprites.h:167
Definition: module1400_sprites.h:79
Definition: module1400_sprites.h:132
Definition: module1400_sprites.h:188
Definition: scene.h:41
Definition: module1400_sprites.h:65
Definition: sprite.h:54
Definition: sprite.h:119
Definition: module1400_sprites.h:181
Definition: module1400.h:118
Definition: klaymen.h:59
Definition: module1400_sprites.h:121
Definition: module1400_sprites.h:88
Definition: graphics.h:32