Fixed StatsManageer::GetFinalEvalStageStats to not put them in reverse order and not have a 3 stage limit. Fixed PlayerStageStats::AddStats to not overwrite the last entry of the record with the first entry of the record being added.
This commit is contained in:
@@ -115,8 +115,12 @@ void PlayerStageStats::AddStats( const PlayerStageStats& other )
|
|||||||
m_fLifeRemainingSeconds = other.m_fLifeRemainingSeconds; // don't accumulate
|
m_fLifeRemainingSeconds = other.m_fLifeRemainingSeconds; // don't accumulate
|
||||||
m_bDisqualified |= other.m_bDisqualified;
|
m_bDisqualified |= other.m_bDisqualified;
|
||||||
|
|
||||||
const float fOtherFirstSecond = other.m_fFirstSecond + m_fLastSecond;
|
// FirstSecond is always 0, and last second is the time of the last step,
|
||||||
const float fOtherLastSecond = other.m_fLastSecond + m_fLastSecond;
|
// so add 1 second between the stages so that the last element of this
|
||||||
|
// stage's record isn't overwritten by the first element of the other
|
||||||
|
// stage's record. -Kyz
|
||||||
|
const float fOtherFirstSecond = other.m_fFirstSecond + m_fLastSecond + 1.0f;
|
||||||
|
const float fOtherLastSecond = other.m_fLastSecond + m_fLastSecond + 1.0f;
|
||||||
m_fLastSecond = fOtherLastSecond;
|
m_fLastSecond = fOtherLastSecond;
|
||||||
|
|
||||||
map<float,float>::const_iterator it;
|
map<float,float>::const_iterator it;
|
||||||
|
|||||||
+2
-20
@@ -90,29 +90,11 @@ static StageStats AccumPlayedStageStats( const vector<StageStats>& vss )
|
|||||||
void StatsManager::GetFinalEvalStageStats( StageStats& statsOut ) const
|
void StatsManager::GetFinalEvalStageStats( StageStats& statsOut ) const
|
||||||
{
|
{
|
||||||
statsOut.Init();
|
statsOut.Init();
|
||||||
|
|
||||||
vector<StageStats> vssToCount;
|
vector<StageStats> vssToCount;
|
||||||
|
for(size_t i= 0; i < m_vPlayedStageStats.size(); ++i)
|
||||||
// Show stats only for the latest 3 normal songs + passed extra stages
|
|
||||||
int PassedRegularSongsLeft = 3;
|
|
||||||
for( int i = (int)m_vPlayedStageStats.size()-1; i >= 0; --i )
|
|
||||||
{
|
{
|
||||||
const StageStats &ss = m_vPlayedStageStats[i];
|
vssToCount.push_back(m_vPlayedStageStats[i]);
|
||||||
|
|
||||||
if( !ss.OnePassed() )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if( ss.m_Stage != Stage_Extra1 && ss.m_Stage != Stage_Extra2 )
|
|
||||||
{
|
|
||||||
if( PassedRegularSongsLeft == 0 )
|
|
||||||
break;
|
|
||||||
|
|
||||||
--PassedRegularSongsLeft;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vssToCount.push_back( ss );
|
|
||||||
}
|
|
||||||
|
|
||||||
statsOut = AccumPlayedStageStats( vssToCount );
|
statsOut = AccumPlayedStageStats( vssToCount );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user