From 4385b9242d72d1071b380696b422964adfd61d4c Mon Sep 17 00:00:00 2001 From: "Devin J. Pohly" Date: Sun, 20 Jan 2013 21:12:11 -0500 Subject: [PATCH] Steps: add GetTimingData function that falls back on Song if necessary --- src/Steps.cpp | 5 +++++ src/Steps.h | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/Steps.cpp b/src/Steps.cpp index e1c0d9d31a..0c1de3112a 100644 --- a/src/Steps.cpp +++ b/src/Steps.cpp @@ -520,6 +520,11 @@ void Steps::SetMeter( int meter ) m_iMeter = meter; } +const TimingData *Steps::GetTimingData() const +{ + return m_Timing.empty() ? &m_pSong->m_SongTiming : &m_Timing; +} + bool Steps::HasSignificantTimingChanges() const { if( m_Timing.HasStops() || m_Timing.HasDelays() || m_Timing.HasWarps() || diff --git a/src/Steps.h b/src/Steps.h index 95b179bcd1..178a0ab725 100644 --- a/src/Steps.h +++ b/src/Steps.h @@ -157,6 +157,12 @@ public: * This is required to allow Split Timing. */ TimingData m_Timing; + /** + * @brief Retrieves the appropriate timing data for the Steps. Falls + * back on the Song if needed. */ + const TimingData *GetTimingData() const; + TimingData *GetTimingData() { return const_cast( static_cast( this )->GetTimingData() ); }; + /** * @brief Determine if the Steps have any major timing changes during gameplay. * @return true if it does, or false otherwise. */