aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/ringworld2/ringworld2_logic.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage/ringworld2/ringworld2_logic.h')
-rw-r--r--engines/tsage/ringworld2/ringworld2_logic.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 4adfc9bc05..152e6f8518 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -42,6 +42,38 @@ public:
static Scene *createScene(int sceneNumber);
};
+class SceneArea: public EventHandler {
+public:
+ Rect _bounds;
+ bool _enabled;
+ bool _insideArea;
+ CursorType _cursorNum;
+ CursorType _savedCursorNum;
+ int _cursorState;
+public:
+ SceneArea();
+ void setDetails(const Rect &bounds, CursorType cursor);
+
+ virtual void synchronize(Serializer &s);
+ virtual void remove();
+ virtual void process(Event &event);
+};
+
+class SceneExit: public SceneArea {
+public:
+ bool _moving;
+ int _sceneNumber;
+ Common::Point _destPos;
+public:
+ SceneExit();
+ void setDetails(const Rect &bounds, CursorType cursor, int sceneNumber);
+ void setDest(const Common::Point &p) { _destPos = p; }
+ void changeScene();
+
+ virtual void synchronize(Serializer &s);
+ virtual void process(Event &event);
+};
+
class SceneExt: public Scene {
private:
static void startStrip();
@@ -55,6 +87,7 @@ public:
SceneObject *_focusObject;
Visage _cursorVisage;
+ SynchronizedList<SceneArea *> _sceneAreas;
Rect _v51C34;
public:
@@ -249,7 +282,6 @@ public:
}
};
-
} // End of namespace Ringworld2
} // End of namespace TsAGE