From 2758f07df0c5e7e6fa38e8577596c576d3c37277 Mon Sep 17 00:00:00 2001 From: Vivian Meazza Date: Wed, 8 Sep 2010 17:47:28 +0100 Subject: [PATCH] Use AIBase method setParentNode() vice the local method. Signed-off-by: Vivian Meazza --- src/AIModel/AIEscort.cxx | 100 ++++---------------------------- src/AIModel/AIEscort.hxx | 6 +- src/AIModel/AIGroundVehicle.cxx | 9 +-- src/AIModel/AIGroundVehicle.hxx | 4 +- src/AIModel/AIWingman.cxx | 2 +- 5 files changed, 18 insertions(+), 103 deletions(-) diff --git a/src/AIModel/AIEscort.cxx b/src/AIModel/AIEscort.cxx index 20d09d252..a59a07c95 100644 --- a/src/AIModel/AIEscort.cxx +++ b/src/AIModel/AIEscort.cxx @@ -44,7 +44,6 @@ using std::string; FGAIEscort::FGAIEscort() : FGAIShip(otEscort), -_selected_ac(0), _relbrg (0), _stn_truebrg(0), _parent_speed(0), @@ -56,8 +55,7 @@ _max_speed(0), _interval(0), _MPControl(false), _patrol(false), -_stn_deg_true(false), -_parent("") +_stn_deg_true(false) { invisible = false; @@ -143,6 +141,8 @@ bool FGAIEscort::init(bool search_in_AI_path) { props->setStringValue("controls/parent-name", _parent.c_str()); setParentNode(); + setParent(); + pos = _tgtpos; speed = _parent_speed; hdg = _parent_hdg; @@ -196,10 +196,6 @@ void FGAIEscort::setStnPatrol(bool p) { _patrol = p; } -void FGAIEscort::setParentName(const string& p) { - _parent = p; -} - bool FGAIEscort::getGroundElev(SGGeod inpos) { double height_m ; @@ -233,79 +229,6 @@ bool FGAIEscort::getGroundElev(SGGeod inpos) { } -void FGAIEscort::setParentNode() { - - const SGPropertyNode_ptr ai = fgGetNode("/ai/models", true); - - for (int i = ai->nChildren() - 1; i >= -1; i--) { - SGPropertyNode_ptr model; - - if (i < 0) { // last iteration: selected model - model = _selected_ac; - } else { - model = ai->getChild(i); - string path = ai->getPath(); - const string name = model->getStringValue("name"); - - if (!model->nChildren()){ - continue; - } - if (name == _parent) { - _selected_ac = model; // save selected model for last iteration - break; - } - - } - if (!model) - continue; - - }// end for loop - - if (_selected_ac != 0){ - const string name = _selected_ac->getStringValue("name"); - setParent(); - - //double lat = _selected_ac->getDoubleValue("position/latitude-deg"); - //double lon = _selected_ac->getDoubleValue("position/longitude-deg"); - //double elevation = _selected_ac->getDoubleValue("position/altitude-ft"); - //_MPControl = _selected_ac->getBoolValue("controls/mp-control"); - - //_selectedpos.setLatitudeDeg(lat); - //_selectedpos.setLongitudeDeg(lon); - //_selectedpos.setElevationFt(elevation); - - //_parent_speed = _selected_ac->getDoubleValue("velocities/speed-kts"); - //_parent_hdg = _selected_ac->getDoubleValue("orientation/true-heading-deg"); - - //if(!_stn_deg_true){ - // _stn_truebrg = calcTrueBearingDeg(_stn_brg, _parent_hdg); - // _stn_relbrg = _stn_brg; - // //cout << _name <<" set rel"<setStringValue("controls/parent-name", _parent.c_str()); + + props->setStringValue("controls/parent-name", _parent.c_str()); setParentNode(); return true; @@ -212,10 +211,6 @@ void FGAIGroundVehicle::setPitch(double p, double dt, double coeff){ _pitch_deg = (p * c) + (_pitch_deg * (1 - c)); } -void FGAIGroundVehicle::setParentName(const string& p) { - _parent = p; -} - void FGAIGroundVehicle::setTowAngle(double ta, double dt, double coeff){ ta *= _tow_angle_gain; double factor = -0.0045 * speed + 1; diff --git a/src/AIModel/AIGroundVehicle.hxx b/src/AIModel/AIGroundVehicle.hxx index 4ea7eea98..4f0519c18 100644 --- a/src/AIModel/AIGroundVehicle.hxx +++ b/src/AIModel/AIGroundVehicle.hxx @@ -62,7 +62,7 @@ private: void setElevation(double _elevation, double dt, double _elevation_coeff); void setPitch(double _pitch, double dt, double _pitch_coeff); void setTowAngle(double _relbrg, double dt, double _towangle_coeff); - void setParentName(const string& p); +// void setParentName(const string& p); void setTrainSpeed(double s, double dt, double coeff); void setParent(); void setParentNode(); @@ -100,7 +100,7 @@ private: const SGMaterial* _material; SGPropertyNode_ptr _selected_ac; - string _parent; +// string _parent; }; diff --git a/src/AIModel/AIWingman.cxx b/src/AIModel/AIWingman.cxx index 2bc8e2c0f..87e0053e0 100644 --- a/src/AIModel/AIWingman.cxx +++ b/src/AIModel/AIWingman.cxx @@ -43,6 +43,7 @@ void FGAIWingman::readFromScenario(SGPropertyNode* scFileNode) { setLife(scFileNode->getDoubleValue("life", -1)); setNoRoll(scFileNode->getBoolValue("no-roll", false)); setName(scFileNode->getStringValue("name", "Wingman")); + setParentName(scFileNode->getStringValue("parent", "")); //setSMPath(scFileNode->getStringValue("submodel-path", "")); setSubID(scFileNode->getIntValue("SubID", 0)); setXoffset(scFileNode->getDoubleValue("x-offset", 0.0)); @@ -171,7 +172,6 @@ bool FGAIWingman::init(bool search_in_AI_path) { void FGAIWingman::update(double dt) { FGAIBallistic::update(dt); -// cout << FGAIBase::_getName() << " update speed " << FGAIBase::_getSpeed() << endl; } // end AIWingman