ScummVM API documentation
blueforce_scenes5.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 TSAGE_BLUEFORCE_SCENES5_H
23 #define TSAGE_BLUEFORCE_SCENES5_H
24 
25 #include "common/scummsys.h"
26 #include "tsage/blue_force/blueforce_logic.h"
27 #include "tsage/blue_force/blueforce_speakers.h"
28 #include "tsage/converse.h"
29 #include "tsage/events.h"
30 #include "tsage/core.h"
31 #include "tsage/scenes.h"
32 #include "tsage/globals.h"
33 #include "tsage/sound.h"
34 
35 namespace TsAGE {
36 
37 namespace BlueForce {
38 
39 using namespace TsAGE;
40 
41 class Scene550: public SceneExt {
42  /* Objects */
43  class Lyle: public NamedObject {
44  public:
45  bool startAction(CursorType action, Event &event) override;
46  };
47  class CaravanDoor: public NamedObject {
48  public:
49  bool startAction(CursorType action, Event &event) override;
50  };
51  class Vechile: public NamedObject {
52  public:
53  bool startAction(CursorType action, Event &event) override;
54  };
55 
56  /* Actions */
57  class Action1: public ActionExt {
58  public:
59  void signal() override;
60  };
61 public:
62  SequenceManager _sequenceManager;
63  Lyle _lyle;
64  CaravanDoor _caravanDoor;
65  Vechile _vechile;
66  NamedHotspot _item1, _item2, _item3;
67  SpeakerGameText _gameTextSpeaker;
68  SpeakerLyleHat _lyleHatSpeaker;
69  SpeakerJakeJacket _jakeJacketSpeaker;
70  Action1 _action1;
71 
72  void postInit(SceneObjectList *OwnerList = NULL) override;
73  void signal() override;
74 };
75 
76 class Scene551: public Scene550 {
77  /* Objects */
78  class Vechile: public NamedObject {
79  public:
80  bool startAction(CursorType action, Event &event) override;
81  };
82  class DrunkStanding: public NamedObjectExt {
83  public:
84  bool startAction(CursorType action, Event &event) override;
85  };
86  class Drunk: public NamedObjectExt {
87  public:
88  bool startAction(CursorType action, Event &event) override;
89  };
90  class PatrolCarTrunk: public NamedObject {
91  public:
92  bool startAction(CursorType action, Event &event) override;
93  };
94  class TrunkInset: public FocusObject {
95  public:
96  void remove() override;
97  bool startAction(CursorType action, Event &event) override;
98  };
99  class TrunkKits: public NamedObject {
100  public:
101  bool startAction(CursorType action, Event &event) override;
102  };
103  class Harrison: public NamedObjectExt {
104  public:
105  bool startAction(CursorType action, Event &event) override;
106  };
107 
108  /* Items */
109  class Item4: public SceneHotspot {
110  public:
111  bool startAction(CursorType action, Event &event) override;
112  };
113 
114  /* Actions */
115  class Action2: public Action {
116  public:
117  void signal() override;
118  };
119 public:
120  SpeakerDrunk _drunkSpeaker;
121  SpeakerJakeUniform _jakeUniformSpeaker;
122  SpeakerGiggles _gigglesSpeaker;
123  Vechile _vechile2;
124  DrunkStanding _drunkStanding;
125  Drunk _drunk;
126  PatrolCarTrunk _patrolCarTrunk;
127  TrunkInset _trunkInset;
128  TrunkKits _trunkKits;
129  Harrison _harrison;
130  NamedObject _object11, _object12, _object13;
131  SceneObject _object14, _object15;
132  Item4 _item4;
133  Action2 _action2;
134  int _field1CD0, _field1CD2;
135 
136  Scene551();
137  void synchronize(Serializer &s) override;
138  void postInit(SceneObjectList *OwnerList = NULL) override;
139  void signal() override;
140  void dispatch() override;
141 };
142 
143 class Scene560: public SceneExt {
144  /* Objects */
145  class DeskChair: public NamedObject {
146  public:
147  bool startAction(CursorType action, Event &event) override;
148  };
149  class Box: public NamedObjectExt {
150  public:
151  bool startAction(CursorType action, Event &event) override;
152  };
153  class SafeInset: public FocusObject {
154  /* Items */
155  class Item: public NamedHotspotExt {
156  public:
157  bool startAction(CursorType action, Event &event) override;
158  };
159  public:
160  NamedObject _digit0, _digit1, _digit2;
161  Item _item1, _item2, _item3, _item4, _item5, _item6;
162  Visage _cursorVisage;
163 
164  Common::String getClassName() override { return "Scene560_SafeInset"; }
165  void postInit(SceneObjectList *OwnerList = NULL) override;
166  void remove() override;
167  void signal() override;
168  void process(Event &event) override;
169  };
170  class Nickel: public NamedObject {
171  public:
172  bool startAction(CursorType action, Event &event) override;
173  };
174  class BoxInset: public FocusObject {
175  /* Items */
176  class Item1: public NamedHotspot {
177  public:
178  bool startAction(CursorType action, Event &event) override;
179  };
180  public:
181  Item1 _item1;
182 
183  Common::String getClassName() override { return "Scene560_BoxInset"; }
184  void postInit(SceneObjectList *OwnerList = NULL) override;
185  void remove() override;
186  };
187 
188  /* Item groups */
189  class PicturePart: public NamedHotspotExt {
190  public:
191  Common::String getClassName() override { return "Scene560_PicturePart"; }
192  bool startAction(CursorType action, Event &event) override;
193  };
194 
195  /* Items */
196  class Computer: public NamedHotspot {
197  public:
198  bool startAction(CursorType action, Event &event) override;
199  };
200 
201  /* Actions */
202  class Action1: public Action {
203  public:
204  void signal() override;
205  };
206  class Action2: public Action {
207  public:
208  void signal() override;
209  };
210  class Action3: public Action {
211  public:
212  void signal() override;
213  };
214 public:
215  Action1 _action1;
216  Action2 _action2;
217  Action3 _action3;
218  SpeakerGameText _gameTextSpeaker;
219  DeskChair _deskChair;
220  Box _box;
221  SafeInset _safeInset;
222  Nickel _nickel;
223  BoxInset _boxInset;
224  NamedObject _object6;
225  PicturePart _picture1, _picture2, _picture3, _picture4;
226  Computer _computer;
227  NamedHotspot _chair, _lamp, _item4, _trophy, _waterColors, _fileCabinets;
228  NamedHotspot _certificate, _bookcase, _desk, _carpet, _item12, _office;
229  ASound _sound1;
230  bool _field380;
231  bool _field11EA;
232  Common::Point _destPosition;
233 
234  Scene560();
235  void postInit(SceneObjectList *OwnerList = NULL) override;
236  void signal() override;
237  void process(Event &event) override;
238  void dispatch() override;
239 };
240 
241 class Scene570: public SceneExt {
242  /* Custom classes */
243  class PasswordEntry: public EventHandler {
244  private:
245  void checkPassword();
246  public:
247  SceneText _passwordText, _entryText;
248  Common::String _passwordStr, _entryBuffer;
249 
250  PasswordEntry();
251  Common::String getClassName() override { return "Scene570_PasswordEntry"; }
252  void synchronize(Serializer &s) override;
253  void postInit(SceneObjectList *OwnerList = NULL) override;
254  void process(Event &event) override;
255  };
256  class Icon: public NamedObject {
257  public:
258  SceneText _sceneText;
259  int _iconId, _folderId, _parentFolderId;
260  Common::String _text;
261 
262  Icon();
263  Common::String getClassName() override { return "Scene570_Custom2"; }
264  void synchronize(Serializer &s) override;
265  void remove() override;
266  bool startAction(CursorType action, Event &event) override;
267 
268  void setDetails(int iconId, int folderId, int parentFolderId, const Common::String &msg);
269  };
270  class IconManager: public EventHandler {
271  public:
272  NamedObject _object1;
274  int _mode, _selectedFolder, _fieldAA, _fieldAC;
275 
276  IconManager();
277  void remove() override;
278 
279  void setup(int mode);
280  void hideList();
281  void refreshList();
282  void addItem(Icon *item);
283  };
284 
285  /* Objects */
286  class PowerSwitch: public NamedObject {
287  public:
288  bool startAction(CursorType action, Event &event) override;
289  };
290  class PrinterIcon: public NamedObject {
291  public:
292  bool startAction(CursorType action, Event &event) override;
293  };
294  class Object3: public FocusObject {
295  public:
296  void remove() override;
297  };
298 
299  /* Items */
300  class FloppyDrive: public NamedHotspot {
301  public:
302  bool startAction(CursorType action, Event &event) override;
303  };
304 public:
305  SequenceManager _sequenceManager;
306  SpeakerGameText _gameTextSpeaker;
307  PasswordEntry _passwordEntry;
308  PowerSwitch _powerSwitch;
309  PrinterIcon _printerIcon;
310  Object3 _object3;
311  NamedObjectExt _object4;
312  Icon _folder1, _folder2, _folder3, _folder4;
313  Icon _icon1, _icon2, _icon3, _icon4, _icon5;
314  Icon _icon6, _icon7, _icon8, _icon9;
315  IconManager _iconManager;
316  FloppyDrive _floppyDrive;
317  NamedHotspot _monitor, _item3, _case, _keyboard, _desk;
318  NamedHotspot _item7, _printer, _window, _plant, _item11;
319  ASound _sound1;
320 
321  void postInit(SceneObjectList *OwnerList = NULL) override;
322  void signal() override;
323  void process(Event &event) override;
324 };
325 
326 class Scene580: public SceneExt {
327  /* Objects */
328  class Vechile: public NamedObject {
329  public:
330  bool startAction(CursorType action, Event &event) override;
331  };
332  class Door: public NamedObject {
333  public:
334  bool startAction(CursorType action, Event &event) override;
335  };
336  class Lyle: public NamedObject {
337  public:
338  bool startAction(CursorType action, Event &event) override;
339  };
340 public:
341  SequenceManager _sequenceManager;
342  Vechile _vechile;
343  Door _door;
344  Lyle _lyle;
345  NamedHotspot _item1;
346  SpeakerGameText _gameTextSpeaker;
347 
348  void postInit(SceneObjectList *OwnerList = NULL) override;
349  void signal() override;
350  void process(Event &event) override;
351 };
352 
353 class Scene590: public PalettedScene {
354  /* Objects */
355  class Laura: public NamedObject {
356  public:
357  bool startAction(CursorType action, Event &event) override;
358  };
359  class Skip: public NamedObject {
360  public:
361  bool startAction(CursorType action, Event &event) override;
362  };
363 
364  /* Items */
365  class Exit: public NamedHotspot {
366  public:
367  bool startAction(CursorType action, Event &event) override;
368  };
369 
370  /* Actions */
371  class Action1: public Action {
372  public:
373  void signal() override;
374  };
375  class Action2: public Action {
376  public:
377  void signal() override;
378  };
379 public:
380  SequenceManager _sequenceManager;
381  Laura _laura;
382  Skip _skip;
383  SceneObject _object3;
384  Exit _exit;
385  NamedHotspot _item2, _item3, _item4, _item5, _item6, _item7;
386  NamedHotspot _item8, _item9, _item10, _item11, _item12;
387  SpeakerSkip _skipSpeaker;
388  SpeakerJakeJacket _jakeJacketSpeaker;
389  SpeakerLaura _lauraSpeaker;
390  ASoundExt _sound1;
391  Action1 _action1;
392  Action2 _action2;
393  int _field17DC, _field17DE, _stripNumber, _field17E2;
394 
395  Scene590();
396  void synchronize(Serializer &s) override;
397  void postInit(SceneObjectList *OwnerList = NULL) override;
398  void signal() override;
399  void process(Event &event) override;
400  void dispatch() override;
401 };
402 
403 } // End of namespace BlueForce
404 
405 } // End of namespace TsAGE
406 
407 #endif
Definition: blueforce_scenes5.h:353
Definition: blueforce_speakers.h:110
Definition: blueforce_logic.h:339
Definition: core.h:443
Definition: str.h:59
Definition: blueforce_speakers.h:149
Definition: blueforce_logic.h:127
Definition: core.h:115
Definition: core.h:736
Definition: blueforce_speakers.h:229
Definition: blueforce_speakers.h:277
Definition: blueforce_logic.h:225
Definition: blueforce_speakers.h:57
Definition: blueforce_scenes5.h:143
Definition: core.h:134
Definition: sound.h:366
Definition: blueforce_logic.h:330
Definition: blueforce_speakers.h:102
Definition: blueforce_scenes5.h:326
Definition: blueforce_logic.h:180
Definition: sound.h:405
Definition: blueforce_scenes5.h:76
Definition: core.h:472
Definition: rect.h:45
Definition: events.h:47
Definition: saveload.h:115
Definition: blueforce_dialogs.h:30
Definition: blueforce_logic.h:194
Definition: saveload.h:63
Definition: blueforce_speakers.h:269
Definition: blueforce_speakers.h:165
Definition: core.h:163
Definition: blueforce_scenes5.h:41
Definition: core.h:519
Definition: core.h:625
Definition: blueforce_scenes5.h:241
Definition: converse.h:38
Definition: blueforce_logic.h:119