From 3037cd8149ff1d08f8fb39a6c8235eb9bf4cf6e4 Mon Sep 17 00:00:00 2001 From: onox Date: Fri, 15 May 2015 09:29:23 +0200 Subject: [PATCH] Use actual position of view for sound manager Signed-off-by: Erik Hofman --- src/Sound/soundmanager.cxx | 17 +++++++++-------- src/Sound/soundmanager.hxx | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Sound/soundmanager.cxx b/src/Sound/soundmanager.cxx index 906ffd798..bb1b83418 100644 --- a/src/Sound/soundmanager.cxx +++ b/src/Sound/soundmanager.cxx @@ -71,9 +71,10 @@ void FGSoundManager::init() _device_name = fgGetNode("/sim/sound/device-name"); _currentView = fgGetNode("sim/current-view"); - _viewPosLon = fgGetNode("sim/current-view/viewer-lon-deg"); - _viewPosLat = fgGetNode("sim/current-view/viewer-lat-deg"); - _viewPosElev = fgGetNode("sim/current-view/viewer-elev-ft"); + + _viewX = _currentView->getNode("viewer-x-m", true); + _viewY = _currentView->getNode("viewer-y-m", true); + _viewZ = _currentView->getNode("viewer-z-m", true); _velocityNorthFPS = fgGetNode("velocities/speed-north-fps", true); _velocityEastFPS = fgGetNode("velocities/speed-east-fps", true); @@ -172,12 +173,12 @@ void FGSoundManager::update(double dt) } if (enabled) { - SGGeod viewPosGeod(SGGeod::fromDegFt(_viewPosLon->getDoubleValue(), - _viewPosLat->getDoubleValue(), - _viewPosElev->getDoubleValue())); - SGVec3d cartPos = SGVec3d::fromGeod(viewPosGeod); + SGVec3d cartPos(_viewX->getDoubleValue(), + _viewY->getDoubleValue(), + _viewZ->getDoubleValue()); + SGGeod geodPos = SGGeod::fromCart(cartPos); - set_position(cartPos, viewPosGeod); + set_position(cartPos, geodPos); SGQuatd viewOrientation; for (int i=0; i<4; ++i) { diff --git a/src/Sound/soundmanager.hxx b/src/Sound/soundmanager.hxx index 7f5a16499..f76be4b80 100644 --- a/src/Sound/soundmanager.hxx +++ b/src/Sound/soundmanager.hxx @@ -55,7 +55,7 @@ private: bool _is_initialized, _enabled; SGPropertyNode_ptr _sound_working, _sound_enabled, _volume, _device_name; SGPropertyNode_ptr _currentView; - SGPropertyNode_ptr _viewPosLon, _viewPosLat, _viewPosElev; + SGPropertyNode_ptr _viewX, _viewY, _viewZ; SGPropertyNode_ptr _velocityNorthFPS, _velocityEastFPS, _velocityDownFPS; SGPropertyNode_ptr _viewXoffset, _viewYoffset, _viewZoffset; std::auto_ptr _listener; -- 2.39.2