m_vpPlayedSteps is identical to the beginning of m_vpPossibleSteps.
Change to m_iStepsPlayed to avoid the duplicate information.
This commit is contained in:
@@ -1390,9 +1390,9 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
|
||||
ASSERT( !STATSMAN->m_vPlayedStageStats[i].m_vpPlayedSongs.empty() );
|
||||
sas.pSong = STATSMAN->m_vPlayedStageStats[i].m_vpPlayedSongs[0];
|
||||
ASSERT( sas.pSong );
|
||||
if( STATSMAN->m_vPlayedStageStats[i].m_player[pn].m_vpPlayedSteps.empty() )
|
||||
if( STATSMAN->m_vPlayedStageStats[i].m_player[pn].m_vpPossibleSteps.empty() )
|
||||
continue;
|
||||
sas.pSteps = STATSMAN->m_vPlayedStageStats[i].m_player[pn].m_vpPlayedSteps[0];
|
||||
sas.pSteps = STATSMAN->m_vPlayedStageStats[i].m_player[pn].m_vpPossibleSteps[0];
|
||||
ASSERT( sas.pSteps );
|
||||
vSongAndSteps.push_back( sas );
|
||||
}
|
||||
|
||||
@@ -25,8 +25,8 @@ Grade GetGradeFromPercent( float fPercent, bool bMerciful );
|
||||
void PlayerStageStats::Init()
|
||||
{
|
||||
m_bJoined = false;
|
||||
m_vpPlayedSteps.clear();
|
||||
m_vpPossibleSteps.clear();
|
||||
m_iStepsPlayed = 0;
|
||||
m_fAliveSeconds = 0;
|
||||
m_bFailed = false;
|
||||
m_iPossibleDancePoints = 0;
|
||||
@@ -66,10 +66,9 @@ void PlayerStageStats::Init()
|
||||
void PlayerStageStats::AddStats( const PlayerStageStats& other )
|
||||
{
|
||||
m_bJoined = other.m_bJoined;
|
||||
FOREACH_CONST( Steps*, other.m_vpPlayedSteps, s )
|
||||
m_vpPlayedSteps.push_back( *s );
|
||||
FOREACH_CONST( Steps*, other.m_vpPossibleSteps, s )
|
||||
m_vpPossibleSteps.push_back( *s );
|
||||
m_iStepsPlayed += other.m_iStepsPlayed;
|
||||
m_fAliveSeconds += other.m_fAliveSeconds;
|
||||
m_bFailed |= other.m_bFailed;
|
||||
m_iPossibleDancePoints += other.m_iPossibleDancePoints;
|
||||
@@ -163,8 +162,8 @@ Grade PlayerStageStats::GetGrade() const
|
||||
float fActual = 0;
|
||||
|
||||
bool bIsBeginner = false;
|
||||
if( m_vpPlayedSteps.size() && !GAMESTATE->IsCourseMode() )
|
||||
bIsBeginner = m_vpPlayedSteps[0]->GetDifficulty() == Difficulty_Beginner;
|
||||
if( m_iStepsPlayed > 0 && !GAMESTATE->IsCourseMode() )
|
||||
bIsBeginner = m_vpPossibleSteps[0]->GetDifficulty() == Difficulty_Beginner;
|
||||
|
||||
FOREACH_ENUM( TapNoteScore, tns )
|
||||
{
|
||||
@@ -187,12 +186,12 @@ Grade PlayerStageStats::GetGrade() const
|
||||
|
||||
|
||||
bool bMerciful =
|
||||
m_vpPlayedSteps.size() > 0 &&
|
||||
m_iStepsPlayed > 0 &&
|
||||
GAMESTATE->m_PlayMode == PLAY_MODE_REGULAR &&
|
||||
PREFSMAN->m_bMercifulBeginner;
|
||||
FOREACH_CONST( Steps*, m_vpPlayedSteps, s )
|
||||
for( int i = 0; i < m_iStepsPlayed; ++i )
|
||||
{
|
||||
if( (*s)->GetDifficulty() != Difficulty_Beginner )
|
||||
if( m_vpPossibleSteps[i]->GetDifficulty() != Difficulty_Beginner )
|
||||
bMerciful = false;
|
||||
}
|
||||
|
||||
@@ -667,9 +666,9 @@ public:
|
||||
static int GetPlayedSteps( T* p, lua_State *L )
|
||||
{
|
||||
lua_newtable(L);
|
||||
for( int i = 0; i < (int) p->m_vpPlayedSteps.size(); ++i )
|
||||
for( int i = 0; i < (int) min(p->m_iStepsPlayed, (int) p->m_vpPossibleSteps.size()); ++i )
|
||||
{
|
||||
p->m_vpPlayedSteps[i]->PushSelf(L);
|
||||
p->m_vpPossibleSteps[i]->PushSelf(L);
|
||||
lua_rawseti( L, -2, i+1 );
|
||||
}
|
||||
return 1;
|
||||
|
||||
@@ -27,8 +27,8 @@ public:
|
||||
void ResetScoreForLesson();
|
||||
|
||||
bool m_bJoined;
|
||||
vector<Steps*> m_vpPlayedSteps;
|
||||
vector<Steps*> m_vpPossibleSteps;
|
||||
int m_iStepsPlayed; // how many of m_vpPossibleStepshow many of m_vpPossibleSteps were played
|
||||
float m_fAliveSeconds; // how far into the music did they last before failing? Updated by Gameplay, scaled by music rate.
|
||||
|
||||
/* Set if the player actually failed at any point during the song. This is always
|
||||
|
||||
@@ -37,8 +37,10 @@ ScreenEnding::ScreenEnding() : ScreenAttract( false/*dont reset GAMESTATE*/ )
|
||||
GAMESTATE->m_pCurCourse.Set( SONGMAN->GetRandomCourse() );
|
||||
GAMESTATE->m_pCurSteps[PLAYER_1].Set( GAMESTATE->m_pCurSong->GetAllSteps()[0] );
|
||||
GAMESTATE->m_pCurSteps[PLAYER_2].Set( GAMESTATE->m_pCurSong->GetAllSteps()[0] );
|
||||
STATSMAN->m_CurStageStats.m_player[PLAYER_1].m_vpPlayedSteps.push_back( GAMESTATE->m_pCurSteps[PLAYER_1] );
|
||||
STATSMAN->m_CurStageStats.m_player[PLAYER_2].m_vpPlayedSteps.push_back( GAMESTATE->m_pCurSteps[PLAYER_2] );
|
||||
STATSMAN->m_CurStageStats.m_player[PLAYER_1].m_vpPossibleSteps.push_back( GAMESTATE->m_pCurSteps[PLAYER_1] );
|
||||
STATSMAN->m_CurStageStats.m_player[PLAYER_2].m_vpPossibleSteps.push_back( GAMESTATE->m_pCurSteps[PLAYER_2] );
|
||||
STATSMAN->m_CurStageStats.m_player[PLAYER_1].m_iStepsPlayed = 1;
|
||||
STATSMAN->m_CurStageStats.m_player[PLAYER_2].m_iStepsPlayed = 1;
|
||||
PO_GROUP_ASSIGN( GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions, ModsLevel_Stage, m_fScrollSpeed, 2.0f );
|
||||
PO_GROUP_ASSIGN( GAMESTATE->m_pPlayerState[PLAYER_2]->m_PlayerOptions, ModsLevel_Stage, m_fScrollSpeed, 2.0f );
|
||||
GAMESTATE->m_iCurrentStageIndex = 0;
|
||||
|
||||
@@ -123,8 +123,8 @@ ScreenEvaluation::ScreenEvaluation()
|
||||
if( apTrails.size() )
|
||||
GAMESTATE->m_pCurTrail[p].Set( apTrails[0] );
|
||||
}
|
||||
ss.m_player[p].m_vpPlayedSteps.push_back( GAMESTATE->m_pCurSteps[PLAYER_1] );
|
||||
ss.m_player[p].m_vpPossibleSteps.push_back( GAMESTATE->m_pCurSteps[PLAYER_1] );
|
||||
ss.m_player[p].m_iStepsPlayed = 1;
|
||||
|
||||
|
||||
PO_GROUP_ASSIGN( GAMESTATE->m_pPlayerState[p]->m_PlayerOptions, ModsLevel_Stage, m_fScrollSpeed, 2.0f );
|
||||
|
||||
@@ -1007,7 +1007,7 @@ void ScreenGameplay::LoadNextSong()
|
||||
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
|
||||
{
|
||||
Steps* pSteps = GAMESTATE->m_pCurSteps[ pi->GetStepsAndTrailIndex() ];
|
||||
pi->GetPlayerStageStats()->m_vpPlayedSteps.push_back( pSteps );
|
||||
++pi->GetPlayerStageStats()->m_iStepsPlayed;
|
||||
|
||||
ASSERT( GAMESTATE->m_pCurSteps[ pi->GetStepsAndTrailIndex() ] );
|
||||
if( pi->m_ptextStepsDescription )
|
||||
|
||||
@@ -139,7 +139,7 @@ ScreenNameEntry::ScreenNameEntry()
|
||||
FOREACH_PlayerNumber( p )
|
||||
{
|
||||
Steps *pSteps = ss.m_vpPlayedSongs[0]->GetAllSteps()[0];
|
||||
ss.m_player[p].m_vpPlayedSteps.push_back( pSteps );
|
||||
ss.m_player[p].m_iStepsPlayed = 1;
|
||||
GAMESTATE->m_pCurSteps[p].Set( pSteps );
|
||||
ss.m_player[p].m_iPossibleDancePoints = 100;
|
||||
ss.m_player[p].m_iActualDancePoints = 100;
|
||||
|
||||
@@ -38,7 +38,7 @@ void ScreenNameEntryTraditional::Init()
|
||||
FOREACH_PlayerNumber( p )
|
||||
{
|
||||
Steps *pSteps = ss.m_vpPlayedSongs[0]->GetAllSteps()[0];
|
||||
ss.m_player[p].m_vpPlayedSteps.push_back( pSteps );
|
||||
ss.m_player[p].m_iStepsPlayed = 1;
|
||||
GAMESTATE->m_pCurSteps[p].Set( pSteps );
|
||||
ss.m_player[p].m_iPossibleDancePoints = 100;
|
||||
ss.m_player[p].m_iActualDancePoints = 100;
|
||||
|
||||
@@ -42,12 +42,13 @@ void StageStats::AssertValid( PlayerNumber pn ) const
|
||||
ASSERT( m_vpPossibleSongs.size() != 0 );
|
||||
if( m_vpPlayedSongs[0] )
|
||||
CHECKPOINT_M( m_vpPlayedSongs[0]->GetTranslitFullTitle() );
|
||||
ASSERT( m_player[pn].m_vpPlayedSteps.size() != 0 );
|
||||
ASSERT( m_player[pn].m_vpPlayedSteps[0] );
|
||||
ASSERT( m_player[pn].m_iStepsPlayed > 0 );
|
||||
ASSERT( m_player[pn].m_vpPossibleSteps.size() );
|
||||
ASSERT( m_player[pn].m_vpPossibleSteps[0] );
|
||||
ASSERT_M( m_playMode < NUM_PlayMode, ssprintf("playmode %i", m_playMode) );
|
||||
ASSERT( m_pStyle != NULL );
|
||||
ASSERT_M( m_player[pn].m_vpPlayedSteps[0]->GetDifficulty() < NUM_Difficulty, ssprintf("difficulty %i", m_player[pn].m_vpPlayedSteps[0]->GetDifficulty()) );
|
||||
ASSERT_M( m_vpPlayedSongs.size() == m_player[pn].m_vpPlayedSteps.size(), ssprintf("%i, %i, %i", (int)m_vpPlayedSongs.size(), (int)m_player[pn].m_vpPlayedSteps.size(), pn) );
|
||||
ASSERT_M( m_player[pn].m_vpPossibleSteps[0]->GetDifficulty() < NUM_Difficulty, ssprintf("difficulty %i", m_player[pn].m_vpPossibleSteps[0]->GetDifficulty()) );
|
||||
ASSERT_M( (int) m_vpPlayedSongs.size() == m_player[pn].m_iStepsPlayed, ssprintf("%i, %i, %i", (int)m_vpPlayedSongs.size(), (int)m_player[pn].m_iStepsPlayed, pn) );
|
||||
ASSERT_M( m_vpPossibleSongs.size() == m_player[pn].m_vpPossibleSteps.size(), ssprintf("%i, %i, %i", (int)m_vpPossibleSongs.size(), (int)m_player[pn].m_vpPossibleSteps.size(), pn) );
|
||||
}
|
||||
|
||||
@@ -57,12 +58,12 @@ void StageStats::AssertValid( MultiPlayer pn ) const
|
||||
ASSERT( m_vpPossibleSongs.size() != 0 );
|
||||
if( m_vpPlayedSongs[0] )
|
||||
CHECKPOINT_M( m_vpPlayedSongs[0]->GetTranslitFullTitle() );
|
||||
ASSERT( m_multiPlayer[pn].m_vpPlayedSteps.size() != 0 );
|
||||
ASSERT( m_multiPlayer[pn].m_vpPlayedSteps[0] );
|
||||
ASSERT( m_multiPlayer[pn].m_vpPossibleSteps.size() );
|
||||
ASSERT( m_multiPlayer[pn].m_vpPossibleSteps[0] );
|
||||
ASSERT_M( m_playMode < NUM_PlayMode, ssprintf("playmode %i", m_playMode) );
|
||||
ASSERT( m_pStyle != NULL );
|
||||
ASSERT_M( m_player[pn].m_vpPlayedSteps[0]->GetDifficulty() < NUM_Difficulty, ssprintf("difficulty %i", m_player[pn].m_vpPlayedSteps[0]->GetDifficulty()) );
|
||||
ASSERT( m_vpPlayedSongs.size() == m_player[pn].m_vpPlayedSteps.size() );
|
||||
ASSERT_M( m_player[pn].m_vpPossibleSteps[0]->GetDifficulty() < NUM_Difficulty, ssprintf("difficulty %i", m_player[pn].m_vpPossibleSteps[0]->GetDifficulty()) );
|
||||
ASSERT( (int) m_vpPlayedSongs.size() == m_player[pn].m_iStepsPlayed );
|
||||
ASSERT( m_vpPossibleSongs.size() == m_player[pn].m_vpPossibleSteps.size() );
|
||||
}
|
||||
|
||||
@@ -77,7 +78,7 @@ int StageStats::GetAverageMeter( PlayerNumber pn ) const
|
||||
|
||||
for( unsigned i=0; i<m_vpPlayedSongs.size(); i++ )
|
||||
{
|
||||
const Steps* pSteps = m_player[pn].m_vpPlayedSteps[i];
|
||||
const Steps* pSteps = m_player[pn].m_vpPossibleSteps[i];
|
||||
iTotalMeter += pSteps->GetMeter();
|
||||
}
|
||||
return iTotalMeter / m_vpPlayedSongs.size(); // round down
|
||||
@@ -280,7 +281,7 @@ void StageStats::CommitScores( bool bSummary )
|
||||
bool StageStats::PlayerHasHighScore( PlayerNumber pn ) const
|
||||
{
|
||||
const Song *pSong = m_vpPlayedSongs[0];
|
||||
const Steps *pSteps = m_player[pn].m_vpPlayedSteps[0];
|
||||
const Steps *pSteps = m_player[pn].m_vpPossibleSteps[0];
|
||||
const Course *pCourse = GAMESTATE->m_pCurCourse;
|
||||
const Trail *pTrail = GAMESTATE->m_pCurTrail[pn];
|
||||
|
||||
|
||||
@@ -124,10 +124,10 @@ void AddPlayerStatsToProfile( Profile *pProfile, const StageStats &ss, PlayerNum
|
||||
StyleID sID;
|
||||
sID.FromStyle( ss.m_pStyle );
|
||||
|
||||
ASSERT( ss.m_vpPlayedSongs.size() == ss.m_player[pn].m_vpPlayedSteps.size() );
|
||||
for( unsigned i=0; i<ss.m_vpPlayedSongs.size(); i++ )
|
||||
ASSERT( (int) ss.m_vpPlayedSongs.size() == ss.m_player[pn].m_iStepsPlayed );
|
||||
for( int i=0; i<ss.m_player[pn].m_iStepsPlayed; i++ )
|
||||
{
|
||||
Steps *pSteps = ss.m_player[pn].m_vpPlayedSteps[i];
|
||||
Steps *pSteps = ss.m_player[pn].m_vpPossibleSteps[i];
|
||||
|
||||
pProfile->m_iNumSongsPlayedByPlayMode[ss.m_playMode]++;
|
||||
pProfile->m_iNumSongsPlayedByStyle[sID] ++;
|
||||
|
||||
Reference in New Issue
Block a user