1 // multiplayrxmgr.hxx -- routines for receiving multiplayer data
4 // Written by Duncan McCreanor, started February 2003.
5 // duncan.mccreanor@airservicesaustralia.com
7 // Copyright (C) 2003 Airservices Australia
9 // This program is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU General Public License as
11 // published by the Free Software Foundation; either version 2 of the
12 // License, or (at your option) any later version.
14 // This program is distributed in the hope that it will be useful, but
15 // WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 // General Public License for more details.
19 // You should have received a copy of the GNU General Public License
20 // along with this program; if not, write to the Free Software
21 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 #ifndef MULTIPLAYRXMGR_H
25 #define MULTIPLAYRXMGR_H
27 #define MULTIPLAYRXMGR_HID "$Id$"
30 #include "mpplayer.hxx"
31 #include "mpmessages.hxx"
40 #include <simgear/compiler.h>
42 #include <plib/netSocket.h>
44 // Maximum number of players that can exist at any time
45 #define MAX_PLAYERS 10
47 /****************************************************************
50 * Description: The multiplay rx manager is responsible for
51 * receiving and processing data from other players.
53 * Data from remote players is read from the network and processed
54 * via calling ProcessData. The models for the remote player are
55 * positioned onto the scene by calling Update.
57 *******************************************************************/
58 class FGMultiplayRxMgr {
67 /** Initialises the multiplayer receiver.
68 * @return True if initialisation succeeds, else false
72 /** Initiates processing of any data waiting at the rx socket.
74 void ProcessData(void);
76 /** Updates the model positions for the players
80 /** Closes the multiplayer manager. Stops any further player packet processing.
88 /** Holds the players that exist in the game */
89 MPPlayer *m_Player[MAX_PLAYERS];
91 /** Socket for receiving data from the server or another player */
92 netSocket *mDataRxSocket;
94 /** True if multiplay receive is initialised */
97 /** Receive address for multiplayer messages */
100 /** Receive port for multiplayer messages */
103 /** Local player's callsign */