Steps: add GetTimingData function that falls back on Song if necessary

This commit is contained in:
Devin J. Pohly
2013-01-20 21:12:11 -05:00
parent 8815da5f1f
commit 4385b9242d
2 changed files with 11 additions and 0 deletions
+5
View File
@@ -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() ||
+6
View File
@@ -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<TimingData*>( static_cast<const Steps*>( this )->GetTimingData() ); };
/**
* @brief Determine if the Steps have any major timing changes during gameplay.
* @return true if it does, or false otherwise. */