ScummVM API documentation
module3000_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_MODULE3000_SPRITES_H
23 #define NEVERHOOD_MODULES_MODULE3000_SPRITES_H
24 
25 #include "neverhood/neverhood.h"
26 #include "neverhood/module.h"
27 #include "neverhood/scene.h"
28 #include "neverhood/modules/module1200.h"
29 
30 namespace Neverhood {
31 
32 // Scene3009
33 
34 class Scene3009;
35 
37 public:
39 protected:
40  Scene3009 *_parentScene;
41  bool _isClicked;
42  void update();
43  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
44 };
45 
47 public:
49  void show();
50  void hide();
51  void startBlinking();
52 protected:
53  int _blinkCountdown;
54  bool _blinkToggle;
55  void update();
56  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
57 };
58 
60 public:
61  SsScene3009TargetLine(NeverhoodEngine *vm, int index);
62  void show();
63 };
64 
66 public:
67  SsScene3009SymbolArrow(NeverhoodEngine *vm, Sprite *asSymbol, int index);
68  void hide();
69 protected:
70  Sprite *_asSymbol;
71  int _index;
72  int _incrDecr;
73  bool _enabled;
74  int _countdown;
75  void update();
76  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
77 };
78 
80 public:
81  AsScene3009VerticalIndicator(NeverhoodEngine *vm, Scene3009 *parentScene, int index);
82  void show();
83 protected:
84  Scene3009 *_parentScene;
85  bool _enabled;
86  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
87 };
88 
90 public:
91  AsScene3009HorizontalIndicator(NeverhoodEngine *vm, Scene3009 *parentScene, uint32 cannonTargetStatus);
92  void show();
93  void stMoveLeft();
94  void stMoveRight();
95 protected:
96  Scene3009 *_parentScene;
97  bool _enabled;
98  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
99  void suMoveLeft();
100  void suMoveRight();
101 };
102 
104 public:
105  AsScene3009Symbol(NeverhoodEngine *vm, Scene3009 *parentScene, int symbolPosition);
106  void hide();
107 protected:
108  Scene3009 *_parentScene;
109  int _symbolPosition;
110  uint32 _symbolIndex;
111  SsScene3009SymbolArrow *_ssArrowPrev;
112  SsScene3009SymbolArrow *_ssArrowNext;
113  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
114 };
115 
116 // Scene3010
117 
119 public:
120  SsScene3010DeadBoltButton(NeverhoodEngine *vm, Scene *parentScene, int buttonIndex, int initCountdown, bool initDisabled);
121  void setCountdown(int count);
122 protected:
123  Scene *_parentScene;
124  int _buttonIndex;
125  bool _buttonEnabled;
126  bool _buttonLocked;
127  int _countdown1;
128  int _countdown2;
129  void update();
130  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
131  void disableButton();
132  void setSprite(uint32 fileHash);
133 };
134 
136 public:
137  AsScene3010DeadBolt(NeverhoodEngine *vm, Scene *parentScene, int boltIndex, bool initUnlocked);
138  void setCountdown(int count);
139  void lock();
140  void unlock(bool skipAnim);
141 protected:
142  Scene *_parentScene;
143  int _boltIndex;
144  int _countdown;
145  bool _soundToggle;
146  bool _unlocked;
147  bool _locked;
148  void update();
149  uint32 hmAnimation(int messageNum, const MessageParam &param, Entity *sender);
150  void stIdle();
151  void stIdleMessage();
152  void stDisabled();
153  void stDisabledMessage();
154 };
155 
156 // Scene3011
157 
159 public:
160  SsScene3011Button(NeverhoodEngine *vm, Scene *parentScene, bool flag);
161 protected:
162  Scene *_parentScene;
163  int _countdown;
164  void update();
165  uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
166 };
167 
169 public:
170  AsScene3011Symbol(NeverhoodEngine *vm, int symbolIndex, bool largeSymbol);
171  void show(bool isNoisy);
172  void hide();
173  void stopSymbolSound();
174  void change(int symbolIndex, bool isNoisy);
175  int getSymbolIndex() { return _largeSymbol ? _symbolIndex : _symbolIndex - 12; }
176 protected:
177  bool _largeSymbol;
178  bool _isNoisy;
179  int _symbolIndex;
180 };
181 
182 } // End of namespace Neverhood
183 
184 #endif /* NEVERHOOD_MODULES_MODULE3000_SPRITES_H */
Definition: background.h:30
Definition: module3000_sprites.h:36
Definition: module3000_sprites.h:168
Definition: neverhood.h:60
Definition: module3000_sprites.h:89
Definition: sprite.h:140
Definition: entity.h:42
Definition: module3000_sprites.h:158
Definition: entity.h:77
Definition: module3000_sprites.h:103
Definition: module3000_sprites.h:118
Definition: module3000_sprites.h:46
Definition: module3000_sprites.h:135
Definition: scene.h:41
Definition: sprite.h:54
Definition: sprite.h:119
Definition: module3000.h:48
Definition: module3000_sprites.h:65
Definition: module3000_sprites.h:79
Definition: module3000_sprites.h:59