cache metrics

This commit is contained in:
Chris Danford
2005-02-09 08:10:50 +00:00
parent 6a45379ade
commit 48846d48a4
2 changed files with 90 additions and 79 deletions
+58 -53
View File
@@ -16,12 +16,6 @@
#include "ScreenDimensions.h" #include "ScreenDimensions.h"
#include "Command.h" #include "Command.h"
#define ITEMS_LONG_ROW_SHARED_X THEME->GetMetricF(m_sName,"ItemsLongRowSharedX")
#define ITEMS_LONG_ROW_X( p ) THEME->GetMetricF(m_sName,ssprintf("ItemsLongRowP%dX",p+1))
#define ICONS_X( p ) THEME->GetMetricF(m_sName,ssprintf("IconsP%dX",p+1))
#define EXPLANATION_X(p) THEME->GetMetricF(m_sName,ssprintf("ExplanationP%dX",p+1))
#define EXPLANATION_Y(p) THEME->GetMetricF(m_sName,ssprintf("ExplanationP%dY",p+1))
#define EXPLANATION_ON_COMMAND(p) THEME->GetMetricA(m_sName,ssprintf("ExplanationP%dOnCommand",p+1))
/* /*
* These navigation types are provided: * These navigation types are provided:
@@ -69,47 +63,58 @@
* in player options menus, but it should in the options menu. * in player options menus, but it should in the options menu.
*/ */
CString ITEMS_LONG_ROW_X_NAME( size_t p ) { return ssprintf("ItemsLongRowP%dX",p+1); }
CString ICONS_X_NAME( size_t p ) { return ssprintf("IconsP%dX",p+1); }
CString EXPLANATION_X_NAME( size_t p ) { return ssprintf("ExplanationP%dX",p+1); }
CString EXPLANATION_Y_NAME( size_t p ) { return ssprintf("ExplanationP%dX",p+1); }
CString EXPLANATION_ON_COMMAND_NAME( size_t p ) { return ssprintf("ExplanationP%dOnCommand",p+1); }
//REGISTER_SCREEN_CLASS( ScreenOptions ); // can't be instantiated //REGISTER_SCREEN_CLASS( ScreenOptions ); // can't be instantiated
ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName) ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName),
ARROWS_X (m_sName,"ArrowsX"),
LABELS_X (m_sName,"LabelsX"),
LABELS_ZOOM (m_sName,"LabelsZoom"),
LABELS_H_ALIGN (m_sName,"LabelsHAlign"),
ITEMS_ZOOM (m_sName,"ItemsZoom"),
ITEMS_START_X (m_sName,"ItemsStartX"),
ITEMS_END_X (m_sName,"ItemsEndX"),
ITEMS_GAP_X (m_sName,"ItemsGapX"),
ITEMS_LONG_ROW_X (m_sName,ITEMS_LONG_ROW_X_NAME,NUM_PLAYERS),
ITEMS_LONG_ROW_SHARED_X (m_sName,"ItemsLongRowSharedX"),
ITEMS_START_Y (m_sName,"ItemsStartY"),
ITEMS_SPACING_Y (m_sName,"ItemsSpacingY"),
ICONS_X (m_sName,ICONS_X_NAME,NUM_PLAYERS),
EXPLANATION_X (m_sName,EXPLANATION_X_NAME,NUM_PLAYERS),
EXPLANATION_Y (m_sName,EXPLANATION_Y_NAME,NUM_PLAYERS),
EXPLANATION_ON_COMMAND (m_sName,EXPLANATION_ON_COMMAND_NAME,NUM_PLAYERS),
EXPLANATION_TOGETHER_X (m_sName,"ExplanationTogetherX"),
EXPLANATION_TOGETHER_Y (m_sName,"ExplanationTogetherY"),
EXPLANATION_TOGETHER_ON_COMMAND (m_sName,"ExplanationTogetherOnCommand"),
SHOW_SCROLL_BAR (m_sName,"ShowScrollBar"),
SCROLL_BAR_HEIGHT (m_sName,"ScrollBarHeight"),
SCROLL_BAR_TIME (m_sName,"ScrollBarTime"),
EXPLANATION_ZOOM (m_sName,"ExplanationZoom"),
COLOR_SELECTED (m_sName,"ColorSelected"),
COLOR_NOT_SELECTED (m_sName,"ColorNotSelected"),
NUM_SHOWN_ITEMS (m_sName,"NumShownItems"),
SHOW_BPM_IN_SPEED_TITLE (m_sName,"ShowBpmInSpeedTitle"),
FRAME_ON_COMMAND (m_sName,"FrameOnCommand"),
FRAME_OFF_COMMAND (m_sName,"FrameOffCommand"),
SEPARATE_EXIT_ROW (m_sName,"SeparateExitRow"),
SEPARATE_EXIT_ROW_Y (m_sName,"SeparateExitRowY"),
CAPITALIZE_ALL_OPTION_NAMES (m_sName,"CapitalizeAllOptionNames")
{ {
LOG->Trace( "ScreenOptions::ScreenOptions()" ); LOG->Trace( "ScreenOptions::ScreenOptions()" );
ARROWS_X.Load (m_sName,"ArrowsX");
LABELS_X.Load (m_sName,"LabelsX");
LABELS_ZOOM.Load (m_sName,"LabelsZoom");
LABELS_H_ALIGN.Load (m_sName,"LabelsHAlign");
ITEMS_ZOOM.Load (m_sName,"ItemsZoom");
ITEMS_START_X.Load (m_sName,"ItemsStartX");
ITEMS_END_X.Load (m_sName,"ItemsEndX");
ITEMS_GAP_X.Load (m_sName,"ItemsGapX");
ITEMS_START_Y.Load (m_sName,"ItemsStartY");
ITEMS_SPACING_Y.Load (m_sName,"ItemsSpacingY");
EXPLANATION_TOGETHER_X.Load (m_sName,"ExplanationTogetherX");
EXPLANATION_TOGETHER_Y.Load (m_sName,"ExplanationTogetherY");
EXPLANATION_TOGETHER_ON_COMMAND.Load(m_sName,"ExplanationTogetherOnCommand");
SHOW_SCROLL_BAR.Load (m_sName,"ShowScrollBar");
SCROLL_BAR_HEIGHT.Load (m_sName,"ScrollBarHeight");
SCROLL_BAR_TIME.Load (m_sName,"ScrollBarTime");
EXPLANATION_ZOOM.Load (m_sName,"ExplanationZoom");
COLOR_SELECTED.Load (m_sName,"ColorSelected");
COLOR_NOT_SELECTED.Load (m_sName,"ColorNotSelected");
NUM_SHOWN_ITEMS.Load (m_sName,"NumShownItems");
SHOW_BPM_IN_SPEED_TITLE.Load (m_sName,"ShowBpmInSpeedTitle");
FRAME_ON_COMMAND.Load (m_sName,"FrameOnCommand");
FRAME_OFF_COMMAND.Load (m_sName,"FrameOffCommand");
SEPARATE_EXIT_ROW.Load (m_sName,"SeparateExitRow");
SEPARATE_EXIT_ROW_Y.Load (m_sName,"SeparateExitRowY");
CAPITALIZE_ALL_OPTION_NAMES.Load (m_sName,"CapitalizeAllOptionNames");
m_OptionsNavigation = PREFSMAN->m_bArcadeOptionsNavigation? NAV_THREE_KEY:NAV_FIVE_KEY; m_OptionsNavigation = PREFSMAN->m_bArcadeOptionsNavigation? NAV_THREE_KEY:NAV_FIVE_KEY;
m_SoundChangeCol.Load( THEME->GetPathS("ScreenOptions","change"), true ); m_SoundChangeCol.Load( THEME->GetPathS(m_sName,"change"), true );
m_SoundNextRow.Load( THEME->GetPathS("ScreenOptions","next"), true ); m_SoundNextRow.Load( THEME->GetPathS(m_sName,"next"), true );
m_SoundPrevRow.Load( THEME->GetPathS("ScreenOptions","prev"), true ); m_SoundPrevRow.Load( THEME->GetPathS(m_sName,"prev"), true );
m_SoundToggleOn.Load( THEME->GetPathS("ScreenOptions","toggle on") ); m_SoundToggleOn.Load( THEME->GetPathS(m_sName,"toggle on") );
m_SoundToggleOff.Load( THEME->GetPathS("ScreenOptions","toggle off") ); m_SoundToggleOff.Load( THEME->GetPathS(m_sName,"toggle off") );
// add everything to m_framePage so we can animate everything at once // add everything to m_framePage so we can animate everything at once
this->AddChild( &m_framePage ); this->AddChild( &m_framePage );
@@ -222,7 +227,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
// init line highlights // init line highlights
FOREACH_HumanPlayer( p ) FOREACH_HumanPlayer( p )
{ {
m_sprLineHighlight[p].Load( THEME->GetPathG("ScreenOptions","line highlight") ); m_sprLineHighlight[p].Load( THEME->GetPathG(m_sName,"line highlight") );
m_sprLineHighlight[p].SetName( "LineHighlight" ); m_sprLineHighlight[p].SetName( "LineHighlight" );
m_sprLineHighlight[p].SetX( SCREEN_CENTER_X ); m_sprLineHighlight[p].SetX( SCREEN_CENTER_X );
m_framePage.AddChild( &m_sprLineHighlight[p] ); m_framePage.AddChild( &m_sprLineHighlight[p] );
@@ -265,7 +270,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
// init text // init text
BitmapText *bt = new BitmapText; BitmapText *bt = new BitmapText;
textItems.push_back( bt ); textItems.push_back( bt );
bt->LoadFromFont( THEME->GetPathF("ScreenOptions","item") ); bt->LoadFromFont( THEME->GetPathF(m_sName,"item") );
CString sText = optline.choices[c]; CString sText = optline.choices[c];
if( CAPITALIZE_ALL_OPTION_NAMES ) if( CAPITALIZE_ALL_OPTION_NAMES )
sText.MakeUpper(); sText.MakeUpper();
@@ -317,7 +322,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
const int iChoiceInRowWithFocus = row.m_iChoiceInRowWithFocus[p]; const int iChoiceInRowWithFocus = row.m_iChoiceInRowWithFocus[p];
bt->LoadFromFont( THEME->GetPathF("ScreenOptions","item") ); bt->LoadFromFont( THEME->GetPathF(m_sName,"item") );
bt->SetText( optline.choices[iChoiceInRowWithFocus] ); bt->SetText( optline.choices[iChoiceInRowWithFocus] );
bt->SetZoom( ITEMS_ZOOM ); bt->SetZoom( ITEMS_ZOOM );
bt->SetShadowLength( 0 ); bt->SetShadowLength( 0 );
@@ -329,7 +334,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
} }
else else
{ {
bt->SetX( ITEMS_LONG_ROW_X(p) ); bt->SetX( ITEMS_LONG_ROW_X.GetValue(p) );
} }
} }
@@ -365,7 +370,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
BitmapText *bt = new BitmapText; BitmapText *bt = new BitmapText;
row.m_textItems.push_back( bt ); row.m_textItems.push_back( bt );
bt->LoadFromFont( THEME->GetPathF("ScreenOptions","item") ); bt->LoadFromFont( THEME->GetPathF(m_sName,"item") );
bt->SetText( THEME->GetMetric("OptionNames","Exit") ); bt->SetText( THEME->GetMetric("OptionNames","Exit") );
bt->SetZoom( ITEMS_ZOOM ); bt->SetZoom( ITEMS_ZOOM );
bt->SetShadowLength( 0 ); bt->SetShadowLength( 0 );
@@ -378,7 +383,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
// add explanation here so it appears on top // add explanation here so it appears on top
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
{ {
m_textExplanation[p].LoadFromFont( THEME->GetPathF("ScreenOptions","explanation") ); m_textExplanation[p].LoadFromFont( THEME->GetPathF(m_sName,"explanation") );
m_textExplanation[p].SetZoom( EXPLANATION_ZOOM ); m_textExplanation[p].SetZoom( EXPLANATION_ZOOM );
m_textExplanation[p].SetShadowLength( 0 ); m_textExplanation[p].SetShadowLength( 0 );
m_framePage.AddChild( &m_textExplanation[p] ); m_framePage.AddChild( &m_textExplanation[p] );
@@ -390,7 +395,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
{ {
FOREACH_HumanPlayer( p ) FOREACH_HumanPlayer( p )
{ {
m_textPlayerName[p].LoadFromFont( THEME->GetPathF("ScreenOptions","player") ); m_textPlayerName[p].LoadFromFont( THEME->GetPathF(m_sName,"player") );
m_textPlayerName[p].SetName( ssprintf("PlayerNameP%i",p+1) ); m_textPlayerName[p].SetName( ssprintf("PlayerNameP%i",p+1) );
m_textPlayerName[p].SetText( GAMESTATE->GetPlayerDisplayName(p) ); m_textPlayerName[p].SetText( GAMESTATE->GetPlayerDisplayName(p) );
SET_XY_AND_ON_COMMAND( m_textPlayerName[p] ); SET_XY_AND_ON_COMMAND( m_textPlayerName[p] );
@@ -410,8 +415,8 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
m_framePage.AddChild( &m_ScrollBar ); m_framePage.AddChild( &m_ScrollBar );
} }
m_sprMore.Load( THEME->GetPathG( "ScreenOptions","more") ); m_sprMore.Load( THEME->GetPathG( m_sName,"more") );
m_sprMore->SetName( "ScreenOptions", "More" ); m_sprMore->SetName( m_sName, "More" );
SET_XY_AND_ON_COMMAND( m_sprMore ); SET_XY_AND_ON_COMMAND( m_sprMore );
COMMAND( m_sprMore, m_bMoreShown? "ShowMore":"HideMore" ); COMMAND( m_sprMore, m_bMoreShown? "ShowMore":"HideMore" );
m_framePage.AddChild( m_sprMore ); m_framePage.AddChild( m_sprMore );
@@ -421,7 +426,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
case INPUTMODE_INDIVIDUAL: case INPUTMODE_INDIVIDUAL:
{ {
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
m_textExplanation[p].SetXY( EXPLANATION_X(p), EXPLANATION_Y(p) ); m_textExplanation[p].SetXY( EXPLANATION_X.GetValue(p), EXPLANATION_Y.GetValue(p) );
} }
break; break;
case INPUTMODE_SHARE_CURSOR: case INPUTMODE_SHARE_CURSOR:
@@ -434,7 +439,7 @@ void ScreenOptions::InitMenu( InputMode im, OptionRowData OptionRows[], int iNum
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
{ {
m_sprDisqualify[p].Load( THEME->GetPathG(m_sName,"disqualify") ); m_sprDisqualify[p].Load( THEME->GetPathG(m_sName,"disqualify") );
m_sprDisqualify[p]->SetName( "ScreenOptions", ssprintf("DisqualifyP%i",p+1) ); m_sprDisqualify[p]->SetName( m_sName, ssprintf("DisqualifyP%i",p+1) );
SET_XY_AND_ON_COMMAND( m_sprDisqualify[p] ); SET_XY_AND_ON_COMMAND( m_sprDisqualify[p] );
m_sprDisqualify[p]->SetHidden( true ); // unhide later if handicapping options are discovered m_sprDisqualify[p]->SetHidden( true ); // unhide later if handicapping options are discovered
m_framePage.AddChild( m_sprDisqualify[p] ); m_framePage.AddChild( m_sprDisqualify[p] );
@@ -687,7 +692,7 @@ void ScreenOptions::PositionIcons()
int iWidth, iX, iY; // We only use iY int iWidth, iX, iY; // We only use iY
GetWidthXY( p, i, iChoiceWithFocus, iWidth, iX, iY ); GetWidthXY( p, i, iChoiceWithFocus, iWidth, iX, iY );
icon.SetX( ICONS_X(p) ); icon.SetX( ICONS_X.GetValue(p) );
if( icon.GetDestY() != row.m_fY ) if( icon.GetDestY() != row.m_fY )
{ {
@@ -1089,7 +1094,7 @@ void ScreenOptions::OnChange( PlayerNumber pn )
if( pText->GetText() != text ) if( pText->GetText() != text )
{ {
pText->FinishTweening(); pText->FinishTweening();
pText->RunCommands( EXPLANATION_ON_COMMAND(pn) ); pText->RunCommands( EXPLANATION_ON_COMMAND.GetValue(pn) );
pText->SetText( text ); pText->SetText( text );
} }
break; break;
+32 -26
View File
@@ -178,32 +178,38 @@ protected:
RageSound m_SoundToggleOff; RageSound m_SoundToggleOff;
// metrics // metrics
ThemeMetric<float> ARROWS_X; ThemeMetric<float> ARROWS_X;
ThemeMetric<float> LABELS_X; ThemeMetric<float> LABELS_X;
ThemeMetric<float> LABELS_ZOOM; ThemeMetric<float> LABELS_ZOOM;
ThemeMetric<int> LABELS_H_ALIGN; ThemeMetric<int> LABELS_H_ALIGN;
ThemeMetric<float> ITEMS_ZOOM; ThemeMetric<float> ITEMS_ZOOM;
ThemeMetric<float> ITEMS_START_X; ThemeMetric<float> ITEMS_START_X;
ThemeMetric<float> ITEMS_END_X; ThemeMetric<float> ITEMS_END_X;
ThemeMetric<float> ITEMS_GAP_X; ThemeMetric<float> ITEMS_GAP_X;
ThemeMetric<float> ITEMS_START_Y; ThemeMetric1D<float,NUM_PLAYERS> ITEMS_LONG_ROW_X;
ThemeMetric<float> ITEMS_SPACING_Y; ThemeMetric<float> ITEMS_LONG_ROW_SHARED_X;
ThemeMetric<float> EXPLANATION_TOGETHER_X; ThemeMetric<float> ITEMS_START_Y;
ThemeMetric<float> EXPLANATION_TOGETHER_Y; ThemeMetric<float> ITEMS_SPACING_Y;
ThemeMetric<apActorCommands> EXPLANATION_TOGETHER_ON_COMMAND; ThemeMetric1D<float,NUM_PLAYERS> ICONS_X;
ThemeMetric<bool> SHOW_SCROLL_BAR; ThemeMetric1D<float,NUM_PLAYERS> EXPLANATION_X;
ThemeMetric<float> SCROLL_BAR_HEIGHT; ThemeMetric1D<float,NUM_PLAYERS> EXPLANATION_Y;
ThemeMetric<float> SCROLL_BAR_TIME; ThemeMetric1D<apActorCommands,NUM_PLAYERS> EXPLANATION_ON_COMMAND;
ThemeMetric<float> EXPLANATION_ZOOM; ThemeMetric<float> EXPLANATION_TOGETHER_X;
ThemeMetric<RageColor> COLOR_SELECTED; ThemeMetric<float> EXPLANATION_TOGETHER_Y;
ThemeMetric<RageColor> COLOR_NOT_SELECTED; ThemeMetric<apActorCommands> EXPLANATION_TOGETHER_ON_COMMAND;
ThemeMetric<int> NUM_SHOWN_ITEMS; ThemeMetric<bool> SHOW_SCROLL_BAR;
ThemeMetric<bool> SHOW_BPM_IN_SPEED_TITLE; ThemeMetric<float> SCROLL_BAR_HEIGHT;
ThemeMetric<apActorCommands> FRAME_ON_COMMAND; ThemeMetric<float> SCROLL_BAR_TIME;
ThemeMetric<apActorCommands> FRAME_OFF_COMMAND; ThemeMetric<float> EXPLANATION_ZOOM;
ThemeMetric<bool> SEPARATE_EXIT_ROW; ThemeMetric<RageColor> COLOR_SELECTED;
ThemeMetric<float> SEPARATE_EXIT_ROW_Y; ThemeMetric<RageColor> COLOR_NOT_SELECTED;
ThemeMetric<bool> CAPITALIZE_ALL_OPTION_NAMES; ThemeMetric<int> NUM_SHOWN_ITEMS;
ThemeMetric<bool> SHOW_BPM_IN_SPEED_TITLE;
ThemeMetric<apActorCommands> FRAME_ON_COMMAND;
ThemeMetric<apActorCommands> FRAME_OFF_COMMAND;
ThemeMetric<bool> SEPARATE_EXIT_ROW;
ThemeMetric<float> SEPARATE_EXIT_ROW_Y;
ThemeMetric<bool> CAPITALIZE_ALL_OPTION_NAMES;
}; };
#endif #endif