diff --git a/src/AdjustSync.cpp b/src/AdjustSync.cpp index f3e17c7e3e..dbed2a0c59 100644 --- a/src/AdjustSync.cpp +++ b/src/AdjustSync.cpp @@ -43,8 +43,7 @@ #include "ScreenManager.h" #include "Foreach.h" -TimingData *AdjustSync::s_pTimingDataOriginal = NULL; -vector AdjustSync::s_vpTimingDataOriginal; +vector AdjustSync::s_vpTimingDataOriginal; float AdjustSync::s_fGlobalOffsetSecondsOriginal = 0.0f; int AdjustSync::s_iAutosyncOffsetSample = 0; float AdjustSync::s_fAutosyncOffset[AdjustSync::OFFSET_SAMPLE_COUNT]; @@ -56,34 +55,21 @@ int AdjustSync::s_iStepsFiltered = 0; void AdjustSync::ResetOriginalSyncData() { - // TODO: Reset the vector if not in a song? - if( s_vpTimingDataOriginal.empty() ) - { - s_pTimingDataOriginal = new TimingData; - s_vpTimingDataOriginal.clear(); // sanity check for now. - s_vpTimingDataOriginal.push_back(new TimingData()); - } + s_vpTimingDataOriginal.clear(); if( GAMESTATE->m_pCurSong ) { - *s_pTimingDataOriginal = GAMESTATE->m_pCurSong->m_SongTiming; - // Deal with the vector code here. - s_vpTimingDataOriginal.clear(); - s_vpTimingDataOriginal.push_back(&GAMESTATE->m_pCurSong->m_SongTiming); - // Loop through the steps. + + s_vpTimingDataOriginal.push_back(GAMESTATE->m_pCurSong->m_SongTiming); const vector& vpSteps = GAMESTATE->m_pCurSong->GetAllSteps(); FOREACH( Steps*, const_cast&>(vpSteps), s ) { - /* Capture each Step's timing data in the vector. - * TODO: Make this less ugly. */ - s_vpTimingDataOriginal.push_back(&(*s)->m_Timing); + s_vpTimingDataOriginal.push_back((*s)->m_Timing); } } else { - s_vpTimingDataOriginal.clear(); - s_vpTimingDataOriginal.push_back(new TimingData()); - *s_pTimingDataOriginal = TimingData(); + s_vpTimingDataOriginal.push_back(TimingData()); } s_fGlobalOffsetSecondsOriginal = PREFSMAN->m_fGlobalOffsetSeconds; @@ -114,7 +100,7 @@ void AdjustSync::SaveSyncChanges() /* TODO: Save all of the timing data changes. * Luckily, only the song timing data needs comparing here. */ - if( GAMESTATE->m_pCurSong && *s_vpTimingDataOriginal[0] != GAMESTATE->m_pCurSong->m_SongTiming ) + if( GAMESTATE->m_pCurSong && s_vpTimingDataOriginal[0] != GAMESTATE->m_pCurSong->m_SongTiming ) { if( GAMESTATE->IsEditing() ) { @@ -139,13 +125,13 @@ void AdjustSync::RevertSyncChanges() PREFSMAN->m_fGlobalOffsetSeconds.Set( s_fGlobalOffsetSecondsOriginal ); // The first one is ALWAYS the song timing. - GAMESTATE->m_pCurSong->m_SongTiming = *s_vpTimingDataOriginal[0]; + GAMESTATE->m_pCurSong->m_SongTiming = s_vpTimingDataOriginal[0]; unsigned location = 1; const vector& vpSteps = GAMESTATE->m_pCurSong->GetAllSteps(); FOREACH( Steps*, const_cast&>(vpSteps), s ) { - (*s)->m_Timing = *s_vpTimingDataOriginal[location]; + (*s)->m_Timing = s_vpTimingDataOriginal[location]; location++; } @@ -339,11 +325,11 @@ void AdjustSync::GetSyncChangeTextSong( vector &vsAddTo ) if( GAMESTATE->m_pCurSong.Get() ) { unsigned int iOriginalSize = vsAddTo.size(); - TimingData *original = s_vpTimingDataOriginal[0]; + TimingData original = s_vpTimingDataOriginal[0]; TimingData &testing = GAMESTATE->m_pCurSong->m_SongTiming; { - float fOld = Quantize( (*original).m_fBeat0OffsetInSeconds, 0.001f ); + float fOld = Quantize( original.m_fBeat0OffsetInSeconds, 0.001f ); float fNew = Quantize( testing.m_fBeat0OffsetInSeconds, 0.001f ); float fDelta = fNew - fOld; @@ -359,7 +345,7 @@ void AdjustSync::GetSyncChangeTextSong( vector &vsAddTo ) for( unsigned i=0; i< testing.m_BPMSegments.size(); i++ ) { - float fOld = Quantize( (*original).m_BPMSegments[i].GetBPM(), 0.001f ); + float fOld = Quantize( original.m_BPMSegments[i].GetBPM(), 0.001f ); float fNew = Quantize( testing.m_BPMSegments[i].GetBPM(), 0.001f ); float fDelta = fNew - fOld; @@ -380,7 +366,7 @@ void AdjustSync::GetSyncChangeTextSong( vector &vsAddTo ) for( unsigned i=0; i< testing.m_StopSegments.size(); i++ ) { - float fOld = Quantize( (*original).m_StopSegments[i].m_fStopSeconds, 0.001f ); + float fOld = Quantize( original.m_StopSegments[i].m_fStopSeconds, 0.001f ); float fNew = Quantize( testing.m_StopSegments[i].m_fStopSeconds, 0.001f ); float fDelta = fNew - fOld; diff --git a/src/AdjustSync.h b/src/AdjustSync.h index 80c1c87943..e6da6d1997 100644 --- a/src/AdjustSync.h +++ b/src/AdjustSync.h @@ -13,14 +13,11 @@ class TimingData; class AdjustSync { public: - /** @brief The original TimingData before adjustments are made. */ - static TimingData *s_pTimingDataOriginal; - /** * @brief The original TimingData before adjustments were made. * * This is designed to work with Split Timing. */ - static vector s_vpTimingDataOriginal; + static vector s_vpTimingDataOriginal; static float s_fGlobalOffsetSecondsOriginal; /* We only want to call the Reset methods before a song, not immediately after