aboutsummaryrefslogtreecommitdiff
path: root/engines/cryomni3d
diff options
context:
space:
mode:
authorLe Philousophe2019-06-08 12:19:43 +0200
committerLe Philousophe2019-06-08 12:43:22 +0200
commit70c7133e4b23adff5d630d4d2a37ac81ef070566 (patch)
tree2e6a75269ffdb1fde0811db73cbdbb002180a9be /engines/cryomni3d
parent9fbaf9c73919258e21e420393cf053f413d37856 (diff)
downloadscummvm-rg350-70c7133e4b23adff5d630d4d2a37ac81ef070566.tar.gz
scummvm-rg350-70c7133e4b23adff5d630d4d2a37ac81ef070566.tar.bz2
scummvm-rg350-70c7133e4b23adff5d630d4d2a37ac81ef070566.zip
CRYOMNI3D: Improve compatibility with ScummVM global UI
Diffstat (limited to 'engines/cryomni3d')
-rw-r--r--engines/cryomni3d/detection.cpp4
-rw-r--r--engines/cryomni3d/detection_tables.h14
-rw-r--r--engines/cryomni3d/versailles/menus.cpp10
3 files changed, 15 insertions, 13 deletions
diff --git a/engines/cryomni3d/detection.cpp b/engines/cryomni3d/detection.cpp
index 1de22f4b1f..10a7b496fb 100644
--- a/engines/cryomni3d/detection.cpp
+++ b/engines/cryomni3d/detection.cpp
@@ -69,7 +69,9 @@ Common::Language CryOmni3DEngine::getLanguage() const {
}
bool CryOmni3DEngine::hasFeature(EngineFeature f) const {
- return false;
+ return
+ (f == kSupportsRTL)
+ || (f == kSupportsSubtitleOptions);
}
} // End of Namespace CryOmni3D
diff --git a/engines/cryomni3d/detection_tables.h b/engines/cryomni3d/detection_tables.h
index d791a34ad8..8d56594329 100644
--- a/engines/cryomni3d/detection_tables.h
+++ b/engines/cryomni3d/detection_tables.h
@@ -22,9 +22,7 @@
namespace CryOmni3D {
-//#define GAMEOPTION_PLAY_MYST_FLYBY GUIO_GAMEOPTIONS1
-
-//#define GUI_OPTIONS_MYST GUIO3(GUIO_NOASPECT, GUIO_NOSUBTITLES, GUIO_NOMIDI)
+#define GUI_OPTIONS_VERSAILLES GUIO3(GUIO_NOMIDI, GUIO_NOSFX, GUIO_NOASPECT)
static const CryOmni3DGameDescription gameDescriptions[] = {
// Versailles 1685
@@ -38,7 +36,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformWindows,
ADGF_UNSTABLE,
- GUIO1(GUIO_NOASPECT)
+ GUI_OPTIONS_VERSAILLES
},
GType_VERSAILLES,
0,
@@ -56,7 +54,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformWindows,
ADGF_UNSTABLE,
- GUIO1(GUIO_NOASPECT)
+ GUI_OPTIONS_VERSAILLES
},
GType_VERSAILLES,
0,
@@ -74,7 +72,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_UNSTABLE,
- GUIO1(GUIO_NOASPECT)
+ GUI_OPTIONS_VERSAILLES
},
GType_VERSAILLES,
0,
@@ -92,7 +90,7 @@ static const CryOmni3DGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformMacintosh,
ADGF_UNSTABLE,
- GUIO1(GUIO_NOASPECT)
+ GUI_OPTIONS_VERSAILLES
},
GType_VERSAILLES,
0,
@@ -115,7 +113,7 @@ static const CryOmni3DGameDescription fallbackDescs[] = {
Common::UNK_LANG,
Common::kPlatformWindows,
ADGF_UNSTABLE,
- GUIO1(GUIO_NOASPECT)
+ GUI_OPTIONS_VERSAILLES
},
GType_VERSAILLES,
0,
diff --git a/engines/cryomni3d/versailles/menus.cpp b/engines/cryomni3d/versailles/menus.cpp
index 305fe1c06b..6da7a856e2 100644
--- a/engines/cryomni3d/versailles/menus.cpp
+++ b/engines/cryomni3d/versailles/menus.cpp
@@ -85,7 +85,7 @@ uint CryOmni3DEngine_Versailles::displayOptions() {
int drawState = 1;
uint volumeCursorMiddleY = _sprites.getCursor(102).getHeight() / 2;
- uint volume = CLIP(ConfMan.getInt("sfx_volume"), 0, 256);
+ uint volume = CLIP(ConfMan.getInt("music_volume"), 0, 256);
uint soundVolumeY = ((283 * (256 - volume)) >> 8) + 101;
byte volumeForeColor = 243;
@@ -251,13 +251,15 @@ uint CryOmni3DEngine_Versailles::displayOptions() {
volume = CLIP(((384 - soundVolumeY) << 8) / 283, 0u, 256u);
// Global setting
ConfMan.setInt("music_volume", volume);
+ // As we modify speech volume, let's unmute it
+ // Using in-game settings resets all scummvm specific settings
+ ConfMan.setBool("speech_mute", false);
ConfMan.setInt("speech_volume", volume);
- ConfMan.setInt("sfx_volume", volume);
syncSoundSettings();
}
} else if (getDragStatus() == 2 &&
!_mixer->hasActiveChannelOfType(Audio::Mixer::kMusicSoundType) &&
- _mixer->getVolumeForSoundType(Audio::Mixer::kSFXSoundType) > 0) {
+ _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) > 0) {
// Finished dragging
_mixer->stopID(SoundIds::kOrgue);
do {
@@ -275,7 +277,7 @@ uint CryOmni3DEngine_Versailles::displayOptions() {
break;
}
- _mixer->playStream(Audio::Mixer::kSFXSoundType, nullptr, audioDecoder, SoundIds::kOrgue);
+ _mixer->playStream(Audio::Mixer::kMusicSoundType, nullptr, audioDecoder, SoundIds::kOrgue);
// We lost ownership of the audioDecoder just set it to nullptr and don't use it
audioDecoder = nullptr;
} while (false);