aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/features.h
diff options
context:
space:
mode:
authorFilippos Karapetis2010-11-21 00:44:04 +0000
committerFilippos Karapetis2010-11-21 00:44:04 +0000
commitd275461958b650023373383ed2243cc77fd5c736 (patch)
treeb5929df4ffdcd8986141015428f30ddbbefdf662 /engines/sci/engine/features.h
parent5616bde4e7ec28f886aeb2c98c6a2fec52f9fa9d (diff)
downloadscummvm-rg350-d275461958b650023373383ed2243cc77fd5c736.tar.gz
scummvm-rg350-d275461958b650023373383ed2243cc77fd5c736.tar.bz2
scummvm-rg350-d275461958b650023373383ed2243cc77fd5c736.zip
SCI: Added a heuristic to detect the modified late SCI2.1/SCI3 kString/kArray kernel functions
svn-id: r54398
Diffstat (limited to 'engines/sci/engine/features.h')
-rw-r--r--engines/sci/engine/features.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/sci/engine/features.h b/engines/sci/engine/features.h
index 336520f0d9..83cb58aa2d 100644
--- a/engines/sci/engine/features.h
+++ b/engines/sci/engine/features.h
@@ -37,6 +37,12 @@ enum MoveCountType {
kIncrementMoveCount
};
+enum Sci2StringFunctionType {
+ kSci2StringFunctionUninitialized,
+ kSci2StringFunctionOld,
+ kSci2StringFunctionNew
+};
+
class GameFeatures {
public:
GameFeatures(SegManager *segMan, Kernel *kernel);
@@ -79,6 +85,13 @@ public:
* @return Graphics functions type, SCI_VERSION_2 / SCI_VERSION_2_1
*/
SciVersion detectSci21KernelType();
+
+ /**
+ * Autodetects the string subfunctions used in SCI2 - SCI3
+ * @return string subfunctions type, kSci2StringFunctionOld / kSci2StringFunctionNew
+ */
+ Sci2StringFunctionType detectSci2StringFunctionType();
+
#endif
/**
@@ -109,11 +122,13 @@ private:
bool autoDetectMoveCountType();
#ifdef ENABLE_SCI32
bool autoDetectSci21KernelType();
+ bool autoDetectSci21StringFunctionType();
#endif
SciVersion _doSoundType, _setCursorType, _lofsType, _gfxFunctionsType, _messageFunctionType;
#ifdef ENABLE_SCI32
SciVersion _sci21KernelType;
+ Sci2StringFunctionType _sci2StringFunctionType;
#endif
MoveCountType _moveCountType;