Began transition to enum'd commands like chris suggested.

This commit is contained in:
Charles Lohr
2004-09-07 00:13:15 +00:00
parent d7835ae5ce
commit 40168bb551
2 changed files with 47 additions and 28 deletions
+28 -28
View File
@@ -127,7 +127,7 @@ void NetworkSyncManager::PostStartUp(const CString& ServerIP)
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1(2); //Hello Packet m_packet.Write1( NSCHello ); //Hello Packet
m_packet.Write1(NETPROTOCOLVERSION); m_packet.Write1(NETPROTOCOLVERSION);
@@ -161,7 +161,7 @@ void NetworkSyncManager::PostStartUp(const CString& ServerIP)
m_packet.ClearPacket(); m_packet.ClearPacket();
if (NetPlayerClient->ReadPack((char *)&m_packet, NETMAXBUFFERSIZE)<1) if (NetPlayerClient->ReadPack((char *)&m_packet, NETMAXBUFFERSIZE)<1)
dontExit=false; // Also allow exit if there is a problem on the socket dontExit=false; // Also allow exit if there is a problem on the socket
if (m_packet.Read1() == (128+2)) if (m_packet.Read1() == (NSServerOffset + NSCHello))
dontExit=false; dontExit=false;
//Only allow passing on handshake. //Only allow passing on handshake.
//Otherwise scoreboard updates and such will confuse us. //Otherwise scoreboard updates and such will confuse us.
@@ -250,7 +250,7 @@ bool NetworkSyncManager::Listen(unsigned short port)
void NetworkSyncManager::ReportNSSOnOff(int i) void NetworkSyncManager::ReportNSSOnOff(int i)
{ {
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1( 10 ); m_packet.Write1( NSCSMS );
m_packet.Write1( (uint8_t) i ); m_packet.Write1( (uint8_t) i );
NetPlayerClient->SendPack((char*)m_packet.Data, m_packet.Position); NetPlayerClient->SendPack((char*)m_packet.Data, m_packet.Position);
} }
@@ -267,7 +267,7 @@ void NetworkSyncManager::ReportScore(int playerID, int step, int score, int comb
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1(5); m_packet.Write1( NSCGSU );
uint8_t ctr = (uint8_t) (playerID * 16 + step - 1); uint8_t ctr = (uint8_t) (playerID * 16 + step - 1);
m_packet.Write1(ctr); m_packet.Write1(ctr);
@@ -314,7 +314,7 @@ void NetworkSyncManager::ReportSongOver()
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1(4); m_packet.Write1( NSCGON );
NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position); NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position);
return; return;
@@ -325,7 +325,7 @@ void NetworkSyncManager::ReportStyle()
if (!useSMserver) if (!useSMserver)
return; return;
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1(6); m_packet.Write1( NSCSU );
m_packet.Write1( (int8_t) GAMESTATE->GetNumPlayersEnabled() ); m_packet.Write1( (int8_t) GAMESTATE->GetNumPlayersEnabled() );
FOREACH_EnabledPlayer( pn ) FOREACH_EnabledPlayer( pn )
@@ -349,7 +349,7 @@ void NetworkSyncManager::StartRequest(short position)
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1( 3 ); m_packet.Write1( NSCGSR );
unsigned char ctr=0; unsigned char ctr=0;
@@ -454,7 +454,7 @@ void NetworkSyncManager::StartRequest(short position)
dontExit=false; // Also allow exit if there is a problem on the socket dontExit=false; // Also allow exit if there is a problem on the socket
// Only do if we are not the server, otherwise the sync // Only do if we are not the server, otherwise the sync
// gets hosed up due to non blocking mode. // gets hosed up due to non blocking mode.
if (m_packet.Read1() == (128+3)) if (m_packet.Read1() == (NSServerOffset + NSCGSR))
dontExit=false; dontExit=false;
//Only allow passing on Start request. //Only allow passing on Start request.
//Otherwise scoreboard updates and such will confuse us. //Otherwise scoreboard updates and such will confuse us.
@@ -512,26 +512,26 @@ void NetworkSyncManager::ProcessInput()
{ {
int command = m_packet.Read1(); int command = m_packet.Read1();
//Check to make sure command is valid from server //Check to make sure command is valid from server
if (command<128) if (command < NSServerOffset)
{ {
LOG->Trace("CMD (below 128) Invalid> %d",command); LOG->Trace("CMD (below 128) Invalid> %d",command);
break; break;
} }
command+=-128; command = command - NSServerOffset;
switch (command) switch (command)
{ {
case 0: //Ping packet responce case NSCPing: //Ping packet responce
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1(0); m_packet.Write1( NSCPingR );
NetPlayerClient->SendPack((char*)m_packet.Data,m_packet.Position); NetPlayerClient->SendPack((char*)m_packet.Data,m_packet.Position);
break; break;
case 1: //These are in responce to when/if we send packet 0's case NSCPingR: //These are in responce to when/if we send packet 0's
case 2: //This is already taken care of by the blocking code earlier on case NSCHello: //This is already taken care of by the blocking code earlier on
case 3: //This is taken care of by the blocking start code case NSCGSR: //This is taken care of by the blocking start code
break; break;
case 4: case NSCGON:
{ {
int PlayersInPack = m_packet.Read1(); int PlayersInPack = m_packet.Read1();
for (int i=0; i<PlayersInPack; ++i) for (int i=0; i<PlayersInPack; ++i)
@@ -550,7 +550,7 @@ void NetworkSyncManager::ProcessInput()
SCREENMAN->SendMessageToTopScreen( SM_GotEval ); SCREENMAN->SendMessageToTopScreen( SM_GotEval );
} }
break; break;
case 5: //Scoreboard Update case NSCGSU: //Scoreboard Update
{ //Ease scope { //Ease scope
int ColumnNumber=m_packet.Read1(); int ColumnNumber=m_packet.Read1();
int NumberPlayers=m_packet.Read1(); int NumberPlayers=m_packet.Read1();
@@ -558,17 +558,17 @@ void NetworkSyncManager::ProcessInput()
int i; int i;
switch (ColumnNumber) switch (ColumnNumber)
{ {
case 0: case NSSB_NAMES:
ColumnData = "Names\n"; ColumnData = "Names\n";
for (i=0; i<NumberPlayers; ++i) for (i=0; i<NumberPlayers; ++i)
ColumnData += m_PlayerNames[m_packet.Read1()] + "\n"; ColumnData += m_PlayerNames[m_packet.Read1()] + "\n";
break; break;
case 1: case NSSB_COMBO:
ColumnData = "Combo\n"; ColumnData = "Combo\n";
for (i=0; i<NumberPlayers; ++i) for (i=0; i<NumberPlayers; ++i)
ColumnData += ssprintf("%d\n",m_packet.Read2()); ColumnData += ssprintf("%d\n",m_packet.Read2());
break; break;
case 2: case NSSB_GRADE:
ColumnData = "Grade\n"; ColumnData = "Grade\n";
for (i=0;i<NumberPlayers;i++) for (i=0;i<NumberPlayers;i++)
switch (m_packet.Read1()) switch (m_packet.Read1())
@@ -596,13 +596,13 @@ void NetworkSyncManager::ProcessInput()
m_scoreboardchange[ColumnNumber]=true; m_scoreboardchange[ColumnNumber]=true;
} }
break; break;
case 6: //System message from server case NSCSU: //System message from server
{ {
CString SysMSG = m_packet.ReadNT(); CString SysMSG = m_packet.ReadNT();
SCREENMAN->SystemMessage( SysMSG ); SCREENMAN->SystemMessage( SysMSG );
} }
break; break;
case 7: //Chat message from server case NSCCM: //Chat message from server
{ {
m_sChatText += m_packet.ReadNT() + " \n "; m_sChatText += m_packet.ReadNT() + " \n ";
//10000 chars backlog should be more than enough //10000 chars backlog should be more than enough
@@ -610,7 +610,7 @@ void NetworkSyncManager::ProcessInput()
SCREENMAN->SendMessageToTopScreen( SM_AddToChat ); SCREENMAN->SendMessageToTopScreen( SM_AddToChat );
} }
break; break;
case 8: //Select Song/Play song case NSCRSG: //Select Song/Play song
{ {
m_iSelectMode = m_packet.Read1(); m_iSelectMode = m_packet.Read1();
m_sMainTitle = m_packet.ReadNT(); m_sMainTitle = m_packet.ReadNT();
@@ -619,7 +619,7 @@ void NetworkSyncManager::ProcessInput()
SCREENMAN->SendMessageToTopScreen( SM_ChangeSong ); SCREENMAN->SendMessageToTopScreen( SM_ChangeSong );
} }
break; break;
case 9: case NSCUUL:
{ {
/*int ServerMaxPlayers=*/m_packet.Read1(); /*int ServerMaxPlayers=*/m_packet.Read1();
int PlayersInThisPacket=m_packet.Read1(); int PlayersInThisPacket=m_packet.Read1();
@@ -639,7 +639,7 @@ void NetworkSyncManager::ProcessInput()
} }
} }
break; break;
case 10: case NSCSMS:
{ {
CString StyleName, GameName; CString StyleName, GameName;
GameName = m_packet.ReadNT(); GameName = m_packet.ReadNT();
@@ -667,7 +667,7 @@ bool NetworkSyncManager::ChangedScoreboard(int Column)
void NetworkSyncManager::SendChat(const CString& message) void NetworkSyncManager::SendChat(const CString& message)
{ {
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1( 7 ); m_packet.Write1( NSCCM );
m_packet.WriteNT( message ); m_packet.WriteNT( message );
NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position); NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position);
} }
@@ -675,7 +675,7 @@ void NetworkSyncManager::SendChat(const CString& message)
void NetworkSyncManager::ReportPlayerOptions() void NetworkSyncManager::ReportPlayerOptions()
{ {
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1( 11 ); m_packet.Write1( NSCUPOpts );
FOREACH_PlayerNumber (pn) FOREACH_PlayerNumber (pn)
m_packet.WriteNT( GAMESTATE->m_PlayerOptions[pn].GetString() ); m_packet.WriteNT( GAMESTATE->m_PlayerOptions[pn].GetString() );
NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position); NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position);
@@ -684,7 +684,7 @@ void NetworkSyncManager::ReportPlayerOptions()
void NetworkSyncManager::SelectUserSong() void NetworkSyncManager::SelectUserSong()
{ {
m_packet.ClearPacket(); m_packet.ClearPacket();
m_packet.Write1( 8 ); m_packet.Write1( NSCRSG );
m_packet.Write1( (uint8_t) m_iSelectMode ); m_packet.Write1( (uint8_t) m_iSelectMode );
m_packet.WriteNT( m_sMainTitle ); m_packet.WriteNT( m_sMainTitle );
m_packet.WriteNT( m_sArtist ); m_packet.WriteNT( m_sArtist );
+19
View File
@@ -13,6 +13,25 @@ const int NETPROTOCOLVERSION=1;
const int NETMAXBUFFERSIZE=1020; //1024 - 4 bytes for EzSockets const int NETMAXBUFFERSIZE=1020; //1024 - 4 bytes for EzSockets
const int NETNUMTAPSCORES=8; const int NETNUMTAPSCORES=8;
enum NSCommand
{
NSCPing = 0,
NSCPingR, //1
NSCHello, //2
NSCGSR, //3
NSCGON, //4
NSCGSU, //5
NSCSU, //6
NSCCM, //7
NSCRSG, //8
NSCUUL, //9
NSCSMS, //10
NSCUPOpts, //11
NUM_NS_COMMANDS
};
const NSCommand NSServerOffset = (NSCommand)128;
struct EndOfGame_PlayerData struct EndOfGame_PlayerData
{ {
int name; int name;