aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorLars Skovlund2016-01-15 03:14:34 +0100
committerLars Skovlund2016-01-15 03:14:34 +0100
commit9e672dab60540f0a981c65cf5ca9f536b8c0e6a0 (patch)
treee81acab16d4b89a40c43eecc301169b9ed849791 /engines/sci
parent2a4b04f3b28a924cad402f21979e143fa5cd248a (diff)
downloadscummvm-rg350-9e672dab60540f0a981c65cf5ca9f536b8c0e6a0.tar.gz
scummvm-rg350-9e672dab60540f0a981c65cf5ca9f536b8c0e6a0.tar.bz2
scummvm-rg350-9e672dab60540f0a981c65cf5ca9f536b8c0e6a0.zip
SCI3: Add comment re new function
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/seg_manager.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/sci/engine/seg_manager.h b/engines/sci/engine/seg_manager.h
index 7a689603a0..c1b492929a 100644
--- a/engines/sci/engine/seg_manager.h
+++ b/engines/sci/engine/seg_manager.h
@@ -472,6 +472,17 @@ private:
void createClassTable();
SegmentId findFreeSegment() const;
+
+/**
+ * This implements our handling of scripts greater than 64K in size.
+ * They occur sporadically in SCI3 games (and in The Realm (SCI2.1),
+ * if we ever decide to support it). It works by "stealing" the upper
+ * two bits of the segment value to use as extra offset bits, making
+ * the maximum offset 0x3FFFF (262143). This is enough.
+ *
+ * The "actual" segment, then, is the segment value with the upper two
+ * bits masked out.
+ */
SegmentId getActualSegment(SegmentId seg) const;
};