aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/seg_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/seg_manager.h')
-rw-r--r--engines/sci/engine/seg_manager.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/sci/engine/seg_manager.h b/engines/sci/engine/seg_manager.h
index 2e785b1341..4d385e0d32 100644
--- a/engines/sci/engine/seg_manager.h
+++ b/engines/sci/engine/seg_manager.h
@@ -440,6 +440,16 @@ public:
public: // TODO: make private
Common::Array<SegmentObj *> _heap;
Common::Array<Class> _classtable; /**< Table of all classes */
+
+#ifdef ENABLE_SCI32
+ SciArray<reg_t> *allocateArray(reg_t *addr);
+ SciArray<reg_t> *lookupArray(reg_t addr);
+ void freeArray(reg_t addr);
+ SciString *allocateString(reg_t *addr);
+ SciString *lookupString(reg_t addr);
+ void freeString(reg_t addr);
+ SegmentId getStringSegmentId() { return String_seg_id; }
+#endif
private:
/** Map script ids to segment ids. */
@@ -454,6 +464,11 @@ private:
SegmentId Nodes_seg_id; ///< ID of the (a) node segment
SegmentId Hunks_seg_id; ///< ID of the (a) hunk segment
+#ifdef ENABLE_SCI32
+ SegmentId Arrays_seg_id;
+ SegmentId String_seg_id;
+#endif
+
private:
SegmentObj *allocSegment(SegmentObj *mem, SegmentId *segid);
LocalVariables *allocLocalsSegment(Script *scr, int count);