m_vpPlayedSteps is identical to the beginning of m_vpPossibleSteps.

Change to m_iStepsPlayed to avoid the duplicate information.
This commit is contained in:
Glenn Maynard
2007-05-31 04:48:42 +00:00
parent c9464487c0
commit 6c9c99091f
10 changed files with 34 additions and 32 deletions
+2 -2
View File
@@ -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 );
}
+9 -10
View File
@@ -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;
+1 -1
View File
@@ -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
+4 -2
View File
@@ -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;
+1 -1
View File
@@ -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 );
+1 -1
View File
@@ -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 )
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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;
+11 -10
View File
@@ -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];
+3 -3
View File
@@ -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] ++;