diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index aa8426faa3..b33e9d5abe 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -3300,17 +3300,21 @@ DancePointsZoom=2 [ScreenRanking] Class=ScreenRanking Fallback=ScreenAttract +NextScreen=ScreenUnlock TimerSeconds=-1 + StepsTypesToHide=dance-couple,dance-solo,pump-halfdouble ShowCategories=1 CoursesToShow=Courses/DDRMAX/NaokiStandard.crs,Courses/DDRMAX/ParanoiaBrothers.crs,Courses/Samples/PlayersBest1-4.crs ShowAllStepsScores=0 ShowAllCourseScores=0 DifficultiesToShow=easy,medium,hard,challenge -NextScreen=ScreenUnlock SecondsPerPage=5 PageFadeSeconds=1.0 +PercentDecimalPlaces=2 +PercentTotalSize=5 NoScoreName=STEP + RowSpacingX=0 RowSpacingY=60 ColSpacingX=0 @@ -3320,6 +3324,9 @@ StepsTypeColor2=1,0.3,0.3,1 StepsTypeColor3=0.3,1,0.3,1 StepsTypeColor4=1.0,1,1.0,1 StepsTypeColor5=1.0,1,1.0,1 +SongScoreRowsToShow=6 +SongScoreSecondsPerRow=0.4 + BannerX=SCREEN_CENTER_X+197 BannerY=SCREEN_CENTER_Y-196 BannerOnCommand=scaletoclipped,220,58;addx,SCREEN_WIDTH;sleep,0.0;bounceend,1;addx,-SCREEN_WIDTH @@ -3344,6 +3351,7 @@ PageTypeX=SCREEN_CENTER_X+200 PageTypeY=SCREEN_CENTER_Y-180 PageTypeOnCommand=addx,SCREEN_WIDTH;sleep,0.0;bounceend,1;addx,-SCREEN_WIDTH PageTypeOffCommand=sleep,0.0;linear,0.5;diffusealpha,0 + BulletStartX=SCREEN_CENTER_X-220 BulletStartY=SCREEN_CENTER_Y-100 Bullet1OnCommand=addx,SCREEN_WIDTH;sleep,0.2;bounceend,1;addx,-SCREEN_WIDTH @@ -3404,6 +3412,45 @@ Time2OffCommand=sleep,0.3;linear,0.5;diffusealpha,0 Time3OffCommand=sleep,0.4;linear,0.5;diffusealpha,0 Time4OffCommand=sleep,0.5;linear,0.5;diffusealpha,0 Time5OffCommand=sleep,0.6;linear,0.5;diffusealpha,0 +DifficultyStartX=SCREEN_CENTER_X-154 +DifficultyY=SCREEN_CENTER_Y-209 +Difficulty1OnCommand= +Difficulty2OnCommand= +Difficulty3OnCommand= +Difficulty4OnCommand= +Difficulty5OnCommand= +Difficulty1OffCommand= +Difficulty2OffCommand= +Difficulty3OffCommand= +Difficulty4OffCommand= +Difficulty5OffCommand= +CourseDifficultyStartX=SCREEN_CENTER_X-54 +CourseDifficultyY=SCREEN_CENTER_Y-209 +CourseDifficultyRegularOnCommand=diffusealpha,0;sleep,0.1;linear,0.3;diffusealpha,1 +CourseDifficultyDifficultOnCommand=diffusealpha,0;sleep,0.1;linear,0.3;diffusealpha,1 +CourseDifficultyRegularOffCommand=sleep,0.0;linear,0.3;diffusealpha,0 +CourseDifficultyDifficultOffCommand=sleep,0.0;linear,0.3;diffusealpha,0 +CourseListTitleOnCommand=diffuse,0,0,0,1;maxwidth,160 +SongTitleOffsetX=-210 +SongTitleOffsetY=0 +SongTitleOnCommand=diffuse,0,0,0,1;maxwidth,160 +SongTitleOffCommand= +SongFrameOffsetX=0 +SongFrameOffsetY=0 +SongFrameOnCommand= +SongFrameOffCommand= +StepsScoreOffsetStartX=-154 +StepsScoreOffsetY=0 +StepsScoreOnCommand=zoom,0.7 +StepsScoreOffCommand= +CourseListFrameOffsetX=0 +CourseListFrameOffsetY=0 +CourseListFrameOnCommand= +CourseListFrameOffCommand= +CourseListScoreOffsetStartX=-54 +CourseListScoreOffsetY=0 +CourseListScoreOnCommand=zoom,0.7 +CourseListScoreOffCommand= [ScreenIntroMovie] Class=ScreenAttract diff --git a/stepmania/src/ScreenRanking.cpp b/stepmania/src/ScreenRanking.cpp index 1545e48927..56cf0d275f 100644 --- a/stepmania/src/ScreenRanking.cpp +++ b/stepmania/src/ScreenRanking.cpp @@ -23,48 +23,8 @@ static const CString PageTypeNames[NUM_PAGE_TYPES] = { XToString( PageType ); -#define STEPS_TYPES_TO_HIDE THEME->GetMetric (m_sName,"StepsTypesToHide") -#define SHOW_CATEGORIES THEME->GetMetricB(m_sName,"ShowCategories") -#define SHOW_ALL_STEPS_SCORES THEME->GetMetricB(m_sName,"ShowAllStepsScores") -#define SHOW_ALL_COURSE_SCORES THEME->GetMetricB(m_sName,"ShowAllCourseScores") -#define DIFFICULTIES_TO_SHOW THEME->GetMetric (m_sName,"DifficultiesToShow") #define COURSES_TO_SHOW PREFSMAN->m_sCoursesToShowRanking -#define SECONDS_PER_PAGE THEME->GetMetricF(m_sName,"SecondsPerPage") -#define PAGE_FADE_SECONDS THEME->GetMetricF(m_sName,"PageFadeSeconds") -#define PERCENT_DECIMAL_PLACES THEME->GetMetricI(m_sName,"PercentDecimalPlaces") -#define PERCENT_TOTAL_SIZE THEME->GetMetricI(m_sName,"PercentTotalSize") -#define NO_SCORE_NAME THEME->GetMetric (m_sName,"NoScoreName") - -#define ROW_SPACING_X THEME->GetMetricF(m_sName,"RowSpacingX") -#define ROW_SPACING_Y THEME->GetMetricF(m_sName,"RowSpacingY") -#define COL_SPACING_X THEME->GetMetricF(m_sName,"ColSpacingX") -#define COL_SPACING_Y THEME->GetMetricF(m_sName,"ColSpacingY") -#define STEPS_TYPE_COLOR( i ) THEME->GetMetricC(m_sName,ssprintf("StepsTypeColor%d",i+1)) -#define SONG_SCORE_ROWS_TO_SHOW THEME->GetMetricI(m_sName,"SongScoreRowsToShow") -#define SONG_SCORE_SECONDS_PER_ROW THEME->GetMetricF(m_sName,"SongScoreSecondsPerRow") - -#define BULLET_START_X THEME->GetMetricF(m_sName,"BulletStartX") -#define BULLET_START_Y THEME->GetMetricF(m_sName,"BulletStartY") -#define NAME_START_X THEME->GetMetricF(m_sName,"NameStartX") -#define NAME_START_Y THEME->GetMetricF(m_sName,"NameStartY") -#define SCORE_START_X THEME->GetMetricF(m_sName,"ScoreStartX") -#define SCORE_START_Y THEME->GetMetricF(m_sName,"ScoreStartY") -#define POINTS_START_X THEME->GetMetricF(m_sName,"PointsStartX") -#define POINTS_START_Y THEME->GetMetricF(m_sName,"PointsStartY") -#define TIME_START_X THEME->GetMetricF(m_sName,"TimeStartX") -#define TIME_START_Y THEME->GetMetricF(m_sName,"TimeStartY") -#define DIFFICULTY_START_X THEME->GetMetricF(m_sName,"DifficultyStartX") -#define DIFFICULTY_Y THEME->GetMetricF(m_sName,"DifficultyY") -#define COURSE_DIFFICULTY_START_X THEME->GetMetricF(m_sName,"CourseDifficultyStartX") -#define COURSE_DIFFICULTY_Y THEME->GetMetricF(m_sName,"CourseDifficultyY") -#define SONG_TITLE_OFFSET_X THEME->GetMetricF(m_sName,"SongTitleOffsetX") -#define SONG_TITLE_OFFSET_Y THEME->GetMetricF(m_sName,"SongTitleOffsetY") -#define SONG_FRAME_OFFSET_X THEME->GetMetricF(m_sName,"SongFrameOffsetX") -#define SONG_FRAME_OFFSET_Y THEME->GetMetricF(m_sName,"SongFrameOffsetY") -#define STEPS_SCORE_OFFSET_START_X THEME->GetMetricF(m_sName,"StepsScoreOffsetStartX") -#define STEPS_SCORE_OFFSET_Y THEME->GetMetricF(m_sName,"StepsScoreOffsetY") -#define COURSE_SCORE_OFFSET_START_X THEME->GetMetricF(m_sName,"CourseListScoreOffsetStartX") -#define COURSE_SCORE_OFFSET_Y THEME->GetMetricF(m_sName,"CourseListScoreOffsetY") +#define COURSES_TO_SHOW2 THEME->GetMetric(m_sName,"CoursesToShow") #define BULLET_X(row) (BULLET_START_X+ROW_SPACING_X*row) @@ -87,8 +47,51 @@ const ScreenMessage SM_ShowNextPage = (ScreenMessage)(SM_User+67); const ScreenMessage SM_HidePage = (ScreenMessage)(SM_User+68); +CString STEPS_TYPE_COLOR_NAME( size_t i ) { return ssprintf("StepsTypeColor%d",i+1); } + REGISTER_SCREEN_CLASS( ScreenRanking ); -ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName ) +ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName ), + STEPS_TYPES_TO_HIDE (m_sName,"StepsTypesToHide"), + SHOW_CATEGORIES (m_sName,"ShowCategories"), + SHOW_ALL_STEPS_SCORES (m_sName,"ShowAllStepsScores"), + SHOW_ALL_COURSE_SCORES (m_sName,"ShowAllCourseScores"), + DIFFICULTIES_TO_SHOW (m_sName,"DifficultiesToShow"), + SECONDS_PER_PAGE (m_sName,"SecondsPerPage"), + PAGE_FADE_SECONDS (m_sName,"PageFadeSeconds"), + PERCENT_DECIMAL_PLACES (m_sName,"PercentDecimalPlaces"), + PERCENT_TOTAL_SIZE (m_sName,"PercentTotalSize"), + NO_SCORE_NAME (m_sName,"NoScoreName"), + + ROW_SPACING_X (m_sName,"RowSpacingX"), + ROW_SPACING_Y (m_sName,"RowSpacingY"), + COL_SPACING_X (m_sName,"ColSpacingX"), + COL_SPACING_Y (m_sName,"ColSpacingY"), + STEPS_TYPE_COLOR (m_sName,STEPS_TYPE_COLOR_NAME,5), + SONG_SCORE_ROWS_TO_SHOW (m_sName,"SongScoreRowsToShow"), + SONG_SCORE_SECONDS_PER_ROW (m_sName,"SongScoreSecondsPerRow"), + + BULLET_START_X (m_sName,"BulletStartX"), + BULLET_START_Y (m_sName,"BulletStartY"), + NAME_START_X (m_sName,"NameStartX"), + NAME_START_Y (m_sName,"NameStartY"), + SCORE_START_X (m_sName,"ScoreStartX"), + SCORE_START_Y (m_sName,"ScoreStartY"), + POINTS_START_X (m_sName,"PointsStartX"), + POINTS_START_Y (m_sName,"PointsStartY"), + TIME_START_X (m_sName,"TimeStartX"), + TIME_START_Y (m_sName,"TimeStartY"), + DIFFICULTY_START_X (m_sName,"DifficultyStartX"), + DIFFICULTY_Y (m_sName,"DifficultyY"), + COURSE_DIFFICULTY_START_X (m_sName,"CourseDifficultyStartX"), + COURSE_DIFFICULTY_Y (m_sName,"CourseDifficultyY"), + SONG_TITLE_OFFSET_X (m_sName,"SongTitleOffsetX"), + SONG_TITLE_OFFSET_Y (m_sName,"SongTitleOffsetY"), + SONG_FRAME_OFFSET_X (m_sName,"SongFrameOffsetX"), + SONG_FRAME_OFFSET_Y (m_sName,"SongFrameOffsetY"), + STEPS_SCORE_OFFSET_START_X (m_sName,"StepsScoreOffsetStartX"), + STEPS_SCORE_OFFSET_Y (m_sName,"StepsScoreOffsetY"), + COURSE_SCORE_OFFSET_START_X (m_sName,"CourseListScoreOffsetStartX"), + COURSE_SCORE_OFFSET_Y (m_sName,"CourseListScoreOffsetY") { } @@ -156,7 +159,7 @@ void ScreenRanking::Init() // TODO: Think of a better way to handle this if( PREFSMAN->m_sCoursesToShowRanking == "" ) - PREFSMAN->m_sCoursesToShowRanking = THEME->GetMetric(m_sName,"CoursesToShow"); + PREFSMAN->m_sCoursesToShowRanking = COURSES_TO_SHOW2; } } @@ -543,7 +546,7 @@ float ScreenRanking::SetPage( PageToShow pts ) { m_textNames[l].Reset(); m_textNames[l].SetXY( NAME_X(l), NAME_Y(l) ); - m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); ON_COMMAND( m_textNames[l] ); } @@ -552,7 +555,7 @@ float ScreenRanking::SetPage( PageToShow pts ) { m_textScores[l].Reset(); m_textScores[l].SetXY( SCORE_X(l), SCORE_Y(l) ); - m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); ON_COMMAND( m_textScores[l] ); } @@ -561,7 +564,7 @@ float ScreenRanking::SetPage( PageToShow pts ) { m_textPoints[l].Reset(); m_textPoints[l].SetXY( POINTS_X(l), POINTS_Y(l) ); - m_textPoints[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + m_textPoints[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); ON_COMMAND( m_textPoints[l] ); } @@ -570,7 +573,7 @@ float ScreenRanking::SetPage( PageToShow pts ) { m_textTime[l].Reset(); m_textTime[l].SetXY( TIME_X(l), TIME_Y(l) ); - m_textTime[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + m_textTime[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); ON_COMMAND( m_textTime[l] ); } } @@ -617,7 +620,7 @@ float ScreenRanking::SetPage( PageToShow pts ) pStepsScoreRowItems->m_textStepsScore[*dc_iter].Reset(); pStepsScoreRowItems->m_textStepsScore[*dc_iter].SetXY( STEPS_SCORE_OFFSET_X(*dc_iter), STEPS_SCORE_OFFSET_Y ); pStepsScoreRowItems->m_textStepsScore[*dc_iter].SetUseZBuffer( true ); - pStepsScoreRowItems->m_textStepsScore[*dc_iter].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + pStepsScoreRowItems->m_textStepsScore[*dc_iter].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); ON_COMMAND( pStepsScoreRowItems->m_textStepsScore[*dc_iter] ); } } @@ -665,7 +668,7 @@ float ScreenRanking::SetPage( PageToShow pts ) pCourseScoreRowItem->m_textStepsScore[d].Reset(); pCourseScoreRowItem->m_textStepsScore[d].SetXY( COURSE_SCORE_OFFSET_X(d), COURSE_SCORE_OFFSET_Y ); pCourseScoreRowItem->m_textStepsScore[d].SetUseZBuffer( true ); - pCourseScoreRowItem->m_textStepsScore[d].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + pCourseScoreRowItem->m_textStepsScore[d].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); ON_COMMAND( pCourseScoreRowItem->m_textStepsScore[d] ); } } @@ -703,8 +706,8 @@ float ScreenRanking::SetPage( PageToShow pts ) m_textNames[l].SetText( hs.GetDisplayName() ); m_textScores[l].SetText( ssprintf("%09i",hs.iScore) ); - m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); - m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); + m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); if( bRecentHighScore ) { @@ -752,10 +755,10 @@ float ScreenRanking::SetPage( PageToShow pts ) m_textTime[l].SetText( "" ); m_textScores[l].SetText( ssprintf("%09d",hs.iScore) ); } - m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); - m_textPoints[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); - m_textTime[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); - m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR(pts.colorIndex) ); + m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); + m_textPoints[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); + m_textTime[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); + m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); if( bRecentHighScore ) { diff --git a/stepmania/src/ScreenRanking.h b/stepmania/src/ScreenRanking.h index 9537114ddb..2f0ee3757b 100644 --- a/stepmania/src/ScreenRanking.h +++ b/stepmania/src/ScreenRanking.h @@ -9,6 +9,7 @@ #include "ListDisplay.h" #include "ActorUtil.h" #include "Difficulty.h" +#include "ThemeMetric.h" class Course; class Song; @@ -92,6 +93,49 @@ protected: vector m_vPagesToShow; vector m_vDiffsToShow; + + + ThemeMetric STEPS_TYPES_TO_HIDE; + ThemeMetric SHOW_CATEGORIES; + ThemeMetric SHOW_ALL_STEPS_SCORES; + ThemeMetric SHOW_ALL_COURSE_SCORES; + ThemeMetric DIFFICULTIES_TO_SHOW; + ThemeMetric SECONDS_PER_PAGE; + ThemeMetric PAGE_FADE_SECONDS; + ThemeMetric PERCENT_DECIMAL_PLACES; + ThemeMetric PERCENT_TOTAL_SIZE; + ThemeMetric NO_SCORE_NAME; + + ThemeMetric ROW_SPACING_X; + ThemeMetric ROW_SPACING_Y; + ThemeMetric COL_SPACING_X; + ThemeMetric COL_SPACING_Y; + ThemeMetric1D STEPS_TYPE_COLOR; + ThemeMetric SONG_SCORE_ROWS_TO_SHOW; + ThemeMetric SONG_SCORE_SECONDS_PER_ROW; + + ThemeMetric BULLET_START_X; + ThemeMetric BULLET_START_Y; + ThemeMetric NAME_START_X; + ThemeMetric NAME_START_Y; + ThemeMetric SCORE_START_X; + ThemeMetric SCORE_START_Y; + ThemeMetric POINTS_START_X; + ThemeMetric POINTS_START_Y; + ThemeMetric TIME_START_X; + ThemeMetric TIME_START_Y; + ThemeMetric DIFFICULTY_START_X; + ThemeMetric DIFFICULTY_Y; + ThemeMetric COURSE_DIFFICULTY_START_X; + ThemeMetric COURSE_DIFFICULTY_Y; + ThemeMetric SONG_TITLE_OFFSET_X; + ThemeMetric SONG_TITLE_OFFSET_Y; + ThemeMetric SONG_FRAME_OFFSET_X; + ThemeMetric SONG_FRAME_OFFSET_Y; + ThemeMetric STEPS_SCORE_OFFSET_START_X; + ThemeMetric STEPS_SCORE_OFFSET_Y; + ThemeMetric COURSE_SCORE_OFFSET_START_X; + ThemeMetric COURSE_SCORE_OFFSET_Y; }; #endif