aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/ringworld_scenes1.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage/ringworld_scenes1.h')
-rw-r--r--engines/tsage/ringworld_scenes1.h557
1 files changed, 557 insertions, 0 deletions
diff --git a/engines/tsage/ringworld_scenes1.h b/engines/tsage/ringworld_scenes1.h
new file mode 100644
index 0000000000..89aa0a65c5
--- /dev/null
+++ b/engines/tsage/ringworld_scenes1.h
@@ -0,0 +1,557 @@
+/* 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: https://scummvm-misc.svn.sourceforge.net/svnroot/scummvm-misc/trunk/engines/tsage/scene_logic.h $
+ * $Id: scene_logic.h 232 2011-02-12 11:56:38Z dreammaster $
+ *
+ */
+
+#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) {
+ if (action == OBJECT_SCANNER)
+ display(30, 14, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END);
+ else if (action == CURSOR_LOOK)
+ display(30, 2, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END);
+ else if (action == CURSOR_USE) {
+ Scene30 *parent = (Scene30 *)_globals->_sceneManager._scene;
+ parent->setAction(&parent->_beamAction);
+ } else
+ SceneObject::doAction(action);
+ }
+ };
+
+ // Doorway object
+ class DoorObject: public SceneObject {
+ public:
+ virtual void doAction(int action) {
+ if (action == OBJECT_SCANNER)
+ display(30, 13, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END);
+ else if (action == CURSOR_LOOK)
+ display(30, 1, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END);
+ else if (action == CURSOR_USE)
+ display(30, 7, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END);
+ else
+ SceneObject::doAction(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 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);
+ };
+ class Object5: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Object6: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class SlaveObject: public SceneObjectExt {
+ public:
+ virtual void doAction(int action);
+ };
+ class Object8: public SceneObjectExt {
+ public:
+ virtual void doAction(int action);
+ };
+ class Object9: 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 _object1;
+ Object2 _object2;
+ Object3 _object3;
+ Object4 _object4;
+ Object5 _object5;
+ Object6 _object6;
+ SlaveObject _slaveButton;
+ Object8 _object8;
+ Object9 _object9;
+ SceneObject _object10;
+ 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 colour, Action *action);
+
+};
+
+} // End of namespace tSage
+
+#endif