diff --git a/stepmania/src/NetworkSyncManager.cpp b/stepmania/src/NetworkSyncManager.cpp index 2843811432..52de2b5f2f 100644 --- a/stepmania/src/NetworkSyncManager.cpp +++ b/stepmania/src/NetworkSyncManager.cpp @@ -4,7 +4,7 @@ NetworkSyncManager *NSMAN; #if defined(WITHOUT_NETWORKING) -NetworkSyncManager::NetworkSyncManager() { useSMserver=false; } +NetworkSyncManager::NetworkSyncManager(LoadingWindow * ld) { useSMServer=false } NetworkSyncManager::~NetworkSyncManager () { } void NetworkSyncManager::CloseConnection() { } void NetworkSyncManager::PostStartUp( CString ServerIP ) { } @@ -30,9 +30,16 @@ bool NetworkSyncManager::ChangedScoreboard(int Column) { return false; } #include "Steps.h" #include "PrefsManager.h" #include "ProductInfo.h" +#include "ScreenMessage.h" +#include "arch\LoadingWindow\LoadingWindow.h" -NetworkSyncManager::NetworkSyncManager() +const ScreenMessage SM_NET_UpdateScoreboard = ScreenMessage(SM_User+12); +const ScreenMessage SM_NET_SelectSong = ScreenMessage(SM_User+2); + + +NetworkSyncManager::NetworkSyncManager(LoadingWindow * ld) { + ld->SetText("Initilizing Network..."); NetPlayerClient = new EzSockets; NetPlayerClient->blocking = false; m_ServerVersion = 0; @@ -445,13 +452,19 @@ void NetworkSyncManager::ProcessInput() } break; } + SCREENMAN->SendMessageToTopScreen(SM_NET_UpdateScoreboard); m_Scoreboard[ColumnNumber] = ColumnData; m_scoreboardchange[ColumnNumber]=true; } break; case 6: //System message from server - CString SysMSG = ReadNT(m_packet); - SCREENMAN->SystemMessage(SysMSG); + { + CString SysMSG = ReadNT(m_packet); + SCREENMAN->SystemMessage(SysMSG); + } + break; + case 7: + SCREENMAN->SendMessageToTopScreen(SM_NET_SelectSong); break; } ClearPacket(m_packet); @@ -467,6 +480,15 @@ bool NetworkSyncManager::ChangedScoreboard(int Column) } + + + + + + +//Functions to deal with this protocol + + uint8_t NetworkSyncManager::Read1(NetPacket &Packet) { if (Packet.Position>=NETMAXBUFFERSIZE) diff --git a/stepmania/src/NetworkSyncManager.h b/stepmania/src/NetworkSyncManager.h index 42035b2fde..ebfc628a66 100644 --- a/stepmania/src/NetworkSyncManager.h +++ b/stepmania/src/NetworkSyncManager.h @@ -4,6 +4,7 @@ #define NetworkSyncManager_H #include "PlayerNumber.h" +#include "arch\LoadingWindow\LoadingWindow.h" const int NETPROTOCOLVERSION=1; const int NETMAXBUFFERSIZE=1020; //1024 - 4 bytes for EzSockets @@ -22,7 +23,7 @@ class EzSockets; class NetworkSyncManager { public: - NetworkSyncManager(); + NetworkSyncManager(LoadingWindow * ld = NULL); ~NetworkSyncManager(); //If "useSMserver" then send score to server diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index a45b0857ea..b0257daaca 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -66,6 +66,7 @@ const ScreenMessage SM_PlayGo = ScreenMessage(SM_User+1); // received while STATE_DANCING const ScreenMessage SM_NotesEnded = ScreenMessage(SM_User+10); const ScreenMessage SM_LoadNextSong = ScreenMessage(SM_User+11); +const ScreenMessage SM_NET_UpdateScoreboard = ScreenMessage(SM_User+12); // received while STATE_OUTRO const ScreenMessage SM_SaveChangedBeforeGoingBack = ScreenMessage(SM_User+20); @@ -1574,17 +1575,10 @@ void ScreenGameplay::Update( float fDeltaTime ) CLAMP( fPercentPositionSong, 0, 1 ); m_meterSongPosition.SetPercent( fPercentPositionSong ); - if (NSMAN->useSMserver) { + if (NSMAN->useSMserver) FOREACH_EnabledPlayer( pn2 ) - { if( m_pLifeMeter[pn2] ) NSMAN->m_playerLife[pn2] = int(m_pLifeMeter[pn2]->GetLife()*10000); - } - if (m_ShowScoreboard) - FOREACH_NSScoreBoardColumn (cn) - if (NSMAN->ChangedScoreboard(cn)) - m_Scoreboard[cn].SetText(NSMAN->m_Scoreboard[cn]); - } } void ScreenGameplay::AbortGiveUp() @@ -2329,6 +2323,14 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) case SM_StopMusic: m_soundMusic.Stop(); break; + case SM_NET_UpdateScoreboard: + if (!NSMAN->useSMserver) + break; + if (m_ShowScoreboard) + FOREACH_NSScoreBoardColumn (cn) + if (NSMAN->ChangedScoreboard(cn)) + m_Scoreboard[cn].SetText(NSMAN->m_Scoreboard[cn]); + break; } } diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 60fe884876..1bf37b3e15 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -48,6 +48,7 @@ const int NUM_SCORE_DIGITS = 9; #define CODES THEME->GetMetric (m_sName,"Codes") static const ScreenMessage SM_AllowOptionsMenuRepeat = ScreenMessage(SM_User+1); +const ScreenMessage SM_NET_SelectSong = ScreenMessage(SM_User+2); CString g_sFallbackCDTitlePath; ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuElements( sClassName ) @@ -1021,6 +1022,9 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM ) case SM_LoseFocus: CodeDetector::RefreshCacheItems(); /* reset for other screens */ break; + case SM_NET_SelectSong: + //Code will be added shortly + break; } Screen::HandleScreenMessage( SM ); diff --git a/stepmania/src/StepMania.cpp b/stepmania/src/StepMania.cpp index fb191eb6b1..82e0764a17 100644 --- a/stepmania/src/StepMania.cpp +++ b/stepmania/src/StepMania.cpp @@ -1050,11 +1050,10 @@ int main(int argc, char* argv[]) PROFILEMAN = new ProfileManager; PROFILEMAN->Init(); // must load after SONGMAN UNLOCKMAN = new UnlockSystem; + NSMAN = new NetworkSyncManager( loading_window ); + delete loading_window; // destroy this before init'ing Display - NSMAN = new NetworkSyncManager; - //Load Network Sync manager, but do not connect - ProcessArgsFirst();