]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIMultiplayer.cxx
Merge branches 'jmt/xmlauto', 'luff/kln89' and 'curt/radial'
[flightgear.git] / src / AIModel / AIMultiplayer.cxx
old mode 100755 (executable)
new mode 100644 (file)
index b7b0f68..ab9cc5c
@@ -29,6 +29,8 @@
 
 #include "AIMultiplayer.hxx"
 
+#include <simgear/scene/util/SGNodeMasks.hxx>
+
 // #define SG_DEBUG SG_ALERT
 
 FGAIMultiplayer::FGAIMultiplayer() : FGAIBase(otMultiplayer) {
@@ -37,6 +39,9 @@ FGAIMultiplayer::FGAIMultiplayer() : FGAIBase(otMultiplayer) {
    mTimeOffsetSet = false;
    mAllowExtrapolation = true;
    mLagAdjustSystemSpeed = 10;
+
+   aip.getSceneGraph()->setNodeMask(~SG_NODEMASK_TERRAIN_BIT);
+
 }
 
 
@@ -44,6 +49,7 @@ FGAIMultiplayer::~FGAIMultiplayer() {
 }
 
 bool FGAIMultiplayer::init(bool search_in_AI_path) {
+    props->setStringValue("sim/model/path", model_path.c_str());
     //refuel_node = fgGetNode("systems/refuel/contact", true);
     isTanker = false; // do this until this property is
                       // passed over the net
@@ -96,6 +102,8 @@ void FGAIMultiplayer::unbind() {
 
 void FGAIMultiplayer::update(double dt)
 {
+  using namespace simgear;
+
   if (dt <= 0)
     return;
 
@@ -199,19 +207,19 @@ void FGAIMultiplayer::update(double dt)
         {
           //cout << "Found " << pIt->second->getPath() << ":";
           switch ((*firstPropIt)->type) {
-            case SGPropertyNode::INT:  
-            case SGPropertyNode::BOOL:
-            case SGPropertyNode::LONG:        
+            case props::INT:
+            case props::BOOL:
+            case props::LONG:
               pIt->second->setIntValue((*firstPropIt)->int_value);
               //cout << "Int: " << (*firstPropIt)->int_value << "\n";
               break;
-            case SGPropertyNode::FLOAT:
-            case SGPropertyNode::DOUBLE:
+            case props::FLOAT:
+            case props::DOUBLE:
               pIt->second->setFloatValue((*firstPropIt)->float_value);
               //cout << "Flo: " << (*firstPropIt)->float_value << "\n";
               break;
-            case SGPropertyNode::STRING:
-            case SGPropertyNode::UNSPECIFIED:
+            case props::STRING:
+            case props::UNSPECIFIED:
               pIt->second->setStringValue((*firstPropIt)->string_value);
               //cout << "Str: " << (*firstPropIt)->string_value << "\n";    
               break;
@@ -273,23 +281,23 @@ void FGAIMultiplayer::update(double dt)
             int ival;
             float val;
             switch ((*prevPropIt)->type) {
-              case SGPropertyNode::INT:   
-              case SGPropertyNode::BOOL:
-              case SGPropertyNode::LONG:        
+              case props::INT:
+              case props::BOOL:
+              case props::LONG:
                 ival = (int) (0.5+(1-tau)*((double) (*prevPropIt)->int_value) +
                   tau*((double) (*nextPropIt)->int_value));
                 pIt->second->setIntValue(ival);
                 //cout << "Int: " << ival << "\n";
                 break;
-              case SGPropertyNode::FLOAT:
-              case SGPropertyNode::DOUBLE:
+              case props::FLOAT:
+              case props::DOUBLE:
                 val = (1-tau)*(*prevPropIt)->float_value +
                   tau*(*nextPropIt)->float_value;
                 //cout << "Flo: " << val << "\n";
                 pIt->second->setFloatValue(val);
                 break;
-              case SGPropertyNode::STRING:
-              case SGPropertyNode::UNSPECIFIED:
+              case props::STRING:
+              case props::UNSPECIFIED:
                 //cout << "Str: " << (*nextPropIt)->string_value << "\n";
                 pIt->second->setStringValue((*nextPropIt)->string_value);
                 break;
@@ -386,19 +394,19 @@ void FGAIMultiplayer::update(double dt)
       if (pIt != mPropertyMap.end())
       {
         switch ((*firstPropIt)->type) {
-          case SGPropertyNode::INT:      
-          case SGPropertyNode::BOOL:
-          case SGPropertyNode::LONG:        
+          case props::INT:
+          case props::BOOL:
+          case props::LONG:
             pIt->second->setIntValue((*firstPropIt)->int_value);
             //cout << "Int: " << (*firstPropIt)->int_value << "\n";
             break;
-          case SGPropertyNode::FLOAT:
-          case SGPropertyNode::DOUBLE:
+          case props::FLOAT:
+          case props::DOUBLE:
             pIt->second->setFloatValue((*firstPropIt)->float_value);
             //cout << "Flo: " << (*firstPropIt)->float_value << "\n";
             break;
-          case SGPropertyNode::STRING:
-          case SGPropertyNode::UNSPECIFIED:
+          case props::STRING:
+          case props::UNSPECIFIED:
             pIt->second->setStringValue((*firstPropIt)->string_value);
             //cout << "Str: " << (*firstPropIt)->string_value << "\n";
             break;