From de4082575d41d4372ebbcf0a37a0f83c7ff6f18f Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sat, 10 Mar 2018 20:50:41 -0300 Subject: [PATCH] Move some member variables from ETTProtocol to NSMAN --- src/NetworkSyncManager.cpp | 24 +++++++++--------- src/NetworkSyncManager.h | 7 +++--- src/ScreenNetSelectMusic.cpp | 48 +++++++++++++++++++----------------- 3 files changed, 41 insertions(+), 38 deletions(-) diff --git a/src/NetworkSyncManager.cpp b/src/NetworkSyncManager.cpp index 88ff33d789..9fb40180ad 100644 --- a/src/NetworkSyncManager.cpp +++ b/src/NetworkSyncManager.cpp @@ -289,8 +289,10 @@ void ETTProtocol::Update(NetworkSyncManager* n, float fDeltaTime) case ettps_loginresponse: if (!(n->loggedIn = (*it)["logged"])) n->loginResponse = (*it)["msg"].get(); - else + else { n->loginResponse = ""; + n->loggedIn = true; + } SCREENMAN->SendMessageToTopScreen(ETTP_LoginResponse); break; case ettps_hello: @@ -307,13 +309,11 @@ void ETTProtocol::Update(NetworkSyncManager* n, float fDeltaTime) break; case ettps_selectchart: { - chartkey = (*it).value("chartkey", ""); - rate = (*it).value("rate", 0); - song = SONGMAN->GetSongByChartkey(chartkey); + n->chartkey = (*it).value("chartkey", ""); + n->rate = (*it).value("rate", 0); + n->song = SONGMAN->GetSongByChartkey(n->chartkey); json j; - if (song != nullptr) - SCREENMAN->SendMessageToTopScreen(ETTP_SelectChart); - if (song != nullptr) { + if (n->song != nullptr) { SCREENMAN->SendMessageToTopScreen(ETTP_SelectChart); j["type"] = ettClientMessageMap[ettpc_haschart]; } @@ -325,11 +325,11 @@ void ETTProtocol::Update(NetworkSyncManager* n, float fDeltaTime) break; case ettps_startchart: { - chartkey = (*it).value("chartkey", ""); - rate = (*it).value("rate", 0); - song = SONGMAN->GetSongByChartkey(chartkey); + n->chartkey = (*it).value("chartkey", ""); + n->rate = (*it).value("rate", 0); + n->song = SONGMAN->GetSongByChartkey(n->chartkey); json j; - if (song != nullptr) { + if (n->song != nullptr) { SCREENMAN->SendMessageToTopScreen(ETTP_StartChart); j["type"] = ettClientMessageMap[ettpc_haschart]; } @@ -375,7 +375,7 @@ void ETTProtocol::Update(NetworkSyncManager* n, float fDeltaTime) } else { RString name = (*it)["name"].get().c_str(); - RString desc = (*it)["desc"].value("desc", "").c_str(); + RString desc = (*it).value("desc", ""); Message msg(MessageIDToString(Message_UpdateScreenHeader)); msg.SetParam("Header", name); msg.SetParam("Subheader", desc); diff --git a/src/NetworkSyncManager.h b/src/NetworkSyncManager.h index 0eccd22ad3..9e9928e27c 100644 --- a/src/NetworkSyncManager.h +++ b/src/NetworkSyncManager.h @@ -223,9 +223,6 @@ class ETTProtocol : public NetProtocol { // Websockets using uwebsockets sending public: string roomName; string roomDesc; - string chartkey; - int rate; - Song* song; bool Connect(NetworkSyncManager* n, unsigned short port, RString address) override; // Connect and say hello void close() override; void Update(NetworkSyncManager* n, float fDeltaTime) override; @@ -327,6 +324,10 @@ class NetworkSyncManager RString m_sArtist; RString m_sSubTitle; RString m_sFileHash; + string chartkey; + Song* song{nullptr}; + int rate; + int m_sHash; int m_iSelectMode; void SelectUserSong(); diff --git a/src/ScreenNetSelectMusic.cpp b/src/ScreenNetSelectMusic.cpp index 7d7960395f..20521ad7e6 100644 --- a/src/ScreenNetSelectMusic.cpp +++ b/src/ScreenNetSelectMusic.cpp @@ -418,34 +418,36 @@ void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM ) } else if (SM == ETTP_StartChart) { - auto p = static_cast(NSMAN->curProtocol); - if (!m_MusicWheel.SelectSong(p->song)) - { - m_MusicWheel.ChangeSort(SORT_GROUP); - m_MusicWheel.FinishTweening(); - SCREENMAN->PostMessageToTopScreen(SM_SetWheelSong, 0.710f); - m_MusicWheel.SelectSong(p->song); + if (NSMAN->song != nullptr) { + if (!m_MusicWheel.SelectSong(NSMAN->song)) + { + m_MusicWheel.ChangeSort(SORT_GROUP); + m_MusicWheel.FinishTweening(); + SCREENMAN->PostMessageToTopScreen(SM_SetWheelSong, 0.710f); + m_MusicWheel.SelectSong(NSMAN->song); + } + m_MusicWheel.Select(); + m_MusicWheel.Move(-1); + m_MusicWheel.Move(1); + StartSelectedSong(); + m_MusicWheel.Select(); } - m_MusicWheel.Select(); - m_MusicWheel.Move(-1); - m_MusicWheel.Move(1); - StartSelectedSong(); - m_MusicWheel.Select(); } else if (SM == ETTP_SelectChart) { - auto p = static_cast(NSMAN->curProtocol); - if (!m_MusicWheel.SelectSong(p->song)) - { - m_MusicWheel.ChangeSort(SORT_GROUP); - m_MusicWheel.FinishTweening(); - SCREENMAN->PostMessageToTopScreen(SM_SetWheelSong, 0.710f); - m_MusicWheel.SelectSong(p->song); + if (NSMAN->song != nullptr) { + if (!m_MusicWheel.SelectSong(NSMAN->song)) + { + m_MusicWheel.ChangeSort(SORT_GROUP); + m_MusicWheel.FinishTweening(); + SCREENMAN->PostMessageToTopScreen(SM_SetWheelSong, 0.710f); + m_MusicWheel.SelectSong(NSMAN->song); + } + m_MusicWheel.Select(); + m_MusicWheel.Move(-1); + m_MusicWheel.Move(1); + m_MusicWheel.Select(); } - m_MusicWheel.Select(); - m_MusicWheel.Move(-1); - m_MusicWheel.Move(1); - m_MusicWheel.Select(); } else if( SM == SM_SMOnlinePack ) {