From ceb55bbbb4156c80927e8f14a958608ee8b5984f Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sun, 29 Jan 2006 00:27:39 +0000 Subject: [PATCH] add PerChoiceScrollElement metric --- stepmania/Themes/default/metrics.ini | 3 +++ stepmania/src/ScreenSelectMaster.cpp | 12 +++++++--- stepmania/src/ScreenSelectMaster.h | 33 ++++++++++++++-------------- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index dacee9d9a9..7bc0b4fbe8 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -89,6 +89,7 @@ Choice7=screen,ScreenExit;text,Exit Choice8=screen,ScreenTest;text,Sandbox ShowIcon=0 ShowScroller=1 +PerChoiceScrollElement=0 ScrollerTransform=function(self,offset,itemIndex,numItems) self:x(offset*20 + itemIndex) self:y(20*offset) end ScrollerSecondsPerItem=0 ScrollerNumItemsToDraw=20 @@ -3091,6 +3092,7 @@ ShowCursor=0 ShowScroller=0 WrapScroller=0 LoopScroller=0 +PerChoiceScrollElement=1 # All on page 1 by default. NumChoicesOnPage1=999 SharedSelection=1 @@ -3318,6 +3320,7 @@ ShowCursor=0 ShowScroller=0 WrapScroller=0 LoopScroller=0 +PerChoiceScrollElement=1 # All on page 1 by default. NumChoicesOnPage1=999 SharedSelection=1 diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index b1d40bfe73..4d3f4e0b63 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -40,6 +40,7 @@ void ScreenSelectMaster::Init() WRAP_CURSOR.Load( m_sName, "WrapCursor" ); WRAP_SCROLLER.Load( m_sName, "WrapScroller" ); LOOP_SCROLLER.Load( m_sName, "LoopScroller" ); + PER_CHOICE_SCROLL_ELEMENT.Load( m_sName, "PerChoiceScrollElement" ); ALLOW_REPEATING_INPUT.Load( m_sName, "AllowRepeatingInput" ); SCROLLER_SECONDS_PER_ITEM.Load( m_sName, "ScrollerSecondsPerItem" ); SCROLLER_NUM_ITEMS_TO_DRAW.Load( m_sName, "ScrollerNumItemsToDraw" ); @@ -62,7 +63,6 @@ void ScreenSelectMaster::Init() vpns.push_back( p ); } -#define PLAYER_APPEND_WITH_SPACE(p) (SHARED_SELECTION ? RString() : ssprintf(" P%d",(p)+1)) #define PLAYER_APPEND_NO_SPACE(p) (SHARED_SELECTION ? RString() : ssprintf("P%d",(p)+1)) // init cursor @@ -70,7 +70,7 @@ void ScreenSelectMaster::Init() { FOREACH( PlayerNumber, vpns, p ) { - RString sElement = "Cursor" + PLAYER_APPEND_WITH_SPACE(*p); + RString sElement = "Cursor " + PLAYER_APPEND_NO_SPACE(*p); m_sprCursor[*p].Load( THEME->GetPathG(m_sName,sElement) ); sElement.Replace( " ", "" ); m_sprCursor[*p]->SetName( sElement ); @@ -108,7 +108,13 @@ void ScreenSelectMaster::Init() { FOREACH( PlayerNumber, vpns, p ) { - RString sElement = ssprintf( "Scroll Choice%s", mc.m_sName.c_str() ) + PLAYER_APPEND_WITH_SPACE(*p); + vector vs; + vs.push_back( "scroll" ); + if( PER_CHOICE_SCROLL_ELEMENT ) + vs.push_back( "choice" + mc.m_sName ); + if( !SHARED_SELECTION ) + vs.push_back( PLAYER_APPEND_NO_SPACE(*p) ); + RString sElement = join( " ", vs ); m_vsprScroll[*p][c].Load( THEME->GetPathG(m_sName,sElement) ); sElement.Replace( " ", "" ); m_vsprScroll[*p][c]->SetName( sElement ); diff --git a/stepmania/src/ScreenSelectMaster.h b/stepmania/src/ScreenSelectMaster.h index 3302316a92..93c905d316 100644 --- a/stepmania/src/ScreenSelectMaster.h +++ b/stepmania/src/ScreenSelectMaster.h @@ -32,26 +32,27 @@ protected: Page GetPage( int iChoiceIndex ) const; Page GetCurrentPage() const; - ThemeMetric SHOW_ICON; - ThemeMetric SHOW_SCROLLER; - ThemeMetric SHOW_CURSOR; - ThemeMetric SHARED_SELECTION; - ThemeMetric NUM_CHOICES_ON_PAGE_1; + ThemeMetric SHOW_ICON; + ThemeMetric SHOW_SCROLLER; + ThemeMetric SHOW_CURSOR; + ThemeMetric SHARED_SELECTION; + ThemeMetric NUM_CHOICES_ON_PAGE_1; ThemeMetric1D CURSOR_OFFSET_X_FROM_ICON; ThemeMetric1D CURSOR_OFFSET_Y_FROM_ICON; - ThemeMetric OVERRIDE_LOCK_INPUT_SECONDS; - ThemeMetric LOCK_INPUT_SECONDS; - ThemeMetric PRE_SWITCH_PAGE_SECONDS; - ThemeMetric POST_SWITCH_PAGE_SECONDS; + ThemeMetric OVERRIDE_LOCK_INPUT_SECONDS; + ThemeMetric LOCK_INPUT_SECONDS; + ThemeMetric PRE_SWITCH_PAGE_SECONDS; + ThemeMetric POST_SWITCH_PAGE_SECONDS; ThemeMetric1D OPTION_ORDER; - ThemeMetric WRAP_CURSOR; - ThemeMetric WRAP_SCROLLER; - ThemeMetric LOOP_SCROLLER; - ThemeMetric ALLOW_REPEATING_INPUT; - ThemeMetric SCROLLER_SECONDS_PER_ITEM; - ThemeMetric SCROLLER_NUM_ITEMS_TO_DRAW; + ThemeMetric WRAP_CURSOR; + ThemeMetric WRAP_SCROLLER; + ThemeMetric LOOP_SCROLLER; + ThemeMetric PER_CHOICE_SCROLL_ELEMENT; + ThemeMetric ALLOW_REPEATING_INPUT; + ThemeMetric SCROLLER_SECONDS_PER_ITEM; + ThemeMetric SCROLLER_NUM_ITEMS_TO_DRAW; ThemeMetric SCROLLER_TRANSFORM; - ThemeMetric SCROLLER_SUBDIVISIONS; + ThemeMetric SCROLLER_SUBDIVISIONS; ThemeMetric DEFAULT_CHOICE; map m_mapCurrentChoiceToNextChoice[NUM_MENU_DIRS];