Cleanup.
This commit is contained in:
@@ -9,7 +9,7 @@ NetworkSyncManager *NSMAN;
|
|||||||
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld ) { useSMserver=false; }
|
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld ) { useSMserver=false; }
|
||||||
NetworkSyncManager::~NetworkSyncManager () { }
|
NetworkSyncManager::~NetworkSyncManager () { }
|
||||||
void NetworkSyncManager::CloseConnection() { }
|
void NetworkSyncManager::CloseConnection() { }
|
||||||
void NetworkSyncManager::PostStartUp( CString ServerIP ) { }
|
void NetworkSyncManager::PostStartUp(const CString& ServerIP ) { }
|
||||||
bool NetworkSyncManager::Connect(const CString& addy, unsigned short port) { return false; }
|
bool NetworkSyncManager::Connect(const CString& addy, unsigned short port) { return false; }
|
||||||
void NetworkSyncManager::ReportNSSOnOff(int i) { }
|
void NetworkSyncManager::ReportNSSOnOff(int i) { }
|
||||||
void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { }
|
void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { }
|
||||||
@@ -20,7 +20,7 @@ void NetworkSyncManager::StartRequest(short position) { }
|
|||||||
void NetworkSyncManager::DisplayStartupStatus() { }
|
void NetworkSyncManager::DisplayStartupStatus() { }
|
||||||
void NetworkSyncManager::Update( float fDeltaTime ) { }
|
void NetworkSyncManager::Update( float fDeltaTime ) { }
|
||||||
bool NetworkSyncManager::ChangedScoreboard(int Column) { return false; }
|
bool NetworkSyncManager::ChangedScoreboard(int Column) { return false; }
|
||||||
void NetworkSyncManager::SendChat( CString message ) { }
|
void NetworkSyncManager::SendChat(const CString& message) { }
|
||||||
void NetworkSyncManager::SelectUserSong() { }
|
void NetworkSyncManager::SelectUserSong() { }
|
||||||
#else
|
#else
|
||||||
#include "ezsockets.h"
|
#include "ezsockets.h"
|
||||||
@@ -47,14 +47,15 @@ const ScreenMessage SM_GotEval = ScreenMessage(SM_User+6);
|
|||||||
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld )
|
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld )
|
||||||
{
|
{
|
||||||
LANserver = NULL; //So we know if it has been created yet
|
LANserver = NULL; //So we know if it has been created yet
|
||||||
if( GetCommandlineArgument( "runserver" )) {
|
if( GetCommandlineArgument( "runserver" ))
|
||||||
|
{
|
||||||
ld->SetText("Initilizing server...");
|
ld->SetText("Initilizing server...");
|
||||||
LANserver = new StepManiaLanServer;
|
LANserver = new StepManiaLanServer;
|
||||||
isLanServer = true;
|
isLanServer = true;
|
||||||
GetCommandlineArgument( "runserver", &LANserver->servername );
|
GetCommandlineArgument( "runserver", &LANserver->servername );
|
||||||
} else {
|
|
||||||
isLanServer = false;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
isLanServer = false;
|
||||||
|
|
||||||
ld->SetText("Initilizing Client Network...");
|
ld->SetText("Initilizing Client Network...");
|
||||||
NetPlayerClient = new EzSockets;
|
NetPlayerClient = new EzSockets;
|
||||||
@@ -77,7 +78,8 @@ NetworkSyncManager::~NetworkSyncManager ()
|
|||||||
NetPlayerClient->close();
|
NetPlayerClient->close();
|
||||||
delete NetPlayerClient;
|
delete NetPlayerClient;
|
||||||
|
|
||||||
if( isLanServer ) {
|
if( isLanServer )
|
||||||
|
{
|
||||||
LANserver->ServerStop();
|
LANserver->ServerStop();
|
||||||
delete LANserver;
|
delete LANserver;
|
||||||
}
|
}
|
||||||
@@ -93,7 +95,7 @@ void NetworkSyncManager::CloseConnection()
|
|||||||
NetPlayerClient->close();
|
NetPlayerClient->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkSyncManager::PostStartUp(CString ServerIP)
|
void NetworkSyncManager::PostStartUp(const CString& ServerIP)
|
||||||
{
|
{
|
||||||
CloseConnection();
|
CloseConnection();
|
||||||
if( ServerIP!="LISTEN" )
|
if( ServerIP!="LISTEN" )
|
||||||
@@ -105,7 +107,9 @@ void NetworkSyncManager::PostStartUp(CString ServerIP)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if( !Listen(8765) )
|
if( !Listen(8765) )
|
||||||
{
|
{
|
||||||
m_startupStatus = 2;
|
m_startupStatus = 2;
|
||||||
@@ -136,11 +140,10 @@ void NetworkSyncManager::PostStartUp(CString ServerIP)
|
|||||||
bool dontExit = true;
|
bool dontExit = true;
|
||||||
|
|
||||||
//Don't block if the server is running
|
//Don't block if the server is running
|
||||||
if( isLanServer ) {
|
if( isLanServer )
|
||||||
NetPlayerClient->blocking = false;
|
NetPlayerClient->blocking = false;
|
||||||
} else {
|
else
|
||||||
NetPlayerClient->blocking = true;
|
NetPlayerClient->blocking = true;
|
||||||
}
|
|
||||||
|
|
||||||
//Following packet must get through, so we block for it.
|
//Following packet must get through, so we block for it.
|
||||||
//If we are serving we do not block for this.
|
//If we are serving we do not block for this.
|
||||||
@@ -148,9 +151,8 @@ void NetworkSyncManager::PostStartUp(CString ServerIP)
|
|||||||
|
|
||||||
//If we are serving, do this so we properly connect
|
//If we are serving, do this so we properly connect
|
||||||
//to the server.
|
//to the server.
|
||||||
if( isLanServer ) {
|
if( isLanServer )
|
||||||
LANserver->ServerUpdate();
|
LANserver->ServerUpdate();
|
||||||
}
|
|
||||||
|
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
|
|
||||||
@@ -178,7 +180,8 @@ void NetworkSyncManager::StartUp()
|
|||||||
CString ServerIP;
|
CString ServerIP;
|
||||||
|
|
||||||
if( isLanServer )
|
if( isLanServer )
|
||||||
if (LANserver->ServerStart() == false) {
|
if (!LANserver->ServerStart())
|
||||||
|
{
|
||||||
//If the server happens to not start when told,
|
//If the server happens to not start when told,
|
||||||
//Print to log and release the memory where the
|
//Print to log and release the memory where the
|
||||||
//server was held.
|
//server was held.
|
||||||
@@ -374,11 +377,14 @@ void NetworkSyncManager::StartRequest(short position)
|
|||||||
ctr = char(position*16);
|
ctr = char(position*16);
|
||||||
m_packet.Write1(ctr);
|
m_packet.Write1(ctr);
|
||||||
|
|
||||||
if (GAMESTATE->m_pCurSong !=NULL) {
|
if (GAMESTATE->m_pCurSong != NULL)
|
||||||
|
{
|
||||||
m_packet.WriteNT(GAMESTATE->m_pCurSong->m_sMainTitle);
|
m_packet.WriteNT(GAMESTATE->m_pCurSong->m_sMainTitle);
|
||||||
m_packet.WriteNT(GAMESTATE->m_pCurSong->m_sSubTitle);
|
m_packet.WriteNT(GAMESTATE->m_pCurSong->m_sSubTitle);
|
||||||
m_packet.WriteNT(GAMESTATE->m_pCurSong->m_sArtist);
|
m_packet.WriteNT(GAMESTATE->m_pCurSong->m_sArtist);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
m_packet.WriteNT("");
|
m_packet.WriteNT("");
|
||||||
m_packet.WriteNT("");
|
m_packet.WriteNT("");
|
||||||
m_packet.WriteNT("");
|
m_packet.WriteNT("");
|
||||||
@@ -395,20 +401,20 @@ void NetworkSyncManager::StartRequest(short position)
|
|||||||
int players=0;
|
int players=0;
|
||||||
FOREACH_PlayerNumber (p)
|
FOREACH_PlayerNumber (p)
|
||||||
{
|
{
|
||||||
players++;
|
++players;
|
||||||
m_packet.WriteNT(GAMESTATE->m_PlayerOptions[p].GetString());
|
m_packet.WriteNT(GAMESTATE->m_PlayerOptions[p].GetString());
|
||||||
}
|
}
|
||||||
for (int i=0;i<2-players;i++)
|
for (int i=0; i<2-players; ++i)
|
||||||
m_packet.WriteNT(""); //Write a NULL if no player
|
m_packet.WriteNT(""); //Write a NULL if no player
|
||||||
|
|
||||||
//This needs to be reset before ScreenEvaluation could possibly be called
|
//This needs to be reset before ScreenEvaluation could possibly be called
|
||||||
for (int i=0; i< NETMAXPLAYERS; i++)
|
for (int i=0; i<NETMAXPLAYERS; ++i)
|
||||||
{
|
{
|
||||||
m_EvalPlayerData[i].name=0;
|
m_EvalPlayerData[i].name=0;
|
||||||
m_EvalPlayerData[i].grade=0;
|
m_EvalPlayerData[i].grade=0;
|
||||||
m_EvalPlayerData[i].score=0;
|
m_EvalPlayerData[i].score=0;
|
||||||
m_EvalPlayerData[i].difficulty=(Difficulty)0;
|
m_EvalPlayerData[i].difficulty=(Difficulty)0;
|
||||||
for (int j=0;j<NETNUMTAPSCORES;j++)
|
for (int j=0; j<NETNUMTAPSCORES; ++j)
|
||||||
m_EvalPlayerData[i].tapScores[j] = 0;
|
m_EvalPlayerData[i].tapScores[j] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -419,11 +425,10 @@ void NetworkSyncManager::StartRequest(short position)
|
|||||||
bool dontExit=true;
|
bool dontExit=true;
|
||||||
|
|
||||||
//Don't block if we are server.
|
//Don't block if we are server.
|
||||||
if (isLanServer) {
|
if (isLanServer)
|
||||||
NetPlayerClient->blocking=false;
|
NetPlayerClient->blocking=false;
|
||||||
} else {
|
else
|
||||||
NetPlayerClient->blocking=true;
|
NetPlayerClient->blocking=true;
|
||||||
}
|
|
||||||
|
|
||||||
//The following packet HAS to get through, so we turn blocking on for it as well
|
//The following packet HAS to get through, so we turn blocking on for it as well
|
||||||
//Don't block if we are serving
|
//Don't block if we are serving
|
||||||
@@ -442,7 +447,7 @@ void NetworkSyncManager::StartRequest(short position)
|
|||||||
|
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
if (NetPlayerClient->ReadPack((char *)&m_packet, NETMAXBUFFERSIZE)<1)
|
if (NetPlayerClient->ReadPack((char *)&m_packet, NETMAXBUFFERSIZE)<1)
|
||||||
if (isLanServer == false)
|
if (!isLanServer)
|
||||||
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.
|
||||||
@@ -476,9 +481,8 @@ void NetworkSyncManager::DisplayStartupStatus()
|
|||||||
|
|
||||||
void NetworkSyncManager::Update(float fDeltaTime)
|
void NetworkSyncManager::Update(float fDeltaTime)
|
||||||
{
|
{
|
||||||
if (isLanServer) {
|
if (isLanServer)
|
||||||
LANserver->ServerUpdate();
|
LANserver->ServerUpdate();
|
||||||
}
|
|
||||||
|
|
||||||
if (useSMserver)
|
if (useSMserver)
|
||||||
ProcessInput();
|
ProcessInput();
|
||||||
@@ -513,7 +517,8 @@ void NetworkSyncManager::ProcessInput()
|
|||||||
|
|
||||||
command+=-128;
|
command+=-128;
|
||||||
|
|
||||||
switch (command) {
|
switch (command)
|
||||||
|
{
|
||||||
case 0: //Ping packet responce
|
case 0: //Ping packet responce
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
m_packet.Write1(0);
|
m_packet.Write1(0);
|
||||||
@@ -526,18 +531,18 @@ void NetworkSyncManager::ProcessInput()
|
|||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
int PlayersInPack = m_packet.Read1();
|
int PlayersInPack = m_packet.Read1();
|
||||||
for (int i=0;i<PlayersInPack;i++)
|
for (int i=0; i<PlayersInPack; ++i)
|
||||||
m_EvalPlayerData[i].name = m_packet.Read1();
|
m_EvalPlayerData[i].name = m_packet.Read1();
|
||||||
for (int i=0;i<PlayersInPack;i++)
|
for (int i=0; i<PlayersInPack; ++i)
|
||||||
m_EvalPlayerData[i].score = m_packet.Read4();
|
m_EvalPlayerData[i].score = m_packet.Read4();
|
||||||
for (int i=0;i<PlayersInPack;i++)
|
for (int i=0; i<PlayersInPack; ++i)
|
||||||
m_EvalPlayerData[i].grade = m_packet.Read1();
|
m_EvalPlayerData[i].grade = m_packet.Read1();
|
||||||
for (int i=0;i<PlayersInPack;i++)
|
for (int i=0; i<PlayersInPack; ++i)
|
||||||
m_EvalPlayerData[i].difficulty = (Difficulty) m_packet.Read1();
|
m_EvalPlayerData[i].difficulty = (Difficulty) m_packet.Read1();
|
||||||
for (int j=0;j<NETNUMTAPSCORES;j++)
|
for (int j=0; j<NETNUMTAPSCORES; ++j)
|
||||||
for (int i=0;i<PlayersInPack; i++)
|
for (int i=0; i<PlayersInPack; ++i)
|
||||||
m_EvalPlayerData[i].tapScores[j] = m_packet.Read2();
|
m_EvalPlayerData[i].tapScores[j] = m_packet.Read2();
|
||||||
for (int i=0;i<PlayersInPack;i++)
|
for (int i=0; i<PlayersInPack; ++i)
|
||||||
m_EvalPlayerData[i].playerOptions = m_packet.ReadNT();
|
m_EvalPlayerData[i].playerOptions = m_packet.ReadNT();
|
||||||
SCREENMAN->SendMessageToTopScreen( SM_GotEval );
|
SCREENMAN->SendMessageToTopScreen( SM_GotEval );
|
||||||
}
|
}
|
||||||
@@ -548,21 +553,23 @@ void NetworkSyncManager::ProcessInput()
|
|||||||
int NumberPlayers=m_packet.Read1();
|
int NumberPlayers=m_packet.Read1();
|
||||||
CString ColumnData;
|
CString ColumnData;
|
||||||
int i;
|
int i;
|
||||||
switch (ColumnNumber) {
|
switch (ColumnNumber)
|
||||||
|
{
|
||||||
case 0:
|
case 0:
|
||||||
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 1:
|
||||||
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 2:
|
||||||
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())
|
||||||
|
{
|
||||||
case 0:
|
case 0:
|
||||||
ColumnData+="AAAA\n"; break;
|
ColumnData+="AAAA\n"; break;
|
||||||
case 1:
|
case 1:
|
||||||
@@ -616,7 +623,7 @@ void NetworkSyncManager::ProcessInput()
|
|||||||
m_PlayerStatus.clear();
|
m_PlayerStatus.clear();
|
||||||
m_PlayerNames.clear();
|
m_PlayerNames.clear();
|
||||||
m_ActivePlayers = 0;
|
m_ActivePlayers = 0;
|
||||||
for (int i=0; i<PlayersInThisPacket; i++)
|
for (int i=0; i<PlayersInThisPacket; ++i)
|
||||||
{
|
{
|
||||||
int PStatus = m_packet.Read1();
|
int PStatus = m_packet.Read1();
|
||||||
if ( PStatus > 0 )
|
if ( PStatus > 0 )
|
||||||
@@ -654,7 +661,7 @@ bool NetworkSyncManager::ChangedScoreboard(int Column)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkSyncManager::SendChat( CString message )
|
void NetworkSyncManager::SendChat(const CString& message)
|
||||||
{
|
{
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
m_packet.Write1( 7 );
|
m_packet.Write1( 7 );
|
||||||
@@ -722,7 +729,7 @@ CString PacketFunctions::ReadNT()
|
|||||||
while ((Position<NETMAXBUFFERSIZE)&& (((char*)Data)[Position]!=0))
|
while ((Position<NETMAXBUFFERSIZE)&& (((char*)Data)[Position]!=0))
|
||||||
TempStr= TempStr + (char)Data[Position++];
|
TempStr= TempStr + (char)Data[Position++];
|
||||||
|
|
||||||
Position++;
|
++Position;
|
||||||
return TempStr;
|
return TempStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -731,8 +738,8 @@ void PacketFunctions::Write1(uint8_t data)
|
|||||||
{
|
{
|
||||||
if (Position>=NETMAXBUFFERSIZE)
|
if (Position>=NETMAXBUFFERSIZE)
|
||||||
return;
|
return;
|
||||||
memcpy( &Data[Position], &data,1 );
|
memcpy( &Data[Position], &data, 1 );
|
||||||
Position++;
|
++Position;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PacketFunctions::Write2(uint16_t data)
|
void PacketFunctions::Write2(uint16_t data)
|
||||||
@@ -740,7 +747,7 @@ void PacketFunctions::Write2(uint16_t data)
|
|||||||
if (Position>=NETMAXBUFFERSIZE-1)
|
if (Position>=NETMAXBUFFERSIZE-1)
|
||||||
return;
|
return;
|
||||||
data = htons(data);
|
data = htons(data);
|
||||||
memcpy( &Data[Position], &data,2 );
|
memcpy( &Data[Position], &data, 2 );
|
||||||
Position+=2;
|
Position+=2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -750,11 +757,11 @@ void PacketFunctions::Write4(uint32_t data)
|
|||||||
return ;
|
return ;
|
||||||
|
|
||||||
data = htonl(data);
|
data = htonl(data);
|
||||||
memcpy( &Data[Position], &data,4 );
|
memcpy( &Data[Position], &data, 4 );
|
||||||
Position+=4;
|
Position+=4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PacketFunctions::WriteNT(CString data)
|
void PacketFunctions::WriteNT(const CString& data)
|
||||||
{
|
{
|
||||||
int index=0;
|
int index=0;
|
||||||
while ((Position<NETMAXBUFFERSIZE)&&(index<data.GetLength()))
|
while ((Position<NETMAXBUFFERSIZE)&&(index<data.GetLength()))
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public:
|
|||||||
void Write1(uint8_t Data);
|
void Write1(uint8_t Data);
|
||||||
void Write2(uint16_t Data);
|
void Write2(uint16_t Data);
|
||||||
void Write4(uint32_t Data);
|
void Write4(uint32_t Data);
|
||||||
void WriteNT(CString Data);
|
void WriteNT(const CString& Data);
|
||||||
|
|
||||||
void ClearPacket();
|
void ClearPacket();
|
||||||
};
|
};
|
||||||
@@ -70,7 +70,7 @@ public:
|
|||||||
void StartRequest(short position); //Request a start. Block until granted.
|
void StartRequest(short position); //Request a start. Block until granted.
|
||||||
bool Connect(const CString& addy, unsigned short port); // Connect to SM Server
|
bool Connect(const CString& addy, unsigned short port); // Connect to SM Server
|
||||||
|
|
||||||
void PostStartUp(CString ServerIP);
|
void PostStartUp(const CString& ServerIP);
|
||||||
|
|
||||||
void CloseConnection();
|
void CloseConnection();
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ public:
|
|||||||
CString m_Scoreboard[NUM_NSSB_CATEGORIES];
|
CString m_Scoreboard[NUM_NSSB_CATEGORIES];
|
||||||
|
|
||||||
//Used for chatting
|
//Used for chatting
|
||||||
void SendChat( CString message );
|
void SendChat(const CString& message);
|
||||||
CString m_WaitingChat;
|
CString m_WaitingChat;
|
||||||
|
|
||||||
//Used for options
|
//Used for options
|
||||||
|
|||||||
@@ -186,7 +186,8 @@ bool EzSockets::CanRead()
|
|||||||
return select(sock+1,scks,NULL,NULL,times) > 0;
|
return select(sock+1,scks,NULL,NULL,times) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EzSockets::IsError() {
|
bool EzSockets::IsError()
|
||||||
|
{
|
||||||
if (state == skERROR)
|
if (state == skERROR)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user