Merge pull request #240 from sigatrev/UpdatePlayerSongPositions

UpdateSongPositions
This commit is contained in:
kyzentun
2014-07-30 23:03:41 -06:00
5 changed files with 10 additions and 13 deletions
+5 -8
View File
@@ -998,7 +998,7 @@ void GameState::ResetStageStatistics()
m_iStageSeed = rand(); m_iStageSeed = rand();
} }
void GameState::UpdateSongPosition( float fPositionSeconds, const TimingData &timing, const RageTimer &timestamp, bool bUpdatePlayers ) void GameState::UpdateSongPosition( float fPositionSeconds, const TimingData &timing, const RageTimer &timestamp )
{ {
/* It's not uncommon to get a lot of duplicated positions from the sound /* It's not uncommon to get a lot of duplicated positions from the sound
* driver, like so: 13.120953,13.130975,13.130975,13.130975,13.140998,... * driver, like so: 13.120953,13.130975,13.130975,13.130975,13.140998,...
@@ -1017,15 +1017,12 @@ void GameState::UpdateSongPosition( float fPositionSeconds, const TimingData &ti
m_Position.UpdateSongPosition( fPositionSeconds, timing, timestamp ); m_Position.UpdateSongPosition( fPositionSeconds, timing, timestamp );
if( bUpdatePlayers ) FOREACH_EnabledPlayer( pn )
{ {
FOREACH_EnabledPlayer( pn ) if( m_pCurSteps[pn] )
{ {
if( m_pCurSteps[pn] ) m_pPlayerState[pn]->m_Position.UpdateSongPosition( fPositionSeconds, *m_pCurSteps[pn]->GetTimingData(), timestamp );
{ Actor::SetPlayerBGMBeat( pn, m_pPlayerState[pn]->m_Position.m_fSongBeatVisible, m_pPlayerState[pn]->m_Position.m_fSongBeatNoOffset );
m_pPlayerState[pn]->m_Position.UpdateSongPosition( fPositionSeconds, *m_pCurSteps[pn]->GetTimingData(), timestamp );
Actor::SetPlayerBGMBeat( pn, m_pPlayerState[pn]->m_Position.m_fSongBeatVisible, m_pPlayerState[pn]->m_Position.m_fSongBeatNoOffset );
}
} }
} }
Actor::SetBGMTime( GAMESTATE->m_Position.m_fMusicSecondsVisible, GAMESTATE->m_Position.m_fSongBeatVisible, fPositionSeconds, GAMESTATE->m_Position.m_fSongBeatNoOffset ); Actor::SetBGMTime( GAMESTATE->m_Position.m_fMusicSecondsVisible, GAMESTATE->m_Position.m_fSongBeatVisible, fPositionSeconds, GAMESTATE->m_Position.m_fSongBeatNoOffset );
+1 -1
View File
@@ -254,7 +254,7 @@ public:
static const float MUSIC_SECONDS_INVALID; static const float MUSIC_SECONDS_INVALID;
void ResetMusicStatistics(); // Call this when it's time to play a new song. Clears the values above. void ResetMusicStatistics(); // Call this when it's time to play a new song. Clears the values above.
void UpdateSongPosition( float fPositionSeconds, const TimingData &timing, const RageTimer &timestamp = RageZeroTimer, bool bUpdatePlayers = false ); void UpdateSongPosition( float fPositionSeconds, const TimingData &timing, const RageTimer &timestamp = RageZeroTimer );
float GetSongPercent( float beat ) const; float GetSongPercent( float beat ) const;
bool AllAreInDangerOrWorse() const; bool AllAreInDangerOrWorse() const;
+2 -2
View File
@@ -1345,7 +1345,7 @@ void ScreenEdit::Update( float fDeltaTime )
{ {
RageTimer tm; RageTimer tm;
const float fSeconds = m_pSoundMusic->GetPositionSeconds( NULL, &tm ); const float fSeconds = m_pSoundMusic->GetPositionSeconds( NULL, &tm );
GAMESTATE->UpdateSongPosition( fSeconds, GAMESTATE->m_pCurSong->m_SongTiming, tm, true ); GAMESTATE->UpdateSongPosition( fSeconds, GAMESTATE->m_pCurSong->m_SongTiming, tm );
} }
if( m_EditState == STATE_RECORDING ) if( m_EditState == STATE_RECORDING )
@@ -3037,7 +3037,7 @@ void ScreenEdit::TransitionEditState( EditState em )
/* Give a 1 second lead-in. If we're loading Player, this must be done first. /* Give a 1 second lead-in. If we're loading Player, this must be done first.
* Also be sure to get the right timing. */ * Also be sure to get the right timing. */
float fSeconds = GetAppropriateTiming().GetElapsedTimeFromBeat( NoteRowToBeat(m_iStartPlayingAt) ) - 1; float fSeconds = GetAppropriateTiming().GetElapsedTimeFromBeat( NoteRowToBeat(m_iStartPlayingAt) ) - 1;
GAMESTATE->UpdateSongPosition( fSeconds, GetAppropriateTiming(), RageZeroTimer, true ); GAMESTATE->UpdateSongPosition( fSeconds, GetAppropriateTiming(), RageZeroTimer );
GAMESTATE->m_bGameplayLeadIn.Set( false ); GAMESTATE->m_bGameplayLeadIn.Set( false );
+1 -1
View File
@@ -1468,7 +1468,7 @@ void ScreenGameplay::UpdateSongPosition( float fDeltaTime )
RageTimer tm; RageTimer tm;
const float fSeconds = m_pSoundMusic->GetPositionSeconds( NULL, &tm ); const float fSeconds = m_pSoundMusic->GetPositionSeconds( NULL, &tm );
const float fAdjust = SOUND->GetFrameTimingAdjustment( fDeltaTime ); const float fAdjust = SOUND->GetFrameTimingAdjustment( fDeltaTime );
GAMESTATE->UpdateSongPosition( fSeconds+fAdjust, GAMESTATE->m_pCurSong->m_SongTiming, tm+fAdjust, true ); GAMESTATE->UpdateSongPosition( fSeconds+fAdjust, GAMESTATE->m_pCurSong->m_SongTiming, tm+fAdjust );
} }
void ScreenGameplay::BeginScreen() void ScreenGameplay::BeginScreen()
+1 -1
View File
@@ -251,7 +251,7 @@ void ScreenHowToPlay::Update( float fDelta )
if( GAMESTATE->m_pCurSong != NULL ) if( GAMESTATE->m_pCurSong != NULL )
{ {
RageTimer tm; RageTimer tm;
GAMESTATE->UpdateSongPosition( m_fFakeSecondsIntoSong, GAMESTATE->m_pCurSong->m_SongTiming, tm, true ); GAMESTATE->UpdateSongPosition( m_fFakeSecondsIntoSong, GAMESTATE->m_pCurSong->m_SongTiming, tm );
m_fFakeSecondsIntoSong += fDelta; m_fFakeSecondsIntoSong += fDelta;
static int iLastNoteRowCounted = 0; static int iLastNoteRowCounted = 0;