From 080c78c0dca24794998b3e0942d19bc6d0f34333 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 26 Oct 2004 19:18:03 +0000 Subject: [PATCH] Handle adding a duplicate BPM segment in a well-defined way: overwrite the old one, don't put duplicate segments in the BPM list. --- stepmania/src/TimingData.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/stepmania/src/TimingData.cpp b/stepmania/src/TimingData.cpp index 4353800f43..ad1feb7873 100644 --- a/stepmania/src/TimingData.cpp +++ b/stepmania/src/TimingData.cpp @@ -2,6 +2,7 @@ #include "TimingData.h" #include "PrefsManager.h" #include "RageUtil.h" +#include "RageLog.h" TimingData::TimingData() { @@ -43,6 +44,16 @@ void TimingData::GetActualBPM( float &fMinBPMOut, float &fMaxBPMOut ) const void TimingData::AddBPMSegment( const BPMSegment &seg ) { + /* If we already have a BPM segment at this beat, replace it. */ + for( unsigned i=0; iTrace( "Replaced BPM segment at %f (%f BPM) with %f BPM", + m_BPMSegments[i].m_fStartBeat, m_BPMSegments[i].m_fBPM, seg.m_fBPM ); + m_BPMSegments[i] = seg; + return; + } + m_BPMSegments.push_back( seg ); SortBPMSegmentsArray( m_BPMSegments ); }