X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIBase.cxx;h=7cfcfcb0a33418517ff24f767da13d599e186191;hb=afcdbd3158503773644aa07dd86cd92d67946bd4;hp=90bf34f4d3cfb17dfe604988dfe365ccc0fa2751;hpb=df4ccc3b888d6dda637383ab4dcbb81020593435;p=flightgear.git diff --git a/src/AIModel/AIBase.cxx b/src/AIModel/AIBase.cxx index 90bf34f4d..7cfcfcb0a 100644 --- a/src/AIModel/AIBase.cxx +++ b/src/AIModel/AIBase.cxx @@ -143,12 +143,17 @@ FGAIBase::~FGAIBase() { model_removed->setStringValue(props->getPath()); } + // refID=0 is supposedley impossible, refID=1 is the special ai_ac aircaft + // representing the current user, in the ATCManager. Maybe both these + // tests could die? if (_fx && _refID != 0 && _refID != 1) { SGSoundMgr *smgr = globals->get_soundmgr(); - stringstream name; - name << "aifx:"; - name << _refID; - smgr->remove(name.str()); + if (smgr) { + stringstream name; + name << "aifx:"; + name << _refID; + smgr->remove(name.str()); + } } if (fp) @@ -245,11 +250,10 @@ void FGAIBase::update(double dt) { props->setStringValue("sim/sound/path", fxpath.c_str()); // initialize the sound configuration - SGSoundMgr *smgr = globals->get_soundmgr(); stringstream name; name << "aifx:"; name << _refID; - _fx = new FGFX(smgr, name.str(), props); + _fx = new FGFX(name.str(), props); _fx->init(); } } @@ -607,7 +611,7 @@ SGVec3d FGAIBase::getCartPos() const { } bool FGAIBase::getGroundElevationM(const SGGeod& pos, double& elev, - const SGMaterial** material) const { + const simgear::BVHMaterial** material) const { return globals->get_scenery()->get_elevation_m(pos, elev, material, _model.get()); } @@ -729,7 +733,7 @@ double FGAIBase::_getAltitude() const { double FGAIBase::_getAltitudeAGL(SGGeod inpos, double start){ getGroundElevationM(SGGeod::fromGeodM(inpos, start), - _elevation_m, &_material); + _elevation_m, NULL); return inpos.getElevationFt() - _elevation_m * SG_METER_TO_FEET; }