aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/segment.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/segment.h')
-rw-r--r--engines/sci/engine/segment.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/engine/segment.h b/engines/sci/engine/segment.h
index 8108e0695e..5651e2ef21 100644
--- a/engines/sci/engine/segment.h
+++ b/engines/sci/engine/segment.h
@@ -796,7 +796,7 @@ public:
SciString() : SciArray<char>() { setType(3); }
// We overload destroy to ensure the string type is 3 after destroying
- void destroy() { _type = 3; }
+ void destroy() { SciArray<char>::destroy(); _type = 3; }
Common::String toString();
void fromString(Common::String string);
@@ -805,6 +805,9 @@ public:
struct ArrayTable : public Table<SciArray<reg_t> > {
ArrayTable() : Table<SciArray<reg_t> >(SEG_TYPE_ARRAY) {}
+ virtual void freeAtAddress(SegManager *segMan, reg_t sub_addr);
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note);
+
void saveLoadWithSerializer(Common::Serializer &ser);
SegmentRef dereference(reg_t pointer);
};
@@ -812,6 +815,8 @@ struct ArrayTable : public Table<SciArray<reg_t> > {
struct StringTable : public Table<SciString> {
StringTable() : Table<SciString>(SEG_TYPE_STRING) {}
+ virtual void freeAtAddress(SegManager *segMan, reg_t sub_addr);
+
void saveLoadWithSerializer(Common::Serializer &ser);
SegmentRef dereference(reg_t pointer);
};