[splittiming] The start of SpeedSegments.
...I'm seriously debating moving the structs to their own file at this rate. It's getting a tiny bit unwieldy.
This commit is contained in:
@@ -647,6 +647,107 @@ struct LabelSegment
|
|||||||
bool operator>=( const LabelSegment &other ) const { return !operator<(other); }
|
bool operator>=( const LabelSegment &other ) const { return !operator<(other); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Identifies when the arrow scroll changes.
|
||||||
|
*
|
||||||
|
* SpeedSegments take a Player's scrolling BPM (Step's BPM * speed mod),
|
||||||
|
* and then multiplies it with the percentage value. No matter the player's
|
||||||
|
* speed mod, the ratio will be the same. Unlike forced attacks, these
|
||||||
|
* cannot be turned off at a set time: reset it by setting the precentage
|
||||||
|
* back to 1.
|
||||||
|
*
|
||||||
|
* These were inspired by the Pump It Up series. */
|
||||||
|
struct SpeedSegment
|
||||||
|
{
|
||||||
|
/** @brief Sets up the SpeedSegment with default values. */
|
||||||
|
SpeedSegment(): m_iStartRow(0), m_fPercent(1), m_fWait(0) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets up the SpeedSegment with specified values.
|
||||||
|
* @param i The row this activates.
|
||||||
|
* @param p The percentage to use. */
|
||||||
|
SpeedSegment(int i, float p): m_iStartRow(0), m_fPercent(p), m_fWait(0) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets up the SpeedSegment with specified values.
|
||||||
|
* @param r The beat this activates.
|
||||||
|
* @param p The percentage to use. */
|
||||||
|
SpeedSegment(float r, float p): m_iStartRow(BeatToNoteRow(r)),
|
||||||
|
m_fPercent(p), m_fWait(0) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets up the SpeedSegment with specified values.
|
||||||
|
* @param i The row this activates.
|
||||||
|
* @param p The percentage to use.
|
||||||
|
* @param w The number of beats to wait. */
|
||||||
|
SpeedSegment(int i, float p, float w): m_iStartRow(i),
|
||||||
|
m_fPercent(p), m_fWait(w) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets up the SpeedSegment with specified values.
|
||||||
|
* @param r The beat this activates.
|
||||||
|
* @param p The percentage to use.
|
||||||
|
* @param w The number of beats to wait. */
|
||||||
|
SpeedSegment(float r, float p, float w): m_iStartRow(BeatToNoteRow(r)),
|
||||||
|
m_fPercent(p), m_fWait(w) {}
|
||||||
|
|
||||||
|
/** @brief The row in which the ComboSegment activates. */
|
||||||
|
int m_iStartRow;
|
||||||
|
/** @brief The percentage to use when multiplying the Player's BPM. */
|
||||||
|
float m_fPercent;
|
||||||
|
/**
|
||||||
|
* @brief The number of beats to wait for the change to take place.
|
||||||
|
*
|
||||||
|
* A value of 0 means this is immediate. */
|
||||||
|
float m_fWait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Compares two SpeedSegments to see if they are equal to each other.
|
||||||
|
* @param other the other SpeedSegment to compare to.
|
||||||
|
* @return the equality of the two segments.
|
||||||
|
*/
|
||||||
|
bool operator==( const SpeedSegment &other ) const
|
||||||
|
{
|
||||||
|
COMPARE( m_iStartRow );
|
||||||
|
COMPARE( m_fPercent );
|
||||||
|
COMPARE( m_fWait );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief Compares two SpeedSegments to see if they are not equal to each other.
|
||||||
|
* @param other the other SpeedSegment to compare to.
|
||||||
|
* @return the inequality of the two segments.
|
||||||
|
*/
|
||||||
|
bool operator!=( const SpeedSegment &other ) const { return !operator==(other); }
|
||||||
|
/**
|
||||||
|
* @brief Compares two SpeedSegments to see if one is less than the other.
|
||||||
|
* @param other the other SpeedSegment to compare to.
|
||||||
|
* @return the truth/falsehood of if the first is less than the second.
|
||||||
|
*/
|
||||||
|
bool operator<( const SpeedSegment &other ) const { return m_iStartRow < other.m_iStartRow; }
|
||||||
|
/**
|
||||||
|
* @brief Compares two SpeedSegments to see if one is less than or equal to the other.
|
||||||
|
* @param other the other SpeedSegment to compare to.
|
||||||
|
* @return the truth/falsehood of if the first is less or equal to than the second.
|
||||||
|
*/
|
||||||
|
bool operator<=( const SpeedSegment &other ) const
|
||||||
|
{
|
||||||
|
return ( operator<(other) || operator==(other) );
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief Compares two SpeedSegments to see if one is greater than the other.
|
||||||
|
* @param other the other SpeedSegment to compare to.
|
||||||
|
* @return the truth/falsehood of if the first is greater than the second.
|
||||||
|
*/
|
||||||
|
bool operator>( const SpeedSegment &other ) const { return !operator<=(other); }
|
||||||
|
/**
|
||||||
|
* @brief Compares two SpeedSegments to see if one is greater than or equal to the other.
|
||||||
|
* @param other the other SpeedSegment to compare to.
|
||||||
|
* @return the truth/falsehood of if the first is greater than or equal to the second.
|
||||||
|
*/
|
||||||
|
bool operator>=( const SpeedSegment &other ) const { return !operator<(other); }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Holds data for translating beats<->seconds.
|
* @brief Holds data for translating beats<->seconds.
|
||||||
@@ -1305,8 +1406,12 @@ public:
|
|||||||
COMPARE( m_ComboSegments.size() );
|
COMPARE( m_ComboSegments.size() );
|
||||||
for( unsigned i=0; i<m_ComboSegments.size(); i++ )
|
for( unsigned i=0; i<m_ComboSegments.size(); i++ )
|
||||||
COMPARE( m_ComboSegments[i] );
|
COMPARE( m_ComboSegments[i] );
|
||||||
|
COMPARE( m_LabelSegments.size() );
|
||||||
for( unsigned i=0; i<m_LabelSegments.size(); i++ )
|
for( unsigned i=0; i<m_LabelSegments.size(); i++ )
|
||||||
COMPARE( m_LabelSegments[i] );
|
COMPARE( m_LabelSegments[i] );
|
||||||
|
COMPARE( m_SpeedSegments.size() );
|
||||||
|
for( unsigned i=0; i<m_SpeedSegments.size(); i++ )
|
||||||
|
COMPARE( m_SpeedSegments[i] );
|
||||||
COMPARE( m_fBeat0OffsetInSeconds );
|
COMPARE( m_fBeat0OffsetInSeconds );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -1363,6 +1468,8 @@ public:
|
|||||||
* @brief The collection of LabelSegments.
|
* @brief The collection of LabelSegments.
|
||||||
*/
|
*/
|
||||||
vector<LabelSegment> m_LabelSegments;
|
vector<LabelSegment> m_LabelSegments;
|
||||||
|
/** @brief The collection of SpeedSegments. */
|
||||||
|
vector<SpeedSegment> m_SpeedSegments;
|
||||||
/**
|
/**
|
||||||
* @brief The initial offset of a song.
|
* @brief The initial offset of a song.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user