From 3496d64a523462386ed438a63b00e93b27b0a86b Mon Sep 17 00:00:00 2001 From: Erik Hofman Date: Fri, 30 Dec 2011 11:16:58 +0100 Subject: [PATCH] sounds tied to listeners are never out of range --- simgear/sound/sample_group.cxx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/simgear/sound/sample_group.cxx b/simgear/sound/sample_group.cxx index 0be6d13d..069f85df 100644 --- a/simgear/sound/sample_group.cxx +++ b/simgear/sound/sample_group.cxx @@ -409,13 +409,15 @@ void SGSampleGroup::update_pos_and_orientation() { // Test if a sample is farther away than max distance, if so // stop the sound playback and free it's source. - float max2 = sample->get_max_dist() * sample->get_max_dist(); - float dist2 = position[0]*position[0] - + position[1]*position[1] + position[2]*position[2]; - if ((dist2 > max2) && !sample->test_out_of_range()) { - sample->set_out_of_range(true); - } else if ((dist2 < max2) && sample->test_out_of_range()) { - sample->set_out_of_range(false); + if (!_tied_to_listener) { + float max2 = sample->get_max_dist() * sample->get_max_dist(); + float dist2 = position[0]*position[0] + + position[1]*position[1] + position[2]*position[2]; + if ((dist2 > max2) && !sample->test_out_of_range()) { + sample->set_out_of_range(true); + } else if ((dist2 < max2) && sample->test_out_of_range()) { + sample->set_out_of_range(false); + } } } } -- 2.39.5