]> git.mxchange.org Git - simgear.git/commitdiff
sounds tied to listeners are never out of range
authorErik Hofman <erik@ehofman.com>
Fri, 30 Dec 2011 10:16:58 +0000 (11:16 +0100)
committerErik Hofman <erik@ehofman.com>
Fri, 30 Dec 2011 10:16:58 +0000 (11:16 +0100)
simgear/sound/sample_group.cxx

index 0be6d13d89b12efec1ccb5d4e7be1fafc7277f1a..069f85df9dd557776171d3855c9fd77712a54b37 100644 (file)
@@ -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);
+            }
         }
     }
 }