|
Public Member Functions |
| CMortalNetworkImpl () |
virtual | ~CMortalNetworkImpl () |
bool | Start (const char *a_pcServerName) |
void | Stop () |
bool | IsConnectionAlive () |
void | Update () |
const char * | GetLastError () |
bool | IsMaster () |
const char * | GetRemoteUsername () |
void | SendMsg (const char *a_pcMsg) |
bool | IsMsgAvailable () |
const char * | GetMsg () |
bool | IsRemoteFighterAvailable (FighterEnum a_enFighter) |
FighterEnum | GetRemoteFighter () |
bool | IsRemoteSideReady () |
void | SendFighter (FighterEnum a_enFighter) |
void | SendReady () |
void | SendGameParams (int a_iGameSpeed, int a_iGameTime, int a_iHitPoints, int a_iBackgroundNumber) |
SGameParams | GetGameParams () |
bool | SynchStartRound () |
void | SendGameData (const char *a_pcGameData) |
const char * | GetLatestGameData () |
void | SendKeystroke (int a_iTime, int a_iKey, bool a_bPressed) |
bool | GetKeystroke (int &a_riOutTime, int &a_riOutKey, bool &a_rbPressed) |
void | SendGameTick (int a_iGameTick) |
int | GetGameTick () |
void | SendHurryup (int a_iHurryUpCode) |
int | GetHurryup () |
void | SendRoundOver (int a_iWhoWon, bool a_bGameOver) |
int | GetWhoWon () |
bool | IsRoundOver () |
bool | IsGameOver () |
Protected Types |
enum | TNetworkState { NS_DISCONNECTED,
NS_CHARACTER_SELECTION,
NS_IN_GAME
} |
Protected Member Functions |
void | SendRawData (char a_cID, const void *a_pData, int a_iLength) |
| All sent data must go through this method.
|
void | ReceiveMsg (void *a_pData, int a_iLength) |
void | ReceiveRemoteUserName (void *a_pData, int a_iLength) |
void | ReceiveGameData (void *a_pData, int a_iLength) |
void | ReceiveKeystroke (void *a_pData, int a_iLength) |
void | ReceiveFighter (void *a_pData, int a_iLength) |
void | ReceiveReady (void *a_pData, int a_iLength) |
void | ReceiveRoundOver (void *a_pData, int a_iLength) |
void | ReceiveGameTick (void *a_pData, int a_iLength) |
void | ReceiveHurryup (void *a_pData, int a_iLength) |
void | ReceiveRemoteFighterAvailable (void *a_pData, int a_iLength) |
void | ReceiveRemoteFighterQuery (void *a_pData, int a_iLength) |
void | ReceiveGameParams (void *a_pData, int a_iLength) |
Protected Attributes |
bool | m_bNetworkAvailable |
| Is the networking API initialized correctly?
|
TNetworkState | m_enState |
| The current state.
|
bool | m_bServer |
| We are the server side.
|
bool | m_bMaster |
| We are the master side. (Initially the server side).
|
TCPsocket | m_poSocket |
| The TCP/IP network socket.
|
SDLNet_SocketSet | m_poSocketSet |
| SDLNet construct for watching the socket.
|
char | m_acIncomingBuffer [2048] |
| Received data goes here.
|
int | m_iIncomingBufferSize |
| How much of the buffer is filled?
|
std::string | m_sLastError |
| The last error message from SDLNet.
|
TStringList | m_asMsgs |
| Incoming chatlines.
|
std::string | m_sRemoteUserName |
TIntList | m_aiAvailableRemoteFighters |
FighterEnum | m_enRemoteFighter |
bool | m_bRemoteReady |
SGameParams | m_oGameParams |
std::string | m_sLatestGameData |
TIntList | m_aiKeyTimes |
TIntList | m_aiKeystrokes |
TIntList | m_abKeystrokes |
bool | m_bRoundOver |
int | m_iWhoWon |
bool | m_bGameOver |
int | m_iGameTick |
int | m_iHurryupCode |
bool | m_bSynchQueryResponse |
I <version> <username> - Introduction sent both ways on connection. U <text> - Remote user's name M <text> - Incoming Msg text.
S - Ready for the next round (synch). G <text> - Update on the game backend data. T <number> <number> - Update the game time and game phase. K <number> <bool> - Key # up/down H <number> - Hurryup and other special messages O <number> <bool> - The round is over (who won, are there more rounds).
F <number> - I have switched to fighter X. R - I have chosen a fighter. Q <number> - Is fighter X available? A <number> - Fighter A is available. P <number> x3 - Game parameters