From 6c9c99091fb8b3690fbbdec794c84436edfacd37 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 31 May 2007 04:48:42 +0000 Subject: [PATCH] m_vpPlayedSteps is identical to the beginning of m_vpPossibleSteps. Change to m_iStepsPlayed to avoid the duplicate information. --- stepmania/src/GameState.cpp | 4 ++-- stepmania/src/PlayerStageStats.cpp | 19 +++++++++--------- stepmania/src/PlayerStageStats.h | 2 +- stepmania/src/ScreenEnding.cpp | 6 ++++-- stepmania/src/ScreenEvaluation.cpp | 2 +- stepmania/src/ScreenGameplay.cpp | 2 +- stepmania/src/ScreenNameEntry.cpp | 2 +- stepmania/src/ScreenNameEntryTraditional.cpp | 2 +- stepmania/src/StageStats.cpp | 21 ++++++++++---------- stepmania/src/StatsManager.cpp | 6 +++--- 10 files changed, 34 insertions(+), 32 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 6ea175bce4..497af44504 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -1390,9 +1390,9 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector &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 ); } diff --git a/stepmania/src/PlayerStageStats.cpp b/stepmania/src/PlayerStageStats.cpp index 5bb7549d86..3e04c57d1b 100644 --- a/stepmania/src/PlayerStageStats.cpp +++ b/stepmania/src/PlayerStageStats.cpp @@ -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; diff --git a/stepmania/src/PlayerStageStats.h b/stepmania/src/PlayerStageStats.h index dc9cbf64e1..6bc687d3c2 100644 --- a/stepmania/src/PlayerStageStats.h +++ b/stepmania/src/PlayerStageStats.h @@ -27,8 +27,8 @@ public: void ResetScoreForLesson(); bool m_bJoined; - vector m_vpPlayedSteps; vector 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 diff --git a/stepmania/src/ScreenEnding.cpp b/stepmania/src/ScreenEnding.cpp index 2b06af6810..56f8a8c198 100644 --- a/stepmania/src/ScreenEnding.cpp +++ b/stepmania/src/ScreenEnding.cpp @@ -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; diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index aadd7ee511..309fd96d55 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -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 ); diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index e70e59d658..0af5419afa 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -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 ) diff --git a/stepmania/src/ScreenNameEntry.cpp b/stepmania/src/ScreenNameEntry.cpp index 07bd859c9e..01f228f346 100644 --- a/stepmania/src/ScreenNameEntry.cpp +++ b/stepmania/src/ScreenNameEntry.cpp @@ -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; diff --git a/stepmania/src/ScreenNameEntryTraditional.cpp b/stepmania/src/ScreenNameEntryTraditional.cpp index 81b6b467c8..24b6cc1db9 100644 --- a/stepmania/src/ScreenNameEntryTraditional.cpp +++ b/stepmania/src/ScreenNameEntryTraditional.cpp @@ -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; diff --git a/stepmania/src/StageStats.cpp b/stepmania/src/StageStats.cpp index 1e9c203852..da3e006068 100644 --- a/stepmania/src/StageStats.cpp +++ b/stepmania/src/StageStats.cpp @@ -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; iGetMeter(); } 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]; diff --git a/stepmania/src/StatsManager.cpp b/stepmania/src/StatsManager.cpp index 2ee47fbfbc..472dd12dab 100644 --- a/stepmania/src/StatsManager.cpp +++ b/stepmania/src/StatsManager.cpp @@ -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; im_iNumSongsPlayedByPlayMode[ss.m_playMode]++; pProfile->m_iNumSongsPlayedByStyle[sID] ++;