hidden HighScore::sName

This commit is contained in:
Glenn Maynard
2005-08-12 01:52:01 +00:00
parent 4f7da83726
commit 2307fa23d9
9 changed files with 86 additions and 40 deletions
+1 -1
View File
@@ -611,7 +611,7 @@ void GameCommand::Apply( PlayerNumber pn ) const
static HighScore MakeRandomHighScore( float fPercentDP ) static HighScore MakeRandomHighScore( float fPercentDP )
{ {
HighScore hs; HighScore hs;
hs.sName = "FAKE"; hs.SetName( "FAKE" );
hs.grade = (Grade)SCALE( rand()%5, 0, 4, GRADE_TIER01, GRADE_TIER05 ); hs.grade = (Grade)SCALE( rand()%5, 0, 4, GRADE_TIER01, GRADE_TIER05 );
hs.iScore = rand()%100*1000; hs.iScore = rand()%100*1000;
hs.fPercentDP = fPercentDP; hs.fPercentDP = fPercentDP;
+12 -12
View File
@@ -1382,7 +1382,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
{ {
HighScore &hs = hsl.vHighScores[j]; HighScore &hs = hsl.vHighScores[j];
if( hs.sName != RANKING_TO_FILL_IN_MARKER[pn] ) if( hs.GetName() != RANKING_TO_FILL_IN_MARKER[pn] )
continue; continue;
RankingFeat feat; RankingFeat feat;
@@ -1390,7 +1390,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
feat.pSong = pSong; feat.pSong = pSong;
feat.pSteps = pSteps; feat.pSteps = pSteps;
feat.Feat = ssprintf("MR #%d in %s %s", j+1, pSong->GetTranslitMainTitle().c_str(), DifficultyToString(pSteps->GetDifficulty()).c_str() ); feat.Feat = ssprintf("MR #%d in %s %s", j+1, pSong->GetTranslitMainTitle().c_str(), DifficultyToString(pSteps->GetDifficulty()).c_str() );
feat.pStringToFill = &hs.sName; feat.pStringToFill = hs.GetNameMutable();
feat.grade = hs.grade; feat.grade = hs.grade;
feat.fPercentDP = hs.fPercentDP; feat.fPercentDP = hs.fPercentDP;
feat.iScore = hs.iScore; feat.iScore = hs.iScore;
@@ -1410,7 +1410,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
{ {
HighScore &hs = hsl.vHighScores[j]; HighScore &hs = hsl.vHighScores[j];
if( hs.sName != RANKING_TO_FILL_IN_MARKER[pn] ) if( hs.GetName() != RANKING_TO_FILL_IN_MARKER[pn] )
continue; continue;
RankingFeat feat; RankingFeat feat;
@@ -1418,7 +1418,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
feat.pSteps = pSteps; feat.pSteps = pSteps;
feat.Type = RankingFeat::SONG; feat.Type = RankingFeat::SONG;
feat.Feat = ssprintf("PR #%d in %s %s", j+1, pSong->GetTranslitMainTitle().c_str(), DifficultyToString(pSteps->GetDifficulty()).c_str() ); feat.Feat = ssprintf("PR #%d in %s %s", j+1, pSong->GetTranslitMainTitle().c_str(), DifficultyToString(pSteps->GetDifficulty()).c_str() );
feat.pStringToFill = &hs.sName; feat.pStringToFill = hs.GetNameMutable();
feat.grade = hs.grade; feat.grade = hs.grade;
feat.fPercentDP = hs.fPercentDP; feat.fPercentDP = hs.fPercentDP;
feat.iScore = hs.iScore; feat.iScore = hs.iScore;
@@ -1446,13 +1446,13 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
for( unsigned j=0; j<hsl.vHighScores.size(); j++ ) for( unsigned j=0; j<hsl.vHighScores.size(); j++ )
{ {
HighScore &hs = hsl.vHighScores[j]; HighScore &hs = hsl.vHighScores[j];
if( hs.sName != RANKING_TO_FILL_IN_MARKER[pn] ) if( hs.GetName() != RANKING_TO_FILL_IN_MARKER[pn] )
continue; continue;
RankingFeat feat; RankingFeat feat;
feat.Type = RankingFeat::CATEGORY; feat.Type = RankingFeat::CATEGORY;
feat.Feat = ssprintf("MR #%d in Type %c (%d)", j+1, 'A'+rc, stats.GetAverageMeter(pn) ); feat.Feat = ssprintf("MR #%d in Type %c (%d)", j+1, 'A'+rc, stats.GetAverageMeter(pn) );
feat.pStringToFill = &hs.sName; feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA; feat.grade = GRADE_NO_DATA;
feat.iScore = hs.iScore; feat.iScore = hs.iScore;
feat.fPercentDP = hs.fPercentDP; feat.fPercentDP = hs.fPercentDP;
@@ -1469,13 +1469,13 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
for( unsigned j=0; j<hsl.vHighScores.size(); j++ ) for( unsigned j=0; j<hsl.vHighScores.size(); j++ )
{ {
HighScore &hs = hsl.vHighScores[j]; HighScore &hs = hsl.vHighScores[j];
if( hs.sName != RANKING_TO_FILL_IN_MARKER[pn] ) if( hs.GetName() != RANKING_TO_FILL_IN_MARKER[pn] )
continue; continue;
RankingFeat feat; RankingFeat feat;
feat.Type = RankingFeat::CATEGORY; feat.Type = RankingFeat::CATEGORY;
feat.Feat = ssprintf("PR #%d in Type %c (%d)", j+1, 'A'+rc, stats.GetAverageMeter(pn) ); feat.Feat = ssprintf("PR #%d in Type %c (%d)", j+1, 'A'+rc, stats.GetAverageMeter(pn) );
feat.pStringToFill = &hs.sName; feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA; feat.grade = GRADE_NO_DATA;
feat.iScore = hs.iScore; feat.iScore = hs.iScore;
feat.fPercentDP = hs.fPercentDP; feat.fPercentDP = hs.fPercentDP;
@@ -1503,7 +1503,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
for( unsigned i=0; i<hsl.vHighScores.size(); i++ ) for( unsigned i=0; i<hsl.vHighScores.size(); i++ )
{ {
HighScore &hs = hsl.vHighScores[i]; HighScore &hs = hsl.vHighScores[i];
if( hs.sName != RANKING_TO_FILL_IN_MARKER[pn] ) if( hs.GetName() != RANKING_TO_FILL_IN_MARKER[pn] )
continue; continue;
RankingFeat feat; RankingFeat feat;
@@ -1512,7 +1512,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
feat.Feat = ssprintf("MR #%d in %s", i+1, pCourse->GetDisplayFullTitle().c_str() ); feat.Feat = ssprintf("MR #%d in %s", i+1, pCourse->GetDisplayFullTitle().c_str() );
if( cd != DIFFICULTY_MEDIUM ) if( cd != DIFFICULTY_MEDIUM )
feat.Feat += " " + CourseDifficultyToThemedString(cd); feat.Feat += " " + CourseDifficultyToThemedString(cd);
feat.pStringToFill = &hs.sName; feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA; feat.grade = GRADE_NO_DATA;
feat.iScore = hs.iScore; feat.iScore = hs.iScore;
feat.fPercentDP = hs.fPercentDP; feat.fPercentDP = hs.fPercentDP;
@@ -1529,14 +1529,14 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
for( unsigned i=0; i<hsl.vHighScores.size(); i++ ) for( unsigned i=0; i<hsl.vHighScores.size(); i++ )
{ {
HighScore& hs = hsl.vHighScores[i]; HighScore& hs = hsl.vHighScores[i];
if( hs.sName != RANKING_TO_FILL_IN_MARKER[pn] ) if( hs.GetName() != RANKING_TO_FILL_IN_MARKER[pn] )
continue; continue;
RankingFeat feat; RankingFeat feat;
feat.Type = RankingFeat::COURSE; feat.Type = RankingFeat::COURSE;
feat.pCourse = pCourse; feat.pCourse = pCourse;
feat.Feat = ssprintf("PR #%d in %s", i+1, pCourse->GetDisplayFullTitle().c_str() ); feat.Feat = ssprintf("PR #%d in %s", i+1, pCourse->GetDisplayFullTitle().c_str() );
feat.pStringToFill = &hs.sName; feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA; feat.grade = GRADE_NO_DATA;
feat.iScore = hs.iScore; feat.iScore = hs.iScore;
feat.fPercentDP = hs.fPercentDP; feat.fPercentDP = hs.fPercentDP;
+49 -7
View File
@@ -11,8 +11,41 @@
struct HighScoreImpl struct HighScoreImpl
{ {
CString sName; // name that shows in the machine's ranking screen
void Unset();
void AppendChildren( XNode *pNode ) const;
void LoadFromNode( const XNode *pNode );
bool operator==( const HighScoreImpl& other ) const;
bool operator!=( const HighScoreImpl& other ) const { return !(*this == other); }
}; };
bool HighScoreImpl::operator==( const HighScoreImpl& other ) const
{
#define COMPARE(x) if( x!=other.x ) return false;
COMPARE( sName );
#undef COMPARE
return true;
}
void HighScoreImpl::Unset()
{
sName = "";
}
void HighScoreImpl::AppendChildren( XNode *pNode ) const
{
pNode->AppendChild( "Name", IsRankingToFillIn(sName) ? CString("") : sName );
}
void HighScoreImpl::LoadFromNode( const XNode *pNode )
{
pNode->GetChildValue( "Name", sName );
}
REGISTER_CLASS_TRAITS( HighScoreImpl, new HighScoreImpl(*pCopy) ) REGISTER_CLASS_TRAITS( HighScoreImpl, new HighScoreImpl(*pCopy) )
HighScore::HighScore() HighScore::HighScore()
@@ -23,7 +56,7 @@ HighScore::HighScore()
void HighScore::Unset() void HighScore::Unset()
{ {
sName = ""; m_Impl->Unset();
grade = GRADE_NO_DATA; grade = GRADE_NO_DATA;
iScore = 0; iScore = 0;
fPercentDP = 0; fPercentDP = 0;
@@ -39,6 +72,14 @@ void HighScore::Unset()
fLifeRemainingSeconds = 0; fLifeRemainingSeconds = 0;
} }
CString HighScore::GetName() const { return m_Impl->sName; }
void HighScore::SetName( const CString &sName ) { m_Impl->sName = sName; }
/* We normally don't give direct access to the members. We need this one
* for NameToFillIn; use a special accessor so it's easy to find where this
* is used. */
CString *HighScore::GetNameMutable() { return &m_Impl->sName; }
bool HighScore::operator>=( const HighScore& other ) const bool HighScore::operator>=( const HighScore& other ) const
{ {
/* Make sure we treat AAAA as higher than AAA, even though the score /* Make sure we treat AAAA as higher than AAA, even though the score
@@ -61,8 +102,9 @@ bool HighScore::operator>=( const HighScore& other ) const
bool HighScore::operator==( const HighScore& other ) const bool HighScore::operator==( const HighScore& other ) const
{ {
if( *m_Impl != *other.m_Impl )
return false;
#define COMPARE(x) if( x!=other.x ) return false; #define COMPARE(x) if( x!=other.x ) return false;
COMPARE( sName );
COMPARE( grade ); COMPARE( grade );
COMPARE( iScore ); COMPARE( iScore );
COMPARE( fPercentDP ); COMPARE( fPercentDP );
@@ -88,7 +130,7 @@ XNode* HighScore::CreateNode() const
pNode->m_sName = "HighScore"; pNode->m_sName = "HighScore";
// TRICKY: Don't write "name to fill in" markers. // TRICKY: Don't write "name to fill in" markers.
pNode->AppendChild( "Name", IsRankingToFillIn(sName) ? CString("") : sName ); m_Impl->AppendChildren( pNode );
pNode->AppendChild( "Grade", GradeToString(grade) ); pNode->AppendChild( "Grade", GradeToString(grade) );
pNode->AppendChild( "Score", iScore ); pNode->AppendChild( "Score", iScore );
pNode->AppendChild( "PercentDP", fPercentDP ); pNode->AppendChild( "PercentDP", fPercentDP );
@@ -117,7 +159,7 @@ void HighScore::LoadFromNode( const XNode* pNode )
CString s; CString s;
pNode->GetChildValue( "Name", sName ); m_Impl->LoadFromNode( pNode );
pNode->GetChildValue( "Grade", s ); pNode->GetChildValue( "Grade", s );
/* Pre-a19 compatibility; remove eventually */ /* Pre-a19 compatibility; remove eventually */
if( IsAnInt(s) ) if( IsAnInt(s) )
@@ -151,10 +193,10 @@ void HighScore::LoadFromNode( const XNode* pNode )
CString HighScore::GetDisplayName() const CString HighScore::GetDisplayName() const
{ {
if( sName.empty() ) if( GetName().empty() )
return EMPTY_NAME; return EMPTY_NAME;
else else
return sName; return GetName();
} }
@@ -259,7 +301,7 @@ void HighScoreList::RemoveAllButOneOfEachName()
{ {
for( vector<HighScore>::iterator j = i+1; j != vHighScores.end(); j++ ) for( vector<HighScore>::iterator j = i+1; j != vHighScores.end(); j++ )
{ {
if( i->sName == j->sName ) if( i->GetName() == j->GetName() )
{ {
j--; j--;
vHighScores.erase( j+1 ); vHighScores.erase( j+1 );
+5 -1
View File
@@ -14,7 +14,11 @@ struct XNode;
struct HighScoreImpl; struct HighScoreImpl;
struct HighScore struct HighScore
{ {
CString sName; // name that shows in the machine's ranking screen CString GetName() const;
void SetName( const CString &sName );
CString *GetNameMutable();
const CString *GetNameMutable() const { return const_cast<CString *> (const_cast<HighScore *>(this)->GetNameMutable()); }
Grade grade; Grade grade;
int iScore; int iScore;
float fPercentDP; float fPercentDP;
+2 -2
View File
@@ -212,7 +212,7 @@ void PaneDisplay::SetContent( PaneContents c )
} }
else else
{ {
str = PROFILEMAN->GetMachineProfile()->GetStepsHighScoreList(pSong,pSteps).GetTopScore().sName; str = PROFILEMAN->GetMachineProfile()->GetStepsHighScoreList(pSong,pSteps).GetTopScore().GetName();
if( str.empty() ) if( str.empty() )
str = "????"; str = "????";
} }
@@ -224,7 +224,7 @@ void PaneDisplay::SetContent( PaneContents c )
} }
else else
{ {
str = PROFILEMAN->GetMachineProfile()->GetCourseHighScoreList(pCourse,pTrail).GetTopScore().sName; str = PROFILEMAN->GetMachineProfile()->GetCourseHighScoreList(pCourse,pTrail).GetTopScore().GetName();
if( str.empty() ) if( str.empty() )
str = "????"; str = "????";
} }
+7 -7
View File
@@ -541,13 +541,13 @@ void ProfileManager::AddStepsScore( const Song* pSong, const Steps* pSteps, Play
{ {
Profile* pProfile = PROFILEMAN->GetProfile(pn); Profile* pProfile = PROFILEMAN->GetProfile(pn);
if( pProfile && !pProfile->m_sLastUsedHighScoreName.empty() ) if( pProfile && !pProfile->m_sLastUsedHighScoreName.empty() )
hs.sName = pProfile->m_sLastUsedHighScoreName; hs.SetName( pProfile->m_sLastUsedHighScoreName );
else else
hs.sName = "EVNT"; hs.SetName( "EVNT" );
} }
else else
{ {
hs.sName = RANKING_TO_FILL_IN_MARKER[pn]; hs.SetName( RANKING_TO_FILL_IN_MARKER[pn] );
} }
// //
@@ -611,13 +611,13 @@ void ProfileManager::AddCourseScore( const Course* pCourse, const Trail* pTrail,
{ {
Profile* pProfile = PROFILEMAN->GetProfile(pn); Profile* pProfile = PROFILEMAN->GetProfile(pn);
if( pProfile && !pProfile->m_sLastUsedHighScoreName.empty() ) if( pProfile && !pProfile->m_sLastUsedHighScoreName.empty() )
hs.sName = pProfile->m_sLastUsedHighScoreName; hs.SetName( pProfile->m_sLastUsedHighScoreName );
else else
hs.sName = "EVNT"; hs.SetName( "EVNT" );
} }
else else
{ {
hs.sName = RANKING_TO_FILL_IN_MARKER[pn]; hs.SetName( RANKING_TO_FILL_IN_MARKER[pn] );
} }
@@ -651,7 +651,7 @@ void ProfileManager::IncrementCoursePlayCount( const Course* pCourse, const Trai
void ProfileManager::AddCategoryScore( StepsType st, RankingCategory rc, PlayerNumber pn, const HighScore &hs_, int &iPersonalIndexOut, int &iMachineIndexOut ) void ProfileManager::AddCategoryScore( StepsType st, RankingCategory rc, PlayerNumber pn, const HighScore &hs_, int &iPersonalIndexOut, int &iMachineIndexOut )
{ {
HighScore hs = hs_; HighScore hs = hs_;
hs.sName = RANKING_TO_FILL_IN_MARKER[pn]; hs.SetName( RANKING_TO_FILL_IN_MARKER[pn] );
if( PROFILEMAN->IsPersistentProfile(pn) ) if( PROFILEMAN->IsPersistentProfile(pn) )
PROFILEMAN->GetProfile(pn)->AddCategoryHighScore( st, rc, hs, iPersonalIndexOut ); PROFILEMAN->GetProfile(pn)->AddCategoryHighScore( st, rc, hs, iPersonalIndexOut );
if( hs.fPercentDP > PREFSMAN->m_fMinPercentageForMachineSongHighScore ) if( hs.fPercentDP > PREFSMAN->m_fMinPercentageForMachineSongHighScore )
+1 -1
View File
@@ -896,7 +896,7 @@ void ScreenEvaluation::CommitScores(
// below in the switch // below in the switch
HighScore &hs = m_HighScore[p]; HighScore &hs = m_HighScore[p];
hs.sName = RANKING_TO_FILL_IN_MARKER[p]; hs.SetName( RANKING_TO_FILL_IN_MARKER[p] );
hs.grade = stageStats.m_player[p].GetGrade(); hs.grade = stageStats.m_player[p].GetGrade();
hs.iScore = stageStats.m_player[p].iScore; hs.iScore = stageStats.m_player[p].iScore;
hs.fPercentDP = stageStats.m_player[p].GetPercentDancePoints(); hs.fPercentDP = stageStats.m_player[p].GetPercentDancePoints();
+1 -1
View File
@@ -359,7 +359,7 @@ void ScreenNameEntryTraditional::Init()
for( int h=0; h<(int)hsl.vHighScores.size() && h<PREFSMAN->m_iMaxHighScoresPerListForMachine; h++ ) for( int h=0; h<(int)hsl.vHighScores.size() && h<PREFSMAN->m_iMaxHighScoresPerListForMachine; h++ )
{ {
const HighScore &hs = hsl.vHighScores[h]; const HighScore &hs = hsl.vHighScores[h];
if( hs.sName == RANKING_TO_FILL_IN_MARKER[p] && if( hs.GetName() == RANKING_TO_FILL_IN_MARKER[p] &&
hs.fPercentDP == fPercentDP && hs.fPercentDP == fPercentDP &&
hs.iScore == iScore ) hs.iScore == iScore )
{ {
+8 -8
View File
@@ -760,12 +760,12 @@ float ScreenRanking::SetPage( PageToShow pts )
if( l < (int)hsl.vHighScores.size() ) if( l < (int)hsl.vHighScores.size() )
{ {
hs = hsl.vHighScores[l]; hs = hsl.vHighScores[l];
CString *psName = &hsl.vHighScores[l].sName; CString *psName = hsl.vHighScores[l].GetNameMutable();
bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end(); bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end();
} }
else else
{ {
hs.sName = NO_SCORE_NAME; hs.SetName( NO_SCORE_NAME );
} }
m_textNames[l].SetText( hs.GetDisplayName() ); m_textNames[l].SetText( hs.GetDisplayName() );
@@ -800,12 +800,12 @@ float ScreenRanking::SetPage( PageToShow pts )
if( l < (int)hsl.vHighScores.size() ) if( l < (int)hsl.vHighScores.size() )
{ {
hs = hsl.vHighScores[l]; hs = hsl.vHighScores[l];
const CString *psName = &hsl.vHighScores[l].sName; const CString *psName = hsl.vHighScores[l].GetNameMutable();
bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end(); bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end();
} }
else else
{ {
hs.sName = NO_SCORE_NAME; hs.SetName( NO_SCORE_NAME );
} }
m_textNames[l].SetText( hs.GetDisplayName() ); m_textNames[l].SetText( hs.GetDisplayName() );
@@ -868,12 +868,12 @@ float ScreenRanking::SetPage( PageToShow pts )
if( !hsl.vHighScores.empty() ) if( !hsl.vHighScores.empty() )
{ {
hs = hsl.GetTopScore(); hs = hsl.GetTopScore();
const CString *psName = &hsl.GetTopScore().sName; const CString *psName = hsl.GetTopScore().GetNameMutable();
bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end(); bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end();
} }
else else
{ {
hs.sName = NO_SCORE_NAME; hs.SetName( NO_SCORE_NAME );
} }
CString s = hs.GetDisplayName() + "\n" + PercentageDisplay::FormatPercentScore( hs.fPercentDP ); CString s = hs.GetDisplayName() + "\n" + PercentageDisplay::FormatPercentScore( hs.fPercentDP );
@@ -915,12 +915,12 @@ float ScreenRanking::SetPage( PageToShow pts )
if( !hsl.vHighScores.empty() ) if( !hsl.vHighScores.empty() )
{ {
hs = hsl.vHighScores[0]; hs = hsl.vHighScores[0];
const CString *psName = &hsl.GetTopScore().sName; const CString *psName = hsl.GetTopScore().GetNameMutable();
bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end(); bRecentHighScore = find( GAMESTATE->m_vpsNamesThatWereFilled.begin(), GAMESTATE->m_vpsNamesThatWereFilled.end(), psName ) != GAMESTATE->m_vpsNamesThatWereFilled.end();
} }
else else
{ {
hs.sName = NO_SCORE_NAME; hs.SetName( NO_SCORE_NAME );
} }
CString s = hs.GetDisplayName() + "\n" + PercentageDisplay::FormatPercentScore( hs.fPercentDP ); CString s = hs.GetDisplayName() + "\n" + PercentageDisplay::FormatPercentScore( hs.fPercentDP );