From 40168bb551d86f91aba5cf55b075b305915bd422 Mon Sep 17 00:00:00 2001 From: Charles Lohr Date: Tue, 7 Sep 2004 00:13:15 +0000 Subject: [PATCH] Began transition to enum'd commands like chris suggested. --- stepmania/src/NetworkSyncManager.cpp | 56 ++++++++++++++-------------- stepmania/src/NetworkSyncManager.h | 19 ++++++++++ 2 files changed, 47 insertions(+), 28 deletions(-) diff --git a/stepmania/src/NetworkSyncManager.cpp b/stepmania/src/NetworkSyncManager.cpp index 9d6855b957..732c2e85ea 100644 --- a/stepmania/src/NetworkSyncManager.cpp +++ b/stepmania/src/NetworkSyncManager.cpp @@ -127,7 +127,7 @@ void NetworkSyncManager::PostStartUp(const CString& ServerIP) m_packet.ClearPacket(); - m_packet.Write1(2); //Hello Packet + m_packet.Write1( NSCHello ); //Hello Packet m_packet.Write1(NETPROTOCOLVERSION); @@ -161,7 +161,7 @@ void NetworkSyncManager::PostStartUp(const CString& ServerIP) m_packet.ClearPacket(); if (NetPlayerClient->ReadPack((char *)&m_packet, NETMAXBUFFERSIZE)<1) 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; //Only allow passing on handshake. //Otherwise scoreboard updates and such will confuse us. @@ -250,7 +250,7 @@ bool NetworkSyncManager::Listen(unsigned short port) void NetworkSyncManager::ReportNSSOnOff(int i) { m_packet.ClearPacket(); - m_packet.Write1( 10 ); + m_packet.Write1( NSCSMS ); m_packet.Write1( (uint8_t) i ); 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.Write1(5); + m_packet.Write1( NSCGSU ); uint8_t ctr = (uint8_t) (playerID * 16 + step - 1); m_packet.Write1(ctr); @@ -314,7 +314,7 @@ void NetworkSyncManager::ReportSongOver() m_packet.ClearPacket(); - m_packet.Write1(4); + m_packet.Write1( NSCGON ); NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position); return; @@ -325,7 +325,7 @@ void NetworkSyncManager::ReportStyle() if (!useSMserver) return; m_packet.ClearPacket(); - m_packet.Write1(6); + m_packet.Write1( NSCSU ); m_packet.Write1( (int8_t) GAMESTATE->GetNumPlayersEnabled() ); FOREACH_EnabledPlayer( pn ) @@ -349,7 +349,7 @@ void NetworkSyncManager::StartRequest(short position) m_packet.ClearPacket(); - m_packet.Write1( 3 ); + m_packet.Write1( NSCGSR ); 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 // Only do if we are not the server, otherwise the sync // gets hosed up due to non blocking mode. - if (m_packet.Read1() == (128+3)) + if (m_packet.Read1() == (NSServerOffset + NSCGSR)) dontExit=false; //Only allow passing on Start request. //Otherwise scoreboard updates and such will confuse us. @@ -512,26 +512,26 @@ void NetworkSyncManager::ProcessInput() { int command = m_packet.Read1(); //Check to make sure command is valid from server - if (command<128) + if (command < NSServerOffset) { LOG->Trace("CMD (below 128) Invalid> %d",command); break; } - command+=-128; + command = command - NSServerOffset; switch (command) { - case 0: //Ping packet responce + case NSCPing: //Ping packet responce m_packet.ClearPacket(); - m_packet.Write1(0); + m_packet.Write1( NSCPingR ); NetPlayerClient->SendPack((char*)m_packet.Data,m_packet.Position); break; - case 1: //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 3: //This is taken care of by the blocking start code + case NSCPingR: //These are in responce to when/if we send packet 0's + case NSCHello: //This is already taken care of by the blocking code earlier on + case NSCGSR: //This is taken care of by the blocking start code break; - case 4: + case NSCGON: { int PlayersInPack = m_packet.Read1(); for (int i=0; iSendMessageToTopScreen( SM_GotEval ); } break; - case 5: //Scoreboard Update + case NSCGSU: //Scoreboard Update { //Ease scope int ColumnNumber=m_packet.Read1(); int NumberPlayers=m_packet.Read1(); @@ -558,17 +558,17 @@ void NetworkSyncManager::ProcessInput() int i; switch (ColumnNumber) { - case 0: + case NSSB_NAMES: ColumnData = "Names\n"; for (i=0; iSystemMessage( SysMSG ); } break; - case 7: //Chat message from server + case NSCCM: //Chat message from server { m_sChatText += m_packet.ReadNT() + " \n "; //10000 chars backlog should be more than enough @@ -610,7 +610,7 @@ void NetworkSyncManager::ProcessInput() SCREENMAN->SendMessageToTopScreen( SM_AddToChat ); } break; - case 8: //Select Song/Play song + case NSCRSG: //Select Song/Play song { m_iSelectMode = m_packet.Read1(); m_sMainTitle = m_packet.ReadNT(); @@ -619,7 +619,7 @@ void NetworkSyncManager::ProcessInput() SCREENMAN->SendMessageToTopScreen( SM_ChangeSong ); } break; - case 9: + case NSCUUL: { /*int ServerMaxPlayers=*/m_packet.Read1(); int PlayersInThisPacket=m_packet.Read1(); @@ -639,7 +639,7 @@ void NetworkSyncManager::ProcessInput() } } break; - case 10: + case NSCSMS: { CString StyleName, GameName; GameName = m_packet.ReadNT(); @@ -667,7 +667,7 @@ bool NetworkSyncManager::ChangedScoreboard(int Column) void NetworkSyncManager::SendChat(const CString& message) { m_packet.ClearPacket(); - m_packet.Write1( 7 ); + m_packet.Write1( NSCCM ); m_packet.WriteNT( message ); NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position); } @@ -675,7 +675,7 @@ void NetworkSyncManager::SendChat(const CString& message) void NetworkSyncManager::ReportPlayerOptions() { m_packet.ClearPacket(); - m_packet.Write1( 11 ); + m_packet.Write1( NSCUPOpts ); FOREACH_PlayerNumber (pn) m_packet.WriteNT( GAMESTATE->m_PlayerOptions[pn].GetString() ); NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position); @@ -684,7 +684,7 @@ void NetworkSyncManager::ReportPlayerOptions() void NetworkSyncManager::SelectUserSong() { m_packet.ClearPacket(); - m_packet.Write1( 8 ); + m_packet.Write1( NSCRSG ); m_packet.Write1( (uint8_t) m_iSelectMode ); m_packet.WriteNT( m_sMainTitle ); m_packet.WriteNT( m_sArtist ); diff --git a/stepmania/src/NetworkSyncManager.h b/stepmania/src/NetworkSyncManager.h index 9e38d70bff..c0c18c1ca0 100644 --- a/stepmania/src/NetworkSyncManager.h +++ b/stepmania/src/NetworkSyncManager.h @@ -13,6 +13,25 @@ const int NETPROTOCOLVERSION=1; const int NETMAXBUFFERSIZE=1020; //1024 - 4 bytes for EzSockets 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 { int name;