ScummVM API documentation
ringworld_scenes1.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_RINGWORLD_SCENES1_H
23 #define TSAGE_RINGWORLD_SCENES1_H
24 
25 #include "common/scummsys.h"
26 #include "tsage/ringworld/ringworld_logic.h"
27 #include "tsage/ringworld/ringworld_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 Ringworld {
38 
39 using namespace TsAGE;
40 
41 class Scene10 : public Scene {
42  /* Actions */
43  class Action1 : public Action {
44  public:
45  void signal() override;
46  };
47  class Action2 : public Action {
48  public:
49  void signal() override;
50  };
51 public:
52  Speaker _speakerSText;
53  Speaker _speakerQText;
54  Action1 _action1;
55  Action2 _action2;
56  SceneObject _veeshkaBody;
57  SceneObject _veeshkaHead;
58  SceneObject _veeshkaRightArm;
59  SceneObject _centurion;
60  SceneObject _leftSmoke;
61  SceneObject _rightSmoke;
62 
63  void stripCallback(int v) override;
64  void postInit(SceneObjectList *OwnerList = NULL) override;
65 };
66 
67 class Scene15 : public Scene {
68  /* Actions */
69  class Action1 : public Action {
70  public:
71  void signal() override;
72  void dispatch() override;
73  };
74 public:
75  Action1 _action1;
76  SceneObject _ship;
77  ASound _soundHandler;
78 
79  void postInit(SceneObjectList *OwnerList = NULL) override;
80 };
81 
82 class Scene20 : public Scene {
83  /* Actions */
84  class Action1 : public Action {
85  public:
86  void signal() override;
87  };
88  class Action2 : public Action {
89  public:
90  void signal() override;
91  };
92  class Action3 : public Action {
93  public:
94  void signal() override;
95  };
96  class Action4 : public Action {
97  public:
98  void signal() override;
99  };
100 public:
101  SequenceManager _sequenceManager;
102  SpeakerQText _speakerQText;
103  SpeakerGameText _speakerGameText;
104  Action1 _action1;
105  Action2 _action2;
106  Action3 _action3;
107  Action4 _action4;
108  SceneObject _assassinShip1;
109  SceneObject _assassinShip2;
110  SceneObject _laserShot1;
111  SceneObject _laserShot2;
112  ASound _sound;
113 public:
114  Scene20();
115  ~Scene20() override {}
116 
117  void postInit(SceneObjectList *OwnerList = NULL) override;
118  void signal() override;
119 };
120 
121 class Scene30 : public Scene {
122  /* Scene objects */
123  // Doorway beam sensor
124  class BeamObject : public SceneObject {
125  public:
126  void doAction(int action) override;
127  };
128  // Doorway object
129  class DoorObject : public SceneObject {
130  public:
131  void doAction(int action) override;
132  };
133  // Kzin object
134  class KzinObject : public SceneObject {
135  public:
136  void doAction(int action) override;
137  };
138 
139  /* Actions */
140  class BeamAction : public Action {
141  public:
142  void signal() override;
143  };
144  class KzinAction : public Action {
145  public:
146  void signal() override;
147  };
148  class RingAction : public Action {
149  public:
150  void signal() override;
151  };
152  class TalkAction : public Action {
153  public:
154  void signal() override;
155  };
156 
157 public:
158  ASound _sound;
159  DisplayHotspot _groundHotspot, _wallsHotspot, _courtyardHotspot, _treeHotspot;
160  BeamObject _beam;
161  DoorObject _door;
162  KzinObject _kzin;
163 
164  BeamAction _beamAction;
165  KzinAction _kzinAction;
166  RingAction _ringAction;
167  TalkAction _talkAction;
168  SequenceManager _sequenceManager;
169 
170  SpeakerSR _speakerSR;
171  SpeakerQL _speakerQL;
172  SpeakerSText _speakerSText;
173  SpeakerQText _speakerQText;
174 public:
175  Scene30();
176  ~Scene30() override {}
177 
178  void postInit(SceneObjectList *OwnerList = NULL) override;
179  void signal() override;
180 };
181 
182 class Scene40 : public Scene {
183  /* Actions */
184  class Action1 : public Action {
185  public:
186  void signal() override;
187  };
188  class Action2 : public Action {
189  public:
190  void signal() override;
191  };
192  class Action3 : public Action {
193  public:
194  void signal() override;
195  };
196  class Action4 : public Action {
197  public:
198  void signal() override;
199  };
200  class Action5 : public Action {
201  public:
202  void signal() override;
203  };
204  class Action6 : public Action {
205  public:
206  void signal() override;
207  };
208  class Action7 : public Action {
209  public:
210  void signal() override;
211  };
212  class Action8 : public Action {
213  public:
214  void signal() override;
215  void dispatch() override;
216  };
217 
218  /* Objects */
219  class DyingKzin : public SceneObject {
220  public:
221  void doAction(int action) override;
222  };
223  class Assassin : public SceneObject {
224  public:
225  void doAction(int action) override;
226  };
227 
228  /* Items */
229  class Item2 : public SceneHotspot {
230  public:
231  void doAction(int action) override;
232  };
233  class Item6 : public SceneHotspot {
234  public:
235  void doAction(int action) override;
236  };
237  class Item8 : public SceneHotspot {
238  public:
239  void doAction(int action) override;
240  };
241 public:
242  SequenceManager _sequenceManager;
243  SpeakerSL _speakerSL;
244  SpeakerQR _speakerQR;
245  SpeakerQText _speakerQText;
246  SpeakerSText _speakerSText;
247  SpeakerGameText _speakerGameText;
248  ASound _soundHandler;
249  Action1 _action1;
250  Action2 _action2;
251  Action3 _action3;
252  Action4 _action4;
253  Action5 _action5;
254  Action6 _action6;
255  Action7 _action7;
256  Action8 _action8;
257  SceneObject _seeker;
258  SceneObject _seekerTail;
259  SceneObject _seekerHand;
260  DyingKzin _dyingKzin;
261  Assassin _assassin;
262  SceneObject _doorway;
263  SceneObject _leftEntrance;
264  DisplayHotspot _ball;
265  Item2 _statue;
266  DisplayHotspot _window;
267  DisplayHotspot _entrance;
268  DisplayHotspot _background;
269  Item6 _pedestal;
270  DisplayHotspot _emerald;
271  DisplayHotspot _tree;
272 
273  Scene40();
274  void postInit(SceneObjectList *OwnerList = NULL) override;
275  void signal() override;
276  void dispatch() override;
277 };
278 
279 class Scene50 : public Scene {
280  /* Actions */
281  class Action1 : public Action {
282  public:
283  void signal() override;
284  };
285  class Action2 : public Action {
286  public:
287  void signal() override;
288  };
289  class Action3 : public Action {
290  public:
291  void signal() override;
292  };
293 
294  /* Objects */
295  class Object1 : public SceneObject {
296  public:
297  void doAction(int action) override;
298  };
299  class LeftFlyCycle : public SceneObject {
300  public:
301  void doAction(int action) override;
302  };
303  class CenterFlyCycle : public SceneObject {
304  public:
305  void doAction(int action) override;
306  };
307  class RightFlyCycle : public SceneObject {
308  public:
309  void doAction(int action) override;
310  };
311 
312 public:
313  SequenceManager _sequenceManager;
314  Action1 _action1;
315  Action2 _action2;
316  Action3 _action3;
317  LeftFlyCycle _leftFlyCycle;
318  CenterFlyCycle _centerFlyCycle;
319  RightFlyCycle _rightFlyCycle;
320  Rect _doorwayRect;
321  SpeakerSText _speakerSText;
322  SpeakerQText _speakerQText;
323  DisplayHotspot _background;
324  DisplayHotspot _item1;
325  DisplayHotspot _entrance;
326  DisplayHotspot _bulwark;
327  DisplayHotspot _tree;
328  DisplayHotspot _flagstones;
329 
330  Scene50();
331  void postInit(SceneObjectList *OwnerList = NULL) override;
332  void signal() override;
333  void dispatch() override;
334 };
335 
336 class Scene60 : public Scene {
337  class Action1 : public Action {
338  public:
339  void signal() override;
340  };
341  class Action2 : public Action {
342  public:
343  void signal() override;
344  };
345  class PrevObject : public SceneObject {
346  public:
347  void doAction(int action) override;
348  };
349  class NextObject : public SceneObject {
350  public:
351  void doAction(int action) override;
352  };
353  class ExitObject : public SceneObject {
354  public:
355  void doAction(int action) override;
356  };
357  class MessageObject : public SceneObject {
358  public:
359  void doAction(int action) override;
360  };
361  class ControlObject : public SceneObject {
362  public:
363  void doAction(int action) override;
364  };
365  class SlaveObject : public SceneObjectExt {
366  public:
367  void doAction(int action) override;
368  };
369  class MasterObject : public SceneObjectExt {
370  public:
371  void doAction(int action) override;
372  };
373  class FloppyDrive : public SceneObject {
374  public:
375  void doAction(int action) override;
376  };
377  class Item1 : public SceneHotspot {
378  public:
379  void doAction(int action) override;
380  };
381  class Item : public SceneHotspot {
382  public:
383  int _messageNum, _sceneMode;
384 
385  Item(int sceneRegionId, int messageNum, int sceneMode) {
386  _sceneRegionId = sceneRegionId;
387  _messageNum = messageNum;
388  _sceneMode = sceneMode;
389  }
390  void doAction(int action) override;
391  };
392 
393 public:
394  GfxButton _gfxButton;
395  SequenceManager _sequenceManager;
396  SpeakerQText _speakerQText;
397  SpeakerSText _speakerSText;
398  Action1 _action1;
399  Action2 _action2;
400  SceneObject _rose;
401  PrevObject _prevButton;
402  NextObject _nextButton;
403  ExitObject _exitButton;
404  MessageObject _message;
405  ControlObject _controlButton;
406  SlaveObject _slaveButton;
407  MasterObject _masterButton;
408  FloppyDrive _floppyDrive;
409  SceneObject _redLights;
410  Item1 _diskDrive;
411  Item _dashboard;
412  Item _intercomm;
413  Item _viewScreen;
414  Item _speedControl;
415  Item _speaker;
416  ASound _soundHandler1;
417  ASound _soundHandler2;
418  ASound _soundHandler3;
419 
420  Scene60();
421  void postInit(SceneObjectList *OwnerList = NULL) override;
422  void signal() override;
423  void process(Event &event) override;
424 };
425 
426 class Scene90 : public Scene {
427  class Action1 : public Action {
428  public:
429  void signal() override;
430  };
431  class SeekerShip : public SceneObject {
432  public:
433  void doAction(int action) override;
434  };
435  class Guard : public SceneObject {
436  public:
437  void doAction(int action) override;
438  };
439 public:
440  SequenceManager _sequenceManager;
441  SpeakerSText _speakerSText;
442  SpeakerQText _speakerQText;
443  SpeakerQL _speakerQL;
444  SpeakerSR _speakerSR;
445  SpeakerMText _speakerMText;
446  Action1 _action1;
447  SeekerShip _seekerShip;
448  Guard _guard;
449  DisplayObject _headGate;
450  DisplayObject _emptyShip;
451  DisplayObject _quinnShip;
452  SceneObject _bubble;
453  DisplayHotspot _guardShack;
454  DisplayHotspot _shed;
455  DisplayHotspot _background;
456  ASound _soundHandler1, _soundHandler2;
457 
458  Scene90();
459 
460  void stripCallback(int v) override;
461  void postInit(SceneObjectList *OwnerList = NULL) override;
462  void signal() override;
463 };
464 
465 class Scene95 : public Scene {
466  class Action1 : public ActionExt {
467  public:
468  void signal() override;
469  };
470 
471 public:
472  Action1 _action1;
473  SceneObject _object1, _object2, _object3;
474  ASound _soundHandler;
475 
476  Scene95();
477  void postInit(SceneObjectList *OwnerList) override;
478 };
479 
480 class Scene6100 : public Scene {
481  /* Actions */
482  class Action1 : public Action {
483  public:
484  void signal() override;
485  };
486  class Action2 : public Action {
487  public:
488  void signal() override;
489  };
490  class Action3 : public Action {
491  public:
492  void signal() override;
493  };
494  class Action4 : public Action {
495  public:
496  void signal() override;
497  };
498  class Action5 : public Action {
499  public:
500  void dispatch() override;
501  };
502  class GetBoxAction : public Action {
503  public:
504  void signal() override;
505  void dispatch() override;
506  };
507  class Action7 : public Action {
508  public:
509  void signal() override;
510  };
511 
512  /* Objects */
513  class Object : public SceneObject {
514  public:
515  FloatSet _floats;
516 
517  void synchronize(Serializer &s) override;
518  };
519  class ProbeMover : public NpcMover {
520  public:
521  void dispatch() override;
522  };
523 
524  /* Items */
525  class Item1 : public SceneItem {
526  public:
527  void doAction(int action) override;
528  };
529 
530 public:
531  Action1 _action1;
532  Action2 _action2;
533  Action3 _action3;
534  Action4 _action4;
535  Action5 _action5;
536  GetBoxAction _getBoxAction;
537  Action7 _action7;
538  ASound _soundHandler;
539  Speaker _speaker1;
540  SpeakerQR _speakerQR;
541  SpeakerSL _speakerSL;
542  SceneObject _object1, _object2, _object3;
543  Object _rocks, _probe;
544  Object _sunflower1, _sunflower2, _sunflower3;
545  SceneText _sceneText;
546  SceneItem _item1;
547 
548  int _turnAmount, _angle, _speed, _fadePercent;
549  int _hitCount;
550  bool _rocksCheck;
551  Object *_objList[4];
552  bool _msgActive;
553 
554  Scene6100();
555  void synchronize(Serializer &s) override;
556  void postInit(SceneObjectList *OwnerList = NULL) override;
557  void remove() override;
558  void process(Event &event) override;
559  void dispatch() override;
560  void showMessage(const Common::String &msg, int color, Action *action);
561 
562 };
563 
564 } // End of namespace Ringworld
565 
566 } // End of namespace TsAGE
567 
568 #endif
Definition: core.h:228
Definition: core.h:443
Definition: ringworld_scenes1.h:67
Definition: str.h:59
Definition: converse.h:71
Definition: core.h:736
Definition: ringworld_scenes1.h:41
Definition: core.h:134
Definition: ringworld_scenes1.h:336
Definition: core.h:407
Definition: sound.h:366
Definition: ringworld_logic.h:55
Definition: ringworld_scenes1.h:121
Definition: ringworld_logic.h:68
Definition: ringworld_scenes1.h:465
Definition: ringworld_speakers.h:86
Definition: ringworld_logic.h:42
Definition: ringworld_scenes1.h:480
Definition: ringworld_speakers.h:220
Definition: converse.h:101
Definition: ringworld_speakers.h:202
Definition: core.h:867
Definition: ringworld_speakers.h:210
Definition: ringworld_speakers.h:178
Definition: events.h:47
Definition: ringworld_scenes1.h:426
Definition: blueforce_dialogs.h:30
Definition: graphics.h:237
Definition: ringworld_scenes1.h:82
Definition: saveload.h:63
Definition: ringworld_speakers.h:100
Definition: core.h:163
Definition: ringworld_scenes1.h:182
Definition: scenes.h:33
Definition: core.h:519
Definition: ringworld_scenes1.h:279
Definition: graphics.h:40
Definition: core.h:625
Definition: ringworld_speakers.h:93
Definition: converse.h:38