Fix sample music doesn't always start. This depended on m_Out being
started first, which was brittle.
This commit is contained in:
@@ -563,7 +563,8 @@ void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSelectMusic::CheckBackgroundRequests()
|
/* If bForce is true, the next request will be started even if it might cause a skip. */
|
||||||
|
void ScreenSelectMusic::CheckBackgroundRequests( bool bForce )
|
||||||
{
|
{
|
||||||
if( g_bCDTitleWaiting )
|
if( g_bCDTitleWaiting )
|
||||||
{
|
{
|
||||||
@@ -597,7 +598,7 @@ void ScreenSelectMusic::CheckBackgroundRequests()
|
|||||||
* for the options screen if a song is selected quickly. Also, don't do this
|
* for the options screen if a song is selected quickly. Also, don't do this
|
||||||
* if the wheel is locked, since we're just bouncing around after selecting TYPE_RANDOM,
|
* if the wheel is locked, since we're just bouncing around after selecting TYPE_RANDOM,
|
||||||
* and it'll take a while before the wheel will settle. */
|
* and it'll take a while before the wheel will settle. */
|
||||||
if( !m_MusicWheel.IsSettled() && !m_MusicWheel.WheelIsLocked() && !m_Out.IsTransitioning() )
|
if( !m_MusicWheel.IsSettled() && !m_MusicWheel.WheelIsLocked() && !bForce )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( g_bBannerWaiting )
|
if( g_bBannerWaiting )
|
||||||
@@ -631,7 +632,7 @@ void ScreenSelectMusic::CheckBackgroundRequests()
|
|||||||
if( g_bSampleMusicWaiting )
|
if( g_bSampleMusicWaiting )
|
||||||
{
|
{
|
||||||
/* Don't start the music sample when moving fast. */
|
/* Don't start the music sample when moving fast. */
|
||||||
if( g_StartedLoadingAt.Ago() < SAMPLE_MUSIC_DELAY )
|
if( g_StartedLoadingAt.Ago() < SAMPLE_MUSIC_DELAY || bForce )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
g_bSampleMusicWaiting = false;
|
g_bSampleMusicWaiting = false;
|
||||||
@@ -648,7 +649,7 @@ void ScreenSelectMusic::Update( float fDeltaTime )
|
|||||||
{
|
{
|
||||||
Screen::Update( fDeltaTime );
|
Screen::Update( fDeltaTime );
|
||||||
|
|
||||||
CheckBackgroundRequests();
|
CheckBackgroundRequests( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSelectMusic::Input( const InputEventPlus &input )
|
void ScreenSelectMusic::Input( const InputEventPlus &input )
|
||||||
@@ -1205,7 +1206,7 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn )
|
|||||||
* come through, the music will still start. */
|
* come through, the music will still start. */
|
||||||
g_bCDTitleWaiting = g_bBannerWaiting = false;
|
g_bCDTitleWaiting = g_bBannerWaiting = false;
|
||||||
m_BackgroundLoader.Abort();
|
m_BackgroundLoader.Abort();
|
||||||
CheckBackgroundRequests();
|
CheckBackgroundRequests( true );
|
||||||
|
|
||||||
if( OPTIONS_MENU_AVAILABLE )
|
if( OPTIONS_MENU_AVAILABLE )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ protected:
|
|||||||
void AfterMusicChange();
|
void AfterMusicChange();
|
||||||
void SortOrderChanged();
|
void SortOrderChanged();
|
||||||
|
|
||||||
void CheckBackgroundRequests();
|
void CheckBackgroundRequests( bool bForce );
|
||||||
|
|
||||||
vector<Steps*> m_vpSteps;
|
vector<Steps*> m_vpSteps;
|
||||||
vector<Trail*> m_vpTrails;
|
vector<Trail*> m_vpTrails;
|
||||||
|
|||||||
Reference in New Issue
Block a user