From 7bcbe86e33e3bd9fe7f9d107b3da1899fe13d109 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sun, 22 Feb 2004 06:42:50 +0000 Subject: [PATCH] add course high scores to stats.html --- stepmania/src/ProfileHtml.cpp | 119 ++++++++++++++++++++++++++-------- 1 file changed, 93 insertions(+), 26 deletions(-) diff --git a/stepmania/src/ProfileHtml.cpp b/stepmania/src/ProfileHtml.cpp index cac133b979..7872f82776 100644 --- a/stepmania/src/ProfileHtml.cpp +++ b/stepmania/src/ProfileHtml.cpp @@ -476,6 +476,7 @@ void PrintPopularity( RageFile &f, const Profile *pProfile, CString sTitle, vect typedef bool (*FnPrintSong)(RageFile &f, const Profile *pProfile, Song* pSong ); typedef bool (*FnPrintGroup)(RageFile &f, const Profile *pProfile, CString sGroup ); typedef bool (*FnPrintStepsType)(RageFile &f, const Profile *pProfile, StepsType st ); +typedef bool (*FnPrintCourse)(RageFile &f, const Profile *pProfile, Course* pCourse ); bool PrintSongsInGroup( RageFile &f, const Profile *pProfile, CString sGroup, FnPrintSong pFn ) @@ -537,6 +538,36 @@ bool PrintGroups( RageFile &f, const Profile *pProfile, CString sTitle, FnPrintG return true; } +bool PrintCourses( RageFile &f, const Profile *pProfile, CString sTitle, FnPrintCourse pFn ) +{ + vector vpCourses; + SONGMAN->GetAllCourses( vpCourses, true ); + + if( vpCourses.empty() ) + return false; + + PRINT_OPEN(f, sTitle ); + { + bool bPrintedAny = false; + + for( unsigned c=0; c vStepsTypesToShow, FnPrintStepsType pFn ) { PRINT_OPEN(f, sTitle ); @@ -553,6 +584,20 @@ bool PrintStepsTypes( RageFile &f, const Profile *pProfile, CString sTitle, vect return true; } +void PrintHighScoreListTable( RageFile &f, const HighScoreList& hsl ) +{ + BEGIN_TABLE(2); + for( unsigned i=0; iGetSongNumTimesPlayed(pSong); @@ -575,22 +620,16 @@ bool PrintHighScoresForSong( RageFile &f, const Profile *pProfile, Song* pSong ) continue; // skip const HighScoreList &hsl = pProfile->GetStepsHighScoreList( pSteps ); + if( hsl.vHighScores.empty() ) + continue; + CString s = GAMEMAN->NotesTypeToString(pSteps->m_StepsType) + " - " + DifficultyToString(pSteps->GetDifficulty()); PRINT_OPEN(f, s, true); { - BEGIN_TABLE(2); - for( unsigned i=0; iGetCourseHighScoreList( pCourse, st, cd ); + if( hsl.vHighScores.empty() ) + continue; + + PRINT_OPEN(f, GAMEMAN->NotesTypeToString(st)+" - "+CourseDifficultyToString(cd) ); + { + PrintHighScoreListTable( f, hsl ); + } + PRINT_CLOSE(f); + } + } + + return true; +} + bool PrintHighScoresForGroup(RageFile &f, const Profile *pProfile, CString sGroup ) { return PrintSongsInGroup( f, pProfile, sGroup, PrintHighScoresForSong ); } -void PrintHighScores( RageFile &f, const Profile *pProfile, CString sTitle, vector &vpSongs, vector &vpAllSteps, vector &vStepsTypesToShow, map mapStepsToSong, vector vpCourses ) +void PrintSongHighScores( RageFile &f, const Profile *pProfile, CString sTitle, vector &vpSongs, vector &vpAllSteps, vector &vStepsTypesToShow, map mapStepsToSong, vector vpCourses ) { PrintGroups( f, pProfile, sTitle, PrintHighScoresForGroup ); } +void PrintCourseHighScores( RageFile &f, const Profile *pProfile, CString sTitle, vector &vpSongs, vector &vpAllSteps, vector &vStepsTypesToShow, map mapStepsToSong, vector vpCourses ) +{ + PrintCourses( f, pProfile, sTitle, PrintHighScoresForCourse ); +} + bool PrintGradeTableForStepsType( RageFile &f, const Profile *pProfile, StepsType st ) { unsigned i; @@ -1013,23 +1078,25 @@ TITLE.c_str(), STYLE_CSS.c_str() ) ); switch( htmlType ) { case HTML_TYPE_PLAYER: - PrintInstructions( f, pProfile, "Instructions" ); - PrintStatistics( f, pProfile, "My Statistics", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintPopularity( f, pProfile, "My Popularity", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintHighScores( f, pProfile, "My High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintScreenshots( f, pProfile, "My Screenshots", sDir ); - PrintGradeTable( f, pProfile, "My Grade Table", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintPopularity( f, pProfile, "Last Machine Popularity", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintHighScores( f, pProfile, "Last Machine High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintInstructions( f, pProfile, "Instructions" ); + PrintStatistics( f, pProfile, "My Statistics", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintPopularity( f, pProfile, "My Popularity", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintSongHighScores( f, pProfile, "My Song High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintCourseHighScores( f, pProfile, "My Course High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintScreenshots( f, pProfile, "My Screenshots", sDir ); + PrintGradeTable( f, pProfile, "My Grade Table", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintPopularity( f, pProfile, "Last Machine Popularity", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintSongHighScores( f, pProfile, "Last Machine High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); break; case HTML_TYPE_MACHINE: - PrintStatistics( f, pProfile, "Statistics", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintPopularity( f, pProfile, "Popularity", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintHighScores( f, pProfile, "High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintScreenshots( f, pProfile, "Screenshots", sDir ); - PrintGradeTable( f, pProfile, "Grade Table", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintInventoryList( f, pProfile, "Song Information", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); - PrintBookkeeping( f, pProfile, "Bookkeeping", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintStatistics( f, pProfile, "Statistics", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintPopularity( f, pProfile, "Popularity", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintSongHighScores( f, pProfile, "Song High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintCourseHighScores( f, pProfile, "Course High Scores", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintScreenshots( f, pProfile, "Screenshots", sDir ); + PrintGradeTable( f, pProfile, "Grade Table", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintInventoryList( f, pProfile, "Song Information", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); + PrintBookkeeping( f, pProfile, "Bookkeeping", vpSongs, vpAllSteps, vStepsTypesToShow, mapStepsToSong, vpCourses ); break; default: ASSERT(0);