]> git.mxchange.org Git - flightgear.git/blobdiff - src/MultiPlayer/mpmessages.hxx
AircraftModel hacking for package support.
[flightgear.git] / src / MultiPlayer / mpmessages.hxx
index 12655a0cedd60bab97b5173d09dfdcf5ccce50ac..38e7fea58a524e096e262a875b18d176af111ce0 100644 (file)
@@ -37,7 +37,6 @@
 
 #include <vector>
 
-#include <plib/sg.h>
 #include <simgear/compiler.h>
 #include <simgear/props/props.hxx>
 #include <simgear/math/SGMath.hxx>
@@ -108,13 +107,19 @@ struct T_PositionMsg {
     // angular acceleration wrt the earth centered frame measured in
     // the earth centered frame
     xdr_data_t angularAccel[3];
+    // Padding. The alignment is 8 bytes on x86_64 because there are
+    // 8-byte types in the message, so the size should be explicitly
+    // rounded out to a multiple of 8. Of course, it's a bad idea to
+    // put a C struct directly on the wire, but that's a fight for
+    // another day...
+    xdr_data_t pad;
 };
 
 struct FGPropertyData {
   unsigned id;
   
   // While the type isn't transmitted, it is needed for the destructor
-  SGPropertyNode::Type type;
+  simgear::props::Type type;
   union { 
     int int_value;
     float float_value;
@@ -122,7 +127,7 @@ struct FGPropertyData {
   }; 
   
   ~FGPropertyData() {
-    if ((type == SGPropertyNode::STRING) || (type == SGPropertyNode::UNSPECIFIED))
+    if ((type == simgear::props::STRING) || (type == simgear::props::UNSPECIFIED))
     {
       delete [] string_value;
     }
@@ -136,7 +141,7 @@ struct FGExternalMotionData {
   // simulation time when this packet was generated
   double time;
   // the artificial lag the client should stay behind the average
-  // simulation time to arrival time diference
+  // simulation time to arrival time difference
   // FIXME: should be some 'per model' instead of 'per packet' property
   double lag;
   
@@ -159,8 +164,22 @@ struct FGExternalMotionData {
   // the earth centered frame
   SGVec3f angularAccel;
   
-  // The set of properties recieved for this timeslot
+  // The set of properties received for this timeslot
   std::vector<FGPropertyData*> properties;
+
+  ~FGExternalMotionData()
+  {
+      std::vector<FGPropertyData*>::const_iterator propIt;
+      std::vector<FGPropertyData*>::const_iterator propItEnd;
+      propIt = properties.begin();
+      propItEnd = properties.end();
+
+      while (propIt != propItEnd)
+      {
+        delete *propIt;
+        propIt++;
+      }
+  }
 };
 
 #endif