diff --git a/src/FDM/YASim/Turbulence.cpp b/src/FDM/YASim/Turbulence.cpp index da9741f7e..4a6183680 100644 --- a/src/FDM/YASim/Turbulence.cpp +++ b/src/FDM/YASim/Turbulence.cpp @@ -138,8 +138,8 @@ void Turbulence::getTurbulence(double* loc, float alt, float* up, double b = (loc[1] + _off[1]) + _timeOff; a -= _sz * Math::floor(a * (1.0/_sz)); b -= _sz * Math::floor(b * (1.0/_sz)); - int x = (int)Math::floor(a); - int y = (int)Math::floor(b); + int x = ((int)Math::floor(a))&(_sz-1); + int y = ((int)Math::floor(b))&(_sz-1); // Convert to fractional interpolation factors a -= x; diff --git a/src/FDM/YASim/YASim.cxx b/src/FDM/YASim/YASim.cxx index 27fcbff6d..165a4b4aa 100644 --- a/src/FDM/YASim/YASim.cxx +++ b/src/FDM/YASim/YASim.cxx @@ -54,6 +54,11 @@ YASim::YASim(double dt) _fdm->getAirplane()->getModel()->getIntegrator()->setInterval(_dt); } +YASim::~YASim() +{ + delete _fdm; +} + void YASim::report() { Airplane* a = _fdm->getAirplane(); diff --git a/src/FDM/YASim/YASim.hxx b/src/FDM/YASim/YASim.hxx index 00771fd04..86e9e36b3 100644 --- a/src/FDM/YASim/YASim.hxx +++ b/src/FDM/YASim/YASim.hxx @@ -8,6 +8,7 @@ namespace yasim { class FGFDM; }; class YASim : public FGInterface { public: YASim(double dt); + ~YASim(); // Load externally set stuff into the FDM virtual void init();