]> git.mxchange.org Git - flightgear.git/blobdiff - src/Network/net_gui.hxx
Merge branch 'next' into durk-atc
[flightgear.git] / src / Network / net_gui.hxx
index 80764091b965d38c8b8aa407d9515d58b906f4d4..1025d6acc07d603450a91fb092a625efcb129e94 100644 (file)
 #ifndef _NET_GUI_HXX
 #define _NET_GUI_HXX
 
+#include <simgear/misc/stdint.hxx>
 
-#ifndef __cplusplus                                                          
-# error This library requires C++
-#endif                                   
+// NOTE: this file defines an external interface structure.  Due to
+// variability between platforms and architectures, we only used fixed
+// length types here.  Specifically, integer types can vary in length.
+// I am not aware of any platforms that don't use 4 bytes for float
+// and 8 bytes for double.
 
 
-const int FG_NET_GUI_VERSION = 5;
+const uint32_t FG_NET_GUI_VERSION = 7;
 
 
 // Define a structure containing the top level flight dynamics model
@@ -33,11 +36,7 @@ public:
         FG_MAX_TANKS = 4
     };
 
-    int version;               // increment when data values change
-    int pad;                    // keep doubles 64-bit aligned for some
-                                // hardware platforms, such as the Sun
-                                // SPARC, which don't like misaligned
-                                // data
+    uint32_t version;          // increment when data values change
 
     // Positions
     double longitude;          // geodetic (radians)
@@ -53,18 +52,19 @@ public:
     float climb_rate;          // feet per second
 
     // Consumables
-    int num_tanks;             // Max number of fuel tanks
+    uint32_t num_tanks;                // Max number of fuel tanks
     float fuel_quantity[FG_MAX_TANKS];
 
     // Environment
-    time_t cur_time;            // current unix time
-    long int warp;              // offset in seconds to unix time
+    uint32_t cur_time;          // current unix time
+                                // FIXME: make this uint64_t before 2038
+    uint32_t warp;              // offset in seconds to unix time
     float ground_elev;          // ground elev (meters)
 
     // Approach
     float tuned_freq;           // currently tuned frequency
     float nav_radial;           // target nav radial
-    int in_range;               // tuned navaid is in range?
+    uint32_t in_range;           // tuned navaid is in range?
     float dist_nm;              // distance to tuned navaid in nautical miles
     float course_deviation_deg; // degrees off target course
     float gs_deviation_deg;     // degrees off target glide slope