improved checkpoint performance, one other change
This commit is contained in:
+21
-11
@@ -370,8 +370,10 @@ void Player::Init(
|
|||||||
m_pPrimaryScoreKeeper = pPrimaryScoreKeeper;
|
m_pPrimaryScoreKeeper = pPrimaryScoreKeeper;
|
||||||
m_pSecondaryScoreKeeper = pSecondaryScoreKeeper;
|
m_pSecondaryScoreKeeper = pSecondaryScoreKeeper;
|
||||||
|
|
||||||
m_iLastSeenCombo = -1;
|
m_iLastSeenCombo = 0;
|
||||||
m_bSeenComboYet = false;
|
m_bSeenComboYet = false;
|
||||||
|
for( int i=0; i<5; i++ )
|
||||||
|
m_iMilestoneCounters[i] = 0;
|
||||||
|
|
||||||
// set initial life
|
// set initial life
|
||||||
if( m_pLifeMeter && m_pPlayerStageStats )
|
if( m_pLifeMeter && m_pPlayerStageStats )
|
||||||
@@ -3392,21 +3394,29 @@ void Player::SetCombo( unsigned int iCombo, unsigned int iMisses )
|
|||||||
bool b100Milestone = false;
|
bool b100Milestone = false;
|
||||||
bool b250Milestone = false;
|
bool b250Milestone = false;
|
||||||
bool b1000Milestone = false;
|
bool b1000Milestone = false;
|
||||||
for( unsigned int i=m_iLastSeenCombo+1; i<=iCombo; i++ )
|
int iNewMilestoneCounters[5] = {
|
||||||
|
int(iCombo/25),
|
||||||
|
int(iCombo/50),
|
||||||
|
int(iCombo/100),
|
||||||
|
int(iCombo/250),
|
||||||
|
int(iCombo/200)
|
||||||
|
};
|
||||||
|
//Don't do milestones right after combo overflow or if combo hasn't changed.
|
||||||
|
if( m_iLastSeenCombo <= iCombo )
|
||||||
{
|
{
|
||||||
if( i < 600 )
|
if( iCombo > 600 )
|
||||||
{
|
b1000Milestone = iNewMilestoneCounters[4] > m_iMilestoneCounters[4];
|
||||||
b25Milestone |= ((i % 25) == 0);
|
|
||||||
b50Milestone |= ((i % 50) == 0);
|
|
||||||
b100Milestone |= ((i % 100) == 0);
|
|
||||||
b250Milestone |= ((i % 250) == 0);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b1000Milestone |= ((i % 200) == 0);
|
b25Milestone = iNewMilestoneCounters[0] > m_iMilestoneCounters[0];
|
||||||
|
b50Milestone = iNewMilestoneCounters[1] > m_iMilestoneCounters[1];
|
||||||
|
b100Milestone = iNewMilestoneCounters[2] > m_iMilestoneCounters[2];
|
||||||
|
b250Milestone = iNewMilestoneCounters[3] > m_iMilestoneCounters[3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_iLastSeenCombo = iCombo;
|
|
||||||
|
for( int i=0; i<5; i++ )
|
||||||
|
m_iMilestoneCounters[i] = iNewMilestoneCounters[i];
|
||||||
|
|
||||||
if( b25Milestone )
|
if( b25Milestone )
|
||||||
this->PlayCommand( "TwentyFiveMilestone");
|
this->PlayCommand( "TwentyFiveMilestone");
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ protected:
|
|||||||
NoteData::all_tracks_iterator *m_pIterUnjudgedMineRows;
|
NoteData::all_tracks_iterator *m_pIterUnjudgedMineRows;
|
||||||
unsigned int m_iLastSeenCombo;
|
unsigned int m_iLastSeenCombo;
|
||||||
bool m_bSeenComboYet;
|
bool m_bSeenComboYet;
|
||||||
|
int m_iMilestoneCounters[5];
|
||||||
JudgedRows *m_pJudgedRows;
|
JudgedRows *m_pJudgedRows;
|
||||||
|
|
||||||
RageSound m_soundMine;
|
RageSound m_soundMine;
|
||||||
|
|||||||
Reference in New Issue
Block a user