diff --git a/stepmania/src/NetworkSyncManager.cpp b/stepmania/src/NetworkSyncManager.cpp index 56b95d4149..d873c7884d 100644 --- a/stepmania/src/NetworkSyncManager.cpp +++ b/stepmania/src/NetworkSyncManager.cpp @@ -11,6 +11,7 @@ NetworkSyncManager::~NetworkSyncManager () { } void NetworkSyncManager::CloseConnection() { } void NetworkSyncManager::PostStartUp( CString ServerIP ) { } bool NetworkSyncManager::Connect(const CString& addy, unsigned short port) { return false; } +void NetworkSyncManager::ReportNSSOnOff(int i) { } void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { } void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo) { } void NetworkSyncManager::ReportSongOver() { } @@ -35,6 +36,7 @@ void NetworkSyncManager::SelectUserSong() { } #include "PrefsManager.h" #include "ProductInfo.h" #include "ScreenMessage.h" +#include "GameManager.h" #include "arch/LoadingWindow/LoadingWindow.h" const ScreenMessage SM_AddToChat = ScreenMessage(SM_User+4); @@ -242,6 +244,12 @@ bool NetworkSyncManager::Listen(unsigned short port) return useSMserver; } +void NetworkSyncManager::ReportNSSOnOff(int i) +{ + m_packet.ClearPacket(); + m_packet.Write1( 10 ); + m_packet.Write1( i ); +} void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { @@ -618,6 +626,18 @@ void NetworkSyncManager::ProcessInput() } } break; + case 10: + { + CString StyleName, GameName; + GameName = m_packet.ReadNT(); + StyleName = m_packet.ReadNT(); + + GAMESTATE->m_pCurGame = GAMEMAN->StringToGameType( GameName ); + GAMESTATE->m_pCurStyle = GAMEMAN->GameAndStringToStyle( GAMESTATE->m_pCurGame, StyleName ); + + SCREENMAN->SetNewScreen( "ScreenNetSelectMusic" ); //Should this be metric'd out? + } + break; } m_packet.ClearPacket(); } diff --git a/stepmania/src/NetworkSyncManager.h b/stepmania/src/NetworkSyncManager.h index 3500a22bb0..db2fe185b5 100644 --- a/stepmania/src/NetworkSyncManager.h +++ b/stepmania/src/NetworkSyncManager.h @@ -65,6 +65,7 @@ public: void ReportScore(int playerID, int step, int score, int combo); void ReportSongOver(); //Report to server that song is over void ReportStyle(); //Report to server the style, players, and names + void ReportNSSOnOff(int i); //Report song selection screen on/off void StartRequest(short position); //Request a start. Block until granted. bool Connect(const CString& addy, unsigned short port); // Connect to SM Server diff --git a/stepmania/src/ScreenNetEvaluation.cpp b/stepmania/src/ScreenNetEvaluation.cpp index a28e88852b..2c0d94fd9f 100644 --- a/stepmania/src/ScreenNetEvaluation.cpp +++ b/stepmania/src/ScreenNetEvaluation.cpp @@ -19,6 +19,7 @@ ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEv { m_bHasStats = false; m_pActivePlayer = PLAYER_1; + m_iCurrentPlayer = 0; FOREACH_PlayerNumber (pn) if ( GAMESTATE->IsPlayerEnabled( pn ) ) @@ -60,6 +61,7 @@ ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEv cx+=USERDX; cy+=USERDY; } + NSMAN->ReportNSSOnOff( 1 ); } void ScreenNetEvaluation::MenuLeft( PlayerNumber pn, const InputEventType type ) @@ -100,18 +102,25 @@ void ScreenNetEvaluation::HandleScreenMessage( const ScreenMessage SM ) m_bHasStats = true; for( int i=0; im_PlayerNames[NSMAN->m_ActivePlayer[i]] == GAMESTATE->GetPlayerDisplayName(m_pActivePlayer) ) - m_iCurrentPlayer = i; - m_textUsers[i].SetText( NSMAN->m_PlayerNames[NSMAN->m_EvalPlayerData[i].name] ); ON_COMMAND( m_textUsers[i] ); } - COMMAND( m_textUsers[m_iCurrentPlayer], "Sel" ); return; //no need to let ScreenEvaluation get ahold of this. + case SM_GoToNextScreen: + NSMAN->ReportNSSOnOff( 0 ); + break; } ScreenEvaluation::HandleScreenMessage( SM ); } +void ScreenNetEvaluation::TweenOffScreen( ) +{ + for( int i=0; im_EvalPlayerData[m_iCurrentPlayer].grade ); diff --git a/stepmania/src/ScreenNetEvaluation.h b/stepmania/src/ScreenNetEvaluation.h index dd3dd24b07..92bda92079 100644 --- a/stepmania/src/ScreenNetEvaluation.h +++ b/stepmania/src/ScreenNetEvaluation.h @@ -16,6 +16,7 @@ protected: virtual void MenuRight( PlayerNumber pn, const InputEventType type ); virtual void MenuDown( PlayerNumber pn, const InputEventType type ); virtual void HandleScreenMessage( const ScreenMessage SM ); + virtual void TweenOffScreen( ); void UpdateStats( ); private: