____ _ __
/ __ )____ _____ | | / /___ ___________
/ __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/
/ /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ )
/_____/\____/____/ |__/|__/\__,_/_/ /____/
A futuristic real-time strategy game.
This file is part of Bos Wars.
(C) Copyright 2001-2007 by the Bos Wars and Stratagus Project.
Distributed under the "GNU General Public License"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include "stratagus.h"
#include "net_lowlevel.h"
#include "player.h"
#include "map.h"
#include "network.h"
#include "netconnect.h"
#include "interface.h"
#include "menus.h"
#include "settings.h"
#include "version.h"
Go to the source code of this file.
Defines | |
| #define | CLIENT_LIVE_BEAT 60 |
| #define | CLIENT_IS_DEAD 300 |
Functions | |
| static int | NetworkSendICMessage (unsigned long host, int port, CInitMessage *msg) |
| static void | NetworkSendRateLimitedClientMessage (CInitMessage *msg, unsigned long msecs) |
| int | NetworkSetupServerAddress (const std::string &serveraddr) |
| Menu: Setup the server IP. | |
| void | NetworkInitClientConnect (void) |
| Setup network connect state machine for clients. | |
| void | NetworkExitClientConnect (void) |
| Terminate network connect state machine for clients. | |
| void | NetworkDetachFromServer (void) |
| Menu Loop: Client: Send GoodBye to the server and detach. | |
| void | NetworkInitServerConnect (int openslots) |
| Setup network connect state machine for the server. | |
| void | NetworkExitServerConnect (void) |
| Terminate network connect state machine for the server. | |
| void | NetworkServerResyncClients (void) |
| Menu Loop: Server: Mark clients state to send stateinfo message. | |
| void | NetworkServerStartGame (void) |
| Server user has finally hit the start game button. | |
| void | NetworkGamePrepareGameSettings (void) |
| void | NetworkConnectSetupGame (void) |
| Assign Player slot, evaluate Setup state.. | |
| void | NetClientCheckLocalState (void) |
| void | NetworkProcessClientRequest (void) |
| Menu Loop: Send out client request messages. | |
| static void | KickDeadClient (int c) |
| void | NetworkProcessServerRequest (void) |
| Menu Loop: Send out server request messages. | |
| static void | ClientParseDetaching (const CInitMessage *msg) |
| static void | ClientParseConnecting (const CInitMessage *msg) |
| static bool | IsSafeMapName (const char *mapname) |
| static void | ClientParseConnected (const CInitMessage *msg) |
| static void | ClientParseMapInfo (const CInitMessage *msg) |
| static void | ClientParseSynced (const CInitMessage *msg) |
| static void | ClientParseAsync (const CInitMessage *msg) |
| static void | ClientParseGoAhead (const CInitMessage *msg) |
| static void | ClientParseStarted (const CInitMessage *msg) |
| static void | ClientParseAreYouThere (const CInitMessage *msg) |
| static void | ClientParseBadMap (const CInitMessage *msg) |
| static void | ServerParseHello (int h, const CInitMessage *msg) |
| static void | ServerParseResync (const int h) |
| static void | ServerParseWaiting (const int h) |
| static void | ServerParseMap (const int h) |
| static void | ServerParseState (const int h, const CInitMessage *msg) |
| static void | ServerParseGoodBye (const int h) |
| static void | ServerParseSeeYou (const int h) |
| static void | ServerParseIAmHere (const int h) |
| static int | CheckVersions (const CInitMessage *msg) |
| static void | NetworkParseMenuPacket (const CInitMessage *msg) |
| int | NetworkParseSetupEvent (const unsigned char *buf, int size) |
| Parse a network connect event. | |
Variables | |
| std::string | NetworkArg |
| Network command line argument. | |
| int | NetPlayers |
| How many network players. | |
| int | NetworkPort = NetworkDefaultPort |
| Local network port to use. | |
| int | HostsCount |
| Number of hosts. | |
| CNetworkHost | Hosts [PlayerMax] |
| Host and ports of all players. | |
| int | NetConnectRunning |
| Network menu: Setup mode active. | |
| NetworkState | NetStates [PlayerMax] |
| Network menu: Server: Client Host states. | |
| unsigned char | NetLocalState |
| Network menu: Local Server/Client connect state;. | |
| int | NetLocalHostsSlot |
| Network menu: Slot # in Hosts array of local client. | |
| int | NetLocalPlayerNumber |
| Player number of local client. | |
| static int | NetStateMsgCnt |
| Number of consecutive msgs of same type sent. | |
| static unsigned char | LastStateMsgType |
| Subtype of last InitConfig message sent. | |
| static unsigned long | NetLastPacketSent |
| Tick the last network packet was sent. | |
| static unsigned long | NetworkServerIP |
| Network Client: IP of server to join. | |
| std::string | NetworkMapName |
| Name of the map recieved with ICMMap. | |
| static int | NetworkServerPort = NetworkDefaultPort |
| Server network port to use. | |
| CServerSetup | ServerSetupState |
| Network menu: Multiplayer Server Menu selections state. | |
| CServerSetup | LocalSetupState |
| Network menu: Multiplayer Client Menu selections local state. | |
Definition in file netconnect.cpp.
| #define CLIENT_IS_DEAD 300 |
| #define CLIENT_LIVE_BEAT 60 |
| static int CheckVersions | ( | const CInitMessage * | msg | ) | [static] |
Check if the Stratagus version and Network Protocol match
| msg | message received |
Definition at line 1864 of file netconnect.cpp.
References _C_, DebugPrint, ICMEngineMismatch, ICMProtocolMismatch, CInitMessage::MapUID, MessageInitReply, NetLastHost, NetLastPort, NetworkProtocolFormatArgs, NetworkProtocolFormatString, NetworkProtocolVersion, NetworkSendICMessage(), NIPQUAD, CInitMessage::Stratagus, StratagusFormatArgs, StratagusFormatString, StratagusVersion, CInitMessage::SubType, CInitMessage::Type, and CInitMessage::Version.
Referenced by NetworkParseMenuPacket().
| static void ClientParseAreYouThere | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu AreYouThere keepalive packet and reply IAmHere.
| msg | message received |
Definition at line 1464 of file netconnect.cpp.
References ICMIAH, MessageInitHello, NetworkSendICMessage(), NetworkServerIP, NetworkServerPort, CInitMessage::SubType, and CInitMessage::Type.
Referenced by NetworkParseMenuPacket().
| static void ClientParseAsync | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client async state.
| msg | message received |
Definition at line 1383 of file netconnect.cpp.
References _C_, ccs_synced, DebugPrint, CNetworkHost::Host, CInitMessage::Hosts, ICMResync, LocalPlayerName, NetLocalHostsSlot, NetLocalState, NetStateMsgCnt, PlayerMax, CNetworkHost::PlyName, CNetworkHost::PlyNr, CNetworkHost::Port, CInitMessage::SubType, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ClientParseBadMap | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu Bad Map reply from server.
| msg | message received |
Definition at line 1478 of file netconnect.cpp.
References ICMSeeYou, MessageInitHello, NetConnectRunning, NetworkSendICMessage(), NetworkServerIP, NetworkServerPort, CInitMessage::SubType, and CInitMessage::Type.
Referenced by NetworkParseMenuPacket().
| static void ClientParseConnected | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client connected state.
| msg | message received |
Definition at line 1258 of file netconnect.cpp.
References _C_, ccs_badmap, ccs_mapinfo, DebugPrint, ICMMap, ICMWelcome, CMap::Info, IsSafeMapName(), LoadStratagusMapInfo(), Map, CInitMessage::MapPath, CMapInfo::MapUID, CInitMessage::MapUID, NetLocalState, NetStateMsgCnt, NetworkMapName, StratagusLibPath, CInitMessage::SubType, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ClientParseConnecting | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client connecting state.
| msg | message received |
Definition at line 1146 of file netconnect.cpp.
References _C_, ccs_connected, ccs_incompatibleengine, ccs_incompatiblenetwork, ccs_nofreeslots, DebugPrint, CNetworkHost::Host, CInitMessage::Hosts, ICMEngineMismatch, ICMGameFull, ICMProtocolMismatch, ICMWelcome, CInitMessage::Lag, LocalPlayerName, NetConnectRunning, NetLastHost, NetLastPort, NetLocalHostsSlot, NetLocalState, NetStateMsgCnt, NetworkLag, NetworkProtocolFormatArgs, NetworkProtocolFormatString, NetworkProtocolVersion, NetworkServerIP, NetworkServerPort, NetworkUpdates, NIPQUAD, PlayerMax, CNetworkHost::PlyName, CNetworkHost::PlyNr, CNetworkHost::Port, CInitMessage::Stratagus, StratagusFormatArgs, StratagusFormatString, StratagusVersion, CInitMessage::SubType, CInitMessage::u, CInitMessage::Updates, and CInitMessage::Version.
Referenced by NetworkParseMenuPacket().
| static void ClientParseDetaching | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client detaching state.
| msg | message received |
Definition at line 1126 of file netconnect.cpp.
References _C_, ccs_disconnected, DebugPrint, ICMGoodBye, NetLocalState, NetStateMsgCnt, and CInitMessage::SubType.
Referenced by NetworkParseMenuPacket().
| static void ClientParseGoAhead | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client final goahead waiting state.
| msg | message received |
Definition at line 1419 of file netconnect.cpp.
References _C_, ccs_started, DebugPrint, ICMConfig, ICMState, NetLocalState, NetStateMsgCnt, CInitMessage::State, CInitMessage::SubType, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ClientParseMapInfo | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client initial mapinfo state.
| msg | message received |
Definition at line 1298 of file netconnect.cpp.
References _C_, ccs_synced, DebugPrint, ICMState, NetLocalState, NetStateMsgCnt, CInitMessage::State, CInitMessage::SubType, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ClientParseStarted | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client final started state
| msg | message received |
Definition at line 1444 of file netconnect.cpp.
References _C_, DebugPrint, ICMGo, NetConnectRunning, and CInitMessage::SubType.
Referenced by NetworkParseMenuPacket().
| static void ClientParseSynced | ( | const CInitMessage * | msg | ) | [static] |
Parse a network menu packet in client synced state.
| msg | message received |
Definition at line 1319 of file netconnect.cpp.
References _C_, ccs_async, ccs_goahead, DebugPrint, CNetworkHost::Host, CInitMessage::Hosts, CInitMessage::HostsCount, ICMConfig, ICMState, LocalPlayerName, NetLastHost, NetLastPort, NetLocalPlayerNumber, NetLocalState, NetPlayers, NetStateMsgCnt, NIPQUAD, CNetworkHost::PlyName, CNetworkHost::PlyNr, CNetworkHost::Port, CInitMessage::State, CInitMessage::SubType, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static bool IsSafeMapName | ( | const char * | mapname | ) | [static] |
Check if the map name looks safe.
A map name looks safe when there are no special characters and no .. or // sequences. This way only real valid maps from the map directory will be loaded.
Definition at line 1224 of file netconnect.cpp.
References strncpy_s().
Referenced by ClientParseConnected().
| static void KickDeadClient | ( | int | c | ) | [static] |
Kick a client that doesn't answer to our packets
| c | The client (host slot) to kick |
Definition at line 1052 of file netconnect.cpp.
References _C_, ccs_async, ccs_unused, DebugPrint, CNetworkHost::Host, CServerSetup::LastFrame, PlayerMax, CNetworkHost::PlyNr, CNetworkHost::Port, CServerSetup::Ready, and _network_state_::State.
Referenced by NetworkProcessServerRequest(), ServerParseHello(), and ServerParseSeeYou().
| void NetClientCheckLocalState | ( | void | ) |
Callback from netconnect loop in Client-Sync state: Compare local state with server's information and force update when changes have occured.
Definition at line 901 of file netconnect.cpp.
References ccs_changed, NetLocalHostsSlot, NetLocalState, and CServerSetup::Ready.
Referenced by NetworkProcessClientRequest().
| void NetworkConnectSetupGame | ( | void | ) |
Assign Player slot, evaluate Setup state..
Assign player slots and names in a network game..
Definition at line 888 of file netconnect.cpp.
References CInitMessage::HostsCount, LocalPlayerName, Players, CNetworkHost::PlyNr, CPlayer::SetName(), and ThisPlayer.
Referenced by InitNetwork2().
| void NetworkDetachFromServer | ( | void | ) |
Menu Loop: Client: Send GoodBye to the server and detach.
Terminate and detach Network connect state machine for the client
Definition at line 435 of file netconnect.cpp.
References ccs_detaching, NetLocalState, and NetStateMsgCnt.
Referenced by tolua_stratagus_NetworkDetachFromServer00().
| void NetworkExitClientConnect | ( | void | ) |
Terminate network connect state machine for clients.
Terminate Network connect state machine for clients
Definition at line 426 of file netconnect.cpp.
References NetConnectRunning, and NetPlayers.
| void NetworkExitServerConnect | ( | void | ) |
Terminate network connect state machine for the server.
Terminate Network connect state machine for the server
Definition at line 472 of file netconnect.cpp.
References _C_, DebugPrint, ICMServerQuit, MessageInitReply, NetConnectRunning, NetworkInitServerConnect(), NetworkSendICMessage(), NIPQUAD, PlayerMax, CInitMessage::SubType, and CInitMessage::Type.
| void NetworkGamePrepareGameSettings | ( | void | ) |
Multiplayer network game final player type setup.
Definition at line 821 of file netconnect.cpp.
References _C_, Assert, CServerSetup::CompOpt, DebugPrint, GameSettings, CMap::Info, Map, Settings::NetGameType, NetPlayers, PlayerComputer, PlayerMax, PlayerNobody, PlayerPerson, CMapInfo::PlayerType, CNetworkHost::PlyNr, Settings::Presets, SettingsMultiPlayerGame, and SettingsPresets::Type.
Referenced by tolua_stratagus_NetworkGamePrepareGameSettings00().
| void NetworkInitClientConnect | ( | void | ) |
Setup network connect state machine for clients.
Setup Network connect state machine for clients
Definition at line 403 of file netconnect.cpp.
References ccs_connecting, CServerSetup::Clear(), GetTicks(), CNetworkHost::Host, ICMServerQuit, LastStateMsgType, NetConnectRunning, NetLastPacketSent, NetLocalState, NetStateMsgCnt, NetworkPort, NetworkServerPort, PlayerMax, CNetworkHost::PlyNr, and CNetworkHost::Port.
Referenced by tolua_stratagus_NetworkInitClientConnect00().
| void NetworkInitServerConnect | ( | int | openslots | ) |
Setup network connect state machine for the server.
Setup Network connect state machine for the server
Definition at line 444 of file netconnect.cpp.
References ccs_unused, CServerSetup::Clear(), CServerSetup::CompOpt, CNetworkHost::Host, LocalPlayerName, NetConnectRunning, PlayerMax, CNetworkHost::PlyName, CNetworkHost::PlyNr, CNetworkHost::Port, and _network_state_::State.
Referenced by NetworkExitServerConnect(), and tolua_stratagus_NetworkInitServerConnect00().
| static void NetworkParseMenuPacket | ( | const CInitMessage * | msg | ) | [static] |
Parse a Network menu packet.
| msg | message received |
Definition at line 1913 of file netconnect.cpp.
References _C_, ccs_async, ccs_badmap, ccs_changed, ccs_connected, ccs_connecting, ccs_detaching, ccs_disconnected, ccs_goahead, ccs_mapinfo, ccs_serverquits, ccs_started, ccs_synced, CheckVersions(), ClientParseAreYouThere(), ClientParseAsync(), ClientParseBadMap(), ClientParseConnected(), ClientParseConnecting(), ClientParseDetaching(), ClientParseGoAhead(), ClientParseMapInfo(), ClientParseStarted(), ClientParseSynced(), DebugPrint, FrameCounter, ICMAYT, ICMGoodBye, ICMHello, ICMIAH, ICMMap, ICMMapUidMismatch, ICMResync, ICMSeeYou, ICMServerQuit, ICMState, ICMWaiting, MessageInitReply, NetConnectRunning, NetLastHost, NetLastPort, NetLocalState, NIPQUAD, PlayerMax, ServerParseGoodBye(), ServerParseHello(), ServerParseIAmHere(), ServerParseMap(), ServerParseResync(), ServerParseSeeYou(), ServerParseState(), ServerParseWaiting(), CInitMessage::SubType, and CInitMessage::Type.
Referenced by NetworkParseSetupEvent().
| int NetworkParseSetupEvent | ( | const unsigned char * | buf, | |
| int | size | |||
| ) |
Parse a network connect event.
Parse a setup event. (Command type <= MessageInitEvent)
| buf | Packet received | |
| size | size of the received packet. |
Definition at line 2047 of file netconnect.cpp.
References ccs_started, CInitMessage::Deserialize(), IfaceStateMenu, InterfaceState, MessageInitConfig, NetConnectRunning, NetLocalState, NetworkParseMenuPacket(), CInitMessage::Size(), and CInitMessage::Type.
Referenced by NetworkEvent().
| void NetworkProcessClientRequest | ( | void | ) |
Menu Loop: Send out client request messages.
Client Menu Loop: Send out client request messages
Definition at line 912 of file netconnect.cpp.
References _C_, ccs_async, ccs_badmap, ccs_changed, ccs_connected, ccs_connecting, ccs_detaching, ccs_disconnected, ccs_goahead, ccs_mapinfo, ccs_started, ccs_synced, ccs_unreachable, ccs_usercanceled, DebugPrint, CInitMessage::Hosts, ICMConfig, ICMGo, ICMGoodBye, ICMHello, ICMMap, ICMMapUidMismatch, ICMResync, ICMSeeYou, ICMState, ICMWaiting, CMap::Info, LocalPlayerName, Map, CMapInfo::MapUID, CInitMessage::MapUID, MessageInitHello, NetClientCheckLocalState(), NetConnectRunning, NetLocalState, NetStateMsgCnt, NetworkSendICMessage(), NetworkSendRateLimitedClientMessage(), NetworkServerIP, NetworkServerPort, CNetworkHost::PlyName, CInitMessage::State, CInitMessage::SubType, CInitMessage::Type, and CInitMessage::u.
Referenced by MenuScreen::logic(), and tolua_stratagus_NetworkProcessClientRequest00().
| void NetworkProcessServerRequest | ( | void | ) |
Menu Loop: Send out server request messages.
Server Menu Loop: Send out server request messages
Definition at line 1076 of file netconnect.cpp.
References _C_, CLIENT_IS_DEAD, CLIENT_LIVE_BEAT, DebugPrint, FrameCounter, GameRunning, ICMAYT, KickDeadClient(), CServerSetup::LastFrame, CInitMessage::MapUID, MessageInitReply, NetworkSendICMessage(), NIPQUAD, PlayerMax, CInitMessage::SubType, and CInitMessage::Type.
Referenced by MenuScreen::logic().
| static int NetworkSendICMessage | ( | unsigned long | host, | |
| int | port, | |||
| CInitMessage * | msg | |||
| ) | [static] |
Send an InitConfig message across the Network
| host | Host to send to (network byte order). | |
| port | Port of host to send to (network byte order). | |
| msg | The message to send |
Definition at line 282 of file netconnect.cpp.
References CInitMessage::Lag, NetSendUDP(), NetworkFildes, NetworkLag, NetworkProtocolVersion, NetworkUpdates, CInitMessage::Serialize(), CInitMessage::Size(), CInitMessage::Stratagus, StratagusVersion, CInitMessage::Updates, and CInitMessage::Version.
Referenced by CheckVersions(), ClientParseAreYouThere(), ClientParseBadMap(), NetworkExitServerConnect(), NetworkProcessClientRequest(), NetworkProcessServerRequest(), NetworkSendRateLimitedClientMessage(), NetworkServerStartGame(), ServerParseGoodBye(), ServerParseHello(), ServerParseMap(), ServerParseResync(), ServerParseState(), and ServerParseWaiting().
| static void NetworkSendRateLimitedClientMessage | ( | CInitMessage * | msg, | |
| unsigned long | msecs | |||
| ) | [static] |
Send a message to the server, but only if the last packet was a while ago
| msg | The message to send | |
| msecs | microseconds to delay |
Definition at line 351 of file netconnect.cpp.
References _C_, DebugPrint, GetTicks(), LastStateMsgType, NetLastPacketSent, NetLocalState, NetStateMsgCnt, NetworkSendICMessage(), NetworkServerIP, NetworkServerPort, NIPQUAD, CInitMessage::SubType, and CInitMessage::Type.
Referenced by NetworkProcessClientRequest().
| void NetworkServerResyncClients | ( | void | ) |
Menu Loop: Server: Mark clients state to send stateinfo message.
Notify state change by menu user to connected clients
Definition at line 501 of file netconnect.cpp.
References ccs_async, ccs_synced, NetConnectRunning, PlayerMax, _network_state_::State, and CInitMessage::State.
Referenced by tolua_stratagus_NetworkServerResyncClients00().
| void NetworkServerStartGame | ( | void | ) |
Server user has finally hit the start game button.
Server user has finally hit the start game button
Definition at line 517 of file netconnect.cpp.
References _C_, Assert, CServerSetup::CompOpt, DebugPrint, CInitMessage::Deserialize(), CNetworkHost::Host, CInitMessage::Hosts, CInitMessage::HostsCount, ICMConfig, ICMGo, ICMState, CMap::Info, CServerSetup::LastFrame, Map, CMapInfo::MapUID, CInitMessage::MapUID, MessageInitHello, MessageInitReply, MyRand, NetLastHost, NetLastPort, NetLocalPlayerNumber, NetPlayers, NetRecvUDP(), NetSocketReady(), NetworkFildes, NetworkSendICMessage(), NIPQUAD, NoRandomPlacementMultiplayer, PlayerComputer, PlayerMax, PlayerPerson, CMapInfo::PlayerType, CNetworkHost::PlyName, CNetworkHost::PlyNr, CNetworkHost::Port, CInitMessage::Size(), CInitMessage::State, CInitMessage::SubType, CInitMessage::Type, and CInitMessage::u.
Referenced by tolua_stratagus_NetworkServerStartGame00().
| int NetworkSetupServerAddress | ( | const std::string & | serveraddr | ) |
Menu: Setup the server IP.
Setup the IP-Address of the network server to connect to
| serveraddr | the serveraddress the user has entered |
Definition at line 384 of file netconnect.cpp.
References _C_, DebugPrint, INADDR_NONE, NetResolveHost(), NetworkServerIP, and NIPQUAD.
Referenced by tolua_stratagus_NetworkSetupServerAddress00().
| static void ServerParseGoodBye | ( | const int | h | ) | [static] |
Parse the disconnect request of a client by sending out good bye
| h | slot number of host msg originates from |
Definition at line 1798 of file netconnect.cpp.
References _C_, ccs_detaching, DebugPrint, FrameCounter, ICMGoodBye, CServerSetup::LastFrame, MessageInitReply, _network_state_::MsgCnt, NetLastHost, NetLastPort, NetworkSendICMessage(), NIPQUAD, _network_state_::State, CInitMessage::State, CInitMessage::SubType, and CInitMessage::Type.
Referenced by NetworkParseMenuPacket().
| static void ServerParseHello | ( | int | h, | |
| const CInitMessage * | msg | |||
| ) | [static] |
Parse the initial 'Hello' message of new client that wants to join the game
| h | slot number of host msg originates from | |
| msg | message received |
Definition at line 1499 of file netconnect.cpp.
References _C_, ccs_connecting, CServerSetup::CompOpt, DebugPrint, FrameCounter, CNetworkHost::Host, CInitMessage::Hosts, ICMGameFull, ICMWelcome, KickDeadClient(), CServerSetup::LastFrame, LocalPlayerName, CInitMessage::MapUID, MessageInitReply, _network_state_::MsgCnt, NetLastHost, NetLastPort, NetworkSendICMessage(), NIPQUAD, PlayerMax, CNetworkHost::PlyName, CNetworkHost::PlyNr, CNetworkHost::Port, _network_state_::State, CInitMessage::SubType, CInitMessage::Type, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ServerParseIAmHere | ( | const int | h | ) | [static] |
Parse the 'I am Here' reply to the servers' 'Are you there' msg
| h | slot number of host msg originates from |
Definition at line 1851 of file netconnect.cpp.
References FrameCounter, and CServerSetup::LastFrame.
Referenced by NetworkParseMenuPacket().
| static void ServerParseMap | ( | const int | h | ) | [static] |
Parse client map info acknoledge message
| h | slot number of host msg originates from |
Definition at line 1703 of file netconnect.cpp.
References _C_, ccs_connected, ccs_mapinfo, DebugPrint, FrameCounter, ICMState, CMap::Info, CServerSetup::LastFrame, Map, CMapInfo::MapUID, CInitMessage::MapUID, MessageInitReply, _network_state_::MsgCnt, NetLastHost, NetLastPort, NetworkSendICMessage(), NIPQUAD, _network_state_::State, CInitMessage::State, CInitMessage::SubType, CInitMessage::Type, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ServerParseResync | ( | const int | h | ) | [static] |
Parse client resync request after client user has changed menu selection
| h | slot number of host msg originates from |
Definition at line 1570 of file netconnect.cpp.
References _C_, ccs_async, ccs_mapinfo, ccs_synced, DebugPrint, FrameCounter, CNetworkHost::Host, CInitMessage::Hosts, ICMResync, CServerSetup::LastFrame, MessageInitReply, _network_state_::MsgCnt, NetLastHost, NetLastPort, NetworkSendICMessage(), NIPQUAD, PlayerMax, CNetworkHost::PlyName, CNetworkHost::PlyNr, CNetworkHost::Port, _network_state_::State, CInitMessage::State, CInitMessage::SubType, CInitMessage::Type, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ServerParseSeeYou | ( | const int | h | ) | [static] |
Parse the final see you msg of a disconnecting client
| h | slot number of host msg originates from |
Definition at line 1832 of file netconnect.cpp.
References _C_, ccs_detaching, DebugPrint, KickDeadClient(), and CInitMessage::State.
Referenced by NetworkParseMenuPacket().
| static void ServerParseState | ( | const int | h, | |
| const CInitMessage * | msg | |||
| ) | [static] |
Parse locate state change notifiction or initial state info request of client
| h | slot number of host msg originates from | |
| msg | message received |
Definition at line 1744 of file netconnect.cpp.
References _C_, ccs_async, ccs_mapinfo, ccs_synced, DebugPrint, FrameCounter, ICMState, CMap::Info, CServerSetup::LastFrame, Map, CMapInfo::MapUID, CInitMessage::MapUID, MessageInitReply, _network_state_::MsgCnt, NetLastHost, NetLastPort, NetworkSendICMessage(), NIPQUAD, PlayerMax, CServerSetup::Ready, _network_state_::State, CInitMessage::State, CInitMessage::SubType, CInitMessage::Type, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| static void ServerParseWaiting | ( | const int | h | ) | [static] |
Parse client heart beat waiting message
| h | slot number of host msg originates from |
Definition at line 1627 of file netconnect.cpp.
References _C_, ccs_async, ccs_connected, ccs_connecting, ccs_mapinfo, ccs_synced, DebugPrint, FrameCounter, ICMMap, ICMState, CMap::Info, CServerSetup::LastFrame, Map, CInitMessage::MapPath, CMapInfo::MapUID, CInitMessage::MapUID, MessageInitReply, _network_state_::MsgCnt, NetLastHost, NetLastPort, NetworkMapName, NetworkSendICMessage(), NIPQUAD, PlayerMax, _network_state_::State, CInitMessage::State, strncpy_s(), CInitMessage::SubType, CInitMessage::Type, and CInitMessage::u.
Referenced by NetworkParseMenuPacket().
| CNetworkHost Hosts[PlayerMax] |
Host and ports of all players.
Host, port, and number of all players.
Definition at line 75 of file netconnect.cpp.
Referenced by InitNetwork2(), NetworkBroadcast(), NetworkEvent(), NetworkRecover(), NetworkRemovePlayer(), NetworkSendSelection(), NetworkSyncCommands(), tolua_get_stratagus_Hosts(), and tolua_set_stratagus_Hosts().
| int HostsCount |
Number of hosts.
Definition at line 74 of file netconnect.cpp.
Referenced by ExitNetwork1(), InitNetwork2(), NetworkBroadcast(), NetworkEvent(), NetworkRecover(), NetworkRemovePlayer(), NetworkSendSelection(), and NetworkSyncCommands().
unsigned char LastStateMsgType [static] |
Subtype of last InitConfig message sent.
Definition at line 84 of file netconnect.cpp.
Referenced by NetworkInitClientConnect(), and NetworkSendRateLimitedClientMessage().
Network menu: Multiplayer Client Menu selections local state.
Definition at line 98 of file netconnect.cpp.
Referenced by tolua_get_LocalSetupState(), and tolua_set_LocalSetupState().
Network menu: Setup mode active.
Definition at line 77 of file netconnect.cpp.
Referenced by ClientParseBadMap(), ClientParseConnecting(), ClientParseStarted(), MenuScreen::logic(), NetworkEvent(), NetworkExitClientConnect(), NetworkExitServerConnect(), NetworkInitClientConnect(), NetworkInitServerConnect(), NetworkParseMenuPacket(), NetworkParseSetupEvent(), NetworkProcessClientRequest(), NetworkServerResyncClients(), and StartMap().
unsigned long NetLastPacketSent [static] |
Tick the last network packet was sent.
Definition at line 85 of file netconnect.cpp.
Referenced by NetworkInitClientConnect(), and NetworkSendRateLimitedClientMessage().
Network menu: Slot # in Hosts array of local client.
Definition at line 80 of file netconnect.cpp.
Referenced by ClientParseAsync(), ClientParseConnecting(), NetClientCheckLocalState(), tolua_get_NetLocalHostsSlot(), and tolua_set_NetLocalHostsSlot().
Player number of local client.
Definition at line 81 of file netconnect.cpp.
Referenced by ApplyReplaySettings(), ClientParseSynced(), CreatePlayer(), and NetworkServerStartGame().
| unsigned char NetLocalState |
Network menu: Local Server/Client connect state;.
Network menu: Local Server/Client connect state.
Definition at line 79 of file netconnect.cpp.
Referenced by ClientParseAsync(), ClientParseConnected(), ClientParseConnecting(), ClientParseDetaching(), ClientParseGoAhead(), ClientParseMapInfo(), ClientParseSynced(), GetNetworkState(), NetClientCheckLocalState(), NetworkDetachFromServer(), NetworkInitClientConnect(), NetworkParseMenuPacket(), NetworkParseSetupEvent(), NetworkProcessClientRequest(), and NetworkSendRateLimitedClientMessage().
| int NetPlayers |
How many network players.
Network players.
Definition at line 66 of file netconnect.cpp.
Referenced by ApplyReplaySettings(), CleanReplayLog(), ClientParseSynced(), CreatePlayer(), ExitNetwork1(), NetworkExitClientConnect(), NetworkGamePrepareGameSettings(), and NetworkServerStartGame().
int NetStateMsgCnt [static] |
Number of consecutive msgs of same type sent.
Definition at line 83 of file netconnect.cpp.
Referenced by ClientParseAsync(), ClientParseConnected(), ClientParseConnecting(), ClientParseDetaching(), ClientParseGoAhead(), ClientParseMapInfo(), ClientParseSynced(), NetworkDetachFromServer(), NetworkInitClientConnect(), NetworkProcessClientRequest(), and NetworkSendRateLimitedClientMessage().
| NetworkState NetStates[PlayerMax] |
| std::string NetworkArg |
| std::string NetworkMapName |
Name of the map recieved with ICMMap.
Definition at line 87 of file netconnect.cpp.
Referenced by ClientParseConnected(), ServerParseWaiting(), tolua_get_NetworkMapName(), and tolua_set_NetworkMapName().
| int NetworkPort = NetworkDefaultPort |
Local network port to use.
Definition at line 67 of file netconnect.cpp.
Referenced by InitNetwork1(), main(), and NetworkInitClientConnect().
unsigned long NetworkServerIP [static] |
Network Client: IP of server to join.
Definition at line 86 of file netconnect.cpp.
Referenced by ClientParseAreYouThere(), ClientParseBadMap(), ClientParseConnecting(), NetworkProcessClientRequest(), NetworkSendRateLimitedClientMessage(), and NetworkSetupServerAddress().
int NetworkServerPort = NetworkDefaultPort [static] |
Server network port to use.
FIXME ARI: The following is a kludge to have some way to override the default port on the server to connect to. Should be selectable by advanced network menus. For now just specify with the -P port command line arg...
Definition at line 92 of file netconnect.cpp.
Referenced by ClientParseAreYouThere(), ClientParseBadMap(), ClientParseConnecting(), NetworkInitClientConnect(), NetworkProcessClientRequest(), and NetworkSendRateLimitedClientMessage().
Network menu: Multiplayer Server Menu selections state.
Client and server selection state for Multiplayer clients
Definition at line 97 of file netconnect.cpp.
Referenced by tolua_get_ServerSetupState(), and tolua_set_ServerSetupState().
1.5.6