scummvm/engines/tsage/ringworld2/ringworld2_scenes3.h
2013-12-18 23:57:24 +01:00

845 lines
19 KiB
C++

/* 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