diff options
author | Patric Stout <truebrain@openttd.org> | 2020-12-08 10:24:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-08 10:24:59 +0100 |
commit | 2864d019f05b8c8bb3159f2c8913ed834e487698 (patch) | |
tree | 5211f714197ff1f8a3d424ea252f5ef672a00625 | |
parent | 6e689e2038f7e34cc66b04b64e46f76206c1804e (diff) | |
download | openttd-2864d019f05b8c8bb3159f2c8913ed834e487698.tar.xz |
Fix: useless warning with -snull and no BaseSounds available (#8361)
If I explicitly tell the system I do not want sound, I still get
presented a nice message I do not have any BaseSounds available
on my system, and that I should download one to enjoy sound. Well,
let me tell you, with "-snull" that is really really not going to
help. So please, be quiet, and let me enjoy the game without
"boooooo" and "DING DING DING".
Thank you.
-rw-r--r-- | src/openttd.cpp | 2 | ||||
-rw-r--r-- | src/sound/null_s.h | 1 | ||||
-rw-r--r-- | src/sound/sound_driver.hpp | 11 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index 337bcda4d..d20e88cd8 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1111,7 +1111,7 @@ void SwitchToMode(SwitchMode new_mode) case SM_MENU: // Switch to game intro menu LoadIntroGame(); - if (BaseSounds::ini_set.empty() && BaseSounds::GetUsedSet()->fallback) { + if (BaseSounds::ini_set.empty() && BaseSounds::GetUsedSet()->fallback && SoundDriver::GetInstance()->HasOutput()) { ShowErrorMessage(STR_WARNING_FALLBACK_SOUNDSET, INVALID_STRING_ID, WL_CRITICAL); BaseSounds::ini_set = BaseSounds::GetUsedSet()->name; } diff --git a/src/sound/null_s.h b/src/sound/null_s.h index c01eae32a..9bc660b92 100644 --- a/src/sound/null_s.h +++ b/src/sound/null_s.h @@ -19,6 +19,7 @@ public: void Stop() override { } const char *GetName() const override { return "null"; } + bool HasOutput() const override { return false; } }; /** Factory for the null sound driver. */ diff --git a/src/sound/sound_driver.hpp b/src/sound/sound_driver.hpp index 6de66d74e..062e7704d 100644 --- a/src/sound/sound_driver.hpp +++ b/src/sound/sound_driver.hpp @@ -19,6 +19,17 @@ public: virtual void MainLoop() {} /** + * Whether the driver has an output from which the user can hear sound. + * Or in other words, whether we should warn the user if no soundset is + * loaded and that loading one would fix the sound problems. + * @return True for all drivers except null. + */ + virtual bool HasOutput() const + { + return true; + } + + /** * Get the currently active instance of the sound driver. */ static SoundDriver *GetInstance() { |