Explicitly set the preferred song in SSM's ctor, instead of handling it in
the music wheel. This way, we can re-set the preferred song at any time and have it take effect when we get back to the wheel; previously, if we'd already played a song, m_pCurSong would override it.
This commit is contained in:
@@ -258,12 +258,8 @@ bool MusicWheel::SelectSongOrCourse()
|
|||||||
{
|
{
|
||||||
if( GAMESTATE->m_pCurSong && SelectSong( GAMESTATE->m_pCurSong ) )
|
if( GAMESTATE->m_pCurSong && SelectSong( GAMESTATE->m_pCurSong ) )
|
||||||
return true;
|
return true;
|
||||||
if( GAMESTATE->m_pPreferredSong && SelectSong( GAMESTATE->m_pPreferredSong ) )
|
|
||||||
return true;
|
|
||||||
if( GAMESTATE->m_pCurCourse && SelectCourse( GAMESTATE->m_pCurCourse ) )
|
if( GAMESTATE->m_pCurCourse && SelectCourse( GAMESTATE->m_pCurCourse ) )
|
||||||
return true;
|
return true;
|
||||||
if( GAMESTATE->m_pPreferredCourse && SelectCourse( GAMESTATE->m_pPreferredCourse ) )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// Select the first selectable song based on the sort order...
|
// Select the first selectable song based on the sort order...
|
||||||
vector<WheelItemData> &wiWheelItems = m_WheelItemDatas[m_SortOrder];
|
vector<WheelItemData> &wiWheelItems = m_WheelItemDatas[m_SortOrder];
|
||||||
|
|||||||
@@ -71,6 +71,15 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuEleme
|
|||||||
/* 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. */
|
* Do this before anything that might look at GAMESTATE->m_iCurrentStageIndex. */
|
||||||
GAMESTATE->FinishStage();
|
GAMESTATE->FinishStage();
|
||||||
|
|
||||||
|
/* If we have a preferred song, let it override the active song. That way, you
|
||||||
|
* can set PreferredSong at any time (eg. during initial menus or evaluation) to
|
||||||
|
* select the default song for the next play, without interfering with things
|
||||||
|
* that still need pCurSong. */
|
||||||
|
if( GAMESTATE->m_pPreferredSong )
|
||||||
|
GAMESTATE->m_pCurSong.Set( GAMESTATE->m_pPreferredSong );
|
||||||
|
if( GAMESTATE->m_pPreferredCourse )
|
||||||
|
GAMESTATE->m_pCurCourse = GAMESTATE->m_pPreferredCourse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user