set up GAMESTATE->m_fMusicSeconds earlier
This commit is contained in:
@@ -444,8 +444,7 @@ int Background::FindBGSegmentForBeat( float fBeat ) const
|
|||||||
/* If the BG segment has changed, move focus to it. Send Update() calls. */
|
/* If the BG segment has changed, move focus to it. Send Update() calls. */
|
||||||
void Background::UpdateCurBGChange( float fCurrentTime )
|
void Background::UpdateCurBGChange( float fCurrentTime )
|
||||||
{
|
{
|
||||||
if( fCurrentTime == GameState::MUSIC_SECONDS_INVALID )
|
ASSERT( fCurrentTime != GameState::MUSIC_SECONDS_INVALID );
|
||||||
return; /* hasn't been updated yet */
|
|
||||||
|
|
||||||
if( m_aBGChanges.size() == 0 )
|
if( m_aBGChanges.size() == 0 )
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -52,9 +52,6 @@ void Foreground::LoadFromSong( const Song *pSong )
|
|||||||
|
|
||||||
void Foreground::Update( float fDeltaTime )
|
void Foreground::Update( float fDeltaTime )
|
||||||
{
|
{
|
||||||
if( GAMESTATE->m_fMusicSeconds == GameState::MUSIC_SECONDS_INVALID )
|
|
||||||
return; /* hasn't been updated yet */
|
|
||||||
|
|
||||||
/* Calls to Update() should *not* be scaled by music rate. Undo it. */
|
/* Calls to Update() should *not* be scaled by music rate. Undo it. */
|
||||||
const float fRate = GAMESTATE->m_SongOptions.m_fMusicRate;
|
const float fRate = GAMESTATE->m_SongOptions.m_fMusicRate;
|
||||||
|
|
||||||
|
|||||||
@@ -1040,6 +1040,11 @@ float ScreenGameplay::StartPlayingSong(float MinTimeToNotes, float MinTimeToMusi
|
|||||||
SOUND->TakeOverSound( m_soundMusic, &GAMESTATE->m_pCurSong->m_Timing );
|
SOUND->TakeOverSound( m_soundMusic, &GAMESTATE->m_pCurSong->m_Timing );
|
||||||
m_soundMusic = NULL; // SOUND owns it now
|
m_soundMusic = NULL; // SOUND owns it now
|
||||||
|
|
||||||
|
/* Make sure GAMESTATE->m_fMusicSeconds is set up. */
|
||||||
|
GAMESTATE->m_fMusicSeconds = -5000;
|
||||||
|
SOUND->Update(0);
|
||||||
|
ASSERT( GAMESTATE->m_fMusicSeconds > -4000 ); /* make sure the "fake timer" code doesn't trigger */
|
||||||
|
|
||||||
/* Return the amount of time until the first beat. */
|
/* Return the amount of time until the first beat. */
|
||||||
return fFirstSecond - fStartSecond;
|
return fFirstSecond - fStartSecond;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user