ScummVM API documentation
module1300.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_MODULE1300_H
23 #define NEVERHOOD_MODULES_MODULE1300_H
24 
25 #include "neverhood/neverhood.h"
26 #include "neverhood/module.h"
27 #include "neverhood/scene.h"
28 
29 namespace Neverhood {
30 
31 class SmackerPlayer;
32 
33 class Module1300 : public Module {
34 public:
35  Module1300(NeverhoodEngine *vm, Module *parentModule, int which);
36  ~Module1300() override;
37 protected:
38  int _sceneNum;
39  uint32 _musicFileHash;
40  void createScene(int sceneNum, int which);
41  void updateScene();
42 };
43 
44 class Scene1302 : public Scene {
45 public:
46  Scene1302(NeverhoodEngine *vm, Module *parentModule, int which);
47 protected:
48  Sprite *_asVenusFlyTrap;
49  Sprite *_asBridge;
50  Sprite *_ssFence;
51  Sprite *_asRing1;
52  Sprite *_asRing2;
53  Sprite *_asRing3;
54  Sprite *_asRing4;
55  Sprite *_asRing5;
56  Sprite *_class595;
57  Sprite *_sprite1;
58  Sprite *_sprite2;
59  Sprite *_sprite3;
60  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
61 };
62 
63 class Scene1303 : public Scene {
64 public:
65  Scene1303(NeverhoodEngine *vm, Module *parentModule);
66 protected:
67  Sprite *_sprite1;
68  Sprite *_asBalloon;
69  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
70 };
71 
72 class Scene1304 : public Scene {
73 public:
74  Scene1304(NeverhoodEngine *vm, Module *parentModule, int which);
75 protected:
76  Sprite *_sprite1;
77  Sprite *_asKey;
78  Sprite *_asNeedle;
79  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
80 };
81 
82 class Scene1305 : public Scene {
83 public:
84  Scene1305(NeverhoodEngine *vm, Module *parentModule, int which);
85 protected:
86  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
87 };
88 
89 class Scene1306 : public Scene {
90 public:
91  Scene1306(NeverhoodEngine *vm, Module *parentModule, int which);
92  ~Scene1306() override;
93 protected:
94  Sprite *_ssButton;
95  Sprite *_asTape;
96  AnimatedSprite *_asElevatorDoor;
97  Sprite *_asElevator;
98  Sprite *_sprite1;
99  Sprite *_asKey;
100  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
101  uint32 handleMessage416EB0(int messageNum, const MessageParam &param, Entity *sender);
102 };
103 
104 class Scene1307 : public Scene {
105 public:
106  Scene1307(NeverhoodEngine *vm, Module *parentModule);
107 protected:
108  NPointArray *_keyHolePoints;
109  NRect _keyHoleRects[16];
110  NRect _clipRects[4];
111  Sprite *_asKeys[3];
112  int _countdown;
113  Sprite *_asCurrKey;
114  bool _isInsertingKey;
115  bool _doLeaveScene;
116  bool _isPuzzleSolved;
117  void update();
118  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
119 };
120 
121 class Scene1308 : public Scene {
122 public:
123  Scene1308(NeverhoodEngine *vm, Module *parentModule, int which);
124 protected:
125  Sprite *_asTape;
126  Sprite *_asJaggyDoor;
127  Sprite *_asLightWallSymbols;
128  Sprite *_ssNumber1;
129  Sprite *_ssNumber2;
130  Sprite *_ssNumber3;
131  AnimatedSprite *_asProjector;
132  Sprite *_sprite1;
133  Sprite *_sprite2;
134  Sprite *_sprite3;
135  Sprite *_sprite4;
136  Sprite *_sprite5;
137  bool _isProjecting;
138  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
139 };
140 
141 class Scene1317 : public Scene {
142 public:
143  Scene1317(NeverhoodEngine *vm, Module *parentModule);
144 protected:
145  SmackerPlayer *_smackerPlayer;
146  bool _klaymenBlinks;
147  int _klaymenBlinkCountdown;
148  int _decisionCountdown;
149  uint32 _smackerFileHash;
150  bool _keepLastSmackerFrame;
151  void update();
152  void upChooseKing();
153  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
154  uint32 hmChooseKing(int messageNum, const MessageParam &param, Entity *sender);
155  uint32 hmHoborgAsKing(int messageNum, const MessageParam &param, Entity *sender);
156  uint32 hmEndMovie(int messageNum, const MessageParam &param, Entity *sender);
157  void stChooseKing();
158  void stNoDecisionYet();
159  void stHoborgAsKing();
160  void stKlaymenAsKing();
161  void stEndMovie();
162 };
163 
164 } // End of namespace Neverhood
165 
166 #endif /* NEVERHOOD_MODULES_MODULE1300_H */
Definition: background.h:30
Definition: module1300.h:72
Definition: module1300.h:104
Definition: neverhood.h:60
Definition: array.h:52
Definition: module1300.h:44
Definition: module1300.h:63
Definition: sprite.h:140
Definition: module1300.h:33
Definition: module1300.h:141
Definition: graphics.h:42
Definition: entity.h:42
Definition: entity.h:77
Definition: smackerplayer.h:61
Definition: scene.h:41
Definition: sprite.h:54
Definition: module1300.h:89
Definition: module.h:45
Definition: module1300.h:82
Definition: module1300.h:121