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:
Kyzentun
2014-08-27 00:04:57 -06:00
parent 594e4d2dfb
commit cab4f4d5d1
2 changed files with 8 additions and 22 deletions
+6 -2
View File
@@ -115,8 +115,12 @@ void PlayerStageStats::AddStats( const PlayerStageStats& other )
m_fLifeRemainingSeconds = other.m_fLifeRemainingSeconds; // don't accumulate
m_bDisqualified |= other.m_bDisqualified;
const float fOtherFirstSecond = other.m_fFirstSecond + m_fLastSecond;
const float fOtherLastSecond = other.m_fLastSecond + m_fLastSecond;
// FirstSecond is always 0, and last second is the time of the last step,
// 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;
map<float,float>::const_iterator it;
+2 -20
View File
@@ -90,29 +90,11 @@ static StageStats AccumPlayedStageStats( const vector<StageStats>& vss )
void StatsManager::GetFinalEvalStageStats( StageStats& statsOut ) const
{
statsOut.Init();
vector<StageStats> vssToCount;
// 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 )
for(size_t i= 0; i < m_vPlayedStageStats.size(); ++i)
{
const StageStats &ss = 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 );
vssToCount.push_back(m_vPlayedStageStats[i]);
}
statsOut = AccumPlayedStageStats( vssToCount );
}