diff --git a/stepmania/src/NetworkSyncManager.cpp b/stepmania/src/NetworkSyncManager.cpp index d03268544b..2e0ce93536 100644 --- a/stepmania/src/NetworkSyncManager.cpp +++ b/stepmania/src/NetworkSyncManager.cpp @@ -11,6 +11,7 @@ NetworkSyncManager::~NetworkSyncManager () { } void NetworkSyncManager::CloseConnection() { } void NetworkSyncManager::PostStartUp(const CString& ServerIP ) { } bool NetworkSyncManager::Connect(const CString& addy, unsigned short port) { return false; } +CString NetworkSyncManager::GetServerName() { } void NetworkSyncManager::ReportNSSOnOff(int i) { } void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { } void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo) { } @@ -256,6 +257,11 @@ void NetworkSyncManager::ReportNSSOnOff(int i) NetPlayerClient->SendPack((char*)m_packet.Data, m_packet.Position); } +CString NetworkSyncManager::GetServerName() +{ + return m_ServerName; +} + void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { m_lastOffset[PlayerNumber] = offset; diff --git a/stepmania/src/NetworkSyncManager.h b/stepmania/src/NetworkSyncManager.h index ad648ab12a..b1e8978184 100644 --- a/stepmania/src/NetworkSyncManager.h +++ b/stepmania/src/NetworkSyncManager.h @@ -91,6 +91,7 @@ public: 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. + CString GetServerName(); //SMOnline stuff void SendSMOnline( PacketFunctions &PackData ); diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index 4ce3f616c3..abe308b2a5 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -318,7 +318,6 @@ void PrefsManager::Init() m_sMemoryCardProfileSubdir = PRODUCT_NAME; m_iProductID = 1; - FOREACH_CONST( IPreference*, *g_pvpSubscribers, p ) (*p)->LoadDefault(); } @@ -584,6 +583,10 @@ void PrefsManager::ReadPrefsFromFile( CString sIni ) ini.GetValue( "Debug", "LogCheckpoints", m_bLogCheckpoints ); ini.GetValue( "Debug", "ShowLoadingWindow", m_bShowLoadingWindow ); +#if defined (WITHOUT_NETWORKING) +#else + ini.GetValue( "Options", "LastConnectedServer", m_sLastServer ); +#endif FOREACH( IPreference*, *g_pvpSubscribers, p ) (*p)->ReadFrom( ini ); } @@ -830,6 +833,11 @@ void PrefsManager::SaveGlobalPrefsToDisk() const ini.SetValue( "Debug", "LogCheckpoints", m_bLogCheckpoints ); ini.SetValue( "Debug", "ShowLoadingWindow", m_bShowLoadingWindow ); +#if defined (WITHOUT_NETWORKING) +#else + ini.SetValue( "Options", "LastConnectedServer", m_sLastServer ); +#endif + FOREACH_CONST( IPreference*, *g_pvpSubscribers, p ) (*p)->WriteTo( ini ); ini.WriteFile( STEPMANIA_INI_PATH ); diff --git a/stepmania/src/PrefsManager.h b/stepmania/src/PrefsManager.h index cbdf785719..a8bc991d41 100644 --- a/stepmania/src/PrefsManager.h +++ b/stepmania/src/PrefsManager.h @@ -283,6 +283,13 @@ public: void ResetToFactoryDefaults(); +#if defined (WITHOUT_NETWORKING) +#else + /* Network Info */ + CString m_sLastServer; +#endif + + // // For self-registering prefs // diff --git a/stepmania/src/ScreenNetworkOptions.cpp b/stepmania/src/ScreenNetworkOptions.cpp index 93524912e7..9918f25264 100644 --- a/stepmania/src/ScreenNetworkOptions.cpp +++ b/stepmania/src/ScreenNetworkOptions.cpp @@ -12,18 +12,12 @@ #include "ScreenPrompt.h" #include "NetworkSyncServer.h" - enum { PO_CONNECTION, PO_SERVER, NUM_NETWORK_OPTIONS_LINES }; -enum { - NO_DISCONNECT=0, - NO_CONNECT -}; - enum { NO_STOP_SERVER=0, NO_START_SERVER @@ -41,15 +35,18 @@ ScreenNetworkOptions::ScreenNetworkOptions( CString sClassName ) : ScreenOptions { LOG->Trace( "ScreenNetworkOptions::ScreenNetworkOptions()" ); + m_sClassName = sClassName; + g_NetworkOptionsLines[PO_CONNECTION].choices.clear(); - g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Disconnect"); - g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Connect..."); + if ( NSMAN->useSMserver ) + g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Disconnect from "+NSMAN->GetServerName()); + else + g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Connect..."); g_NetworkOptionsLines[PO_SERVER].choices.clear(); g_NetworkOptionsLines[PO_SERVER].choices.push_back("Stop"); g_NetworkOptionsLines[PO_SERVER].choices.push_back("Start..."); - Init( INPUTMODE_SHARE_CURSOR, g_NetworkOptionsLines, @@ -79,6 +76,11 @@ void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM ) CString sNewName = ScreenTextEntry::s_sLastAnswer; NSMAN->PostStartUp(sNewName); NSMAN->DisplayStartupStatus(); + UpdateConnectStatus( ); +#if defined( WITHOUT_NETWORKING ) +#else + PREFSMAN->m_sLastServer = ScreenTextEntry::s_sLastAnswer; +#endif } break; case SM_ServerNameEnter: @@ -103,18 +105,17 @@ void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM ) void ScreenNetworkOptions::MenuStart( PlayerNumber pn, const InputEventType type ) { +#if defined( WITHOUT_NETWORKING ) +#else switch( GetCurrentRow() ) { case PO_CONNECTION: - switch (m_Rows[GetCurrentRow()]->GetOneSharedSelection()) - { - case NO_CONNECT: - SCREENMAN->TextEntry( SM_DoneConnecting, "Enter a Network Address\n127.0.0.1 to connect to yourself", "", NULL ); - break; - case NO_DISCONNECT: + if ( !NSMAN->useSMserver ) + SCREENMAN->TextEntry( SM_DoneConnecting, "Enter a Network Address\n127.0.0.1 to connect to yourself", PREFSMAN->m_sLastServer ); + else { NSMAN->CloseConnection(); SCREENMAN->SystemMessage("Disconnected from server."); - break; + UpdateConnectStatus( ); } break; case PO_SERVER: @@ -135,17 +136,16 @@ void ScreenNetworkOptions::MenuStart( PlayerNumber pn, const InputEventType type default: ScreenOptions::MenuStart( pn, type ); } +#endif } -void ScreenNetworkOptions::ImportOptions() +void ScreenNetworkOptions::ImportOptions() { } +void ScreenNetworkOptions::ExportOptions() { } + +void ScreenNetworkOptions::UpdateConnectStatus( ) { - + SCREENMAN->SetNewScreen( m_sClassName ); } -void ScreenNetworkOptions::ExportOptions() -{ - -} - #endif /* diff --git a/stepmania/src/ScreenNetworkOptions.h b/stepmania/src/ScreenNetworkOptions.h index 5538b48548..4b798552a8 100644 --- a/stepmania/src/ScreenNetworkOptions.h +++ b/stepmania/src/ScreenNetworkOptions.h @@ -18,6 +18,10 @@ private: void GoToNextState(); void GoToPrevState(); + + void UpdateConnectStatus(); + + CString m_sClassName; }; #endif