ScummVM API documentation
ringworld_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_RINGWORLD_SCENES5_H
23 #define TSAGE_RINGWORLD_SCENES5_H
24 
25 #include "common/scummsys.h"
26 #include "tsage/core.h"
27 #include "tsage/converse.h"
28 #include "tsage/ringworld/ringworld_logic.h"
29 #include "tsage/ringworld/ringworld_speakers.h"
30 
31 namespace TsAGE {
32 
33 namespace Ringworld {
34 
35 using namespace TsAGE;
36 
37 class Scene4000 : public Scene {
38  /* Actions */
39  class Action1 : public Action {
40  public:
41  void signal() override;
42  };
43  class Action2 : public Action {
44  public:
45  void signal() override;
46  };
47  class Action3 : public Action {
48  public:
49  void signal() override;
50  };
51  class Action4 : public Action {
52  public:
53  void signal() override;
54  };
55  class Action5 : public Action {
56  public:
57  void signal() override;
58  };
59  class Action6 : public Action {
60  public:
61  void signal() override;
62  };
63  class Action7 : public Action {
64  public:
65  void signal() override;
66  };
67  class Action8 : public Action {
68  public:
69  void signal() override;
70  };
71  class Action9 : public Action {
72  public:
73  void signal() override;
74  };
75  class Action10 : public Action {
76  public:
77  void signal() override;
78  };
79  class Action11 : public Action {
80  public:
81  void signal() override;
82  };
83  class Action12 : public Action {
84  public:
85  void signal() override;
86  };
87  class Action13 : public Action {
88  public:
89  void signal() override;
90  };
91 
92  /* Hotspots */
93  class Miranda : public SceneObject {
94  public:
95  void doAction(int action) override;
96  };
97  class Hotspot8 : public SceneObject {
98  private:
99  int _ctr;
100  public:
101  Hotspot8();
102  void synchronize(Serializer &s) override {
103  SceneObject::synchronize(s);
104  s.syncAsUint16LE(_ctr);
105  }
106  void doAction(int action) override;
107  };
108  class GuardRock : public SceneObject {
109  public:
110  void doAction(int action) override;
111  };
112  class Ladder : public SceneObject {
113  public:
114  void doAction(int action) override;
115  };
116  class TheTech : public SceneObject {
117  public:
118  void doAction(int action) override;
119  };
120  class Hotspot13 : public SceneObject {
121  public:
122  void doAction(int action) override;
123  };
124  class Hotspot : public SceneObject {
125  public:
126  void doAction(int action) override;
127  };
128  class Hotspot17 : public SceneObject {
129  public:
130  void doAction(int action) override;
131  };
132  class Hotspot18 : public SceneObject {
133  public:
134  void doAction(int action) override;
135  };
136  class Hotspot23 : public SceneObject {
137  public:
138  void doAction(int action) override;
139  };
140 public:
141  SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
142  ASound _soundHandler1, _soundHandler2;
143  SpeakerQR _speakerQR;
144  SpeakerML _speakerML;
145  SpeakerMR _speakerMR;
146  SpeakerSR _speakerSR;
147  SpeakerCHFL _speakerCHFL;
148  SpeakerPL _speakerPL;
149  SpeakerPText _speakerPText;
150  SpeakerQText _speakerQText;
151  SpeakerSText _speakerSText;
152  SpeakerMText _speakerMText;
153  SpeakerCHFR _speakerCHFR;
154  SpeakerQL _speakerQL;
155  SpeakerCHFText _speakerCHFText;
156  SceneObject _smoke1, _hotspot2, _lander, _olo, _hotspot5, _rope;
157  Miranda _miranda;
158  Hotspot8 _hotspot8;
159  GuardRock _guardRock;
160  Ladder _ladder;
161  DisplayHotspot _forceField;
162  TheTech _theTech;
163  Hotspot13 _hotspot13;
164  Hotspot _hotspot14, _hotspot15, _hotspot16;
165  Hotspot17 _hotspot17;
166  Hotspot18 _hotspot18;
167  DisplayHotspot _hotspot19, _hotspot20, _hotspot21, _hotspot22;
168  Hotspot23 _hotspot23;
169  DisplayHotspot _hotspot24, _hotspot25, _hotspot26;
170  SceneObject _smoke2;
171  Action1 _action1;
172  Action2 _action2;
173  Action3 _action3;
174  Action4 _action4;
175  Action5 _action5;
176  Action6 _action6;
177  Action7 _action7;
178  Action8 _action8;
179  Action9 _action9;
180  Action10 _action10;
181  Action11 _action11;
182  Action12 _action12;
183  Action13 _action13;
184 
185  Scene4000();
186  void postInit(SceneObjectList *OwnerList = NULL) override;
187  void signal() override;
188  void dispatch() override;
189 };
190 
191 class Scene4010 : public Scene {
192 public:
193  SequenceManager _sequenceManager;
194  SpeakerQText _speakerQText;
195  SpeakerSText _speakerSText;
196  SpeakerMText _speakerMText;
197  SceneObject _hotspot1, _hotspot2;
198 
199  void postInit(SceneObjectList *OwnerList = NULL) override;
200  void signal() override;
201 };
202 
203 class Scene4025 : public Scene {
204  /* Custom classes */
205  class Peg;
206 
207  class Hole : public SceneObject {
208  public:
209  Peg *_pegPtr;
210  int _armStrip;
211  Common::Point _newPosition;
212 
213  void synchronize(Serializer &s) override;
214  void doAction(int action) override;
215  };
216  class Peg : public SceneObject {
217  public:
218  int _pegId;
219  int _armStrip;
220 
221  Peg() : SceneObject() { _pegId = 0; _armStrip = 3; }
222  void synchronize(Serializer &s) override;
223  void doAction(int action) override;
224  };
225 
226  /* Actions */
227  class Action1 : public Action {
228  public:
229  void signal() override;
230  };
231  class Action2 : public Action {
232  public:
233  void signal() override;
234  };
235  class Action3 : public Action {
236  public:
237  void signal() override;
238  };
239 public:
240  SequenceManager _sequenceManager;
241  GfxButton _gfxButton;
242  SceneObject _armHotspot;
243  Hole _hole1, _hole2, _hole3, _hole4, _hole5;
244  Peg _peg1, _peg2, _peg3, _peg4, _peg5;
245  Action1 _action1;
246  Action2 _action2;
247  Action3 _action3;
248  Peg *_pegPtr, *_pegPtr2;
249  Hole *_holePtr;
250 
251  Scene4025();
252  void postInit(SceneObjectList *OwnerList = NULL) override;
253  void synchronize(Serializer &s) override;
254  void remove() override;
255  void signal() override;
256  void process(Event &event) override;
257  void dispatch() override;
258 };
259 
260 class Scene4045 : public Scene {
261  /* Actions */
262  class Action1 : public Action {
263  public:
264  void signal() override;
265  };
266  class Action2 : public Action {
267  public:
268  void signal() override;
269  };
270  class Action3 : public Action {
271  public:
272  void signal() override;
273  };
274 
275  /* Hotspots */
276  class OlloStand : public SceneObject {
277  public:
278  void doAction(int action) override;
279  };
280  class Miranda : public SceneObject {
281  public:
282  void doAction(int action) override;
283  };
284  class Necklace : public SceneObject {
285  public:
286  void doAction(int action) override;
287  };
288 
289 public:
290  SequenceManager _sequenceManager;
291  SpeakerQR _speakerQR;
292  SpeakerML _speakerML;
293  SpeakerPR _speakerPR;
294  SpeakerPText _speakerPText;
295  SpeakerQText _speakerQText;
296  SpeakerQL _speakerQL;
297  OlloStand _olloStand;
298  Miranda _miranda;
299  DisplayHotspot _flame;
300  SceneObject _hotspot4, _olloFace;
301  Necklace _necklace;
302  DisplayHotspot _hotspot7, _hotspot8, _hotspot9, _hotspot10;
303  DisplayHotspot _hotspot11, _hotspot12, _hotspot13, _hotspot14;
304  Action1 _action1;
305  Action2 _action2;
306  Action3 _action3;
307 
308  Scene4045();
309  void postInit(SceneObjectList *OwnerList = NULL) override;
310  void stripCallback(int v) override;
311  void signal() override;
312  void dispatch() override;
313 };
314 
315 class Scene4050 : public Scene {
316  /* Actions */
317  class Action1 : public Action {
318  public:
319  void signal() override;
320  };
321  class Action2 : public Action {
322  public:
323  void signal() override;
324  };
325  class Action3 : public Action {
326  public:
327  void signal() override;
328  };
329  class Action4 : public Action {
330  public:
331  void signal() override;
332  };
333 
334  /* Hotspots */
335  class Hotspot15 : public SceneObject {
336  public:
337  void doAction(int action) override;
338  };
339  class Hotspot17 : public SceneObject {
340  public:
341  void doAction(int action) override;
342  };
343 public:
344  SpeakerPText _speakerPText;
345  SpeakerQText _speakerQText;
346  SpeakerGameText _speakerGameText;
347  Action1 _action1;
348  Action2 _action2;
349  Action3 _action3;
350  Action4 _action4;
351  DisplayHotspot _hotspot1, _hotspot2, _hotspot3, _hotspot4, _hotspot5;
352  DisplayHotspot _hotspot6, _hotspot7, _hotspot8, _hotspot9, _hotspot10;
353  DisplayHotspot _hotspot11, _hotspot12, _hotspot13;
354  SceneObject _hotspot14;
355  Hotspot15 _hotspot15;
356  SceneObject _hotspot16;
357  Hotspot17 _hotspot17;
358 
359  Scene4050();
360  void postInit(SceneObjectList *OwnerList = NULL) override;
361  void signal() override;
362  void dispatch() override;
363 };
364 
365 class Scene4100 : public Scene {
366  /* Actions */
367  class Action1 : public Action {
368  public:
369  void signal() override;
370  };
371  class Action2 : public Action {
372  public:
373  void signal() override;
374  };
375  class Action3 : public Action {
376  public:
377  void signal() override;
378  };
379  class Action4 : public Action {
380  public:
381  void signal() override;
382  };
383  class Action5 : public Action {
384  public:
385  void signal() override;
386  };
387  class Action6 : public Action {
388  public:
389  void signal() override;
390  };
391 
392  /* Hotspots */
393  class Hotspot1 : public SceneObject {
394  public:
395  void doAction(int action) override;
396  };
397  class Hotspot2 : public SceneObject {
398  public:
399  void doAction(int action) override;
400  };
401  class Miranda : public SceneObject {
402  public:
403  void doAction(int action) override;
404  };
405  class Ladder : public SceneObject {
406  public:
407  void doAction(int action) override;
408  };
409  class Hotspot14 : public SceneObject {
410  public:
411  void doAction(int action) override;
412  };
413 public:
414  SequenceManager _sequenceManager;
415  SpeakerMText _speakerMText;
416  SpeakerML _speakerML;
417  SpeakerQText _speakerQText;
418  SpeakerQR _speakerQR;
419  SpeakerCHFText _speakerCHFText;
420  SpeakerCDRText _speakerCDRText;
421  SpeakerCDR _speakerCDR;
422  Action1 _action1;
423  Action2 _action2;
424  Action3 _action3;
425  Action4 _action4;
426  Action5 _action5;
427  Action6 _action6;
428  Hotspot1 _hotspot1;
429  Hotspot2 _hotspot2;
430  DisplayHotspot _hotspot3, _hotspot4;
431  Miranda _miranda;
432  Ladder _ladder;
433  DisplayHotspot _hotspot7, _hotspot8, _hotspot9, _hotspot10;
434  DisplayHotspot _hotspot11, _hotspot12, _hotspot13;
435  Hotspot14 _hotspot14;
436 
437  Scene4100();
438  void postInit(SceneObjectList *OwnerList = NULL) override;
439  void signal() override;
440  void dispatch() override;
441 };
442 
443 class Scene4150 : public Scene {
444  /* Actions */
445  class Action1 : public Action {
446  public:
447  void signal() override;
448  };
449  class Action2 : public Action {
450  public:
451  void signal() override;
452  };
453  class Action3 : public Action {
454  public:
455  void signal() override;
456  };
457 
458  /* Hotspots */
459  class HotspotGroup1 : public SceneObject {
460  public:
461  void doAction(int action) override;
462  };
463  class HotspotGroup3 : public SceneObject {
464  public:
465  void doAction(int action) override;
466  };
467  class HotspotGroup6 : public SceneObject {
468  public:
469  void doAction(int action) override;
470  };
471 
472  class Hotspot3 : public SceneObject {
473  public:
474  void doAction(int action) override;
475  };
476 
477 public:
478  SequenceManager _sequenceManager;
479  ASound _soundHandler;
480  SpeakerQText _speakerQText;
481  SpeakerQR _speakerQR;
482  SpeakerCDL _speakerCDL;
483  Action1 _action1;
484  Action2 _action2;
485  Action3 _action3;
486  DisplayHotspot _hotspot1, _hotspot2;
487  Hotspot3 _hotspot3;
488  SceneObject _hotspot4;
489  HotspotGroup1 _hotspot5, _hotspot6;
490  DisplayHotspot _hotspot7, _hotspot8, _hotspot9, _hotspot10, _hotspot11, _hotspot12;
491  HotspotGroup3 _hotspot13, _hotspot14, _hotspot15, _hotspot16;
492  DisplayHotspot _hotspot17, _hotspot18, _hotspot19, _hotspot20, _hotspot21;
493  DisplayHotspot _hotspot22, _hotspot23, _hotspot24;
494  HotspotGroup6 _hotspot25, _hotspot26;
495 
496  Scene4150();
497  void postInit(SceneObjectList *OwnerList = NULL) override;
498  void signal() override;
499  void dispatch() override;
500 };
501 
502 class Scene4250 : public Scene {
503  /* Actions */
504  class Action1 : public Action {
505  public:
506  void signal() override;
507  };
508  class Action2 : public Action {
509  public:
510  void signal() override;
511  };
512  class Action3 : public Action {
513  public:
514  void signal() override;
515  };
516  class Action4 : public Action {
517  public:
518  void signal() override;
519  };
520  class Action5 : public Action {
521  public:
522  void signal() override;
523  };
524 
525  /* Hotspots */
526  class Hotspot1 : public SceneObject {
527  public:
528  void doAction(int action) override;
529  };
530  class Hotspot2 : public SceneObject {
531  public:
532  void doAction(int action) override;
533  };
534  class Hotspot4 : public SceneObject {
535  public:
536  void doAction(int action) override;
537  };
538  class Hotspot6 : public SceneObject {
539  public:
540  void doAction(int action) override;
541  };
542  class Hotspot8 : public SceneObject {
543  public:
544  void doAction(int action) override;
545  };
546 
547 public:
548  SequenceManager _sequenceManager;
549  ASound _soundHandler;
550  SpeakerSR _speakerSR;
551  SpeakerSL _speakerSL;
552  SpeakerSText _speakerSText;
553  SpeakerGameText _speakerGameText;
554  SpeakerQL _speakerQL;
555  SpeakerQR _speakerQR;
556  SpeakerQText _speakerQText;
557  SpeakerPText _speakerPText;
558  SpeakerMText _speakerMText;
559  SpeakerFLText _speakerFLText;
560  Action1 _action1;
561  Action2 _action2;
562  Action3 _action3;
563  Action4 _action4;
564  Action5 _action5;
565  Hotspot1 _hotspot1;
566  Hotspot2 _hotspot2;
567  SceneObject _hotspot3;
568  Hotspot4 _hotspot4;
569  SceneObject _hotspot5;
570  Hotspot6 _hotspot6;
571  DisplayHotspot _hotspot7;
572  Hotspot8 _hotspot8;
573 
574  Scene4250();
575  void postInit(SceneObjectList *OwnerList = NULL) override;
576  void signal() override;
577  void dispatch() override;
578 };
579 
580 class Scene4300 : public Scene {
581  /* Actions */
582  class Action1 : public Action {
583  public:
584  void signal() override;
585  };
586  class Action2 : public Action {
587  public:
588  void signal() override;
589  };
590 
591  /* Hotspots */
592  class Hotspot8 : public SceneObject {
593  public:
594  void doAction(int action) override;
595  };
596  class Hotspot9 : public NamedHotspot {
597  public:
598  void doAction(int action) override;
599  };
600  class Hotspot10 : public SceneObject {
601  public:
602  void doAction(int action) override;
603  };
604  class Hotspot15 : public SceneObject {
605  public:
606  void signal() override;
607  };
608  class Hotspot16 : public SceneObject {
609  public:
610  void doAction(int action) override;
611  };
612  class Hotspot17 : public SceneObject {
613  public:
614  void doAction(int action) override;
615  };
616  class Hotspot19 : public SceneObject {
617  public:
618  void doAction(int action) override;
619  };
620 public:
621  ASound _soundHandler1, _soundHandler2;
622  SequenceManager _sequenceManager;
623  GfxButton _gfxButton;
624  SpeakerQText _speakerQText;
625  SpeakerSText _speakerSText;
626  SpeakerMText _speakerMText;
627  SpeakerFLText _speakerFLText;
628 
629  SceneObject _hotspot1, _hotspot2, _hotspot3, _hotspot4;
630  SceneObject _hotspot5, _hotspot6, _hotspot7;
631  Hotspot8 _hotspot8;
632  Hotspot9 _hotspot9;
633  Hotspot10 _hotspot10;
634  NamedHotspot _hotspot11;
635  SceneObject _hotspot12, _hotspot13, _hotspot14;
636  Hotspot15 _hotspot15;
637  Hotspot16 _hotspot16;
638  Hotspot17 _hotspot17;
639  DisplayHotspot _hotspot18;
640  Hotspot19 _hotspot19;
641  Action1 _action1;
642  Action2 _action2;
643 
644  Scene4300();
645  void postInit(SceneObjectList *OwnerList = NULL) override;
646  void stripCallback(int v) override;
647  void remove() override;
648  void signal() override;
649  void dispatch() override;
650  void process(Event &event) override;
651 };
652 
653 class Scene4301 : public Scene {
654  /* Actions */
655  class Action1 : public ActionExt {
656  public:
657  SceneObject _buttonList[6];
658  int _indexList[6];
659 
660  void synchronize(Serializer &s) override;
661  void remove() override;
662  void signal() override;
663  void process(Event &event) override;
664  };
665 
666  /* Hotspots */
667  class Hotspot4 : public NamedHotspot {
668  public:
669  void doAction(int action) override;
670  };
671  class Hotspot5 : public NamedHotspot {
672  public:
673  void doAction(int action) override;
674  };
675 
676 public:
677  Common::List<int> _list1;
678  SequenceManager _sequenceManager;
679  ASound _soundHandler;
680  Action1 _action1;
681  SceneObject _hotspot1, _hotspot2, _hotspot3;
682  Hotspot4 _hotspot4;
683  Hotspot5 _hotspot5;
684  bool _puzzleDone;
685 
686  void postInit(SceneObjectList *OwnerList = NULL) override;
687  void dispatch() override;
688  void synchronize(Serializer &s) override {
689  Scene::synchronize(s);
690  s.syncAsSint16LE(_puzzleDone);
691  }
692 };
693 
694 } // End of namespace Ringworld
695 
696 } // End of namespace TsAGE
697 
698 #endif
Definition: ringworld_speakers.h:143
Definition: ringworld_speakers.h:308
Definition: ringworld_speakers.h:260
Definition: core.h:736
Definition: core.h:134
Definition: ringworld_speakers.h:136
Definition: sound.h:366
Definition: ringworld_speakers.h:157
Definition: ringworld_scenes5.h:191
Definition: ringworld_speakers.h:86
Definition: ringworld_logic.h:42
Definition: ringworld_speakers.h:220
Definition: converse.h:101
Definition: ringworld_speakers.h:202
Definition: ringworld_speakers.h:252
Definition: ringworld_speakers.h:276
Definition: ringworld_scenes5.h:37
Definition: ringworld_scenes5.h:365
Definition: ringworld_scenes5.h:580
Definition: ringworld_speakers.h:268
Definition: ringworld_speakers.h:210
Definition: ringworld_speakers.h:178
Definition: ringworld_speakers.h:236
Definition: ringworld_speakers.h:288
Definition: rect.h:45
Definition: events.h:47
Definition: blueforce_dialogs.h:30
Definition: graphics.h:237
Definition: ringworld_speakers.h:300
Definition: saveload.h:63
Definition: ringworld_scenes5.h:653
Definition: ringworld_speakers.h:100
Definition: ringworld_scenes5.h:315
Definition: ringworld_scenes5.h:443
Definition: ringworld_scenes5.h:502
Definition: ringworld_scenes5.h:260
Definition: core.h:163
Definition: scenes.h:33
Definition: core.h:519
Definition: ringworld_speakers.h:164
Definition: ringworld_scenes5.h:203
Definition: ringworld_logic.h:164
Definition: ringworld_speakers.h:93
Definition: converse.h:38