From 0c4d8a5b2982d5472f1ca270441a0e21d4ab082a Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 6 Feb 2004 03:57:47 +0000 Subject: [PATCH] fix nonstop showing in menus when it shouldn't --- stepmania/src/MusicWheel.cpp | 18 ++++++++++-------- stepmania/src/MusicWheel.h | 1 + stepmania/src/ScreenSelectCourse.cpp | 2 ++ stepmania/src/ScreenSelectMusic.cpp | 5 ++++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index d97dbe27ea..3d0034c9d5 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -81,8 +81,17 @@ static const SongSortOrder SortOrder[] = }; // use ARRAYSIZE(SortOrder) - MusicWheel::MusicWheel() +{ + // update theme metric cache + SWITCH_SECONDS.Refresh(); + ITEM_CURVE_X.Refresh(); + ITEM_SPACING_Y.Refresh(); + USE_3D.Refresh(); + NUM_WHEEL_ITEMS_METRIC.Refresh(); +} + +void MusicWheel::Load() { LOG->Trace( "MusicWheel::MusicWheel()" ); if (GAMESTATE->m_pCurSong != NULL) @@ -92,13 +101,6 @@ MusicWheel::MusicWheel() SONGMAN->UpdateRankingCourses(); - // update theme metric cache - SWITCH_SECONDS.Refresh(); - ITEM_CURVE_X.Refresh(); - ITEM_SPACING_Y.Refresh(); - USE_3D.Refresh(); - NUM_WHEEL_ITEMS_METRIC.Refresh(); - if( USE_3D ) { WHEEL_3D_RADIUS.Refresh(); diff --git a/stepmania/src/MusicWheel.h b/stepmania/src/MusicWheel.h index 943c4c132b..7f2ce54024 100644 --- a/stepmania/src/MusicWheel.h +++ b/stepmania/src/MusicWheel.h @@ -42,6 +42,7 @@ class MusicWheel : public ActorFrame public: MusicWheel(); ~MusicWheel(); + void Load(); virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); diff --git a/stepmania/src/ScreenSelectCourse.cpp b/stepmania/src/ScreenSelectCourse.cpp index 1c3eed7964..0316630a14 100644 --- a/stepmania/src/ScreenSelectCourse.cpp +++ b/stepmania/src/ScreenSelectCourse.cpp @@ -67,6 +67,8 @@ ScreenSelectCourse::ScreenSelectCourse( CString sClassName ) : Screen( sClassNam SOUND->PlayMusic( THEME->GetPathToS("ScreenSelectCourse music") ); + m_MusicWheel.Load(); + m_bMadeChoice = false; m_bGoToOptions = false; m_bAllowOptionsMenuRepeat = false; diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index f6f3617083..06c8839023 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -86,7 +86,8 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName m_bInCourseDisplayMode = GAMESTATE->IsCourseMode(); - /* Finish any previous stage. It's OK to call this when we havn't played a stage yet. */ + /* Finish any previous stage. It's OK to call this when we havn't played a stage yet. + * Do this before anything that might look at GAMESTATE->m_iCurrentStageIndex. */ GAMESTATE->FinishStage(); /* Cache: */ @@ -100,6 +101,8 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName CodeDetector::RefreshCacheItems(); + m_MusicWheel.Load(); + int p; m_Menu.Load( "ScreenSelectMusic" );