ScummVM API documentation
blueforce_scenes9.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_SCENES9_H
23 #define TSAGE_BLUEFORCE_SCENES9_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 Scene900: public PalettedScene {
42  /* Items */
43  class Exterior: public NamedHotspot {
44  public:
45  bool startAction(CursorType action, Event &event) override;
46  };
47  class WestExit: public NamedHotspot {
48  public:
49  bool startAction(CursorType action, Event &event) override;
50  };
51  /* Objects */
52  class Gate: public NamedObject {
53  public:
54  bool startAction(CursorType action, Event &event) override;
55  };
56  class Door: public NamedObjectExt {
57  public:
58  bool startAction(CursorType action, Event &event) override;
59  };
60  class Dog: public NamedObjectExt {
61  public:
62  bool startAction(CursorType action, Event &event) override;
63  };
64  class Lyle: public NamedObject {
65  public:
66  bool startAction(CursorType action, Event &event) override;
67  };
68  class Body: public NamedObject {
69  public:
70  bool startAction(CursorType action, Event &event) override;
71  };
72 
73  /* Actions */
74  class Action1 : public Action {
75  public:
76  void signal() override;
77  };
78  class Action2 : public Action {
79  public:
80  void signal() override;
81  };
82  class Action3 : public Action {
83  public:
84  void signal() override;
85  };
86  class Action4 : public Action {
87  public:
88  void signal() override;
89  };
90 
91 public:
92  SequenceManager _sequenceManager1, _sequenceManager2;
93  SpeakerGameText _gameTextSpeaker;
94  SpeakerJakeJacket _jakeJacketSpeaker;
95  SpeakerLyleHat _lyleHatSpeaker;
96  Exterior _exterior;
97  Gate _gate;
98  Door _door;
99  Dog _dog;
100  NamedHotspot _item2;
101  NamedHotspot _item3;
102  NamedObject _object4;
103  NamedObject _object5;
104  Lyle _lyle;
105  Body _body;
106  WestExit _westExit;
107  ASoundExt _sound1;
108  Action1 _action1;
109  Action2 _action2;
110  Action3 _action3;
111  Action4 _action4;
112  int _lyleDialogCtr;
113  int _field1976;
114 
115  Scene900();
116  void postInit(SceneObjectList *OwnerList = NULL) override;
117  void signal() override;
118  void process(Event &event) override;
119  void dispatch() override;
120  void synchronize(Serializer &s) override;
121 };
122 
123 class Scene910: public PalettedScene {
124  /* Actions */
125  class Action1 : public Action {
126  public:
127  void signal() override;
128  };
129  class Action2 : public Action {
130  public:
131  void signal() override;
132  };
133  /* Objects */
134  class Lyle: public NamedObject {
135  public:
136  int _field90;
137  void synchronize(Serializer &s) override;
138  bool startAction(CursorType action, Event &event) override;
139  };
140  class Nico: public NamedObject {
141  public:
142  bool startAction(CursorType action, Event &event) override;
143  };
144  class Stuart: public NamedObject {
145  public:
146  bool startAction(CursorType action, Event &event) override;
147  };
148  class Forbes: public NamedObject {
149  public:
150  bool startAction(CursorType action, Event &event) override;
151  };
152  class PowerCord: public NamedObject {
153  public:
154  int _field90, _field92;
155 
156  void synchronize(Serializer &s) override;
157  bool startAction(CursorType action, Event &event) override;
158  void init(int val);
159 
160  };
161  class BreakerBox: public NamedObject {
162  public:
163  bool startAction(CursorType action, Event &event) override;
164  };
165  class FakeWall: public NamedObject {
166  public:
167  bool startAction(CursorType action, Event &event) override;
168  };
169 
170  class Object13: public NamedObject {
171  protected:
172  int _state, _mode;
173  public:
174  void setupBreaker(int x, int y, int mode, int8 frameNumber);
175  void synchronize(Serializer &s) override;
176  bool startAction(CursorType action, Event &event) override;
177  void remove() override;
178  };
179 
180  class BlackPlug: public Object13 {
181  public:
182  void init(int x, int y, int arg8, int8 mode);
183  bool startAction(CursorType action, Event &event) override;
184  void remove() override;
185  };
186 
187  class Object25: public NamedObject {
188  int _field90, _field92;
189  public:
190  Object25();
191  void setupHiddenSwitch(int x, int y, int arg8, int argA);
192  void synchronize(Serializer &s) override;
193  bool startAction(CursorType action, Event &event) override;
194  void remove() override;
195  };
196 
197  class BreakerBoxInset: public FocusObject {
198  Object13 _object13, _object14, _object15, _object16, _object17, _object18;
199  Object13 _object19, _object20, _object21, _object22, _object23, _object24;
200  Object25 _object25, _object26;
201  public:
202  Object13 _object27;
203  BlackPlug _object28;
204  Common::String getClassName() override { return "Scene910_object12"; }
205  void postInit(SceneObjectList *OwnerList = NULL) override;
206  void remove() override;
207  };
208 
209  class PowerButton: public NamedObject {
210  public:
211  NamedObject _object32;
212  void remove() override;
213  bool startAction(CursorType action, Event &event) override;
214  void init(int frame);
215  };
216 
217  class GeneratorInset: public FocusObject {
218  BlackPlug _blackPlug;
219  PowerButton _powerButton;
220  public:
221  Common::String getClassName() override { return "Scene910_object29"; }
222  void postInit(SceneObjectList *OwnerList = NULL) override;
223  void remove() override;
224  };
225 
226  /* Items */
227  class Generator: public NamedHotspot {
228  public:
229  bool startAction(CursorType action, Event &event) override;
230  };
231  class Item2: public NamedHotspot {
232  public:
233  bool startAction(CursorType action, Event &event) override;
234  };
235  class Item3: public NamedHotspot {
236  public:
237  bool startAction(CursorType action, Event &event) override;
238  };
239  class Item9: public NamedHotspot {
240  public:
241  bool startAction(CursorType action, Event &event) override;
242  };
243  class Item15: public NamedHotspot {
244  public:
245  bool startAction(CursorType action, Event &event) override;
246  };
247  class Item16: public NamedHotspot {
248  public:
249  bool startAction(CursorType action, Event &event) override;
250  };
251  class Item17: public NamedHotspot {
252  public:
253  bool startAction(CursorType action, Event &event) override;
254  };
255 
256  int _sceneSubMode, _breakerButtonCtr, _field2DE0, _field2DE2, _field2DE4;
257  Common::Point _destPos;
258 public:
259  SequenceManager _sequenceManager1, _sequenceManager2;
260  SpeakerGameText _gameTextSpeaker;
261  SpeakerJakeJacket _jakeJacketSpeaker;
262  SpeakerLyleHat _lyleHatSpeaker;
263  SpeakerFBI _fbiSpeaker;
264  SpeakerNico _nicoSpeaker;
265  SpeakerDA _daSpeaker;
266  Action1 _action1;
267  Action2 _action2;
268  Timer _timer1;
269  Lyle _lyle;
270  Nico _nico;
271  Stuart _stuart;
272  Forbes _forbes;
273  NamedObject _object5, _vent, _shadow;
274  PowerCord _blackCord, _yellowCord;
275  BreakerBox _breakerBox;
276  FakeWall _fakeWall;
277  BreakerBoxInset _breakerBoxInset;
278  GeneratorInset _generatorInset;
279  NamedObject _object30, _object31, _object32;
280  Generator _generator;
281  Item2 _item2;
282  Item3 _item3;
283  NamedHotspot _item4, _item5, _item6, _item7, _item8;
284  Item9 _item9, _item10;
285  NamedHotspot _item11, _backWall, _item13, _item14;
286  Item15 _item15;
287  Item16 _item16;
288  Item17 _item17;
289  ASoundExt _sound1, _sound2;
290 
291  void postInit(SceneObjectList *OwnerList = NULL) override;
292  void synchronize(Serializer &s) override;
293  void remove() override;
294  void signal() override;
295  void process(Event &event) override;
296  void dispatch() override;
297  void checkGun() override;
298  void openHiddenDoor();
299  void closeHiddenDoor();
300 };
301 
302 class Scene920: public SceneExt {
303  /* Items */
304  class Item1: public NamedHotspot {
305  public:
306  bool startAction(CursorType action, Event &event) override;
307  };
308  class Item8: public NamedHotspot {
309  public:
310  bool startAction(CursorType action, Event &event) override;
311  };
312 
313 public:
314  SequenceManager _sequenceManager1;
315  SpeakerGameText _gameTextSpeaker;
316  SpeakerJakeJacket _jakeJacketSpeaker;
317 
318  Item1 _crate;
319  NamedHotspot _item2;
320  NamedHotspot _item3;
321  NamedHotspot _item4;
322  NamedHotspot _item5;
323  NamedHotspot _item6;
324  NamedHotspot _item7;
325  NamedObject _crateTop;
326  NamedObject _crateWindow;
327  NamedObject _doorway;
328  Item8 _exitN;
329  Common::Point _oldCoord;
330 
331  void postInit(SceneObjectList *OwnerList = NULL) override;
332  void signal() override;
333  void process(Event &event) override;
334  void dispatch() override;
335  void synchronize(Serializer &s) override;
336 };
337 
338 class Scene930: public PalettedScene {
339  /* Objects */
340  class Object1: public NamedObject {
341  public:
342  bool startAction(CursorType action, Event &event) override;
343  };
344  class Object2: public FocusObject {
345  public:
346  bool startAction(CursorType action, Event &event) override;
347  };
348  class Object3: public NamedObject {
349  public:
350  bool startAction(CursorType action, Event &event) override;
351  };
352  class Object4: public FocusObject {
353  public:
354  bool startAction(CursorType action, Event &event) override;
355  void remove() override;
356  };
357  class Object5: public FocusObject {
358  public:
359  bool startAction(CursorType action, Event &event) override;
360  void remove() override;
361  };
362  /* Items */
363  class Item1: public NamedHotspot {
364  public:
365  bool startAction(CursorType action, Event &event) override;
366  };
367  /* Actions */
368  class Action1 : public Action {
369  public:
370  void signal() override;
371  };
372  class Action2 : public Action {
373  public:
374  void signal() override;
375  };
376  class Action3 : public Action {
377  public:
378  void signal() override;
379  };
380 
381  void showBootInset();
382  void showBoxInset();
383  void showSoleInset();
384 public:
385  SequenceManager _sequenceManager1;
386  Object1 _box;
387  Object2 _boxInset;
388  Object3 _boots;
389  Object4 _bootsInset;
390  Object5 _soleInset;
391 
392  Item1 _item1;
393  NamedHotspot _item2;
394  NamedHotspot _item3;
395  NamedHotspot _item4;
396  NamedHotspot _item5;
397  NamedHotspot _item6;
398  NamedHotspot _item7;
399  NamedHotspot _item8;
400  NamedHotspot _item9;
401  NamedHotspot _item10;
402  NamedHotspot _item11;
403  NamedHotspot _item12;
404  NamedHotspot _item13;
405  NamedHotspot _item14;
406  NamedHotspot _item15;
407  NamedHotspot _item16;
408  NamedHotspot _item17;
409  NamedHotspot _item18;
410  NamedHotspot _item19;
411  NamedHotspot _item20;
412  NamedHotspot _item21;
413 
414  Action1 _action1;
415  Action2 _action2;
416  Action3 _action3;
417 
418  SpeakerGameText gameTextSpeaker;
419 
420  bool _soleOpened;
421  int _bootInsetDisplayed;
422 
423  void postInit(SceneObjectList *OwnerList = NULL) override;
424  void signal() override;
425  void dispatch() override;
426  void synchronize(Serializer &s) override;
427 };
428 
429 class Scene935: public PalettedScene {
430  /* Actions */
431  class Action1 : public Action {
432  public:
433  void signal() override;
434  };
435 
436 public:
437  SequenceManager _sequenceManager;
438  NamedObject _object1;
439  NamedObject _object2;
440  NamedObject _object3;
441  Action1 _action1;
442  VisualSpeaker _visualSpeaker;
443 
444  void postInit(SceneObjectList *OwnerList = NULL) override;
445  void remove() override;
446  void signal() override;
447  void dispatch() override;
448 };
449 
450 class Scene940: public SceneExt {
451  /* Items */
452  class Item1: public NamedHotspot {
453  public:
454  bool startAction(CursorType action, Event &event) override;
455  };
456  /* Actions */
457  class Action1 : public Action {
458  public:
459  void signal() override;
460  };
461 
462 public:
463  SequenceManager _sequenceManager1;
464  SequenceManager _sequenceManager2;
465  SequenceManager _sequenceManager3;
466  SequenceManager _sequenceManager4;
467  NamedObject _object1;
468  NamedObject _object2;
469  NamedObject _object3;
470  NamedObject _object4;
471  NamedObject _object5;
472  NamedObject _object6;
473  NamedObject _object7;
474  NamedObject _object8;
475  NamedObject _object9;
476  NamedObject _object10;
477  NamedObject _object11;
478  NamedObject _object12;
479  NamedObject _object13;
480  NamedObject _object14;
481  NamedObject _object15;
482  NamedObject _object16;
483  NamedObject _object17;
484  NamedObject _object18;
485  Item1 _item1;
486  Action1 _action1;
487 
488  SpeakerGameText _gameTextSpeaker1;
489  SpeakerGameText _gameTextSpeaker2;
490 
491  void postInit(SceneObjectList *OwnerList = NULL) override;
492  void remove() override;
493 };
494 
495 } // End of namespace BlueForce
496 } // End of namespace TsAGE
497 
498 #endif
Definition: blueforce_speakers.h:301
Definition: str.h:59
Definition: blueforce_speakers.h:149
Definition: blueforce_logic.h:127
Definition: blueforce_speakers.h:285
Definition: core.h:736
Definition: blueforce_logic.h:225
Definition: blueforce_speakers.h:57
Definition: core.h:134
Definition: blueforce_scenes9.h:429
Definition: blueforce_logic.h:330
Definition: blueforce_speakers.h:102
Definition: blueforce_logic.h:180
Definition: blueforce_scenes9.h:123
Definition: sound.h:405
Definition: blueforce_scenes9.h:338
Definition: blueforce_speakers.h:39
Definition: rect.h:45
Definition: events.h:47
Definition: blueforce_logic.h:72
Definition: blueforce_dialogs.h:30
Definition: blueforce_logic.h:194
Definition: saveload.h:63
Definition: blueforce_scenes9.h:41
Definition: blueforce_scenes9.h:302
Definition: blueforce_scenes9.h:450
Definition: converse.h:38
Definition: blueforce_logic.h:119
Definition: blueforce_speakers.h:293