diff options
Diffstat (limited to 'engines/sci/engine/seg_manager.cpp')
-rw-r--r-- | engines/sci/engine/seg_manager.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp index ca682ef578..ad9bfd27cd 100644 --- a/engines/sci/engine/seg_manager.cpp +++ b/engines/sci/engine/seg_manager.cpp @@ -1215,6 +1215,14 @@ SystemStrings *SegManager::allocateSysStrings(SegmentId *segid) { return retval; } +SegmentId SegManager::allocateStringFrags() { + SegmentId segid; + + allocNonscriptSegment(MEM_OBJ_STRING_FRAG, &segid); + + return segid; +} + #if 0 // Unreferenced - removed SegmentId SegManager::sm_allocate_reserved_segment(char *src_name) { @@ -1660,6 +1668,13 @@ public: SegInterface(segmgr, mobj, segId, MEM_OBJ_SYS_STRINGS) {} }; +//-------------------- string frags -------------------- +class SegInterfaceStringFrag : public SegInterface { +public: + SegInterfaceStringFrag(SegManager *segmgr, MemObject *mobj, SegmentId segId) : + SegInterface(segmgr, mobj, segId, MEM_OBJ_STRING_FRAG) {} +}; + //-------------------- lists -------------------- class SegInterfaceLists : public SegInterface { @@ -1806,6 +1821,9 @@ SegInterface *SegManager::getSegInterface(SegmentId segid) { case MEM_OBJ_DYNMEM: retval = new SegInterfaceDynMem(this, mobj, segid); break; + case MEM_OBJ_STRING_FRAG: + retval = new SegInterfaceStringFrag(this, mobj, segid); + break; case MEM_OBJ_RESERVED: retval = new SegInterfaceReserved(this, mobj, segid); break; |