This is ridiculous. I've cleaned up over a thousand lines of this code and I'm tired of it. I'd enumerate our code guidelines again, but the last n times had no effect.
This commit is contained in:
@@ -9,18 +9,18 @@ NetworkSyncManager *NSMAN;
|
|||||||
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld ) { useSMserver=false; isSMOnline = false; }
|
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld ) { useSMserver=false; isSMOnline = false; }
|
||||||
NetworkSyncManager::~NetworkSyncManager () { }
|
NetworkSyncManager::~NetworkSyncManager () { }
|
||||||
void NetworkSyncManager::CloseConnection() { }
|
void NetworkSyncManager::CloseConnection() { }
|
||||||
void NetworkSyncManager::PostStartUp(const RString& ServerIP ) { }
|
void NetworkSyncManager::PostStartUp( const RString& ServerIP ) { }
|
||||||
bool NetworkSyncManager::Connect(const RString& addy, unsigned short port) { return false; }
|
bool NetworkSyncManager::Connect( const RString& addy, unsigned short port ) { return false; }
|
||||||
RString NetworkSyncManager::GetServerName() { return RString(); }
|
RString NetworkSyncManager::GetServerName() { return RString(); }
|
||||||
void NetworkSyncManager::ReportNSSOnOff(int i) { }
|
void NetworkSyncManager::ReportNSSOnOff( int i ) { }
|
||||||
void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo, float offset) { }
|
void NetworkSyncManager::ReportScore( int playerID, int step, int score, int combo, float offset ) { }
|
||||||
void NetworkSyncManager::ReportSongOver() { }
|
void NetworkSyncManager::ReportSongOver() { }
|
||||||
void NetworkSyncManager::ReportStyle() {}
|
void NetworkSyncManager::ReportStyle() {}
|
||||||
void NetworkSyncManager::StartRequest(short position) { }
|
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(const RString& message) { }
|
void NetworkSyncManager::SendChat( const RString& message ) { }
|
||||||
void NetworkSyncManager::SelectUserSong() { }
|
void NetworkSyncManager::SelectUserSong() { }
|
||||||
RString NetworkSyncManager::MD5Hex( const RString &sInput ) { return RString(); }
|
RString NetworkSyncManager::MD5Hex( const RString &sInput ) { return RString(); }
|
||||||
int NetworkSyncManager::GetSMOnlineSalt() { return 0; }
|
int NetworkSyncManager::GetSMOnlineSalt() { return 0; }
|
||||||
@@ -66,7 +66,7 @@ NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld )
|
|||||||
|
|
||||||
useSMserver = false;
|
useSMserver = false;
|
||||||
isSMOnline = false;
|
isSMOnline = false;
|
||||||
FOREACH_PlayerNumber(pn)
|
FOREACH_PlayerNumber( pn )
|
||||||
isSMOLoggedIn[pn] = false;
|
isSMOLoggedIn[pn] = false;
|
||||||
|
|
||||||
m_startupStatus = 0; //By default, connection not tried.
|
m_startupStatus = 0; //By default, connection not tried.
|
||||||
@@ -79,7 +79,7 @@ NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld )
|
|||||||
NetworkSyncManager::~NetworkSyncManager ()
|
NetworkSyncManager::~NetworkSyncManager ()
|
||||||
{
|
{
|
||||||
//Close Connection to server nicely.
|
//Close Connection to server nicely.
|
||||||
if (useSMserver)
|
if( useSMserver )
|
||||||
NetPlayerClient->close();
|
NetPlayerClient->close();
|
||||||
SAFE_DELETE( NetPlayerClient );
|
SAFE_DELETE( NetPlayerClient );
|
||||||
|
|
||||||
@@ -92,18 +92,18 @@ NetworkSyncManager::~NetworkSyncManager ()
|
|||||||
|
|
||||||
void NetworkSyncManager::CloseConnection()
|
void NetworkSyncManager::CloseConnection()
|
||||||
{
|
{
|
||||||
if (!useSMserver)
|
if( !useSMserver )
|
||||||
return ;
|
return;
|
||||||
m_ServerVersion = 0;
|
m_ServerVersion = 0;
|
||||||
useSMserver = false;
|
useSMserver = false;
|
||||||
isSMOnline = false;
|
isSMOnline = false;
|
||||||
FOREACH_PlayerNumber(pn)
|
FOREACH_PlayerNumber( pn )
|
||||||
isSMOLoggedIn[pn] = false;
|
isSMOLoggedIn[pn] = false;
|
||||||
m_startupStatus = 0;
|
m_startupStatus = 0;
|
||||||
NetPlayerClient->close();
|
NetPlayerClient->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkSyncManager::PostStartUp(const RString& ServerIP)
|
void NetworkSyncManager::PostStartUp( const RString& ServerIP )
|
||||||
{
|
{
|
||||||
RString sAddress;
|
RString sAddress;
|
||||||
short iPort;
|
short iPort;
|
||||||
@@ -142,7 +142,7 @@ void NetworkSyncManager::PostStartUp(const RString& ServerIP)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FOREACH_PlayerNumber(pn)
|
FOREACH_PlayerNumber( pn )
|
||||||
isSMOLoggedIn[pn] = false;
|
isSMOLoggedIn[pn] = false;
|
||||||
|
|
||||||
useSMserver = true;
|
useSMserver = true;
|
||||||
@@ -156,9 +156,9 @@ void NetworkSyncManager::PostStartUp(const RString& ServerIP)
|
|||||||
|
|
||||||
m_packet.Write1( NSCHello ); //Hello Packet
|
m_packet.Write1( NSCHello ); //Hello Packet
|
||||||
|
|
||||||
m_packet.Write1(NETPROTOCOLVERSION);
|
m_packet.Write1( NETPROTOCOLVERSION );
|
||||||
|
|
||||||
m_packet.WriteNT(RString(PRODUCT_ID_VER));
|
m_packet.WriteNT( RString(PRODUCT_ID_VER) );
|
||||||
|
|
||||||
//Block until responce is received
|
//Block until responce is received
|
||||||
//Move mode to blocking in order to give CPU back to the
|
//Move mode to blocking in order to give CPU back to the
|
||||||
@@ -170,16 +170,16 @@ void NetworkSyncManager::PostStartUp(const RString& ServerIP)
|
|||||||
|
|
||||||
//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.
|
||||||
NetPlayerClient->SendPack((char*)m_packet.Data,m_packet.Position);
|
NetPlayerClient->SendPack( (char*)m_packet.Data, m_packet.Position );
|
||||||
|
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
|
|
||||||
while (dontExit)
|
while( dontExit )
|
||||||
{
|
{
|
||||||
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() == (NSServerOffset + NSCHello))
|
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.
|
||||||
@@ -188,12 +188,12 @@ void NetworkSyncManager::PostStartUp(const RString& ServerIP)
|
|||||||
NetPlayerClient->blocking = false;
|
NetPlayerClient->blocking = false;
|
||||||
|
|
||||||
m_ServerVersion = m_packet.Read1();
|
m_ServerVersion = m_packet.Read1();
|
||||||
if ( m_ServerVersion >= 128 )
|
if( m_ServerVersion >= 128 )
|
||||||
isSMOnline = true;
|
isSMOnline = true;
|
||||||
|
|
||||||
m_ServerName = m_packet.ReadNT();
|
m_ServerName = m_packet.ReadNT();
|
||||||
m_iSalt = m_packet.Read4();
|
m_iSalt = m_packet.Read4();
|
||||||
LOG->Info("Server Version: %d %s", m_ServerVersion, m_ServerName.c_str());
|
LOG->Info( "Server Version: %d %s", m_ServerVersion, m_ServerName.c_str() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -202,8 +202,8 @@ void NetworkSyncManager::StartUp()
|
|||||||
RString ServerIP;
|
RString ServerIP;
|
||||||
|
|
||||||
if( GetCommandlineArgument( "netip", &ServerIP ) )
|
if( GetCommandlineArgument( "netip", &ServerIP ) )
|
||||||
PostStartUp(ServerIP);
|
PostStartUp( ServerIP );
|
||||||
else if( GetCommandlineArgument( "listen" ) )
|
else if( GetCommandlineArgument("listen") )
|
||||||
PostStartUp("LISTEN");
|
PostStartUp("LISTEN");
|
||||||
|
|
||||||
BroadcastReception = new EzSockets;
|
BroadcastReception = new EzSockets;
|
||||||
@@ -213,12 +213,12 @@ void NetworkSyncManager::StartUp()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool NetworkSyncManager::Connect(const RString& addy, unsigned short port)
|
bool NetworkSyncManager::Connect( const RString& addy, unsigned short port )
|
||||||
{
|
{
|
||||||
LOG->Info("Beginning to connect");
|
LOG->Info( "Beginning to connect" );
|
||||||
|
|
||||||
NetPlayerClient->create(); // Initialize Socket
|
NetPlayerClient->create(); // Initialize Socket
|
||||||
useSMserver = NetPlayerClient->connect(addy, port);
|
useSMserver = NetPlayerClient->connect( addy, port );
|
||||||
|
|
||||||
return useSMserver;
|
return useSMserver;
|
||||||
}
|
}
|
||||||
@@ -227,16 +227,16 @@ bool NetworkSyncManager::Connect(const RString& addy, unsigned short port)
|
|||||||
//Listen (Wait for connection in-bound)
|
//Listen (Wait for connection in-bound)
|
||||||
//NOTE: Right now, StepMania cannot connect back to StepMania!
|
//NOTE: Right now, StepMania cannot connect back to StepMania!
|
||||||
|
|
||||||
bool NetworkSyncManager::Listen(unsigned short port)
|
bool NetworkSyncManager::Listen( unsigned short port )
|
||||||
{
|
{
|
||||||
LOG->Info("Beginning to Listen");
|
LOG->Info( "Beginning to Listen" );
|
||||||
|
|
||||||
EzSockets * EZListener = new EzSockets;
|
EzSockets *EZListener = new EzSockets;
|
||||||
|
|
||||||
EZListener->create();
|
EZListener->create();
|
||||||
NetPlayerClient->create(); // Initialize Socket
|
NetPlayerClient->create(); // Initialize Socket
|
||||||
|
|
||||||
EZListener->bind(8765);
|
EZListener->bind( 8765 );
|
||||||
|
|
||||||
useSMserver = EZListener->listen();
|
useSMserver = EZListener->listen();
|
||||||
useSMserver = EZListener->accept( *NetPlayerClient ); //Wait for someone to connect
|
useSMserver = EZListener->accept( *NetPlayerClient ); //Wait for someone to connect
|
||||||
@@ -254,7 +254,7 @@ void NetworkSyncManager::ReportNSSOnOff(int i)
|
|||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
m_packet.Write1( NSCSMS );
|
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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
RString NetworkSyncManager::GetServerName()
|
RString NetworkSyncManager::GetServerName()
|
||||||
@@ -264,61 +264,61 @@ RString NetworkSyncManager::GetServerName()
|
|||||||
|
|
||||||
void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo, float offset)
|
void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo, float offset)
|
||||||
{
|
{
|
||||||
if (!useSMserver) //Make sure that we are using the network
|
if( !useSMserver ) //Make sure that we are using the network
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
|
|
||||||
m_packet.Write1( NSCGSU );
|
m_packet.Write1( NSCGSU );
|
||||||
uint8_t ctr = (uint8_t) (playerID * 16 + step - ( TNS_HitMine - 1 ) );
|
uint8_t ctr = (uint8_t) (playerID * 16 + step - ( TNS_HitMine - 1 ) );
|
||||||
m_packet.Write1(ctr);
|
m_packet.Write1( ctr );
|
||||||
|
|
||||||
ctr = uint8_t( STATSMAN->m_CurStageStats.m_player[playerID].GetGrade()*16 );
|
ctr = uint8_t( STATSMAN->m_CurStageStats.m_player[playerID].GetGrade()*16 );
|
||||||
|
|
||||||
if ( STATSMAN->m_CurStageStats.m_player[playerID].m_bFailed )
|
if ( STATSMAN->m_CurStageStats.m_player[playerID].m_bFailed )
|
||||||
ctr = uint8_t( 112 ); //Code for failed (failed constant seems not to work)
|
ctr = uint8_t( 112 ); //Code for failed (failed constant seems not to work)
|
||||||
|
|
||||||
m_packet.Write1(ctr);
|
m_packet.Write1( ctr );
|
||||||
|
|
||||||
m_packet.Write4(score);
|
m_packet.Write4( score );
|
||||||
|
|
||||||
m_packet.Write2((uint16_t) combo);
|
m_packet.Write2( (uint16_t)combo );
|
||||||
|
|
||||||
m_packet.Write2((uint16_t) m_playerLife[playerID]);
|
m_packet.Write2( (uint16_t)m_playerLife[playerID] );
|
||||||
|
|
||||||
//Offset Info
|
//Offset Info
|
||||||
//Note: if a 0 is sent, then disregard data.
|
//Note: if a 0 is sent, then disregard data.
|
||||||
//
|
//
|
||||||
//ASSUMED: No step will be more than 16 seconds off center
|
//ASSUMED: No step will be more than 16 seconds off center
|
||||||
//If assumption false: read 16 seconds either direction
|
//If assumption false: read 16 seconds either direction
|
||||||
int iOffset = int((offset+16.384)*2000.0);
|
int iOffset = int( (offset+16.384)*2000.0f );
|
||||||
|
|
||||||
if (iOffset>65535)
|
if( iOffset>65535 )
|
||||||
iOffset=65535;
|
iOffset=65535;
|
||||||
if (iOffset<1)
|
if( iOffset<1 )
|
||||||
iOffset=1;
|
iOffset=1;
|
||||||
|
|
||||||
//Report 0 if hold, or miss (don't forget mines should report)
|
//Report 0 if hold, or miss (don't forget mines should report)
|
||||||
if ((step == TNS_Miss) || (step > TNS_W1))
|
if( step == TNS_Miss || step > TNS_W1 )
|
||||||
iOffset = 0;
|
iOffset = 0;
|
||||||
|
|
||||||
m_packet.Write2((uint16_t) iOffset);
|
m_packet.Write2( (uint16_t)iOffset );
|
||||||
|
|
||||||
NetPlayerClient->SendPack((char*)m_packet.Data, m_packet.Position);
|
NetPlayerClient->SendPack( (char*)m_packet.Data, m_packet.Position );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void NetworkSyncManager::ReportSongOver()
|
void NetworkSyncManager::ReportSongOver()
|
||||||
{
|
{
|
||||||
if (!useSMserver) //Make sure that we are using the network
|
if ( !useSMserver ) //Make sure that we are using the network
|
||||||
return ;
|
return;
|
||||||
|
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
|
|
||||||
m_packet.Write1( NSCGON );
|
m_packet.Write1( NSCGON );
|
||||||
|
|
||||||
NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position);
|
NetPlayerClient->SendPack( (char*)&m_packet.Data, m_packet.Position );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -326,22 +326,22 @@ void NetworkSyncManager::ReportStyle()
|
|||||||
{
|
{
|
||||||
LOG->Trace( "Sending \"Style\" to server" );
|
LOG->Trace( "Sending \"Style\" to server" );
|
||||||
|
|
||||||
if (!useSMserver)
|
if( !useSMserver )
|
||||||
return;
|
return;
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
m_packet.Write1( NSCSU );
|
m_packet.Write1( NSCSU );
|
||||||
m_packet.Write1( (int8_t) GAMESTATE->GetNumPlayersEnabled() );
|
m_packet.Write1( (int8_t)GAMESTATE->GetNumPlayersEnabled() );
|
||||||
|
|
||||||
FOREACH_EnabledPlayer( pn )
|
FOREACH_EnabledPlayer( pn )
|
||||||
{
|
{
|
||||||
m_packet.Write1((uint8_t) pn );
|
m_packet.Write1( (uint8_t)pn );
|
||||||
m_packet.WriteNT(GAMESTATE->GetPlayerDisplayName(pn) );
|
m_packet.WriteNT( GAMESTATE->GetPlayerDisplayName(pn) );
|
||||||
}
|
}
|
||||||
|
|
||||||
NetPlayerClient->SendPack( (char*)&m_packet.Data, m_packet.Position );
|
NetPlayerClient->SendPack( (char*)&m_packet.Data, m_packet.Position );
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkSyncManager::StartRequest(short position)
|
void NetworkSyncManager::StartRequest( short position )
|
||||||
{
|
{
|
||||||
if( !useSMserver )
|
if( !useSMserver )
|
||||||
return;
|
return;
|
||||||
@@ -349,7 +349,7 @@ void NetworkSyncManager::StartRequest(short position)
|
|||||||
if( GAMESTATE->m_bDemonstrationOrJukebox )
|
if( GAMESTATE->m_bDemonstrationOrJukebox )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LOG->Trace("Requesting Start from Server.");
|
LOG->Trace( "Requesting Start from Server." );
|
||||||
|
|
||||||
m_packet.ClearPacket();
|
m_packet.ClearPacket();
|
||||||
|
|
||||||
@@ -359,57 +359,57 @@ void NetworkSyncManager::StartRequest(short position)
|
|||||||
|
|
||||||
Steps * tSteps;
|
Steps * tSteps;
|
||||||
tSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
tSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
||||||
if ((tSteps!=NULL) && (GAMESTATE->IsPlayerEnabled(PLAYER_1)))
|
if( tSteps!=NULL && GAMESTATE->IsPlayerEnabled(PLAYER_1) )
|
||||||
ctr = uint8_t(ctr+tSteps->GetMeter()*16);
|
ctr = uint8_t(ctr+tSteps->GetMeter()*16);
|
||||||
|
|
||||||
tSteps = GAMESTATE->m_pCurSteps[PLAYER_2];
|
tSteps = GAMESTATE->m_pCurSteps[PLAYER_2];
|
||||||
if ((tSteps!=NULL) && (GAMESTATE->IsPlayerEnabled(PLAYER_2)))
|
if( tSteps!=NULL && GAMESTATE->IsPlayerEnabled(PLAYER_2) )
|
||||||
ctr = uint8_t(ctr+tSteps->GetMeter());
|
ctr = uint8_t( ctr+tSteps->GetMeter() );
|
||||||
|
|
||||||
m_packet.Write1(ctr);
|
m_packet.Write1( ctr );
|
||||||
|
|
||||||
ctr=0;
|
ctr=0;
|
||||||
|
|
||||||
tSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
tSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
||||||
if ((tSteps!=NULL) && (GAMESTATE->IsPlayerEnabled(PLAYER_1)))
|
if( tSteps!=NULL && GAMESTATE->IsPlayerEnabled(PLAYER_1) )
|
||||||
ctr = uint8_t(ctr + (int) tSteps->GetDifficulty()*16);
|
ctr = uint8_t( ctr + (int)tSteps->GetDifficulty()*16 );
|
||||||
|
|
||||||
tSteps = GAMESTATE->m_pCurSteps[PLAYER_2];
|
tSteps = GAMESTATE->m_pCurSteps[PLAYER_2];
|
||||||
if ((tSteps!=NULL) && (GAMESTATE->IsPlayerEnabled(PLAYER_2)))
|
if( tSteps!=NULL && GAMESTATE->IsPlayerEnabled(PLAYER_2) )
|
||||||
ctr = uint8_t(ctr + (int) tSteps->GetDifficulty());
|
ctr = uint8_t( ctr + (int)tSteps->GetDifficulty() );
|
||||||
|
|
||||||
m_packet.Write1(ctr);
|
m_packet.Write1( ctr );
|
||||||
|
|
||||||
//Notify server if this is for sync or not.
|
//Notify server if this is for sync or not.
|
||||||
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( "" );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GAMESTATE->m_pCurCourse != NULL)
|
if( GAMESTATE->m_pCurCourse != NULL )
|
||||||
m_packet.WriteNT(GAMESTATE->m_pCurCourse->GetDisplayFullTitle());
|
m_packet.WriteNT( GAMESTATE->m_pCurCourse->GetDisplayFullTitle() );
|
||||||
else
|
else
|
||||||
m_packet.WriteNT(RString(""));
|
m_packet.WriteNT( RString() );
|
||||||
|
|
||||||
//Send Player (and song) Options
|
//Send Player (and song) Options
|
||||||
m_packet.WriteNT( GAMESTATE->m_SongOptions.GetCurrent().GetString() );
|
m_packet.WriteNT( GAMESTATE->m_SongOptions.GetCurrent().GetString() );
|
||||||
|
|
||||||
int players=0;
|
int players=0;
|
||||||
FOREACH_PlayerNumber (p)
|
FOREACH_PlayerNumber( p )
|
||||||
{
|
{
|
||||||
++players;
|
++players;
|
||||||
m_packet.WriteNT(GAMESTATE->m_pPlayerState[p]->m_PlayerOptions.GetCurrent().GetString());
|
m_packet.WriteNT( GAMESTATE->m_pPlayerState[p]->m_PlayerOptions.GetCurrent().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
|
||||||
|
|||||||
@@ -78,10 +78,10 @@ public:
|
|||||||
uint32_t Read4();
|
uint32_t Read4();
|
||||||
RString ReadNT();
|
RString ReadNT();
|
||||||
|
|
||||||
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(const RString& Data);
|
void WriteNT( const RString& Data );
|
||||||
|
|
||||||
void ClearPacket();
|
void ClearPacket();
|
||||||
};
|
};
|
||||||
@@ -93,19 +93,19 @@ public:
|
|||||||
~NetworkSyncManager();
|
~NetworkSyncManager();
|
||||||
|
|
||||||
//If "useSMserver" then send score to server
|
//If "useSMserver" then send score to server
|
||||||
void ReportScore(int playerID, int step, int score, int combo, float offset);
|
void ReportScore( int playerID, int step, int score, int combo, float offset );
|
||||||
void ReportSongOver(); //Report to server that song is over
|
void ReportSongOver(); //Report to server that song is over
|
||||||
void ReportStyle(); //Report to server the style, players, and names
|
void ReportStyle(); //Report to server the style, players, and names
|
||||||
void ReportNSSOnOff(int i); //Report song selection screen on/off
|
void ReportNSSOnOff( int i ); //Report song selection screen on/off
|
||||||
void StartRequest(short position); //Request a start. Block until granted.
|
void StartRequest( short position ); //Request a start. Block until granted.
|
||||||
RString GetServerName();
|
RString GetServerName();
|
||||||
|
|
||||||
//SMOnline stuff
|
//SMOnline stuff
|
||||||
void SendSMOnline( );
|
void SendSMOnline( );
|
||||||
|
|
||||||
bool Connect(const RString& addy, unsigned short port); // Connect to SM Server
|
bool Connect( const RString& addy, unsigned short port ); // Connect to SM Server
|
||||||
|
|
||||||
void PostStartUp(const RString& ServerIP);
|
void PostStartUp( const RString& ServerIP );
|
||||||
|
|
||||||
void CloseConnection();
|
void CloseConnection();
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ public:
|
|||||||
|
|
||||||
int m_playerLife[NUM_PLAYERS]; //Life (used for sending to server)
|
int m_playerLife[NUM_PLAYERS]; //Life (used for sending to server)
|
||||||
|
|
||||||
void Update(float fDeltaTime);
|
void Update( float fDeltaTime );
|
||||||
|
|
||||||
bool useSMserver;
|
bool useSMserver;
|
||||||
bool isSMOnline;
|
bool isSMOnline;
|
||||||
@@ -155,7 +155,7 @@ public:
|
|||||||
|
|
||||||
RString MD5Hex( const RString &sInput );
|
RString MD5Hex( const RString &sInput );
|
||||||
|
|
||||||
void GetListOfLANServers( vector< NetServerInfo > & AllServers );
|
void GetListOfLANServers( vector<NetServerInfo>& AllServers );
|
||||||
private:
|
private:
|
||||||
#if !defined(WITHOUT_NETWORKING)
|
#if !defined(WITHOUT_NETWORKING)
|
||||||
|
|
||||||
@@ -178,11 +178,11 @@ private:
|
|||||||
EzSockets *NetPlayerClient;
|
EzSockets *NetPlayerClient;
|
||||||
EzSockets *BroadcastReception;
|
EzSockets *BroadcastReception;
|
||||||
|
|
||||||
vector< NetServerInfo > m_vAllLANServers;
|
vector<NetServerInfo> m_vAllLANServers;
|
||||||
|
|
||||||
int m_ServerVersion; //ServerVersion
|
int m_ServerVersion; //ServerVersion
|
||||||
|
|
||||||
bool Listen(unsigned short port);
|
bool Listen( unsigned short port );
|
||||||
|
|
||||||
PacketFunctions m_packet;
|
PacketFunctions m_packet;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ void ScreenNetRoom::Init()
|
|||||||
|
|
||||||
ScreenNetSelectBase::Init();
|
ScreenNetSelectBase::Init();
|
||||||
|
|
||||||
m_soundChangeSel.Load( THEME->GetPathS("ScreenNetRoom","change sel"));
|
m_soundChangeSel.Load( THEME->GetPathS("ScreenNetRoom","change sel") );
|
||||||
|
|
||||||
m_iRoomPlace = 0;
|
m_iRoomPlace = 0;
|
||||||
|
|
||||||
@@ -72,13 +72,13 @@ void ScreenNetRoom::Init()
|
|||||||
this->AddChild( &m_roomInfo );
|
this->AddChild( &m_roomInfo );
|
||||||
|
|
||||||
this->SortByDrawOrder();
|
this->SortByDrawOrder();
|
||||||
NSMAN->ReportNSSOnOff(7);
|
NSMAN->ReportNSSOnOff( 7 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenNetRoom::Input( const InputEventPlus &input )
|
void ScreenNetRoom::Input( const InputEventPlus &input )
|
||||||
{
|
{
|
||||||
if ((input.MenuI == MENU_BUTTON_LEFT || input.MenuI == MENU_BUTTON_RIGHT) && input.type == IET_RELEASE)
|
if( (input.MenuI == MENU_BUTTON_LEFT || input.MenuI == MENU_BUTTON_RIGHT) && input.type == IET_RELEASE )
|
||||||
m_RoomWheel.Move(0);
|
m_RoomWheel.Move( 0 );
|
||||||
|
|
||||||
ScreenNetSelectBase::Input( input );
|
ScreenNetSelectBase::Input( input );
|
||||||
}
|
}
|
||||||
@@ -107,7 +107,7 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
}
|
}
|
||||||
else if( SM == SM_SMOnlinePack )
|
else if( SM == SM_SMOnlinePack )
|
||||||
{
|
{
|
||||||
switch(NSMAN->m_SMOnlinePacket.Read1())
|
switch( NSMAN->m_SMOnlinePacket.Read1() )
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
switch ( NSMAN->m_SMOnlinePacket.Read1() )
|
switch ( NSMAN->m_SMOnlinePacket.Read1() )
|
||||||
@@ -128,21 +128,21 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
{
|
{
|
||||||
int numRooms = NSMAN->m_SMOnlinePacket.Read1();
|
int numRooms = NSMAN->m_SMOnlinePacket.Read1();
|
||||||
m_Rooms.clear();
|
m_Rooms.clear();
|
||||||
for (int i=0;i<numRooms;i++)
|
for( int i=0; i<numRooms; ++i )
|
||||||
{
|
{
|
||||||
RoomData tmpRoomData;
|
RoomData tmpRoomData;
|
||||||
tmpRoomData.SetName(NSMAN->m_SMOnlinePacket.ReadNT());
|
tmpRoomData.SetName( NSMAN->m_SMOnlinePacket.ReadNT() );
|
||||||
tmpRoomData.SetDescription(NSMAN->m_SMOnlinePacket.ReadNT());
|
tmpRoomData.SetDescription( NSMAN->m_SMOnlinePacket.ReadNT() );
|
||||||
m_Rooms.push_back( tmpRoomData );
|
m_Rooms.push_back( tmpRoomData );
|
||||||
}
|
}
|
||||||
//Abide by protocol and read room status
|
//Abide by protocol and read room status
|
||||||
for (int i=0;i<numRooms;i++)
|
for( int i=0; i<numRooms; ++i )
|
||||||
m_Rooms[i].SetState(NSMAN->m_SMOnlinePacket.Read1());
|
m_Rooms[i].SetState( NSMAN->m_SMOnlinePacket.Read1() );
|
||||||
|
|
||||||
for (int i=0;i<numRooms;i++)
|
for( int i=0; i<numRooms; ++i )
|
||||||
m_Rooms[i].SetFlags(NSMAN->m_SMOnlinePacket.Read1());
|
m_Rooms[i].SetFlags( NSMAN->m_SMOnlinePacket.Read1() );
|
||||||
|
|
||||||
if (m_iRoomPlace<0)
|
if( m_iRoomPlace<0 )
|
||||||
m_iRoomPlace=0;
|
m_iRoomPlace=0;
|
||||||
if( m_iRoomPlace >= (int) m_Rooms.size() )
|
if( m_iRoomPlace >= (int) m_Rooms.size() )
|
||||||
m_iRoomPlace=m_Rooms.size()-1;
|
m_iRoomPlace=m_Rooms.size()-1;
|
||||||
@@ -157,11 +157,11 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
info.songArtist = NSMAN->m_SMOnlinePacket.ReadNT();
|
info.songArtist = NSMAN->m_SMOnlinePacket.ReadNT();
|
||||||
info.numPlayers = NSMAN->m_SMOnlinePacket.Read1();
|
info.numPlayers = NSMAN->m_SMOnlinePacket.Read1();
|
||||||
info.maxPlayers = NSMAN->m_SMOnlinePacket.Read1();
|
info.maxPlayers = NSMAN->m_SMOnlinePacket.Read1();
|
||||||
info.players.resize(info.numPlayers);
|
info.players.resize( info.numPlayers );
|
||||||
for (int i = 0; i < info.numPlayers; i++)
|
for( int i = 0; i < info.numPlayers; ++i )
|
||||||
info.players[i] = NSMAN->m_SMOnlinePacket.ReadNT();
|
info.players[i] = NSMAN->m_SMOnlinePacket.ReadNT();
|
||||||
|
|
||||||
m_roomInfo.SetRoomInfo(info);
|
m_roomInfo.SetRoomInfo( info );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -197,8 +197,8 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
{
|
{
|
||||||
int i = m_RoomWheel.GetCurrentIndex() - m_RoomWheel.GetPerminateOffset();
|
int i = m_RoomWheel.GetCurrentIndex() - m_RoomWheel.GetPerminateOffset();
|
||||||
const RoomWheelData* data = m_RoomWheel.GetItem(i);
|
const RoomWheelData* data = m_RoomWheel.GetItem(i);
|
||||||
if (data != NULL)
|
if( data != NULL )
|
||||||
m_roomInfo.SetRoom(data);
|
m_roomInfo.SetRoom( data );
|
||||||
}
|
}
|
||||||
|
|
||||||
ScreenNetSelectBase::HandleScreenMessage( SM );
|
ScreenNetSelectBase::HandleScreenMessage( SM );
|
||||||
@@ -209,14 +209,14 @@ void ScreenNetRoom::TweenOffScreen()
|
|||||||
OFF_COMMAND( m_textTitle );
|
OFF_COMMAND( m_textTitle );
|
||||||
OFF_COMMAND( m_sprTitleBG );
|
OFF_COMMAND( m_sprTitleBG );
|
||||||
|
|
||||||
NSMAN->ReportNSSOnOff(6);
|
NSMAN->ReportNSSOnOff( 6 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenNetRoom::MenuStart( const InputEventPlus &input )
|
void ScreenNetRoom::MenuStart( const InputEventPlus &input )
|
||||||
{
|
{
|
||||||
m_RoomWheel.Select();
|
m_RoomWheel.Select();
|
||||||
RoomWheelData* rwd = (RoomWheelData*)m_RoomWheel.LastSelected();
|
RoomWheelData* rwd = dynamic_cast<RoomWheelData*>( m_RoomWheel.LastSelected() );
|
||||||
if (rwd)
|
if( rwd )
|
||||||
{
|
{
|
||||||
if ( rwd->m_iFlags % 2 )
|
if ( rwd->m_iFlags % 2 )
|
||||||
{
|
{
|
||||||
@@ -247,7 +247,7 @@ void ScreenNetRoom::MenuBack( const InputEventPlus &input )
|
|||||||
void ScreenNetRoom::MenuLeft( const InputEventPlus &input )
|
void ScreenNetRoom::MenuLeft( const InputEventPlus &input )
|
||||||
{
|
{
|
||||||
if( input.type == IET_FIRST_PRESS )
|
if( input.type == IET_FIRST_PRESS )
|
||||||
m_RoomWheel.Move(-1);
|
m_RoomWheel.Move( -1 );
|
||||||
|
|
||||||
ScreenNetSelectBase::MenuLeft( input );
|
ScreenNetSelectBase::MenuLeft( input );
|
||||||
}
|
}
|
||||||
@@ -255,7 +255,7 @@ void ScreenNetRoom::MenuLeft( const InputEventPlus &input )
|
|||||||
void ScreenNetRoom::MenuRight( const InputEventPlus &input )
|
void ScreenNetRoom::MenuRight( const InputEventPlus &input )
|
||||||
{
|
{
|
||||||
if( input.type == IET_FIRST_PRESS )
|
if( input.type == IET_FIRST_PRESS )
|
||||||
m_RoomWheel.Move(1);
|
m_RoomWheel.Move( 1 );
|
||||||
|
|
||||||
ScreenNetSelectBase::MenuRight( input );
|
ScreenNetSelectBase::MenuRight( input );
|
||||||
}
|
}
|
||||||
@@ -267,33 +267,33 @@ void ScreenNetRoom::UpdateRoomsList()
|
|||||||
|
|
||||||
difference = m_RoomWheel.GetNumItems() - m_Rooms.size();
|
difference = m_RoomWheel.GetNumItems() - m_Rooms.size();
|
||||||
|
|
||||||
if (!m_RoomWheel.IsEmpty())
|
if( !m_RoomWheel.IsEmpty() )
|
||||||
{
|
{
|
||||||
if (difference > 0)
|
if( difference > 0 )
|
||||||
for( int x = 0; x < difference; x++ )
|
for( int x = 0; x < difference; ++x )
|
||||||
m_RoomWheel.RemoveItem(m_RoomWheel.GetNumItems() - 1);
|
m_RoomWheel.RemoveItem( m_RoomWheel.GetNumItems() - 1 );
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
difference = abs(difference);
|
difference = abs( difference );
|
||||||
for( int x = 0; x < difference; x++ )
|
for( int x = 0; x < difference; ++x )
|
||||||
m_RoomWheel.AddItem(new RoomWheelData(TYPE_GENERIC, "", "", RageColor(1,1,1,1)));
|
m_RoomWheel.AddItem( new RoomWheelData(TYPE_GENERIC, "", "", RageColor(1,1,1,1)) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (unsigned int x = 0; x < m_Rooms.size(); x++)
|
for ( unsigned int x = 0; x < m_Rooms.size(); ++x)
|
||||||
m_RoomWheel.AddItem(new RoomWheelData(TYPE_GENERIC, "", "", RageColor(1,1,1,1)));
|
m_RoomWheel.AddItem( new RoomWheelData(TYPE_GENERIC, "", "", RageColor(1,1,1,1)) );
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned int i = 0; i < m_Rooms.size(); ++i)
|
for( unsigned int i = 0; i < m_Rooms.size(); ++i )
|
||||||
{
|
{
|
||||||
itemData = m_RoomWheel.GetItem(i);
|
itemData = m_RoomWheel.GetItem( i );
|
||||||
|
|
||||||
itemData->m_sText = m_Rooms[i].Name();
|
itemData->m_sText = m_Rooms[i].Name();
|
||||||
itemData->m_sDesc = m_Rooms[i].Description();
|
itemData->m_sDesc = m_Rooms[i].Description();
|
||||||
itemData->m_iFlags = m_Rooms[i].GetFlags();
|
itemData->m_iFlags = m_Rooms[i].GetFlags();
|
||||||
|
|
||||||
switch (m_Rooms[i].State())
|
switch( m_Rooms[i].State() )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
itemData->m_color = THEME->GetMetricC( m_sName, "OpenRoomColor");
|
itemData->m_color = THEME->GetMetricC( m_sName, "OpenRoomColor");
|
||||||
@@ -313,14 +313,15 @@ void ScreenNetRoom::UpdateRoomsList()
|
|||||||
m_RoomWheel.RebuildWheelItems();
|
m_RoomWheel.RebuildWheelItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenNetRoom::CreateNewRoom( const RString& rName, const RString& rDesc, const RString & rPass ) {
|
void ScreenNetRoom::CreateNewRoom( const RString& rName, const RString& rDesc, const RString& rPass )
|
||||||
|
{
|
||||||
NSMAN->m_SMOnlinePacket.ClearPacket();
|
NSMAN->m_SMOnlinePacket.ClearPacket();
|
||||||
NSMAN->m_SMOnlinePacket.Write1((uint8_t)2); //Create room command
|
NSMAN->m_SMOnlinePacket.Write1( (uint8_t)2 ); //Create room command
|
||||||
NSMAN->m_SMOnlinePacket.Write1(1); //Type game room
|
NSMAN->m_SMOnlinePacket.Write1( 1 ); //Type game room
|
||||||
NSMAN->m_SMOnlinePacket.WriteNT(rName);
|
NSMAN->m_SMOnlinePacket.WriteNT( rName );
|
||||||
NSMAN->m_SMOnlinePacket.WriteNT(rDesc);
|
NSMAN->m_SMOnlinePacket.WriteNT( rDesc );
|
||||||
if ( !rPass.empty() )
|
if ( !rPass.empty() )
|
||||||
NSMAN->m_SMOnlinePacket.WriteNT(rPass);
|
NSMAN->m_SMOnlinePacket.WriteNT( rPass );
|
||||||
NSMAN->SendSMOnline( );
|
NSMAN->SendSMOnline( );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user