From aecfc1a229b35ff3c7d245ceb5cf2898d321859b Mon Sep 17 00:00:00 2001 From: frohlich Date: Sun, 23 Apr 2006 15:29:39 +0000 Subject: [PATCH] Pigeon: Avoid crashes if there is no sound device. --- src/Instrumentation/mk_viii.cxx | 10 ++++++++-- src/Sound/fg_fx.cxx | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Instrumentation/mk_viii.cxx b/src/Instrumentation/mk_viii.cxx index 942c67904..08f6833d4 100755 --- a/src/Instrumentation/mk_viii.cxx +++ b/src/Instrumentation/mk_viii.cxx @@ -2299,7 +2299,13 @@ MK_VIII::VoicePlayer::get_sample (const char *name) std::ostringstream refname; refname << mk->name << "[" << mk->num << "]" << "/" << name; - SGSoundSample *sample = globals->get_soundmgr()->find(refname.str()); + SGSoundMgr *soundmgr = globals->get_soundmgr(); + if (soundmgr->is_working() == false) + { + return NULL; + } + + SGSoundSample *sample = soundmgr->find(refname.str()); if (! sample) { SGPath sample_path(globals->get_fg_root()); @@ -2316,7 +2322,7 @@ MK_VIII::VoicePlayer::get_sample (const char *name) exit(1); } - globals->get_soundmgr()->add(sample, refname.str()); + soundmgr->add(sample, refname.str()); samples[refname.str()] = sample; } diff --git a/src/Sound/fg_fx.cxx b/src/Sound/fg_fx.cxx index b04d9a46f..a76059349 100644 --- a/src/Sound/fg_fx.cxx +++ b/src/Sound/fg_fx.cxx @@ -129,6 +129,10 @@ FGFX::update (double dt) { SGSoundMgr *smgr = globals->get_soundmgr(); + if (smgr->is_working() == false) { + return; + } + // command sound manger bool pause = _pause->getBoolValue(); if ( pause != last_pause ) { @@ -189,6 +193,9 @@ FGFX::play_message( SGSoundSample *_sample ) void FGFX::play_message( const string path, const string fname ) { + if (globals->get_soundmgr()->is_working() == false) { + return; + } SGSoundSample *sample; sample = new SGSoundSample( path.c_str(), fname.c_str() ); play_message( sample ); -- 2.39.5