From eed251d1c2a98c570712492f4294227205fbc3af Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Thu, 5 May 2005 19:29:29 +0000 Subject: [PATCH] split ShowAllCourses into Show*Courses for each CourseType --- stepmania/src/EnumHelper.h | 2 +- stepmania/src/ScreenRanking.cpp | 43 ++++++++++++++++++++++++--------- stepmania/src/ScreenRanking.h | 8 ++++-- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/stepmania/src/EnumHelper.h b/stepmania/src/EnumHelper.h index 47e4748f7f..8af84a2a8a 100644 --- a/stepmania/src/EnumHelper.h +++ b/stepmania/src/EnumHelper.h @@ -40,10 +40,10 @@ static const CString EMPTY_STRING; #define XToString(X, CNT) \ const CString& X##ToString( X x ) \ { \ + ASSERT( CNT == ARRAYSIZE(X##Names) ); \ if( x == CNT+1 ) \ return EMPTY_STRING; \ ASSERT( x < CNT ); \ - ASSERT( x < (int)ARRAYSIZE(X##Names) ); \ return X##Names[x]; \ } diff --git a/stepmania/src/ScreenRanking.cpp b/stepmania/src/ScreenRanking.cpp index 1e0c807456..636816d490 100644 --- a/stepmania/src/ScreenRanking.cpp +++ b/stepmania/src/ScreenRanking.cpp @@ -15,11 +15,13 @@ #include "ScreenDimensions.h" #include "PercentageDisplay.h" -static const CString PageTypeNames[NUM_PAGE_TYPES] = { +static const CString PageTypeNames[] = { "Category", "Course", "AllSteps", - "AllCourses", + "NonstopCourses", + "OniCourses", + "SurvivalCourses", }; XToString( PageType, NUM_PAGE_TYPES ); @@ -27,7 +29,6 @@ XToString( PageType, NUM_PAGE_TYPES ); #define COURSES_TO_SHOW PREFSMAN->m_sCoursesToShowRanking #define COURSES_TO_SHOW2 THEME->GetMetric(m_sName,"CoursesToShow") - #define BULLET_X(row) (BULLET_START_X+ROW_SPACING_X*row) #define BULLET_Y(row) (BULLET_START_Y+ROW_SPACING_Y*row) #define NAME_X(row) (NAME_START_X+ROW_SPACING_X*row) @@ -68,11 +69,11 @@ static void GetAllSongsToShow( vector &vpOut, bool bShowOnlyMostRecentSco } } -static void GetAllCoursesToShow( vector &vpOut, bool bShowOnlyMostRecentScores, int iNumMostRecentScoresToShow ) +static void GetAllCoursesToShow( vector &vpOut, CourseType ct, bool bShowOnlyMostRecentScores, int iNumMostRecentScoresToShow ) { vpOut.clear(); vector vpCourses; - SONGMAN->GetAllCourses( vpCourses, false ); + SONGMAN->GetCourses( ct, vpCourses, false ); FOREACH_CONST( Course*, vpCourses, c) { @@ -100,7 +101,9 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName ) SHOW_CATEGORIES (m_sName,"ShowCategories"), SHOW_STEPS_SCORES (m_sName,"ShowStepsScores"), - SHOW_COURSE_SCORES (m_sName,"ShowCourseScores"), + SHOW_NONSTOP_COURSE_SCORES (m_sName,"ShowNonstopCourseScores"), + SHOW_ONI_COURSE_SCORES (m_sName,"ShowOniCourseScores"), + SHOW_SURVIVAL_COURSE_SCORES (m_sName,"ShowSurvivalCourseScores"), SHOW_ONLY_MOST_RECENT_SCORES (m_sName,"ShowOnlyMostRecentScores"), NUM_MOST_RECENT_SCORES_TO_SHOW (m_sName,"NumMostRecentScoresToShow"), SECONDS_PER_PAGE (m_sName,"SecondsPerPage"), @@ -277,7 +280,12 @@ void ScreenRanking::Init() } - ASSERT( !SHOW_STEPS_SCORES || !SHOW_COURSE_SCORES ); // Can't do both on the same screen + // Can only do one at a time + ASSERT( + !SHOW_STEPS_SCORES || + !SHOW_NONSTOP_COURSE_SCORES || + !SHOW_ONI_COURSE_SCORES || + !SHOW_SURVIVAL_COURSE_SCORES ); if( SHOW_STEPS_SCORES ) @@ -329,10 +337,11 @@ void ScreenRanking::Init() } } - if( SHOW_COURSE_SCORES ) + if( (bool)SHOW_NONSTOP_COURSE_SCORES || (bool)SHOW_ONI_COURSE_SCORES || (bool)SHOW_SURVIVAL_COURSE_SCORES ) { + CourseType ct = SHOW_NONSTOP_COURSE_SCORES ? COURSE_TYPE_NONSTOP : (SHOW_ONI_COURSE_SCORES ? COURSE_TYPE_ONI : COURSE_TYPE_SURVIVAL); vector vpCourses; - GetAllCoursesToShow( vpCourses, SHOW_ONLY_MOST_RECENT_SCORES, NUM_MOST_RECENT_SCORES_TO_SHOW ); + GetAllCoursesToShow( vpCourses, ct, SHOW_ONLY_MOST_RECENT_SCORES, NUM_MOST_RECENT_SCORES_TO_SHOW ); LOG->Trace("rankings: adding %u courses", unsigned(vpCourses.size())); m_vScoreRowItem.resize( vpCourses.size() ); FOREACH_CONST( Course*, vpCourses, c ) @@ -372,7 +381,13 @@ void ScreenRanking::Init() for( unsigned i=0; i SHOW_CATEGORIES; ThemeMetric SHOW_STEPS_SCORES; - ThemeMetric SHOW_COURSE_SCORES; + ThemeMetric SHOW_NONSTOP_COURSE_SCORES; + ThemeMetric SHOW_ONI_COURSE_SCORES; + ThemeMetric SHOW_SURVIVAL_COURSE_SCORES; ThemeMetric SHOW_ONLY_MOST_RECENT_SCORES; ThemeMetric NUM_MOST_RECENT_SCORES_TO_SHOW; ThemeMetric SECONDS_PER_PAGE;