Allow TickcountSegments to have a value of 0.
This allows for more accuracy with simfiles.
This commit is contained in:
@@ -13,6 +13,11 @@ _____________________________________________________________________________
|
||||
sm-ssc v1.2.3 | 2011022?
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
20110301
|
||||
--------
|
||||
* Allow Tickcount Segments to have a value of 0 to better replicate some
|
||||
charts in the Pump series. [Wolfman2000]
|
||||
|
||||
20110228
|
||||
--------
|
||||
* Add Fakes to the RadarCategories. [Wolfman2000]
|
||||
|
||||
+6
-1
@@ -2782,7 +2782,9 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now )
|
||||
int iCheckpointFrequencyRows = ROWS_PER_BEAT/2;
|
||||
if( CHECKPOINTS_USE_TICKCOUNTS )
|
||||
{
|
||||
iCheckpointFrequencyRows = ROWS_PER_BEAT / GAMESTATE->m_pCurSong->m_Timing.GetTickcountAtRow( iLastRowCrossed );
|
||||
int tickCurrent = GAMESTATE->m_pCurSong->m_Timing.GetTickcountAtRow( iLastRowCrossed );
|
||||
// There are some charts that don't want tickcounts involved at all.
|
||||
iCheckpointFrequencyRows = (tickCurrent > 0 ? ROWS_PER_BEAT / tickCurrent : 0);
|
||||
}
|
||||
else if( CHECKPOINTS_USE_TIME_SIGNATURES )
|
||||
{
|
||||
@@ -2792,6 +2794,8 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now )
|
||||
iCheckpointFrequencyRows = ROWS_PER_BEAT * tSignature.m_iDenominator / (tSignature.m_iNumerator * 4);
|
||||
}
|
||||
|
||||
if( iCheckpointFrequencyRows > 0 )
|
||||
{
|
||||
// "the first row after the start of the range that lands on a beat"
|
||||
int iFirstCheckpointInRange = ((m_iFirstUncrossedRow+iCheckpointFrequencyRows-1)/iCheckpointFrequencyRows) * iCheckpointFrequencyRows;
|
||||
|
||||
@@ -2848,6 +2852,7 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now )
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_iFirstUncrossedRow = iLastRowCrossed+1;
|
||||
}
|
||||
|
||||
+1
-1
@@ -2644,7 +2644,7 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
||||
else if ( SM == SM_BackFromTickcountChange )
|
||||
{
|
||||
int iTick = atoi( ScreenTextEntry::s_sLastAnswer );
|
||||
if ( iTick >= 1 && iTick <= ROWS_PER_BEAT )
|
||||
if ( iTick >= 0 && iTick <= ROWS_PER_BEAT )
|
||||
{
|
||||
m_pSong->m_Timing.SetTickcountAtBeat( GAMESTATE->m_fSongBeat, iTick );
|
||||
}
|
||||
|
||||
+1
-1
@@ -421,7 +421,7 @@ struct TickcountSegment
|
||||
* @param s the starting row of this segment.
|
||||
* @param t the amount of ticks counted per beat.
|
||||
*/
|
||||
TickcountSegment( int s, int t ){ m_iStartRow = max( 0, s ); m_iTicks = max( 1, t ); }
|
||||
TickcountSegment( int s, int t ){ m_iStartRow = max( 0, s ); m_iTicks = max( 0, t ); }
|
||||
/**
|
||||
* @brief The row in which the TickcountSegment activates.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user