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 return g_sci->isCD();
104 case GID_MOTHERGOOSEHIRES:
113 return getSciVersion() == SCI_VERSION_2_1_EARLY;
119 inline bool gameScriptsControlMasterVolume()
const {
120 switch (
g_sci->getGameId()) {
122 case GID_PHANTASMAGORIA2:
130 inline bool hasSci3Audio()
const {
131 return getSciVersion() == SCI_VERSION_3 ||
g_sci->getGameId() == GID_GK2;
134 inline bool hasTransparentPicturePlanes()
const {
135 const SciGameId &gid =
g_sci->getGameId();
140 return getSciVersion() >= SCI_VERSION_2_1_MIDDLE &&
142 gid != GID_MOTHERGOOSEHIRES;
145 inline bool hasMidPaletteCode()
const {
146 return getSciVersion() >= SCI_VERSION_2_1_MIDDLE ||
g_sci->getGameId() == GID_KQ7;
149 inline bool hasLatePaletteCode()
const {
150 return getSciVersion() > SCI_VERSION_2_1_MIDDLE ||
151 g_sci->getGameId() == GID_GK2 ||
152 g_sci->getGameId() == GID_PQSWAT ||
155 g_sci->getGameId() == GID_SHIVERS ||
156 g_sci->getGameId() == GID_TORIN;
159 inline bool VMDOpenStopsAudio()
const {
165 return getSciVersion() == SCI_VERSION_2_1_MIDDLE &&
166 g_sci->getGameId() != GID_SQ6 &&
167 g_sci->getGameId() != GID_GK2;
170 inline bool useDoSoundMac32()
const {
174 (
g_sci->getGameId() == GID_HOYLE5 ||
175 g_sci->getGameId() == GID_PHANTASMAGORIA ||
176 g_sci->getGameId() == GID_PQSWAT ||
177 g_sci->getGameId() == GID_SHIVERS ||
178 g_sci->getGameId() == GID_SQ6);
181 inline bool useMacGammaLevel()
const {
187 getSciVersion() >= SCI_VERSION_2 &&
188 getSciVersion() < SCI_VERSION_2_1_LATE &&
189 g_sci->getGameId() != GID_PQSWAT &&
190 g_sci->getGameId() != GID_TORIN;
193 inline bool usesAlternateSelectors()
const {
194 return g_sci->getGameId() == GID_PHANTASMAGORIA2;
207 switch (
g_sci->getGameId()) {
243 int detectPlaneIdBase();
247 bool usesCdTrack() {
return _usesCdTrack; }
267 bool useWindowsCursors() {
return _useWindowsCursors; }
275 bool useEarlyGetLongestTextCalculations()
const;
310 bool autoDetectLofsType(
const Common::String& gameSuperClassName,
int methodNum);
311 bool autoDetectGfxFunctionsType(
int methodNum = -1);
312 bool autoDetectSoundType();
313 bool autoDetectMoveCountType();
315 bool autoDetectSci21KernelType();
318 SciVersion _doSoundType, _setCursorType, _lofsType, _gfxFunctionsType, _messageFunctionType;
323 MoveCountType _moveCountType;
325 bool _forceDOSTracks;
326 bool _useWindowsCursors;
328 PseudoMouseAbilityType _pseudoMouseAbility;
336 #endif // SCI_ENGINE_FEATURES_H SciVersion detectSetCursorType()
uint16 getGameFlagsGlobal() const
bool isGameFlagBitOrderNormal() const
SciVersion
Definition: detection.h:134
SciVersion detectGfxFunctionsType()
SciVersion detectMessageFunctionType()
bool supportsSpeechWithSubtitles() const
bool usesOldGfxFunctions()
Definition: features.h:235
bool canSaveFromGMM() const
Common::Platform getPlatform() const
bool hasScriptObjectNames() const
SciVersion detectDoSoundType()
bool supportsTextSpeed() const
Definition: features.h:206
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:265