diff --git a/stepmania/src/TimingData.cpp b/stepmania/src/TimingData.cpp index c71a2ef43d..1fc813f704 100644 --- a/stepmania/src/TimingData.cpp +++ b/stepmania/src/TimingData.cpp @@ -80,6 +80,28 @@ void TimingData::SetBPMAtBeat( float fBeat, float fBPM ) } } +void TimingData::SetStopAtBeat( float fBeat, float fSeconds ) +{ + unsigned i; + for( i=0; i 0 ) + AddStopSegment( StopSegment(fBeat, fSeconds) ); + } + else // StopSegment being modified is m_StopSegments[i] + { + if( fSeconds > 0 ) + m_StopSegments[i].m_fStopSeconds = fSeconds; + else + m_StopSegments.erase( m_StopSegments.begin()+i, m_StopSegments.begin()+i+1 ); + } +} + /* Multiply the BPM in the range [fStartBeat,fEndBeat) by fFactor. */ void TimingData::MultiplyBPMInBeatRange( float fStartBeat, float fEndBeat, float fFactor ) { diff --git a/stepmania/src/TimingData.h b/stepmania/src/TimingData.h index edc0849971..b6232bac6d 100644 --- a/stepmania/src/TimingData.h +++ b/stepmania/src/TimingData.h @@ -27,6 +27,7 @@ public: void GetActualBPM( float &fMinBPMOut, float &fMaxBPMOut ) const; float GetBPMAtBeat( float fBeat ) const; void SetBPMAtBeat( float fBeat, float fBPM ); + void SetStopAtBeat( float fBeat, float fSeconds ); void MultiplyBPMInBeatRange( float fStartBeat, float fEndBeat, float fFactor ); void AddBPMSegment( const BPMSegment &seg ); void AddStopSegment( const StopSegment &seg );