]> git.mxchange.org Git - flightgear.git/blobdiff - src/MultiPlayer/multiplaymgr.hxx
Update Mac configure script for new ALUT scheme; support --with-alut-framework.
[flightgear.git] / src / MultiPlayer / multiplaymgr.hxx
index a8c7dae2417701d0794a7b0065747eaaeb9f2b66..96e56f2428a29f8e56f3313650be78b978029331 100644 (file)
@@ -20,7 +20,7 @@
 //
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 // $Id$
 //  
 #  include <config.h>
 #endif
 
-#include STL_STRING
-SG_USING_STD(string);
+#include <string>
+using std::string;
 #include <vector>
-SG_USING_STD(vector);
+using std::vector;
 
 #include <simgear/compiler.h>
 #include <simgear/props/props.hxx>
@@ -54,12 +54,17 @@ struct FGExternalMotionInfo;
 class FGMultiplayMgr 
 {
 public:
+
   struct IdPropertyList {
     unsigned id;
     const char* name;
+    simgear::props::Type type;
   };
-  static IdPropertyList sIdPropertyList[];
+  static const IdPropertyList sIdPropertyList[];
+  static const unsigned numProperties;
 
+  static const IdPropertyList* findProperty(unsigned id);
+  
   FGMultiplayMgr();
   ~FGMultiplayMgr();
   bool init(void);
@@ -67,21 +72,21 @@ public:
   // transmitter
   void SendMyPosition(const FGExternalMotionData& motionInfo);
   void SendTextMessage(const string &sMsgText);
-  void FillMsgHdr(T_MsgHdr *MsgHdr, int iMsgId, unsigned _len = 0u);
-  
   // receiver
-  void ProcessPosMsg(const char *Msg, netAddress & SenderAddress,
-                     unsigned len, long stamp);
-  void ProcessChatMsg(const char *Msg, netAddress & SenderAddress);
   void Update(void);
   
 private:
+  union MsgBuf;
   FGAIMultiplayer* addMultiplayer(const std::string& callsign,
                                   const std::string& modelName);
   FGAIMultiplayer* getMultiplayer(const std::string& callsign);
+  void FillMsgHdr(T_MsgHdr *MsgHdr, int iMsgId, unsigned _len = 0u);
+  void ProcessPosMsg(const MsgBuf& Msg, const netAddress& SenderAddress,
+                     long stamp);
+  void ProcessChatMsg(const MsgBuf& Msg, const netAddress& SenderAddress);
 
   /// maps from the callsign string to the FGAIMultiplayer
-  typedef std::map<std::string, SGSharedPtr<FGAIMultiplayer> > MultiPlayerMap;
+  typedef std::map<std::string, osg::ref_ptr<FGAIMultiplayer> > MultiPlayerMap;
   MultiPlayerMap mMultiPlayerMap;
 
   netSocket* mSocket;