diff --git a/stepmania/src/NetworkSyncManager.cpp b/stepmania/src/NetworkSyncManager.cpp index ef4eba4421..3ed49284ff 100644 --- a/stepmania/src/NetworkSyncManager.cpp +++ b/stepmania/src/NetworkSyncManager.cpp @@ -66,10 +66,10 @@ NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld ) NetPlayerClient = new EzSockets; NetPlayerClient->blocking = false; m_ServerVersion = 0; - useSMserver = false; isSMOnline = false; + isSMOLoggedIn = false; m_startupStatus = 0; //By default, connection not tried. @@ -98,6 +98,7 @@ void NetworkSyncManager::CloseConnection() return ; m_ServerVersion = 0; useSMserver = false; + isSMOLoggedIn = false; m_startupStatus = 0; NetPlayerClient->close(); } @@ -125,6 +126,8 @@ void NetworkSyncManager::PostStartUp(const CString& ServerIP) } } + isSMOLoggedIn = false; + useSMserver = true; m_startupStatus = 1; //Connection attepmpt sucessful @@ -810,7 +813,7 @@ void PacketFunctions::ClearPacket() LuaFunction_NoArgs( IsNetConnected, NSMAN->useSMserver ) LuaFunction_NoArgs( IsNetSMOnline, NSMAN->isSMOnline ) - +LuaFunction_NoArgs( IsSMOnlineLoggedIn, NSMAN->isSMOLoggedIn ) /* * (c) 2003-2004 Charles Lohr, Joshua Allen * All rights reserved. diff --git a/stepmania/src/NetworkSyncManager.h b/stepmania/src/NetworkSyncManager.h index 8f297086f9..353bf44bc0 100644 --- a/stepmania/src/NetworkSyncManager.h +++ b/stepmania/src/NetworkSyncManager.h @@ -109,6 +109,7 @@ public: bool useSMserver; bool isSMOnline; + bool isSMOLoggedIn; vector m_PlayerStatus; int m_ActivePlayers; diff --git a/stepmania/src/ScreenPackages.cpp b/stepmania/src/ScreenPackages.cpp index b50ee6af16..6969591e2e 100644 --- a/stepmania/src/ScreenPackages.cpp +++ b/stepmania/src/ScreenPackages.cpp @@ -50,6 +50,7 @@ ScreenPackages::ScreenPackages( CString sClassName ) : ScreenWithMenuElements( s COMMAND( m_sprExistingBG, "Back" ); COMMAND( m_sprWebBG, "Away" ); +// m_fOutputFile. m_textPackages.LoadFromFont( THEME->GetPathF(m_sName,"default") ); m_textPackages.SetShadowLength( 0 ); m_textPackages.SetName( "Packages" ); diff --git a/stepmania/src/ScreenSMOnlineLogin.cpp b/stepmania/src/ScreenSMOnlineLogin.cpp index 406edc3490..766796f717 100644 --- a/stepmania/src/ScreenSMOnlineLogin.cpp +++ b/stepmania/src/ScreenSMOnlineLogin.cpp @@ -57,6 +57,7 @@ ScreenSMOnlineLogin::ScreenSMOnlineLogin( const CString& sName ) : ScreenWithMen SET_XY_AND_ON_COMMAND( m_textLoginMessage ); this->AddChild( &m_textLoginMessage ); + NSMAN->isSMOLoggedIn = false; } void ScreenSMOnlineLogin::Input( const DeviceInput& DeviceI, const InputEventType type, @@ -146,14 +147,17 @@ void ScreenSMOnlineLogin::HandleScreenMessage( const ScreenMessage SM ) SCREENMAN->SetNewScreen( THEME->GetMetric (m_sName, "NextScreen") ); break; case SM_SMOnlinePack: - + int ResponceCode = NSMAN->m_SMOnlinePacket.Read1(); if ( ResponceCode == 0 ) { int Status = NSMAN->m_SMOnlinePacket.Read1(); if ( Status == 0 ) + { + NSMAN->isSMOLoggedIn = true; SCREENMAN->SendMessageToTopScreen( SM_GoToNextScreen ); - else + } + else { CString Responce = NSMAN->m_SMOnlinePacket.ReadNT(); m_textLoginMessage.SetText( Responce ); @@ -209,7 +213,8 @@ void ScreenSMOnlineLogin::SendLogin() MD5Init( &BASE ); - MD5Update( &BASE, Input, 5); + + MD5Update( &BASE, Input, m_sPassword.length()); MD5Final( Output, &BASE ); @@ -221,13 +226,19 @@ void ScreenSMOnlineLogin::SendLogin() if ( PreHashedName.c_str()[i] == ' ' ) HashedName += '0'; else - HashedName += PreHashedName.c_str()[i]; + if ( PreHashedName.c_str()[i]=='\0' ) + HashedName += ' '; + else + HashedName += PreHashedName.c_str()[i]; + + NSMAN->m_SMOnlinePacket.ClearPacket(); - NSMAN->m_SMOnlinePacket.ClearPacket(); NSMAN->m_SMOnlinePacket.Write1((uint8_t)0); //Login command + NSMAN->m_SMOnlinePacket.Write1((uint8_t)m_iPlayer); //Player NSMAN->m_SMOnlinePacket.Write1((uint8_t)0); //MD5 hash style NSMAN->m_SMOnlinePacket.WriteNT(m_sUserName); NSMAN->m_SMOnlinePacket.WriteNT(HashedName); + NSMAN->SendSMOnline( ); }