load as much as possible in ScreenOptions::Init
This commit is contained in:
@@ -116,6 +116,67 @@ void ScreenOptions::Init()
|
|||||||
// add everything to m_framePage so we can animate everything at once
|
// add everything to m_framePage so we can animate everything at once
|
||||||
m_framePage.SetName( "Frame" );
|
m_framePage.SetName( "Frame" );
|
||||||
this->AddChild( &m_framePage );
|
this->AddChild( &m_framePage );
|
||||||
|
|
||||||
|
m_sprPage.Load( THEME->GetPathG(m_sName,"page") );
|
||||||
|
m_sprPage->SetName( "Page" );
|
||||||
|
SET_XY( m_sprPage );
|
||||||
|
m_framePage.AddChild( m_sprPage );
|
||||||
|
|
||||||
|
// init line line highlights
|
||||||
|
FOREACH_HumanPlayer( p )
|
||||||
|
{
|
||||||
|
m_sprLineHighlight[p].Load( THEME->GetPathG(m_sName,"line highlight") );
|
||||||
|
m_sprLineHighlight[p].SetName( "LineHighlight" );
|
||||||
|
m_sprLineHighlight[p].SetX( LINE_HIGHLIGHT_X );
|
||||||
|
m_framePage.AddChild( &m_sprLineHighlight[p] );
|
||||||
|
}
|
||||||
|
|
||||||
|
// init cursors
|
||||||
|
FOREACH_HumanPlayer( p )
|
||||||
|
{
|
||||||
|
m_Cursor[p].Load( m_sName, OptionsCursor::cursor );
|
||||||
|
m_Cursor[p].Set( p );
|
||||||
|
m_framePage.AddChild( &m_Cursor[p] );
|
||||||
|
}
|
||||||
|
|
||||||
|
// on top:
|
||||||
|
FOREACH_PlayerNumber( p )
|
||||||
|
{
|
||||||
|
m_textExplanation[p].LoadFromFont( THEME->GetPathF(m_sName,"explanation") );
|
||||||
|
m_textExplanation[p].SetZoom( EXPLANATION_ZOOM );
|
||||||
|
m_textExplanation[p].SetShadowLength( 0 );
|
||||||
|
m_textExplanation[p].SetDrawOrder( 2 );
|
||||||
|
m_framePage.AddChild( &m_textExplanation[p] );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( SHOW_SCROLL_BAR )
|
||||||
|
{
|
||||||
|
m_ScrollBar.SetName( "ScrollBar" );
|
||||||
|
m_ScrollBar.SetBarHeight( SCROLL_BAR_HEIGHT );
|
||||||
|
m_ScrollBar.SetBarTime( SCROLL_BAR_TIME );
|
||||||
|
FOREACH_PlayerNumber( p )
|
||||||
|
m_ScrollBar.EnablePlayer( p, GAMESTATE->IsHumanPlayer(p) );
|
||||||
|
m_ScrollBar.Load( "DualScrollBar" );
|
||||||
|
SET_XY( m_ScrollBar );
|
||||||
|
m_ScrollBar.SetDrawOrder( 2 );
|
||||||
|
m_framePage.AddChild( &m_ScrollBar );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_sprMore.Load( THEME->GetPathG( m_sName,"more") );
|
||||||
|
m_sprMore->SetName( "More" );
|
||||||
|
SET_XY( m_sprMore );
|
||||||
|
m_sprMore->SetDrawOrder( 2 );
|
||||||
|
m_framePage.AddChild( m_sprMore );
|
||||||
|
|
||||||
|
FOREACH_PlayerNumber( p )
|
||||||
|
{
|
||||||
|
m_sprDisqualify[p].Load( THEME->GetPathG(m_sName,"disqualify") );
|
||||||
|
m_sprDisqualify[p]->SetName( ssprintf("DisqualifyP%i",p+1) );
|
||||||
|
SET_XY( m_sprDisqualify[p] );
|
||||||
|
m_sprDisqualify[p]->SetHidden( true ); // unhide later if handicapping options are discovered
|
||||||
|
m_sprDisqualify[p]->SetDrawOrder( 2 );
|
||||||
|
m_framePage.AddChild( m_sprDisqualify[p] );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenOptions::LoadOptionIcon( PlayerNumber pn, int iRow, CString sText )
|
void ScreenOptions::LoadOptionIcon( PlayerNumber pn, int iRow, CString sText )
|
||||||
@@ -153,31 +214,10 @@ void ScreenOptions::InitMenu( InputMode im, const vector<OptionRowDefinition> &v
|
|||||||
row.AfterImportOptions();
|
row.AfterImportOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_sprPage.Load( THEME->GetPathG(m_sName,"page") );
|
|
||||||
m_sprPage->SetName( "Page" );
|
|
||||||
SET_XY( m_sprPage );
|
|
||||||
m_framePage.AddChild( m_sprPage );
|
|
||||||
|
|
||||||
// init line line highlights
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
{
|
|
||||||
m_sprLineHighlight[p].Load( THEME->GetPathG(m_sName,"line highlight") );
|
|
||||||
m_sprLineHighlight[p].SetName( "LineHighlight" );
|
|
||||||
m_sprLineHighlight[p].SetX( LINE_HIGHLIGHT_X );
|
|
||||||
m_framePage.AddChild( &m_sprLineHighlight[p] );
|
|
||||||
}
|
|
||||||
|
|
||||||
// init cursors
|
|
||||||
FOREACH_HumanPlayer( p )
|
|
||||||
{
|
|
||||||
m_Cursor[p].Load( m_sName, OptionsCursor::cursor );
|
|
||||||
m_Cursor[p].Set( p );
|
|
||||||
m_framePage.AddChild( &m_Cursor[p] );
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned r=0; r<m_pRows.size(); r++ ) // foreach row
|
for( unsigned r=0; r<m_pRows.size(); r++ ) // foreach row
|
||||||
{
|
{
|
||||||
OptionRow &row = *m_pRows[r];
|
OptionRow &row = *m_pRows[r];
|
||||||
|
row.SetDrawOrder( 1 );
|
||||||
m_framePage.AddChild( &row );
|
m_framePage.AddChild( &row );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,35 +228,10 @@ void ScreenOptions::InitMenu( InputMode im, const vector<OptionRowDefinition> &v
|
|||||||
OptionRow &row = *m_pRows.back();
|
OptionRow &row = *m_pRows.back();
|
||||||
row.LoadMetrics( m_sName );
|
row.LoadMetrics( m_sName );
|
||||||
row.LoadExit();
|
row.LoadExit();
|
||||||
|
row.SetDrawOrder( 1 );
|
||||||
m_framePage.AddChild( &row );
|
m_framePage.AddChild( &row );
|
||||||
}
|
}
|
||||||
|
|
||||||
// add explanation here so it appears on top
|
|
||||||
FOREACH_PlayerNumber( p )
|
|
||||||
{
|
|
||||||
m_textExplanation[p].LoadFromFont( THEME->GetPathF(m_sName,"explanation") );
|
|
||||||
m_textExplanation[p].SetZoom( EXPLANATION_ZOOM );
|
|
||||||
m_textExplanation[p].SetShadowLength( 0 );
|
|
||||||
m_framePage.AddChild( &m_textExplanation[p] );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( SHOW_SCROLL_BAR )
|
|
||||||
{
|
|
||||||
m_ScrollBar.SetName( "ScrollBar" );
|
|
||||||
m_ScrollBar.SetBarHeight( SCROLL_BAR_HEIGHT );
|
|
||||||
m_ScrollBar.SetBarTime( SCROLL_BAR_TIME );
|
|
||||||
FOREACH_PlayerNumber( p )
|
|
||||||
m_ScrollBar.EnablePlayer( p, GAMESTATE->IsHumanPlayer(p) );
|
|
||||||
m_ScrollBar.Load( "DualScrollBar" );
|
|
||||||
SET_XY( m_ScrollBar );
|
|
||||||
m_framePage.AddChild( &m_ScrollBar );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_sprMore.Load( THEME->GetPathG( m_sName,"more") );
|
|
||||||
m_sprMore->SetName( "More" );
|
|
||||||
SET_XY( m_sprMore );
|
|
||||||
m_framePage.AddChild( m_sprMore );
|
|
||||||
|
|
||||||
switch( m_InputMode )
|
switch( m_InputMode )
|
||||||
{
|
{
|
||||||
case INPUTMODE_INDIVIDUAL:
|
case INPUTMODE_INDIVIDUAL:
|
||||||
@@ -232,14 +247,7 @@ void ScreenOptions::InitMenu( InputMode im, const vector<OptionRowDefinition> &v
|
|||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
FOREACH_PlayerNumber( p )
|
m_framePage.SortByDrawOrder();
|
||||||
{
|
|
||||||
m_sprDisqualify[p].Load( THEME->GetPathG(m_sName,"disqualify") );
|
|
||||||
m_sprDisqualify[p]->SetName( ssprintf("DisqualifyP%i",p+1) );
|
|
||||||
SET_XY( m_sprDisqualify[p] );
|
|
||||||
m_sprDisqualify[p]->SetHidden( true ); // unhide later if handicapping options are discovered
|
|
||||||
m_framePage.AddChild( m_sprDisqualify[p] );
|
|
||||||
}
|
|
||||||
|
|
||||||
// poke once at all the explanation metrics so that we catch missing ones early
|
// poke once at all the explanation metrics so that we catch missing ones early
|
||||||
for( int r=0; r<(int)m_pRows.size(); r++ ) // foreach row
|
for( int r=0; r<(int)m_pRows.size(); r++ ) // foreach row
|
||||||
|
|||||||
Reference in New Issue
Block a user