ScummVM API documentation
ringworld2_scenes0.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_RINGWORLD2_SCENES0_H
23 #define TSAGE_RINGWORLD2_SCENES0_H
24 
25 #include "common/scummsys.h"
26 #include "tsage/converse.h"
27 #include "tsage/events.h"
28 #include "tsage/core.h"
29 #include "tsage/scenes.h"
30 #include "tsage/globals.h"
31 #include "tsage/sound.h"
32 #include "tsage/ringworld2/ringworld2_logic.h"
33 #include "tsage/ringworld2/ringworld2_speakers.h"
34 
35 namespace TsAGE {
36 
37 namespace Ringworld2 {
38 
39 using namespace TsAGE;
40 
41 class Scene50: public SceneExt {
42 
43  class Action1: public Action {
44  public:
45  void signal() override;
46  };
47 
48 public:
49  Action1 _action1;
50 
51  void postInit(SceneObjectList *OwnerList = NULL) override;
52  void process(Event &event) override;
53 };
54 
55 class Scene100: public SceneExt {
56  /* Objects */
57  class Door: public SceneActorExt {
58  public:
59  bool startAction(CursorType action, Event &event) override;
60  };
61  class Table: public SceneActor {
62  public:
63  bool startAction(CursorType action, Event &event) override;
64  };
65  class StasisNegator: public SceneActor {
66  public:
67  bool startAction(CursorType action, Event &event) override;
68  };
69  class DoorDisplay: public SceneActorExt {
70  public:
71  bool startAction(CursorType action, Event &event) override;
72  };
73  class SteppingDisks: public SceneActor {
74  public:
75  bool startAction(CursorType action, Event &event) override;
76  };
77 
78  /* Items */
79  class Terminal: public NamedHotspot{
80  public:
81  bool startAction(CursorType action, Event &event) override;
82  };
83 
84 public:
85  NamedHotspot _background, _duct, _bed, _desk;
86  Terminal _terminal;
87  SceneActor _bedLights1, _bedLights2, _tableLocker, _wardrobeTopAnim, _wardrobeColorAnim;
88  SceneActor _wardrobe;
89  Door _door;
90  Table _table;
91  StasisNegator _stasisNegator;
92  DoorDisplay _doorDisplay;
93  SteppingDisks _steppingDisks;
94  SequenceManager _sequenceManager1, _sequenceManager2;
95 
96  void postInit(SceneObjectList *OwnerList = NULL) override;
97  void remove() override;
98  void signal() override;
99  void dispatch() override;
100 };
101 
102 class Scene125: public SceneExt {
103  /* Objects */
104  class Food: public SceneActor {
105  public:
106  bool startAction(CursorType action, Event &event) override;
107  };
108 
109  class Icon: public SceneActor {
110  public:
111  int _lookLineNum, _iconId;
112  bool _pressed;
113  SceneObject _glyph, _horizLine;
114  SceneText _sceneText1, _sceneText2;
115 
116  Icon();
117  Common::String getClassName() override { return "Scene125_Icon"; }
118  void postInit(SceneObjectList *OwnerList = NULL) override;
119  void synchronize(Serializer &s) override;
120  void process(Event &event) override;
121 
122  void setIcon(int id);
123  void showIcon();
124  void hideIcon();
125  };
126 
127  /* Items */
128  class DiskSlot: public NamedHotspot {
129  public:
130  bool startAction(CursorType action, Event &event) override;
131  };
132 
133 public:
134  ScenePalette _palette;
135  ASoundExt _sound1;
136  NamedHotspot _background, _item2, _item3;
137  DiskSlot _diskSlot;
138  SceneActor _starchart1, _starchart2, _starchart3, _starchart4;
139  SceneActor _food, _foodDispenser, _infoDisk;
140  Icon _icon1, _icon2, _icon3, _icon4, _icon5, _icon6;
141  SequenceManager _sequenceManager;
142  SceneText _sceneText;
143  int _consoleMode, _iconFontNumber, _logIndex, _databaseIndex, _infodiskIndex;
144  int _soundCount, _soundIndex;
145  int _soundIndexes[10];
146 
147  Scene125();
148  void postInit(SceneObjectList *OwnerList = NULL) override;
149  void synchronize(Serializer &s) override;
150  void signal() override;
151  void process(Event &event) override;
152  void dispatch() override;
153 
154  void consoleAction(int id);
155  void setDetails(int resNum, int lineNum);
156  void stop();
157  Common::String parseMessage(const Common::String &msg);
158 };
159 
160 class Scene150: public Scene100 {
161 public:
162  SceneActor _emptyRoomTable;
163 public:
164  void postInit(SceneObjectList *OwnerList = NULL) override;
165  void remove() override;
166  void signal() override;
167 };
168 
169 class Scene160: public SceneExt {
170  class Action1: public Action {
171  public:
172  void signal() override;
173  };
174 public:
175  ASound _sound1;
176  Action1 _action1;
177  int _frameNumber, _yChange;
178  int _lineNum;
179  SynchronizedList<SceneText *> _creditsList;
180 public:
181  Scene160();
182  void postInit(SceneObjectList *OwnerList = NULL) override;
183  void synchronize(Serializer &s) override;
184  void remove() override;
185  void process(Event &event) override;
186 };
187 
188 class Scene175: public Scene150 {
189 };
190 
191 class Scene180: public SceneExt {
192  class Action1: public Action {
193  public:
194  void signal() override;
195  };
196 private:
197  void setSceneDelay(int v);
198 public:
199  SpeakerWebbster180 _webbsterSpeaker;
200  SpeakerDutyOfficer180 _dutyOfficerSpeaker;
201  SpeakerTeal180 _tealSpeaker;
202  SpeakerGameText _gameTextSpeaker;
203  SceneActor _dutyOfficer, _teal, _webbster, _door, _shipDisplay;
204  ScenePalette _palette;
205  SceneText _textList[20];
206  AnimationPlayerExt _animationPlayer;
207  SequenceManager _sequenceManager;
208  Action1 _action1;
209  ASoundExt _sound1;
210 
211  int _frameNumber;
212  bool _helpEnabled;
213  int _frameInc;
214  int _fontNumber, _fontHeight;
215 public:
216  Scene180();
217 
218  void postInit(SceneObjectList *OwnerList = NULL) override;
219  void synchronize(Serializer &s) override;
220  void remove() override;
221  void signal() override;
222  void process(Event &event) override;
223  void dispatch() override;
224  void restore() override;
225 };
226 
227 class Scene200: public SceneExt {
228  /* Objects */
229  class NorthDoor: public SceneActor {
230  public:
231  bool startAction(CursorType action, Event &event) override;
232  };
233  class EastDoor: public SceneActor {
234  public:
235  bool startAction(CursorType action, Event &event) override;
236  };
237  class WestDoor: public SceneActor {
238  public:
239  bool startAction(CursorType action, Event &event) override;
240  };
241 
242  /* Scene Exits */
243  class EastExit: public SceneExit {
244  public:
245  void changeScene() override;
246  };
247  class WestExit: public SceneExit {
248  public:
249  void changeScene() override;
250  };
251 public:
252  NamedHotspot _background, _compartment, _westDoorDisplay, _eastDoorDisplay;
253  NorthDoor _northDoor;
254  EastDoor _eastDoor;
255  WestDoor _westDoor;
256  EastExit _eastExit;
257  WestExit _westExit;
258  SequenceManager _sequenceManager;
259 
260  void postInit(SceneObjectList *OwnerList = NULL) override;
261  void signal() override;
262 };
263 
264 class Star: public SceneObject {
265 public:
266  int _x100, _y100;
267 public:
268  Common::String getClassName() override { return "Scene205_Star"; }
269 };
270 
271 class Scene205: public SceneExt {
272  /* Actions */
273  class Action1: public Action {
274  private:
275  void textLoop();
276  public:
277  void signal() override;
278  };
279 private:
280  void setup();
281  void processList(Star **ObjList, int count, const Common::Rect &bounds,
282  int xMultiply, int yMultiply, int xCenter, int yCenter);
283  void handleText();
284 public:
285  AnimationPlayer _animationPlayer;
286  int _fontHeight;
287  SceneText _textList[15];
288  Star *_starList1[3];
289  Star *_starList2[3];
290  Star *_starList3[4];
291  ASound _sound1;
292  Action1 _action1;
293  int _yp;
294  int _textIndex, _lineNum;
295  Common::String _message;
296 public:
297  Scene205();
298 
299  void postInit(SceneObjectList *OwnerList = NULL) override;
300  void synchronize(Serializer &s) override;
301  void remove() override;
302  void process(Event &event) override;
303  void dispatch() override;
304 };
305 
306 class Scene205Demo: public SceneExt {
307  /* Actions */
308  class Action1: public Action {
309  public:
310  void signal() override;
311  };
312 private:
313  void leaveScene();
314 public:
315  VisualSpeaker _animationPlayer;
316  ASound _sound1;
317  Action1 _action1;
318 public:
319  void postInit(SceneObjectList *OwnerList = NULL) override;
320  void remove() override;
321  void process(Event &event) override;
322 };
323 
324 class Scene250: public SceneExt {
325  class Button: public SceneActor {
326  public:
327  int _floorNumber;
328  Button();
329  void setFloor(int floorNumber);
330 
331  void synchronize(Serializer &s) override;
332  bool startAction(CursorType action, Event &event) override;
333  };
334 public:
335  int _currButtonY, _destButtonY, _elevatorSpeed;
336  bool _skippingFl, _skippableFl;
337  NamedHotspot _background, _door, _directionIndicator;
338  Button _destinationFloor, _currentFloor;
339  Button _floor1, _floor2, _floor3, _floor4, _floor5;
340  Button _floor6, _floor7, _floor8, _floor9;
341  ASoundExt _sound1;
342  SequenceManager _sequenceManager1;
343 public:
344  Scene250();
345  void changeFloor(int floorNumber);
346 
347  void synchronize(Serializer &s) override;
348  void postInit(SceneObjectList *OwnerList = NULL) override;
349  void signal() override;
350  void process(Event &event) override;
351  void dispatch() override;
352 };
353 
354 class Scene300: public SceneExt {
355  /* Actions */
356  class Action1: public Action {
357  public:
358  void signal() override;
359  };
360  class Action2: public Action {
361  public:
362  void signal() override;
363  };
364  class Action3: public Action {
365  public:
366  void signal() override;
367  };
368  class Action4: public Action {
369  public:
370  void signal() override;
371  };
372 
373  /* Items */
374  class QuinnWorkstation: public NamedHotspot {
375  public:
376  bool startAction(CursorType action, Event &event) override;
377  };
378  class MirandaWorkstation: public NamedHotspot {
379  public:
380  bool startAction(CursorType action, Event &event) override;
381  };
382  class SeekerWorkstation: public NamedHotspot {
383  public:
384  bool startAction(CursorType action, Event &event) override;
385  };
386 
387  /* Objects */
388  class Miranda: public SceneActor {
389  public:
390  bool startAction(CursorType action, Event &event) override;
391  };
392  class Seeker: public SceneActor {
393  public:
394  bool startAction(CursorType action, Event &event) override;
395  };
396  class Quinn: public SceneActor {
397  public:
398  bool startAction(CursorType action, Event &event) override;
399  };
400  class Doorway: public SceneActor {
401  public:
402  bool startAction(CursorType action, Event &event) override;
403  };
404 public:
405  SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3, _sequenceManager4;
406  ASoundExt _sound1;
407  SpeakerMiranda300 _mirandaSpeaker;
408  SpeakerSeeker300 _seekerSpeaker;
409  SpeakerSeekerL _seekerLSpeaker;
410  SpeakerQuinn300 _quinnSpeaker;
411  SpeakerQuinnL _quinnLSpeaker;
412  SpeakerTeal300 _tealSpeaker;
413  SpeakerSoldier300 _soldierSpeaker;
414 
415  NamedHotspot _background, _hull, _statusDisplays, _damageControl, _manualOverrides;
416  NamedHotspot _scanners1, _scanners2, _indirectLighting1, _indirectLighting2, _lighting;
417  QuinnWorkstation _quinnWorkstation1, _quinnWorkstation2;
418  SeekerWorkstation _seekerWorkstation;
419  MirandaWorkstation _mirandaWorkstation1, _mirandaWorkstation2;
420  SceneActor _atmosphereLeftWindow, _atmosphereRightWindow, _leftVerticalBarsAnim, _rightVerticalBarsAnim, _protocolDisplay;
421  SceneActor _rightTextDisplay, _mirandaScreen, _leftTextDisplay, _quinnScreen;
422  SceneActor _teal, _soldier, _object12;
423  Doorway _doorway;
424  Miranda _miranda;
425  Seeker _seeker;
426  Quinn _quinn;
427  Action1 _action1;
428  Action2 _action2;
429  Action3 _action3;
430  Action4 _action4;
431  PaletteRotation *_rotation;
432  int _stripId;
433 
434  Scene300();
435  void signal309();
436 
437  void synchronize(Serializer &s) override;
438  void postInit(SceneObjectList *OwnerList = NULL) override;
439  void remove() override;
440  void signal() override;
441 };
442 
443 class Scene325: public SceneExt {
444  class Icon: public SceneActor {
445  public:
446  int _lookLineNum, _iconId;
447  bool _pressed;
448  SceneObject _glyph, _horizLine;
449  SceneText _sceneText1, _sceneText2;
450 
451  Icon();
452  Common::String getClassName() override { return "Scene325_Icon"; }
453  void postInit(SceneObjectList *OwnerList = NULL) override;
454  void synchronize(Serializer &s) override;
455  void process(Event &event) override;
456 
457  void setIcon(int id);
458  void showIcon();
459  void hideIcon();
460  };
461 
462 private:
463  void removeText();
464  void consoleAction(int id);
465  void setMessage(int resNum, int lineNum);
466  Common::String parseMessage(const Common::String &msg);
467 public:
468  int _consoleAction, _iconFontNumber, _databasePage, _priorConsoleAction;
469  int _moveCounter, _yChange, _yDirection, _scannerLocation;
470  int _soundCount, _soundIndex;
471  int _soundQueue[10];
472  SpeakerQuinn _quinnSpeaker;
473  ScenePalette _palette;
474  SceneHotspot _background, _terminal;
475  SceneObject _starGrid1, _starGrid2, _starGrid3; // Both starchart & scan grid objects
476  SceneObject _starGrid4, _starGrid5, _starGrid6, _starGrid7;
477  SceneObject _starGrid8, _starGrid9, _starGrid10, _starGrid11;
478  SceneObject _starGrid12, _starGrid13;
479  SceneObject _objList[4];
480  Icon _icon1, _icon2, _icon3, _icon4, _icon5, _icon6;
481  ASoundExt _sound1;
482  SequenceManager _sequenceManager1;
483  SceneText _text1;
484 public:
485  Scene325();
486 
487  void postInit(SceneObjectList *OwnerList = NULL) override;
488  void synchronize(Serializer &s) override;
489  void remove() override;
490  void signal() override;
491  void process(Event &event) override;
492  void dispatch() override;
493 };
494 
495 class Scene400: public SceneExt {
496  /* Items */
497  class Terminal: public NamedHotspot {
498  public:
499  bool startAction(CursorType action, Event &event) override;
500  };
501 
502  /* Objects */
503  class Door: public SceneActor {
504  public:
505  bool startAction(CursorType action, Event &event) override;
506  };
507  class Reader: public SceneActor {
508  public:
509  bool startAction(CursorType action, Event &event) override;
510  };
511  class SensorProbe: public SceneActor {
512  public:
513  bool startAction(CursorType action, Event &event) override;
514  };
515  class AttractorUnit: public SceneActor {
516  public:
517  bool startAction(CursorType action, Event &event) override;
518  };
519 public:
520  NamedHotspot _background, _equipment1, _equipment2, _equipment3;
521  NamedHotspot _equipment4, _equipment5, _equipment6;
522  NamedHotspot _desk, _desk2, _console;
523  NamedHotspot _duct, _shelves, _cabinet, _doorDisplay, _lights;
524  NamedHotspot _equalizer, _transducer, _optimizer, _soundModule, _tester;
525  NamedHotspot _helmet, _nullifier;
526  Terminal _terminal;
527  SceneActor _consoleDisplay, _testerDisplay;
528  Door _door;
529  Reader _reader;
530  SensorProbe _sensorProbe;
531  AttractorUnit _attractorUnit;
532  SequenceManager _sequenceManager1;
533  ASoundExt _sound1;
534 
535  void postInit(SceneObjectList *OwnerList = NULL) override;
536  void remove() override;
537  void signal() override;
538  void dispatch() override;
539 };
540 
541 class Scene500: public SceneExt {
542  /* Dialogs */
543  class PanelDialog: public SceneAreaObject {
544  class Button: public SceneActor {
545  private:
546  int _buttonId;
547  bool _buttonDown;
548 
549  void doButtonPress();
550  public:
551  Button();
552  Common::String getClassName() override { return "Scene500_Button"; }
553  void process(Event &event) override;
554  bool startAction(CursorType action, Event &event) override;
555  void synchronize(Serializer &s) override;
556 
557  void setupButton(int buttonId);
558  };
559  public:
560  Button _button1, _button2, _button3;
561 
562  Common::String getClassName() override { return "Scene500_PanelWindow"; }
563  void remove() override;
564  void setDetails(int visage, int strip, int frameNumber, const Common::Point &pt);
565  };
566 
567  /* Items */
568  class ControlPanel: public SceneHotspot {
569  public:
570  bool startAction(CursorType action, Event &event) override;
571  };
572 
573  /* Objects */
574  class Seeker: public SceneActor {
575  public:
576  bool startAction(CursorType action, Event &event) override;
577  };
578  class Suit: public SceneActor {
579  public:
580  bool startAction(CursorType action, Event &event) override;
581  };
582  class Doorway: public SceneActor {
583  public:
584  bool startAction(CursorType action, Event &event) override;
585  };
586  class OxygenTanks: public SceneActor {
587  public:
588  bool startAction(CursorType action, Event &event) override;
589  };
590  class AirLock: public SceneActor {
591  public:
592  bool startAction(CursorType action, Event &event) override;
593  };
594  class TransparentDoor: public SceneActor {
595  public:
596  void draw() override;
597  };
598  class Aerosol: public SceneActor {
599  public:
600  bool startAction(CursorType action, Event &event) override;
601  };
602  class SonicStunner: public SceneActor {
603  public:
604  bool startAction(CursorType action, Event &event) override;
605  };
606  class Locker1: public SceneActor {
607  public:
608  bool startAction(CursorType action, Event &event) override;
609  };
610  class Locker2: public SceneActor {
611  public:
612  bool startAction(CursorType action, Event &event) override;
613  };
614 public:
615  int _stripNumber;
616  SpeakerSeeker500 _seekerSpeaker;
617  SpeakerQuinn500 _quinnSpeaker;
618  SceneHotspot _background, _airlockCorridor;
619  ControlPanel _controlPanel;
620  SceneActor _suits;
621  Seeker _seeker;
622  Suit _suit;
623  Doorway _doorway;
624  OxygenTanks _tanks1, _tanks2;
625  AirLock _airLock;
626  TransparentDoor _transparentDoor;
627  Aerosol _aerosol;
628  SonicStunner _sonicStunner;
629  Locker1 _locker1;
630  Locker2 _locker2;
631  PanelDialog _panelDialog;
632  ASoundExt _sound1;
633  SequenceManager _sequenceManager1, _sequenceManager2;
634 public:
635  void postInit(SceneObjectList *OwnerList = NULL) override;
636  void synchronize(Serializer &s) override;
637  void signal() override;
638 };
639 
640 class Scene525: public SceneExt {
641 public:
642  SceneActor _actor1;
643  SequenceManager _sequenceManager;
644 
645  void postInit(SceneObjectList *OwnerList = NULL) override;
646  void signal() override;
647 };
648 
649 class Scene600 : public SceneExt {
650  class CompartmentHotspot : public NamedHotspot {
651  public:
652  bool startAction(CursorType action, Event &event) override;
653  };
654  class EngineCompartment : public NamedHotspot {
655  public:
656  bool startAction(CursorType action, Event &event) override;
657  };
658 
659  class Smoke : public SceneActor {
660  public:
661  void signal() override;
662  bool startAction(CursorType action, Event &event) override;
663  void draw() override;
664  };
665  class Doorway : public SceneActor {
666  public:
667  bool startAction(CursorType action, Event &event) override;
668  };
669  class Laser : public SceneActor {
670  public:
671  bool startAction(CursorType action, Event &event) override;
672  };
673  class Aerosol : public SceneActor {
674  public:
675  bool startAction(CursorType action, Event &event) override;
676  };
677  class Scanner : public SceneActor {
678  public:
679  bool startAction(CursorType action, Event &event) override;
680  };
681 public:
682  int _roomState;
683  CompartmentHotspot _quantumDrive;
684  CompartmentHotspot _quantumRegulator;
685  CompartmentHotspot _powerNode;
686  EngineCompartment _engineCompartment;
687  CompartmentHotspot _background;
688  SceneActor _stasisArea;
689  SceneActor _laserBeam;
690  SceneActor _computer;
691  SceneActor _stasisField;
692  Smoke _smoke;
693  Doorway _doorway;
694  Laser _laser;
695  Aerosol _aerosol;
696  Scanner _scanner;
697  ASoundExt _sound1;
698  SequenceManager _sequenceManager1;
699  SequenceManager _sequenceManager2;
700  byte _pixelMap[256];
701 
702  Scene600();
703  void postInit(SceneObjectList *OwnerList = NULL) override;
704  void remove() override;
705  void signal() override;
706  void process(Event &event) override;
707  void dispatch() override;
708  void synchronize(Serializer &s) override;
709 };
710 
711 class Scene700: public SceneExt {
712  class Loft : public NamedHotspot {
713  public:
714  bool startAction(CursorType action, Event &event) override;
715  };
716  class HandGrip : public NamedHotspot {
717  public:
718  bool startAction(CursorType action, Event &event) override;
719  };
720 
721  class LiftDoor : public SceneActor {
722  public:
723  bool startAction(CursorType action, Event &event) override;
724  };
725  class SuitRoomDoor : public SceneActor {
726  public:
727  bool startAction(CursorType action, Event &event) override;
728  };
729  class ControlPanel : public SceneActor {
730  public:
731  bool startAction(CursorType action, Event &event) override;
732  };
733  class Cable : public SceneActor {
734  public:
735  bool startAction(CursorType action, Event &event) override;
736  };
737  class LoftDoor : public SceneActor {
738  public:
739  bool startAction(CursorType action, Event &event) override;
740  };
741 public:
742  NamedHotspot _background;
743  NamedHotspot _debris1;
744  NamedHotspot _debris2;
745  NamedHotspot _debris3;
746  NamedHotspot _debris4;
747  NamedHotspot _restraintCollar;
748  NamedHotspot _storage2;
749  NamedHotspot _storage1;
750  NamedHotspot _stars;
751  NamedHotspot _light;
752  Loft _loft;
753  HandGrip _handGrip;
754  SceneActor _electromagnet;
755  LiftDoor _liftDoor;
756  SuitRoomDoor _suitRoomDoor;
757  ControlPanel _controlPanel;
758  Cable _cable;
759  LoftDoor _loftDoor1;
760  LoftDoor _loftDoor2;
761  LoftDoor _loftDoor3;
762  LoftDoor _loftDoor4;
763  SequenceManager _sequenceManager;
764  PaletteRotation *_rotation;
765 
766  Scene700();
767  void postInit(SceneObjectList *OwnerList = NULL) override;
768  void remove() override;
769  void signal() override;
770  void synchronize(Serializer &s) override;
771 };
772 
773 class Scene800: public SceneExt {
774  /* Items */
775  class Button: public NamedHotspot {
776  public:
777  bool startAction(CursorType action, Event &event) override;
778  };
779  class CableJunction: public NamedHotspot {
780  public:
781  bool startAction(CursorType action, Event &event) override;
782  };
783  class DeviceSlot: public NamedHotspot {
784  public:
785  bool startAction(CursorType action, Event &event) override;
786  };
787 
788  /* Objects */
789  class Door: public SceneActor {
790  public:
791  bool startAction(CursorType action, Event &event) override;
792  };
793  class Tray: public SceneActor {
794  public:
795  bool startAction(CursorType action, Event &event) override;
796  };
797  class ComScanner: public SceneActor {
798  public:
799  bool startAction(CursorType action, Event &event) override;
800  };
801  class Cabinet: public SceneActor {
802  public:
803  bool startAction(CursorType action, Event &event) override;
804  };
805 public:
806  NamedHotspot _background, _autoDoc, _diskSlot, _couch;
807  NamedHotspot _medicalDatabase, _dataConduits;
808  Button _button;
809  CableJunction _cableJunction;
810  DeviceSlot _deviceSlot;
811  SceneActor _autodocCover, _opticalFiber, _reader;
812  Door _door;
813  Tray _tray;
814  ComScanner _comScanner;
815  Cabinet _cabinet;
816  SequenceManager _sequenceManager1;
817 
818  void postInit(SceneObjectList *OwnerList = NULL) override;
819  void signal() override;
820 };
821 
822 class Scene825: public SceneExt {
823  /* Objects */
824  class Button: public SceneObject {
825  public:
826  int _buttonId;
827  bool _buttonDown;
828  SceneText _sceneText;
829  public:
830  Button();
831  void setButton(int buttonId);
832  void setText(int textId);
833 
834  void synchronize(Serializer &s) override;
835  void process(Event &event) override;
836  bool startAction(CursorType action, Event &event) override;
837  };
838 public:
839  NamedHotspot _background, _console;
840  SceneActor _vertLine1, _vertLine2, _vertLine3, _vertLine4, _vertLine5;
841  Button _button1, _button2, _button3, _button4, _button5, _button6;
842  ASoundExt _sound1, _sound2, _sound3, _sound4;
843  SequenceManager _sequenceManager1;
844  SceneText _sceneText;
845  int _menuId, _frame1, _frame2;
846  const char *_autodocItems[11];
847 public:
848  Scene825();
849  void synchronize(Serializer &s) override;
850  void postInit(SceneObjectList *OwnerList = NULL) override;
851  void remove() override;
852  void signal() override;
853  void process(Event &event) override;
854  void dispatch() override;
855 
856  void doButtonPress(int buttonId);
857 };
858 
859 class Scene850: public SceneExt {
860  /* Items */
861  class Indicator: public NamedHotspot {
862  public:
863  bool startAction(CursorType action, Event &event) override;
864  };
865 
866  /* Objects */
867  class LiftDoor: public SceneActor {
868  public:
869  bool startAction(CursorType action, Event &event) override;
870  };
871  class SickBayDoor: public SceneActor {
872  public:
873  bool startAction(CursorType action, Event &event) override;
874  };
875  class Clamp: public SceneActor {
876  public:
877  bool startAction(CursorType action, Event &event) override;
878  };
879  class Panel: public SceneActor {
880  public:
881  bool startAction(CursorType action, Event &event) override;
882  };
883 public:
884  NamedHotspot _background, _eastDoor, _compartment, _sickBayIndicator;
885  NamedHotspot _liftControls;
886  Indicator _indicator;
887  SceneActor _spark, _fiber;
888  LiftDoor _liftDoor;
889  SickBayDoor _sickBayDoor;
890  Clamp _clamp;
891  Panel _panel;
892  SequenceManager _sequenceManager1;
893 
894  void postInit(SceneObjectList *OwnerList = NULL) override;
895  void signal() override;
896 };
897 
898 class Scene900 : public SceneExt {
899  class Button : public SceneActor {
900  public:
901  int _buttonId;
902 
903  Button();
904  void initButton(int buttonId);
905  void synchronize(Serializer &s) override;
906  bool startAction(CursorType action, Event &event) override;
907  };
908 public:
909  int _controlsScreenNumber;
910  Common::Point _magnetChangeAmount;
911  NamedHotspot _background;
912  SceneActor _controls;
913  SceneActor _cable;
914  SceneActor _electromagnet;
915  Button _button1;
916  Button _button2;
917  Button _button3;
918  Button _button4;
919  Button _button5;
920  Button _button6;
921  Button _button7;
922  ASoundExt _aSound1;
923  SequenceManager _sequenceManager1;
924 
925  Scene900();
926  void postInit(SceneObjectList *OwnerList = NULL) override;
927  void remove() override;
928  void signal() override;
929  void dispatch() override;
930  void synchronize(Serializer &s) override;
931 };
932 
933 } // End of namespace Ringworld2
934 
935 } // End of namespace TsAGE
936 
937 #endif
Definition: ringworld2_logic.h:243
Definition: ringworld2_speakers.h:555
Definition: core.h:443
Definition: ringworld2_scenes0.h:271
Definition: str.h:59
Definition: ringworld2_logic.h:78
Definition: ringworld2_speakers.h:522
Definition: ringworld2_scenes0.h:711
Definition: ringworld2_scenes0.h:773
Definition: ringworld2_scenes0.h:541
Definition: ringworld2_scenes0.h:649
Definition: ringworld2_scenes0.h:898
Definition: ringworld2_scenes0.h:354
Definition: ringworld2_scenes0.h:495
Definition: ringworld2_scenes0.h:55
Definition: ringworld2_scenes0.h:227
Definition: ringworld2_scenes0.h:822
Definition: ringworld2_scenes0.h:640
Definition: ringworld2_scenes0.h:443
Definition: ringworld2_scenes0.h:102
Definition: ringworld2_logic.h:263
Definition: core.h:736
Definition: core.h:355
Definition: ringworld2_speakers.h:656
Definition: core.h:134
Definition: rect.h:144
Definition: ringworld2_speakers.h:422
Definition: ringworld2_speakers.h:428
Definition: sound.h:366
Definition: ringworld2_speakers.h:155
Definition: ringworld2_speakers.h:549
Definition: ringworld2_scenes0.h:169
Definition: sound.h:405
Definition: ringworld2_scenes0.h:306
Definition: ringworld2_speakers.h:603
Definition: ringworld2_speakers.h:371
Definition: converse.h:101
Definition: ringworld2_scenes0.h:191
Definition: ringworld2_logic.h:272
Definition: ringworld2_logic.h:396
Definition: rect.h:45
Definition: events.h:47
Definition: saveload.h:115
Definition: blueforce_dialogs.h:30
Definition: ringworld2_speakers.h:497
Definition: ringworld2_logic.h:327
Definition: saveload.h:63
Definition: ringworld2_logic.h:443
Definition: ringworld2_speakers.h:278
Definition: ringworld2_speakers.h:39
Definition: ringworld2_speakers.h:284
Definition: core.h:519
Definition: core.h:315
Definition: ringworld2_scenes0.h:264
Definition: input.h:69
Definition: ringworld2_speakers.h:272
Definition: core.h:625
Definition: ringworld2_scenes0.h:859
Definition: converse.h:38
Definition: ringworld2_scenes0.h:41
Definition: ringworld2_scenes0.h:160
Definition: ringworld2_scenes0.h:324
Definition: ringworld2_logic.h:63
Definition: ringworld2_scenes0.h:188