diff options
Diffstat (limited to 'engines/lure/hotspots.h')
-rw-r--r-- | engines/lure/hotspots.h | 20 |
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 { |