From 70c7133e4b23adff5d630d4d2a37ac81ef070566 Mon Sep 17 00:00:00 2001 From: Le Philousophe Date: Sat, 8 Jun 2019 12:19:43 +0200 Subject: CRYOMNI3D: Improve compatibility with ScummVM global UI --- engines/cryomni3d/detection.cpp | 4 +++- engines/cryomni3d/detection_tables.h | 14 ++++++-------- engines/cryomni3d/versailles/menus.cpp | 10 ++++++---- 3 files changed, 15 insertions(+), 13 deletions(-) (limited to 'engines') 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); -- cgit v1.2.3