diff --git a/src/DBProfile.cpp b/src/DBProfile.cpp index ee1feadd3e..f6149e26ca 100644 --- a/src/DBProfile.cpp +++ b/src/DBProfile.cpp @@ -400,8 +400,6 @@ void DBProfile::LoadScoreGoals(SQLite::Database* db) //Add it to the GoalsForAChart goalmap[chart] loadingProfile->goalmap[ck].Add(sg); } - - SONGMAN->SetHasGoal(loadingProfile->goalmap); } ProfileLoadResult DBProfile::SaveDBToDir(string dir, const Profile* profile, DBProfileMode mode) const diff --git a/src/ScreenNetSelectMusic.cpp b/src/ScreenNetSelectMusic.cpp index f815182704..97761ed1c6 100644 --- a/src/ScreenNetSelectMusic.cpp +++ b/src/ScreenNetSelectMusic.cpp @@ -687,6 +687,11 @@ void ScreenNetSelectMusic::UpdateDifficulties( PlayerNumber pn ) m_StepsDisplays[pn].SetFromStepsTypeAndMeterAndDifficultyAndCourseType( StepsType_Invalid, 0, Difficulty_Beginner ); } +void ScreenNetSelectMusic::BeginScreen() +{ + ScreenNetSelectBase::BeginScreen(); + SONGMAN->SetFlagsForProfile(PROFILEMAN->GetProfile(PLAYER_1)); +} void ScreenNetSelectMusic::MusicChanged() { if( GAMESTATE->m_pCurSong == NULL ) diff --git a/src/ScreenNetSelectMusic.h b/src/ScreenNetSelectMusic.h index e0761a304a..d954d375ca 100644 --- a/src/ScreenNetSelectMusic.h +++ b/src/ScreenNetSelectMusic.h @@ -17,6 +17,7 @@ class ScreenNetSelectMusic : public ScreenNetSelectBase { public: void Init() override; + void BeginScreen() override; bool Input( const InputEventPlus &input ) override; void HandleScreenMessage( const ScreenMessage SM ) override; diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 5ee98350ee..579ced4918 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -232,6 +232,7 @@ void ScreenSelectMusic::BeginScreen() SONGMAN->MakeSongGroupsFromPlaylists(); SONGMAN->SetFavoritedStatus(PROFILEMAN->GetProfile(PLAYER_1)->FavoritedCharts); + SONGMAN->SetHasGoal(PROFILEMAN->GetProfile(PLAYER_1)->goalmap); if (CommonMetrics::AUTO_SET_STYLE) { GAMESTATE->SetCompatibleStylesForPlayers(); diff --git a/src/SongManager.cpp b/src/SongManager.cpp index d07844c4d1..7fcb91dc80 100644 --- a/src/SongManager.cpp +++ b/src/SongManager.cpp @@ -730,10 +730,13 @@ void SongManager::SetPermaMirroredStatus(set& pmir) { // hurr should probably redo both (all three) of these -mina void SongManager::SetHasGoal(unordered_map& goalmap) { - FOREACH(Song*, m_pSongs, song) + FOREACH(Song*, m_pSongs, song) { + bool hasGoal = false; FOREACH_CONST(Steps*, (*song)->GetAllSteps(), steps) - if(goalmap.count((*steps)->GetChartKey())) - (*song)->SetHasGoal(true); + if (goalmap.count((*steps)->GetChartKey())) + hasGoal = true; + (*song)->SetHasGoal(hasGoal); + } } RString SongManager::GetSongGroupBannerPath( const RString &sSongGroup ) const diff --git a/src/XMLProfile.cpp b/src/XMLProfile.cpp index c792e7ec09..6bb14b6fc7 100644 --- a/src/XMLProfile.cpp +++ b/src/XMLProfile.cpp @@ -487,7 +487,6 @@ void XMLProfile::LoadScoreGoalsFromNode(const XNode *pNode) { ck = SONGMAN->ReconcileBustedKeys(ck); loadingProfile->goalmap[ck].LoadFromNode(chgoals); } - SONGMAN->SetHasGoal(loadingProfile->goalmap); } void XMLProfile::LoadPlaylistsFromNode(const XNode *pNode) {