]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIManager.cxx
Remove unused variables
[flightgear.git] / src / AIModel / AIManager.cxx
index cec1980acae042af721f65470b2b95bcdcf2d148..01bef48f21ac1ece71a9573d8b757eaf09812370 100644 (file)
@@ -33,6 +33,7 @@
 #include "AIStatic.hxx"
 #include "AIMultiplayer.hxx"
 #include "AITanker.hxx"
+#include "AIWingman.hxx"
 
 #include <simgear/math/sg_geodesy.hxx>
 
@@ -73,6 +74,7 @@ FGAIManager::init() {
     user_heading_node   = fgGetNode("/orientation/heading-deg", true);
     user_pitch_node     = fgGetNode("/orientation/pitch-deg", true);
     user_yaw_node       = fgGetNode("/orientation/side-slip-deg", true);
+    user_roll_node      = fgGetNode("/orientation/roll-deg", true);
     user_speed_node     = fgGetNode("/velocities/uBody-fps", true);
 }
 
@@ -143,7 +145,7 @@ FGAIManager::update(double dt) {
             tmgr->release((*ai_list_itr)->getID());
             --mNumAiModels;
             --(mNumAiTypeModels[(*ai_list_itr)->getType()]);
-            FGAIBase *base = *ai_list_itr;
+            FGAIBase *base = (*ai_list_itr).get();
             SGPropertyNode *props = base->_getProps();
 
             props->setBoolValue("valid", false);
@@ -160,7 +162,7 @@ FGAIManager::update(double dt) {
         } else {
             fetchUserState();
             if ((*ai_list_itr)->isa(FGAIBase::otThermal)) {
-                FGAIBase *base = *ai_list_itr;
+                FGAIBase *base = (*ai_list_itr).get();
                 processThermal((FGAIThermal*)base);
             } else {
                 (*ai_list_itr)->update(_dt);
@@ -173,7 +175,7 @@ FGAIManager::update(double dt) {
 }
 
 void
-FGAIManager::attach(SGSharedPtr<FGAIBase> model)
+FGAIManager::attach(FGAIBase *model)
 {
     //unsigned idx = mNumAiTypeModels[model->getType()];
     const char* typeString = model->getTypeString();
@@ -238,6 +240,7 @@ FGAIManager::fetchUserState( void ) {
     user_pitch     = user_pitch_node->getDoubleValue();
     user_yaw       = user_yaw_node->getDoubleValue();
     user_speed     = user_speed_node->getDoubleValue() * 0.592484;
+    user_roll      = user_roll_node->getDoubleValue();
     wind_from_east = wind_from_east_node->getDoubleValue();
     wind_from_north = wind_from_north_node->getDoubleValue();
 }
@@ -278,6 +281,12 @@ FGAIManager::processScenario( const string &filename ) {
            FGAITanker* tanker = new FGAITanker;
             tanker->readFromScenario(scEntry);
             attach(tanker);
+
+        } else if (type == "wingman") {
+            FGAIWingman* wingman = new FGAIWingman;
+            wingman->readFromScenario(scEntry);
+            attach(wingman);
+
     } else if (type == "aircraft") {
             FGAIAircraft* aircraft = new FGAIAircraft;
             aircraft->readFromScenario(scEntry);
@@ -326,7 +335,7 @@ FGAIManager::loadScenarioFile(const std::string& filename)
         SGPropertyNode_ptr root = new SGPropertyNode;
         readProperties(path.str(), root);
         return root;
-    } catch (const sg_exception &e) {
+    } catch (const sg_exception &) {
         SG_LOG(SG_GENERAL, SG_DEBUG, "Incorrect path specified for AI "
             "scenario: \"" << path.str() << "\"");
         return 0;
@@ -356,7 +365,7 @@ FGAIManager::getStartPosition(const string& id, const string& pid,
                         std::string pnumber = scEntry->getStringValue("pennant-number");
                         std::string name = scEntry->getStringValue("name");
                         if (type == "carrier" && (pnumber == id || name == id)) {
-                            SGSharedPtr<FGAICarrier> carrier = new FGAICarrier;
+                            osg::ref_ptr<FGAICarrier> carrier = new FGAICarrier;
                             carrier->readFromScenario(scEntry);
 
                             if (carrier->getParkPosition(pid, geodPos, hdng, uvw)) {
@@ -422,7 +431,7 @@ FGAIManager::calcCollision(double alt, double lat, double lon, double fuse_range
                 << " range " << range
                 << " alt " << tgt_alt
                 );
-            return *ai_list_itr;
+            return (*ai_list_itr).get();
         }
         ++ai_list_itr;
     }