22 #ifndef SCI_ENGINE_FEATURES_H 23 #define SCI_ENGINE_FEATURES_H 25 #include "sci/resource/resource.h" 26 #include "sci/engine/seg_manager.h" 31 kMoveCountUninitialized,
36 enum PseudoMouseAbilityType {
37 kPseudoMouseAbilityUninitialized,
38 kPseudoMouseAbilityFalse,
39 kPseudoMouseAbilityTrue
42 enum MessageTypeSyncStrategy {
43 kMessageTypeSyncStrategyNone,
44 kMessageTypeSyncStrategyDefault
47 kMessageTypeSyncStrategyLSL6Hires,
48 kMessageTypeSyncStrategyShivers
53 kSpeedThrottleDefaultDelay = 30
99 inline bool usesModifiedAudioAttenuation()
const {
100 switch (
g_sci->getGameId()) {
103 case GID_MOTHERGOOSEHIRES:
110 return getSciVersion() == SCI_VERSION_2_1_EARLY;
116 inline bool gameScriptsControlMasterVolume()
const {
117 switch (
g_sci->getGameId()) {
119 case GID_PHANTASMAGORIA2:
127 inline bool hasSci3Audio()
const {
128 return getSciVersion() == SCI_VERSION_3 ||
g_sci->getGameId() == GID_GK2;
131 inline bool hasTransparentPicturePlanes()
const {
132 const SciGameId &gid =
g_sci->getGameId();
137 return getSciVersion() >= SCI_VERSION_2_1_MIDDLE &&
139 gid != GID_MOTHERGOOSEHIRES;
142 inline bool hasMidPaletteCode()
const {
143 return getSciVersion() >= SCI_VERSION_2_1_MIDDLE ||
g_sci->getGameId() == GID_KQ7;
146 inline bool hasLatePaletteCode()
const {
147 return getSciVersion() > SCI_VERSION_2_1_MIDDLE ||
148 g_sci->getGameId() == GID_GK2 ||
149 g_sci->getGameId() == GID_PQSWAT ||
152 g_sci->getGameId() == GID_SHIVERS ||
153 g_sci->getGameId() == GID_TORIN;
156 inline bool VMDOpenStopsAudio()
const {
162 return getSciVersion() == SCI_VERSION_2_1_MIDDLE &&
163 g_sci->getGameId() != GID_SQ6 &&
164 g_sci->getGameId() != GID_GK2;
167 inline bool useDoSoundMac32()
const {
171 (
g_sci->getGameId() == GID_HOYLE5 ||
172 g_sci->getGameId() == GID_PHANTASMAGORIA ||
173 g_sci->getGameId() == GID_PQSWAT ||
174 g_sci->getGameId() == GID_SHIVERS ||
175 g_sci->getGameId() == GID_SQ6);
178 inline bool useMacGammaLevel()
const {
184 getSciVersion() >= SCI_VERSION_2 &&
185 getSciVersion() < SCI_VERSION_2_1_LATE &&
186 g_sci->getGameId() != GID_PQSWAT &&
187 g_sci->getGameId() != GID_TORIN;
190 inline bool usesAlternateSelectors()
const {
191 return g_sci->getGameId() == GID_PHANTASMAGORIA2;
204 switch (
g_sci->getGameId()) {
240 int detectPlaneIdBase();
244 bool usesCdTrack() {
return _usesCdTrack; }
264 bool useWindowsCursors() {
return _useWindowsCursors; }
272 bool useEarlyGetLongestTextCalculations()
const;
307 bool autoDetectLofsType(
const Common::String& gameSuperClassName,
int methodNum);
308 bool autoDetectGfxFunctionsType(
int methodNum = -1);
309 bool autoDetectSoundType();
310 bool autoDetectMoveCountType();
312 bool autoDetectSci21KernelType();
315 SciVersion _doSoundType, _setCursorType, _lofsType, _gfxFunctionsType, _messageFunctionType;
320 MoveCountType _moveCountType;
322 bool _forceDOSTracks;
323 bool _useWindowsCursors;
325 PseudoMouseAbilityType _pseudoMouseAbility;
333 #endif // SCI_ENGINE_FEATURES_H SciVersion detectSetCursorType()
uint16 getGameFlagsGlobal() const
bool isGameFlagBitOrderNormal() const
SciVersion
Definition: detection.h:133
SciVersion detectGfxFunctionsType()
SciVersion detectMessageFunctionType()
bool supportsSpeechWithSubtitles() const
bool usesOldGfxFunctions()
Definition: features.h:232
bool canSaveFromGMM() const
Common::Platform getPlatform() const
bool hasScriptObjectNames() const
SciVersion detectDoSoundType()
bool supportsTextSpeed() const
Definition: features.h:203
PseudoMouseAbilityType detectPseudoMouseAbility()
Definition: seg_manager.h:48
bool audioVolumeSyncUsesGlobals() const
MoveCountType detectMoveCountType()
SciVersion detectLofsType()
MessageTypeSyncStrategy getMessageTypeSyncStrategy() const
Definition: features.h:56
Definition: vm_types.h:39
void forceDOSTracks()
Definition: features.h:262