aboutsummaryrefslogtreecommitdiff
path: root/engines/lure/hotspots.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lure/hotspots.h')
-rw-r--r--engines/lure/hotspots.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/engines/lure/hotspots.h b/engines/lure/hotspots.h
index 75953b9259..789776167e 100644
--- a/engines/lure/hotspots.h
+++ b/engines/lure/hotspots.h
@@ -108,6 +108,7 @@ public:
CurrentActionEntry(CurrentAction newAction, uint16 roomNum);
CurrentActionEntry(CurrentAction newAction, CharacterScheduleEntry *data, uint16 roomNum);
CurrentActionEntry(Action newAction, uint16 roomNum, uint16 param1, uint16 param2);
+ CurrentActionEntry(CurrentActionEntry *src);
virtual ~CurrentActionEntry() {
if (_dynamicSupportData) delete _supportData;
}
@@ -177,6 +178,7 @@ public:
void saveToStream(WriteStream *stream);
void loadFromStream(ReadStream *stream);
+ void copyFrom(CurrentActionStack &stack);
};
class WalkingActionEntry {
@@ -249,6 +251,24 @@ struct DestStructure {
Point position;
};
+class HotspotScheduleRecord: public CurrentActionStack {
+public:
+ uint16 hotspotId;
+
+ HotspotScheduleRecord(uint16 hotspotId, CurrentActionStack &stack);
+ HotspotScheduleRecord(uint16 hotspotId);
+};
+
+class HotspotSchedules: public ManagedList<HotspotScheduleRecord *> {
+public:
+ void add(uint16 hotspotId, CurrentActionStack &actions);
+ void remove(uint16 hotspotId);
+ HotspotScheduleRecord *check(uint16 hotspotId);
+ void saveToStream(Common::WriteStream *stream);
+ void loadFromStream(Common::ReadStream *stream);
+};
+
+
#define MAX_NUM_FRAMES 16
class Hotspot {