/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #ifndef TSAGE_RINGWORLD2_SCENES3_H #define TSAGE_RINGWORLD2_SCENES3_H #include "common/scummsys.h" #include "tsage/converse.h" #include "tsage/events.h" #include "tsage/core.h" #include "tsage/scenes.h" #include "tsage/globals.h" #include "tsage/sound.h" #include "tsage/ringworld2/ringworld2_logic.h" #include "tsage/ringworld2/ringworld2_speakers.h" namespace TsAGE { namespace Ringworld2 { using namespace TsAGE; class Scene3100 : public SceneExt { class Guard : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; public: bool _fadeSound; SpeakerGuard _guardSpeaker; NamedHotspot _background; NamedHotspot _hammerHead2; SceneActor _hammerHead; SceneActor _miranda; SceneActor _ghoul; SceneActor _technicians; SceneActor _deadBodies; Guard _guard; ASoundExt _sound1; SequenceManager _sequenceManager; Scene3100(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); virtual void dispatch(); virtual void synchronize(Serializer &s); }; class Scene3125 : public SceneExt { class Background : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Table : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Computer : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; public: bool _soundPlayed; Background _background; Door _door; Table _table; Computer _computer; SceneActor _ghoul1; SceneActor _ghoul2; SceneActor _ghoul3; SceneActor _ghoul4; SequenceManager _sequenceManager; Scene3125(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); virtual void dispatch(); virtual void synchronize(Serializer &s); }; class Scene3150 : public SceneExt { class LightFixture : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Toilet : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Water : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class FoodTray : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class ToiletFlush : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class AirVent : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class DoorExit : public SceneExit { public: virtual void changeScene(); }; class VentExit : public SceneExit { public: virtual void changeScene(); }; public: NamedHotspot _background; NamedHotspot _bed; NamedHotspot _lightFixture2; NamedHotspot _bars; LightFixture _lightFixture; Toilet _toilet; SceneActor _guard; SceneActor _doorBars; SceneActor _bulbOrWire; Water _water; FoodTray _foodTray; ToiletFlush _toiletFlush; AirVent _airVent; DoorExit _doorExit; VentExit _ventExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); virtual void dispatch(); }; class Scene3175 : public SceneExt { class RoomItem : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Corpse : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; public: RoomItem _background; RoomItem _table; RoomItem _autopsies; Door _door; SceneActor _computer; Corpse _corpse; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3200 : public SceneExt { public: SpeakerRocko3200 _rockoSpeaker; SpeakerJocko3200 _jockoSpeaker; SpeakerSocko3200 _sockoSpeaker; SceneActor _rocko; SceneActor _jocko; SceneActor _socko; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3210 : public SceneExt { public: SpeakerCaptain3210 _captainSpeaker; SpeakerPrivate3210 _privateSpeaker; SceneActor _captain; SceneActor _private; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3220 : public SceneExt { public: SpeakerRocko3220 _rockoSpeaker; SpeakerJocko3220 _jockoSpeaker; SceneActor _rocko; SceneActor _jocko; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3230 : public SceneExt { public: SpeakerRocko3230 _rockoSpeaker; SpeakerJocko3230 _jockoSpeaker; SceneActor _rocko; SceneActor _jocko; SceneActor _ghoul; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3240 : public SceneExt { public: SpeakerTeal3240 _tealSpeaker; SpeakerWebbster3240 _webbsterSpeaker; SpeakerMiranda _mirandaSpeaker; SceneActor _teal; SceneActor _webbster; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3245 : public SceneExt { public: SpeakerRalf3245 _ralfSpeaker; SpeakerTomko3245 _tomkoSpeaker; SceneActor _ralf; SceneActor _tomko; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3250 : public SceneExt { class Item : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; public: Item _background; Item _tnuctipunShip; Item _floodLights; Item _negator; Door _leftDoor; Door _topDoor; Door _rightDoor; Door _grate; SceneActor _ghoul1; SceneActor _ghoul2; SceneActor _ghoul3; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); virtual void dispatch(); }; class Scene3255 : public SceneExt { public: SceneActor _teal; SceneActor _guard; SceneActor _door; SceneActor _quinn; SceneActor _ghoul1; SceneActor _ghoul2; SceneActor _ghoul3; SpeakerQuinn3255 _quinnSpeaker; SpeakerMiranda3255 _mirandaSpeaker; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); virtual void dispatch(); }; class Scene3260 : public SceneExt { class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Toolbox : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Action1: public Action { public: void signal(); }; public: NamedHotspot _background; SceneActor _sceeen1; SceneActor _screen2; SceneActor _screen3; SceneActor _screen4; SceneActor _screen5; SceneActor _screen6; SceneActor _screen7; SceneActor _screen8; SceneActor _screen9; SceneActor _securityConsole; SceneActor _computerConsole; SceneActor _lightingConsole; Door _door; Toolbox _toolbox; Action1 _action1; Action1 _action2; Action1 _action3; Action1 _action4; Action1 _action5; Action1 _action6; Action1 _action7; Action1 _action8; Action1 _action9; Action1 _action10; Action1 _action11; Action1 _action12; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); }; class Scene3275 : public SceneExt { class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class CellExit : public SceneExit { public: virtual void changeScene(); }; public: NamedHotspot _background; NamedHotspot _emptyCell1; NamedHotspot _emptyCell2; NamedHotspot _securityBeams1; NamedHotspot _securityBeams2; SceneActor _doorFrame; Door _door; CellExit _cellExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); }; class Scene3350 : public SceneExt { public: SceneActor _miranda; SceneActor _seeker; SceneActor _webbster; SceneActor _seatedPeople; SceneActor _ship; SceneActor _landedShip; SceneActor _shipShadow; SceneActor _canopy; SceneActor _shipFront; SequenceManager _sequenceManager; PaletteRotation *_rotation; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); }; class Scene3375 : public SceneExt { class Companion1 : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Companion2 : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Webbster : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class LeftExit : public SceneExit { public: virtual void changeScene(); }; class DownExit : public SceneExit { public: virtual void changeScene(); }; class RightExit : public SceneExit { public: virtual void changeScene(); }; void signalCase3379(); void enterArea(int sceneMode); public: SpeakerQuinn3375 _quinnSpeaker; SpeakerSeeker3375 _seekerSpeaker; SpeakerMiranda3375 _mirandaSpeaker; SpeakerWebbster3375 _webbsterSpeaker; NamedHotspot _background; NamedHotspot _itemArray[13]; Companion1 _companion1; Companion2 _companion2; Webbster _webbster; Door _door; LeftExit _leftExit; DownExit _downExit; RightExit _rightExit; SequenceManager _sequenceManager; int _newSceneMode; int _sceneAreas[4]; Scene3375(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); virtual void dispatch(); virtual void synchronize(Serializer &s); }; class Scene3385 : public SceneExt { class Companion1 : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Companion2 : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Webbster : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class SouthExit : public SceneExit { public: virtual void changeScene(); }; class Action1: public Action { public: virtual void signal(); }; public: SpeakerQuinn3385 _quinnSpeaker; SpeakerSeeker3385 _seekerSpeaker; SpeakerMiranda3385 _mirandaSpeaker; SpeakerWebbster3385 _webbsterSpeaker; NamedHotspot _background; Companion1 _companion1; Companion2 _companion2; Webbster _webbster; Door _door; SouthExit _southExit; Action1 _action1; SequenceManager _sequenceManager; int _playerStrip; Scene3385(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); virtual void synchronize(Serializer &s); }; class Scene3395 : public SceneExt { class Companion1 : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Companion2 : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Webbster : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Door : public SceneActor { virtual bool startAction(CursorType action, Event &event); }; class Action1: public Action { public: virtual void signal(); }; public: SpeakerQuinn3395 _quinnSpeaker; SpeakerSeeker3395 _seekerSpeaker; SpeakerMiranda3395 _mirandaSpeaker; SpeakerWebbster3395 _webbsterSpeaker; NamedHotspot _background; NamedHotspot _itemArray[13]; Companion1 _companion1; Companion2 _companion2; Webbster _webbster; Door _door; Action1 _action1; SequenceManager _sequenceManager; int _playerStrip; Scene3395(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); virtual void synchronize(Serializer &s); }; class Scene3400 : public SceneExt { public: SpeakerQuinn3400 _quinnSpeaker; SpeakerSeeker3400 _seekerSpeaker; SpeakerMiranda3400 _mirandaSpeaker; SpeakerWebbster3400 _webbsterSpeaker; SpeakerTeal3400 _tealSpeaker; SceneActor _companion1; SceneActor _companion2; SceneActor _webbster; SceneActor _teal; SceneActor _door; SceneActor _manholeCover; SceneActor _sapphire; SequenceManager _sequenceManager; bool _soundFaded; Scene3400(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); virtual void synchronize(Serializer &s); }; class Scene3500 : public SceneExt { class Action1: public Action { public: int _direction; bool _headingRightFl; bool _turningFl; Action1(); virtual void synchronize(Serializer &s); void handleHorzButton(int direction); void turnShuttle(bool arg1); virtual void signal(); virtual void dispatch(); }; class Action2: public Action { public: int _direction; Action2(); virtual void synchronize(Serializer &s); void handleVertButton(int direction); virtual void signal(); }; class DirectionButton : public NamedHotspot { public: int _movementId; DirectionButton(); virtual void synchronize(Serializer &s); virtual bool startAction(CursorType action, Event &event); }; class Throttle : public SceneActor { public: Common::Point _pos; int _deltaX; int _deltaY; int _slideDeltaY; int _deltaMouseY; Throttle(); virtual void synchronize(Serializer &s); void init(int xp, int yp, int dx, int dy, int speed); void updateSpeed(); void setSpeed(int arg1); void changePosition(const Common::Point &pt); virtual void process(Event &event); virtual bool startAction(CursorType action, Event &event); }; class MazeUI3500 : public MazeUI { public: int16 cellFromX(int arg1); int16 cellFromY(int arg1); int getCellFromMapXY(Common::Point pt); bool setMazePosition2(Common::Point &p); }; public: Action1 _action1; Action2 _action2; NamedHotspot _background; NamedHotspot _outsideView; NamedHotspot _mapScreen; DirectionButton _pitchDown; DirectionButton _turnLeft; DirectionButton _pitchUp; DirectionButton _turnRight; // Glyph of vessel on top of the maze ui SceneActor _shuttle; SceneActor _verticalSpeedDisplay; SceneActor _horizontalSpeedDisplay; SceneActor _symbolVertical; SceneActor _symbolLeft; SceneActor _symbolRight; Throttle _throttle; SceneActor _tunnelVertCircle; SceneActor _tunnelHorzCircle; ASoundExt _aSound1; MazeUI3500 _mazeUI; SequenceManager _sequenceManager; int _moverVertX; int _moverHorzX; PaletteRotation *_rotation; int _mazeChangeAmount; int _speed; bool _updateIdxChangeFl; int _mazeDirection; int _nextMove; Common::Point _mazePosition; bool _postFixupFl; int _exitCounter; bool _directionChangesEnabled; Scene3500(); void doMovement(int id); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); virtual void process(Event &event); virtual void dispatch(); virtual void synchronize(Serializer &s); }; class Scene3600 : public SceneExt { class Action3600: public ActionExt { public: bool _part2Fl; int _fadePct; Action3600(); virtual void synchronize(Serializer &s); virtual void signal(); }; class Action2: public Action { public: virtual void signal(); }; class LightShaft : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; class Protector : public SceneActorExt { virtual bool startAction(CursorType action, Event &event); }; public: Action3600 _action1; Action2 _action2; SpeakerQuinn3600 _quinnSpeaker; SpeakerSeeker3600 _seekerSpeaker; SpeakerMiranda3600 _mirandaSpeaker; SpeakerTeal3600 _tealSpeaker; SpeakerProtector3600 _protectorSpeaker; NamedHotspot _background; NamedHotspot _console; NamedHotspot _tapestry1; NamedHotspot _tapestry2; LightShaft _lightShaft; SceneActor _protector3400; SceneActor _steppingDisk; SceneActor _consoleLights; SceneActor _webbster; SceneActor _teal; SceneActor _door3400; SceneActor _quinn; SceneActor _seeker; SceneActor _miranda; Protector _protector; SequenceManager _sequenceManager1; SequenceManager _sequenceManager2; SequenceManager _sequenceManager3; SequenceManager _sequenceManager4; ScenePalette _palette1; bool _tealDead; bool _lightEntered; bool _ghoulTeleported; Scene3600(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); virtual void process(Event &event); virtual void dispatch(); virtual void synchronize(Serializer &s); }; class Scene3700 : public SceneExt { public: SpeakerQuinn3700 _quinnSpeaker; SpeakerSeeker3700 _seekerSpeaker; SpeakerMiranda3700 _mirandaSpeaker; SceneActor _quinn; SceneActor _seeker; SceneActor _miranda; SceneActor _webbster; SceneActor _teleportPad; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); virtual void signal(); }; class Scene3800 : public SceneExt { class NorthExit : public SceneExit { public: virtual void changeScene(); }; class EastExit : public SceneExit { public: virtual void changeScene(); }; class SouthExit : public SceneExit { public: virtual void changeScene(); }; class WestExit : public SceneExit { public: virtual void changeScene(); }; public: SceneObject _balloon; SceneObject _harness; SceneActor _quinnShadow; NamedHotspot _background; NorthExit _northExit; EastExit _eastExit; SouthExit _southExit; WestExit _westExit; Rect _skylineRect; SequenceManager _sequenceManager1; int _desertDirection; Scene3800(); void initExits(); void enterArea(); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); virtual void process(Event &event); virtual void synchronize(Serializer &s); }; class Scene3900 : public SceneExt { class NorthExit : public SceneExit { public: virtual void changeScene(); }; class EastExit : public SceneExit { public: virtual void changeScene(); }; class SouthExit : public SceneExit { public: virtual void changeScene(); }; class WestExit : public SceneExit { public: virtual void changeScene(); }; class Exit5 : public SceneExit { public: virtual void changeScene(); }; public: SceneActor _quinnShadow; NamedHotspot _background; NorthExit _northExit; EastExit _eastExit; SouthExit _southExit; WestExit _westExit; Exit5 _westEnterForest; Rect _skylineRect; virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void signal(); virtual void process(Event &event); }; } // End of namespace Ringworld2 } // End of namespace TsAGE #endif