Run SwitchPageCommand instead of OnCommand between pages (simpler and

more flexible).  Cleanup.
This commit is contained in:
Glenn Maynard
2005-09-21 21:14:09 +00:00
parent 622293b6eb
commit 0293b5c205
2 changed files with 76 additions and 128 deletions
+76 -126
View File
@@ -142,76 +142,25 @@ void ScreenRanking::Init()
m_PageType = StringToPageType( TYPE ); m_PageType = StringToPageType( TYPE );
// init Actors for category and course m_textStepsType.SetName( "StepsType" );
{ m_textStepsType.LoadFromFont( THEME->GetPathF(m_sName,"steps type") );
if( m_PageType == PAGE_TYPE_TRAIL ) m_textStepsType.SetShadowLength( 0 );
{ SET_XY_AND_ON_COMMAND( m_textStepsType );
m_Banner.SetName( "Banner" ); this->AddChild( &m_textStepsType );
this->AddChild( &m_Banner );
m_textCourseTitle.SetName( "CourseTitle" ); m_sprPageType.Load( THEME->GetPathG(m_sName, "PageType "+PageTypeToString(m_PageType)) );
m_textCourseTitle.LoadFromFont( THEME->GetPathF(m_sName,"course title") ); m_sprPageType->SetName( "PageType" );
m_textCourseTitle.SetShadowLength( 0 ); SET_XY_AND_ON_COMMAND( m_sprPageType );
this->AddChild( &m_textCourseTitle ); this->AddChild( m_sprPageType );
}
m_sprBannerFrame.SetName( "BannerFrame" );
this->AddChild( &m_sprBannerFrame );
if( m_PageType == PAGE_TYPE_CATEGORY )
{
m_textCategory.SetName( "Category" );
m_textCategory.LoadFromFont( THEME->GetPathF(m_sName,"category") );
m_textCategory.SetShadowLength( 0 );
this->AddChild( &m_textCategory );
}
m_textStepsType.SetName( "StepsType" );
m_textStepsType.LoadFromFont( THEME->GetPathF(m_sName,"steps type") );
m_textStepsType.SetShadowLength( 0 );
this->AddChild( &m_textStepsType );
m_sprPageType.Load( THEME->GetPathG(m_sName, "PageType "+PageTypeToString(m_PageType)) );
m_sprPageType->SetName( "PageType" );
this->AddChild( m_sprPageType );
switch( m_PageType )
{
case PAGE_TYPE_CATEGORY:
case PAGE_TYPE_TRAIL:
for( int l=0; l<NUM_RANKING_LINES; l++ )
{
m_sprBullets[l].SetName( ssprintf("Bullet%d",l+1) );
m_sprBullets[l].Load( THEME->GetPathG( m_sName, ssprintf("bullets 1x%d",NUM_RANKING_LINES) ) );
m_sprBullets[l].StopAnimating();
this->AddChild( &m_sprBullets[l] );
m_textNames[l].SetName( ssprintf("Name%d",l+1) );
m_textNames[l].LoadFromFont( THEME->GetPathF(m_sName,"name") );
this->AddChild( &m_textNames[l] );
m_textScores[l].SetName( ssprintf("Score%d",l+1) );
m_textScores[l].LoadFromFont( THEME->GetPathF(m_sName,"score") );
this->AddChild( &m_textScores[l] );
m_textPoints[l].SetName( ssprintf("Points%d",l+1) );
m_textPoints[l].LoadFromFont( THEME->GetPathF(m_sName,"points") );
m_textPoints[l].SetHidden( true );
this->AddChild( &m_textPoints[l] );
m_textTime[l].SetName( ssprintf("Time%d",l+1) );
m_textTime[l].LoadFromFont( THEME->GetPathF(m_sName,"time") );
m_textTime[l].SetHidden( true );
this->AddChild( &m_textTime[l] );
}
}
}
//
// fill m_vPagesToShow
//
if( m_PageType == PAGE_TYPE_CATEGORY ) if( m_PageType == PAGE_TYPE_CATEGORY )
{ {
m_textCategory.SetName( "Category" );
m_textCategory.LoadFromFont( THEME->GetPathF(m_sName,"category") );
m_textCategory.SetShadowLength( 0 );
SET_XY_AND_ON_COMMAND( m_textCategory );
this->AddChild( &m_textCategory );
for( unsigned i=0; i<STEPS_TYPES_TO_SHOW.GetValue().size(); i++ ) for( unsigned i=0; i<STEPS_TYPES_TO_SHOW.GetValue().size(); i++ )
{ {
for( int c=0; c<NUM_RANKING_CATEGORIES; c++ ) for( int c=0; c<NUM_RANKING_CATEGORIES; c++ )
@@ -225,6 +174,54 @@ void ScreenRanking::Init()
} }
} }
if( m_PageType == PAGE_TYPE_TRAIL )
{
m_Banner.SetName( "Banner" );
SET_XY_AND_ON_COMMAND( m_Banner );
this->AddChild( &m_Banner );
m_sprBannerFrame.SetName( "BannerFrame" );
SET_XY_AND_ON_COMMAND( m_sprBannerFrame );
this->AddChild( &m_sprBannerFrame );
m_textCourseTitle.SetName( "CourseTitle" );
m_textCourseTitle.LoadFromFont( THEME->GetPathF(m_sName,"course title") );
m_textCourseTitle.SetShadowLength( 0 );
SET_XY_AND_ON_COMMAND( m_textCourseTitle );
this->AddChild( &m_textCourseTitle );
}
switch( m_PageType )
{
case PAGE_TYPE_CATEGORY:
case PAGE_TYPE_TRAIL:
for( int l=0; l<NUM_RANKING_LINES; l++ )
{
m_sprBullets[l].SetName( ssprintf("Bullet%d",l+1) );
m_sprBullets[l].Load( THEME->GetPathG( m_sName, ssprintf("bullets 1x%d",NUM_RANKING_LINES) ) );
m_sprBullets[l].StopAnimating();
this->AddChild( &m_sprBullets[l] );
m_textNames[l].SetName( ssprintf("Name%d",l+1) );
m_textNames[l].LoadFromFont( THEME->GetPathF(m_sName,"name") );
this->AddChild( &m_textNames[l] );
m_textScores[l].SetName( ssprintf("Score%d",l+1) );
m_textScores[l].LoadFromFont( THEME->GetPathF(m_sName,"score") );
this->AddChild( &m_textScores[l] );
m_textPoints[l].SetName( ssprintf("Points%d",l+1) );
m_textPoints[l].LoadFromFont( THEME->GetPathF(m_sName,"points") );
m_textPoints[l].SetHidden( true );
this->AddChild( &m_textPoints[l] );
m_textTime[l].SetName( ssprintf("Time%d",l+1) );
m_textTime[l].LoadFromFont( THEME->GetPathF(m_sName,"time") );
m_textTime[l].SetHidden( true );
this->AddChild( &m_textTime[l] );
}
}
{ {
vector<CString> asCoursePaths; vector<CString> asCoursePaths;
split( COURSES_TO_SHOW, ",", asCoursePaths, true ); split( COURSES_TO_SHOW, ",", asCoursePaths, true );
@@ -264,27 +261,33 @@ void ScreenRanking::Init()
item.m_sprFrame.Load( THEME->GetPathG(m_sName,"song frame") ); item.m_sprFrame.Load( THEME->GetPathG(m_sName,"song frame") );
item.m_sprFrame->SetName( "Frame" ); item.m_sprFrame->SetName( "Frame" );
ON_COMMAND( item.m_sprFrame );
item.AddChild( item.m_sprFrame ); item.AddChild( item.m_sprFrame );
item.m_textTitle.SetName( "Title" ); item.m_textTitle.SetName( "Title" );
item.m_textTitle.LoadFromFont( THEME->GetPathF(m_sName,"song title") ); item.m_textTitle.LoadFromFont( THEME->GetPathF(m_sName,"song title") );
ON_COMMAND( item.m_textTitle );
item.AddChild( &item.m_textTitle ); item.AddChild( &item.m_textTitle );
for( int d=0; d<NUM_DIFFICULTIES; d++ ) for( int d=0; d<NUM_DIFFICULTIES; d++ )
{ {
item.m_textScore[d].SetName( "Score" ); item.m_textScore[d].SetName( "Score" );
item.m_textScore[d].LoadFromFont( THEME->GetPathF(m_sName,"steps score") ); item.m_textScore[d].LoadFromFont( THEME->GetPathF(m_sName,"steps score") );
ON_COMMAND( item.m_textScore[d] );
item.AddChild( &item.m_textScore[d] ); item.AddChild( &item.m_textScore[d] );
} }
} }
m_ListScoreRowItems.SetName( "ListScoreRowItems" ); m_ListScoreRowItems.SetName( "ListScoreRowItems" );
SET_XY_AND_ON_COMMAND( m_ListScoreRowItems );
this->AddChild( &m_ListScoreRowItems ); this->AddChild( &m_ListScoreRowItems );
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), d ) FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), d )
{ {
m_sprDifficulty[*d].Load( THEME->GetPathG(m_sName,"difficulty "+DifficultyToString(*d)) ); m_sprDifficulty[*d].Load( THEME->GetPathG(m_sName,"difficulty "+DifficultyToString(*d)) );
m_sprDifficulty[*d]->SetName( ssprintf("Difficulty%d",(*d)+1) ); m_sprDifficulty[*d]->SetName( ssprintf("Difficulty%d",(*d)+1) );
m_sprDifficulty[*d]->SetXY( DIFFICULTY_X(*d), DIFFICULTY_Y );
ON_COMMAND( m_sprDifficulty[*d] );
this->AddChild( m_sprDifficulty[*d] ); this->AddChild( m_sprDifficulty[*d] );
} }
@@ -322,28 +325,33 @@ void ScreenRanking::Init()
item.m_sprFrame.Load( THEME->GetPathG(m_sName,"course frame") ); item.m_sprFrame.Load( THEME->GetPathG(m_sName,"course frame") );
item.m_sprFrame->SetName( "Frame" ); item.m_sprFrame->SetName( "Frame" );
ON_COMMAND( item.m_sprFrame );
item.AddChild( item.m_sprFrame ); item.AddChild( item.m_sprFrame );
item.m_textTitle.SetName( "Title" ); item.m_textTitle.SetName( "Title" );
item.m_textTitle.LoadFromFont( THEME->GetPathF(m_sName,"course list title") ); item.m_textTitle.LoadFromFont( THEME->GetPathF(m_sName,"course list title") );
ON_COMMAND( item.m_textTitle );
item.AddChild( &item.m_textTitle ); item.AddChild( &item.m_textTitle );
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd ) FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd )
{ {
item.m_textScore[*cd].SetName( "Score" ); item.m_textScore[*cd].SetName( "Score" );
item.m_textScore[*cd].LoadFromFont( THEME->GetPathF(m_sName,"course list score") ); item.m_textScore[*cd].LoadFromFont( THEME->GetPathF(m_sName,"course list score") );
ON_COMMAND( item.m_textScore[*cd] );
item.AddChild( &item.m_textScore[*cd] ); item.AddChild( &item.m_textScore[*cd] );
} }
} }
m_ListScoreRowItems.SetName( "ListScoreRowItems" ); m_ListScoreRowItems.SetName( "ListScoreRowItems" );
SET_XY_AND_ON_COMMAND( m_ListScoreRowItems );
this->AddChild( &m_ListScoreRowItems ); this->AddChild( &m_ListScoreRowItems );
m_ListScoreRowItems.SetXY( SCREEN_CENTER_X, SCREEN_CENTER_Y );
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd ) FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd )
{ {
m_sprCourseDifficulty[*cd].Load( THEME->GetPathG(m_sName,"CourseDifficulty "+CourseDifficultyToString(*cd)) ); m_sprCourseDifficulty[*cd].Load( THEME->GetPathG(m_sName,"CourseDifficulty "+CourseDifficultyToString(*cd)) );
m_sprCourseDifficulty[*cd]->SetName( "CourseDifficulty"+CourseDifficultyToString(*cd) ); m_sprCourseDifficulty[*cd]->SetName( "CourseDifficulty"+CourseDifficultyToString(*cd) );
m_sprCourseDifficulty[*cd]->SetXY( COURSE_DIFFICULTY_X(*cd), COURSE_DIFFICULTY_Y );
ON_COMMAND( m_sprCourseDifficulty[*cd] );
this->AddChild( m_sprCourseDifficulty[*cd] ); this->AddChild( m_sprCourseDifficulty[*cd] );
} }
@@ -424,7 +432,7 @@ void ScreenRanking::HandleScreenMessage( const ScreenMessage SM )
} }
else if( SM == SM_HidePage ) else if( SM == SM_HidePage )
{ {
TweenPageOffScreen(); this->PlayCommand( "SwitchPage" );
this->PostScreenMessage( SM_ShowNextPage, PAGE_FADE_SECONDS ); this->PostScreenMessage( SM_ShowNextPage, PAGE_FADE_SECONDS );
} }
@@ -437,9 +445,6 @@ float ScreenRanking::SetPage( PageToShow pts )
// So, zero the next update so we don't skip. // So, zero the next update so we don't skip.
SCREENMAN->ZeroNextUpdate(); SCREENMAN->ZeroNextUpdate();
SET_XY_AND_ON_COMMAND( m_textStepsType );
SET_XY_AND_ON_COMMAND( m_sprPageType );
switch( m_PageType ) switch( m_PageType )
{ {
case PAGE_TYPE_CATEGORY: case PAGE_TYPE_CATEGORY:
@@ -499,17 +504,14 @@ float ScreenRanking::SetPage( PageToShow pts )
{ {
ScoreRowItem &item = m_vScoreRowItem[s]; ScoreRowItem &item = m_vScoreRowItem[s];
item.m_sprFrame->SetZTestMode( ZTEST_WRITE_ON_PASS ); item.m_sprFrame->SetZTestMode( ZTEST_WRITE_ON_PASS );
ON_COMMAND( item.m_sprFrame );
item.m_textTitle.SetZTestMode( ZTEST_WRITE_ON_PASS ); item.m_textTitle.SetZTestMode( ZTEST_WRITE_ON_PASS );
ON_COMMAND( item.m_textTitle );
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd ) FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd )
{ {
item.m_textScore[*cd].SetXY( SCORE_OFFSET_X(*cd), SCORE_OFFSET_Y ); item.m_textScore[*cd].SetXY( SCORE_OFFSET_X(*cd), SCORE_OFFSET_Y );
item.m_textScore[*cd].SetZTestMode( ZTEST_WRITE_ON_PASS ); item.m_textScore[*cd].SetZTestMode( ZTEST_WRITE_ON_PASS );
item.m_textScore[*cd].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) ); item.m_textScore[*cd].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
ON_COMMAND( item.m_textScore[*cd] );
} }
} }
@@ -518,8 +520,6 @@ float ScreenRanking::SetPage( PageToShow pts )
case PAGE_TYPE_NONSTOP_COURSES: case PAGE_TYPE_NONSTOP_COURSES:
case PAGE_TYPE_ONI_COURSES: case PAGE_TYPE_ONI_COURSES:
case PAGE_TYPE_SURVIVAL_COURSES: case PAGE_TYPE_SURVIVAL_COURSES:
SET_XY_AND_ON_COMMAND( m_ListScoreRowItems );
m_ListScoreRowItems.RemoveAllChildren(); m_ListScoreRowItems.RemoveAllChildren();
for( unsigned i=0; i<m_vScoreRowItem.size(); i++ ) for( unsigned i=0; i<m_vScoreRowItem.size(); i++ )
m_ListScoreRowItems.AddChild( &m_vScoreRowItem[i] ); m_ListScoreRowItems.AddChild( &m_vScoreRowItem[i] );
@@ -538,7 +538,6 @@ float ScreenRanking::SetPage( PageToShow pts )
{ {
case PAGE_TYPE_CATEGORY: case PAGE_TYPE_CATEGORY:
{ {
SET_XY_AND_ON_COMMAND( m_textCategory );
m_textCategory.SetText( ssprintf("Type %c", 'A'+pts.category) ); m_textCategory.SetText( ssprintf("Type %c", 'A'+pts.category) );
m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) ); m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) );
@@ -579,11 +578,8 @@ float ScreenRanking::SetPage( PageToShow pts )
case PAGE_TYPE_TRAIL: case PAGE_TYPE_TRAIL:
{ {
m_textCourseTitle.SetText( pts.pCourse->GetDisplayFullTitle() ); m_textCourseTitle.SetText( pts.pCourse->GetDisplayFullTitle() );
SET_XY_AND_ON_COMMAND( m_textCourseTitle );
m_Banner.LoadFromCourse( pts.pCourse ); m_Banner.LoadFromCourse( pts.pCourse );
SET_XY_AND_ON_COMMAND( m_Banner );
SET_XY_AND_ON_COMMAND( m_sprBannerFrame );
m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) ); m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) );
const HighScoreList &hsl = PROFILEMAN->GetMachineProfile()->GetCourseHighScoreList( pts.pCourse, pts.pTrail ); const HighScoreList &hsl = PROFILEMAN->GetMachineProfile()->GetCourseHighScoreList( pts.pCourse, pts.pTrail );
@@ -633,8 +629,6 @@ float ScreenRanking::SetPage( PageToShow pts )
return SECONDS_PER_PAGE; return SECONDS_PER_PAGE;
case PAGE_TYPE_ALL_STEPS: case PAGE_TYPE_ALL_STEPS:
{ {
SET_XY_AND_ON_COMMAND( m_ListScoreRowItems );
m_ListScoreRowItems.RemoveAllChildren(); m_ListScoreRowItems.RemoveAllChildren();
for( unsigned i=0; i<m_vScoreRowItem.size(); i++ ) for( unsigned i=0; i<m_vScoreRowItem.size(); i++ )
m_ListScoreRowItems.AddChild( &m_vScoreRowItem[i] ); m_ListScoreRowItems.AddChild( &m_vScoreRowItem[i] );
@@ -647,12 +641,6 @@ float ScreenRanking::SetPage( PageToShow pts )
m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) ); m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) );
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), iter )
{
m_sprDifficulty[*iter]->SetXY( DIFFICULTY_X(*iter), DIFFICULTY_Y );
ON_COMMAND( m_sprDifficulty[*iter] );
}
for( unsigned s=0; s<m_vScoreRowItem.size(); s++ ) for( unsigned s=0; s<m_vScoreRowItem.size(); s++ )
{ {
ScoreRowItem &item = m_vScoreRowItem[s]; ScoreRowItem &item = m_vScoreRowItem[s];
@@ -700,12 +688,6 @@ float ScreenRanking::SetPage( PageToShow pts )
{ {
m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) ); m_textStepsType.SetText( GameManager::StepsTypeToThemedString(pts.st) );
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd )
{
m_sprCourseDifficulty[*cd]->SetXY( COURSE_DIFFICULTY_X(*cd), COURSE_DIFFICULTY_Y );
ON_COMMAND( m_sprCourseDifficulty[*cd] );
}
for( unsigned c=0; c<m_vScoreRowItem.size(); c++ ) for( unsigned c=0; c<m_vScoreRowItem.size(); c++ )
{ {
ScoreRowItem &item = m_vScoreRowItem[c]; ScoreRowItem &item = m_vScoreRowItem[c];
@@ -752,38 +734,6 @@ float ScreenRanking::SetPage( PageToShow pts )
} }
} }
void ScreenRanking::TweenPageOffScreen()
{
OFF_COMMAND( m_Banner );
OFF_COMMAND( m_sprBannerFrame );
OFF_COMMAND( m_textCourseTitle );
OFF_COMMAND( m_textCategory );
OFF_COMMAND( m_textStepsType );
OFF_COMMAND( m_sprPageType );
for( int l=0; l<NUM_RANKING_LINES; l++ )
{
OFF_COMMAND( m_sprBullets[l] );
OFF_COMMAND( m_textNames[l] );
OFF_COMMAND( m_textScores[l] );
OFF_COMMAND( m_textPoints[l] );
OFF_COMMAND( m_textTime[l] );
}
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), iter )
{
if( m_sprDifficulty[*iter].IsLoaded() )
OFF_COMMAND( m_sprDifficulty[*iter] );
}
FOREACH_CONST( Difficulty, DIFFICULTIES_TO_SHOW.GetValue(), cd )
{
if( m_sprCourseDifficulty[*cd].IsLoaded() )
OFF_COMMAND( m_sprCourseDifficulty[*cd] );
}
if( !m_ListScoreRowItems.GetHidden() )
OFF_COMMAND( m_ListScoreRowItems );
}
/* /*
* (c) 2001-2004 Chris Danford * (c) 2001-2004 Chris Danford
* All rights reserved. * All rights reserved.
-2
View File
@@ -67,8 +67,6 @@ protected:
}; };
float SetPage( PageToShow pts ); float SetPage( PageToShow pts );
void TweenPageOnScreen();
void TweenPageOffScreen();
PageType m_PageType; PageType m_PageType;