mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-22 18:02:05 +00:00
537 lines
11 KiB
C++
537 lines
11 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.
|
|
*
|
|
* $URL$
|
|
* $Id$
|
|
*
|
|
*/
|
|
|
|
#ifndef TSAGE_RINGWORLD_SCENES1_H
|
|
#define TSAGE_RINGWORLD_SCENES1_H
|
|
|
|
#include "common/scummsys.h"
|
|
#include "tsage/ringworld_logic.h"
|
|
#include "tsage/converse.h"
|
|
#include "tsage/events.h"
|
|
#include "tsage/core.h"
|
|
#include "tsage/scenes.h"
|
|
#include "tsage/globals.h"
|
|
|
|
namespace tSage {
|
|
|
|
class Scene10 : public Scene {
|
|
/* Actions */
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action2 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
public:
|
|
Speaker _speakerSText;
|
|
Speaker _speakerQText;
|
|
Action1 _action1;
|
|
Action2 _action2;
|
|
SceneObject _object1, _object2, _object3;
|
|
SceneObject _object4, _object5, _object6;
|
|
|
|
virtual void stripCallback(int v);
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
};
|
|
|
|
class Scene15 : public Scene {
|
|
/* Actions */
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
virtual void dispatch();
|
|
};
|
|
public:
|
|
Action1 _action1;
|
|
SceneObject _object1;
|
|
SoundHandler _soundHandler;
|
|
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
};
|
|
|
|
class Scene20 : public Scene {
|
|
/* Actions */
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action2 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action3 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action4 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
public:
|
|
SequenceManager _sequenceManager;
|
|
SpeakerQText _speakerQText;
|
|
SpeakerGameText _speakerGameText;
|
|
Action1 _action1;
|
|
Action2 _action2;
|
|
Action3 _action3;
|
|
Action4 _action4;
|
|
SceneObject _sceneObject1, _SceneObjectExt, _sceneObject3, _sceneObject4, _sceneObject5;
|
|
SoundHandler _sound;
|
|
public:
|
|
Scene20();
|
|
virtual ~Scene20() {}
|
|
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
virtual void signal();
|
|
};
|
|
|
|
class Scene30 : public Scene {
|
|
/* Scene objects */
|
|
// Doorway beam sensor
|
|
class BeamObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
// Doorway object
|
|
class DoorObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
// Kzin object
|
|
class KzinObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
|
|
/* Actions */
|
|
class BeamAction : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class KzinAction : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class RingAction : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class TalkAction : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
|
|
public:
|
|
SoundHandler _sound;
|
|
DisplayHotspot _groundHotspot, _wallsHotspot, _courtyardHotspot, _treeHotspot;
|
|
BeamObject _beam;
|
|
DoorObject _door;
|
|
KzinObject _kzin;
|
|
|
|
BeamAction _beamAction;
|
|
KzinAction _kzinAction;
|
|
RingAction _ringAction;
|
|
TalkAction _talkAction;
|
|
SequenceManager _sequenceManager;
|
|
|
|
SpeakerSR _speakerSR;
|
|
SpeakerQL _speakerQL;
|
|
SpeakerSText _speakerSText;
|
|
SpeakerQText _speakerQText;
|
|
public:
|
|
Scene30();
|
|
virtual ~Scene30() {}
|
|
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
virtual void signal();
|
|
};
|
|
|
|
class Scene40 : public Scene {
|
|
/* Actions */
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action2 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action3 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action4 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action5 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action6 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action7 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action8 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
|
|
/* Objects */
|
|
class DyingKzin : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Assassin : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
|
|
/* Items */
|
|
class Item2 : public SceneItem {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Item6 : public SceneItem {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Item8 : public SceneItem {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
public:
|
|
SequenceManager _sequenceManager;
|
|
SpeakerSL _speakerSL;
|
|
SpeakerQR _speakerQR;
|
|
SpeakerQText _speakerQText;
|
|
SpeakerSText _speakerSText;
|
|
SpeakerGameText _speakerGameText;
|
|
SoundHandler _soundHandler;
|
|
Action1 _action1;
|
|
Action2 _action2;
|
|
Action3 _action3;
|
|
Action4 _action4;
|
|
Action5 _action5;
|
|
Action6 _action6;
|
|
Action7 _action7;
|
|
Action8 _action8;
|
|
SceneObject _object1, _object2, _object3;
|
|
DyingKzin _dyingKzin;
|
|
Assassin _assassin;
|
|
SceneObject _doorway, _object7, _object8;
|
|
DisplayHotspot _item1;
|
|
Item2 _item2;
|
|
DisplayHotspot _item3, _item4, _item5;
|
|
Item6 _item6;
|
|
DisplayHotspot _item7, _item8;
|
|
|
|
Scene40();
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
virtual void signal();
|
|
virtual void dispatch();
|
|
};
|
|
|
|
class Scene50 : public Scene {
|
|
/* Actions */
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action2 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action3 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
|
|
/* Objects */
|
|
class Object1 : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Object2 : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Object3 : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Object4 : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
|
|
public:
|
|
SequenceManager _sequenceManager;
|
|
Action1 _action1;
|
|
Action2 _action2;
|
|
Action3 _action3;
|
|
Object1 _object1;
|
|
Object2 _object2;
|
|
Object3 _object3;
|
|
Object4 _object4;
|
|
Rect _doorwayRect;
|
|
SpeakerSText _speakerSText;
|
|
SpeakerQText _speakerQText;
|
|
DisplayHotspot _item0, _item1, _item2;
|
|
DisplayHotspot _item3, _item4, _item5;
|
|
|
|
Scene50();
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
virtual void signal();
|
|
virtual void dispatch();
|
|
};
|
|
|
|
class Scene60 : public Scene {
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action2 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class PrevObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class NextObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class ExitObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class MessageObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class ControlObject : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class SlaveObject : public SceneObjectExt {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class MasterObject : public SceneObjectExt {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class FloppyDrive : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Item1 : public SceneHotspot {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Item : public SceneHotspot {
|
|
public:
|
|
int _messageNum, _sceneMode;
|
|
|
|
Item(int sceneRegionId, int messageNum, int sceneMode) {
|
|
_sceneRegionId = sceneRegionId;
|
|
_messageNum = messageNum;
|
|
_sceneMode = sceneMode;
|
|
}
|
|
virtual void doAction(int action);
|
|
};
|
|
|
|
public:
|
|
GfxButton _gfxButton;
|
|
SequenceManager _sequenceManager;
|
|
SpeakerQText _speakerQText;
|
|
SpeakerSText _speakerSText;
|
|
Action1 _action1;
|
|
Action2 _action2;
|
|
SceneObject _rose;
|
|
PrevObject _prevButton;
|
|
NextObject _nextButton;
|
|
ExitObject _exitButton;
|
|
MessageObject _message;
|
|
ControlObject _controlButton;
|
|
SlaveObject _slaveButton;
|
|
MasterObject _masterButton;
|
|
FloppyDrive _floppyDrive;
|
|
SceneObject _redLights;
|
|
Item1 _item1;
|
|
Item _item2, _item3, _item4, _item5, _item6;
|
|
SoundHandler _soundHandler1;
|
|
SoundHandler _soundHandler2;
|
|
SoundHandler _soundHandler3;
|
|
|
|
Scene60();
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
virtual void signal();
|
|
virtual void process(Event &event);
|
|
};
|
|
|
|
class Scene90 : public Scene {
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Object1 : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
class Object2 : public SceneObject {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
public:
|
|
SequenceManager _sequenceManager;
|
|
SpeakerSText _speakerSText;
|
|
SpeakerQText _speakerQText;
|
|
SpeakerQL _speakerQL;
|
|
SpeakerSR _speakerSR;
|
|
SpeakerMText _speakerMText;
|
|
Action1 _action1;
|
|
Object1 _object1;
|
|
Object2 _object2;
|
|
DisplayObject _object3, _object4, _object5;
|
|
SceneObject _object6;
|
|
DisplayHotspot _item1, _item2, _item3;
|
|
SoundHandler _soundHandler1, _soundHandler2;
|
|
|
|
Scene90();
|
|
|
|
virtual void stripCallback(int v);
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
virtual void signal();
|
|
};
|
|
|
|
class Scene95 : public Scene {
|
|
class Action1 : public ActionExt {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
|
|
public:
|
|
Action1 _action1;
|
|
int _field326;
|
|
SceneObject _object1, _object2, _object3;
|
|
SoundHandler _soundHandler;
|
|
|
|
Scene95();
|
|
virtual void postInit(SceneObjectList *OwnerList);
|
|
};
|
|
|
|
class Scene6100 : public Scene {
|
|
/* Actions */
|
|
class Action1 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action2 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action3 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action4 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
class Action5 : public Action {
|
|
public:
|
|
virtual void dispatch();
|
|
};
|
|
class GetBoxAction : public Action {
|
|
public:
|
|
virtual void signal();
|
|
virtual void dispatch();
|
|
};
|
|
class Action7 : public Action {
|
|
public:
|
|
virtual void signal();
|
|
};
|
|
|
|
/* Objects */
|
|
class Object : public SceneObject {
|
|
public:
|
|
FloatSet _floats;
|
|
};
|
|
class ProbeMover : public NpcMover {
|
|
public:
|
|
virtual void dispatch();
|
|
};
|
|
|
|
/* Items */
|
|
class Item1 : public SceneItem {
|
|
public:
|
|
virtual void doAction(int action);
|
|
};
|
|
|
|
public:
|
|
Action1 _action1;
|
|
Action2 _action2;
|
|
Action3 _action3;
|
|
Action4 _action4;
|
|
Action5 _action5;
|
|
GetBoxAction _getBoxAction;
|
|
Action7 _action7;
|
|
SoundHandler _soundHandler;
|
|
Speaker _speaker1;
|
|
SpeakerQR _speakerQR;
|
|
SpeakerSL _speakerSL;
|
|
SceneObject _object1, _object2, _object3;
|
|
Object _rocks, _probe;
|
|
Object _sunflower1, _sunflower2, _sunflower3;
|
|
SceneText _sceneText;
|
|
SceneItem _item1;
|
|
|
|
int _turnAmount, _angle, _speed, _fadePercent;
|
|
int _hitCount;
|
|
bool _rocksCheck;
|
|
Object *_objList[4];
|
|
bool _msgActive;
|
|
|
|
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
|
virtual void remove();
|
|
virtual void process(Event &event);
|
|
virtual void dispatch();
|
|
void showMessage(const Common::String &msg, int color, Action *action);
|
|
|
|
};
|
|
|
|
} // End of namespace tSage
|
|
|
|
#endif
|