]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIManager.cxx
assign a unique module name to ai/mp embedded nasal (again): __model%u
[flightgear.git] / src / AIModel / AIManager.cxx
index 7ed3d9d7a3ebb2ff8e827e7205415f19d82f071e..b01a1ac104685249c79a5bba9089243eb930f11e 100644 (file)
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
+#include <simgear/math/sg_geodesy.hxx>
+#include <simgear/props/props_io.hxx>
+#include <simgear/structure/exception.hxx>
+
 #include <Main/globals.hxx>
 
 #include <Airports/simple.hxx>
@@ -35,9 +39,6 @@
 #include "AITanker.hxx"
 #include "AIWingman.hxx"
 
-#include <simgear/math/sg_geodesy.hxx>
-
-
 FGAIManager::FGAIManager() {
     _dt = 0.0;
     mNumAiModels = 0;
@@ -145,7 +146,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);
@@ -162,7 +163,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);
@@ -175,7 +176,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();
@@ -335,7 +336,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;
@@ -365,7 +366,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)) {
@@ -385,9 +386,8 @@ const FGAIBase *
 FGAIManager::calcCollision(double alt, double lat, double lon, double fuse_range)
 {
     // we specify tgt extent (ft) according to the AIObject type
-    double tgt_ht[]     = {0, 50 ,100, 250, 0, 100, 0, 0, 50, 50};
-    double tgt_length[] = {0, 100, 200, 750, 0, 50, 0, 0, 200, 100};
-
+    double tgt_ht[]     = {0, 50 ,100, 250, 0, 100, 0, 0, 50, 50, 50};
+    double tgt_length[] = {0, 100, 200, 750, 0, 50, 0, 0, 200, 100, 100};
     ai_list_iterator ai_list_itr = ai_list.begin();
     ai_list_iterator end = ai_list.end();
 
@@ -431,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;
     }