diff --git a/stepmania/src/SongManager.cpp b/stepmania/src/SongManager.cpp index ae7622d168..ba34b645de 100644 --- a/stepmania/src/SongManager.cpp +++ b/stepmania/src/SongManager.cpp @@ -94,8 +94,9 @@ void SongManager::Reload( LoadingWindow *ld ) InitAll( ld ); - // reload scores afterward + // reload scores and unlocks afterward PROFILEMAN->LoadMachineProfile(); + UNLOCKMAN->Reload(); PREFSMAN->m_bFastLoad.Set( OldVal ); diff --git a/stepmania/src/UnlockManager.cpp b/stepmania/src/UnlockManager.cpp index 5e82f7800f..d54b898f13 100644 --- a/stepmania/src/UnlockManager.cpp +++ b/stepmania/src/UnlockManager.cpp @@ -511,6 +511,16 @@ void UnlockManager::Load() return; } + +void UnlockManager::Reload() +{ + // clear old data, if any + m_UnlockEntries.clear(); + m_RouletteCodes.clear(); + + Load(); +} + float UnlockManager::PointsUntilNextUnlock( UnlockRequirement t ) const { float fScores[NUM_UnlockRequirement]; diff --git a/stepmania/src/UnlockManager.h b/stepmania/src/UnlockManager.h index 7c8314ee98..693af2506e 100644 --- a/stepmania/src/UnlockManager.h +++ b/stepmania/src/UnlockManager.h @@ -87,6 +87,7 @@ class UnlockManager public: UnlockManager(); + void Reload(); // returns # of points till next unlock - used for ScreenUnlock float PointsUntilNextUnlock( UnlockRequirement t ) const;