diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 0fbff822c0..3bc0718e63 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -3364,6 +3364,7 @@ CategoryZoom=0.7 CharsZoomSmall=1.0 CharsZoomLarge=1.5 CharsSpacingY=40 +CharsChoices=" ABCDEFGHIJKLMNOPQRSTUVWXYZ" ScrollingCharsCommand=diffuse,0.6,0.8,0.8,1 SelectedCharsCommand=diffuse,0.8,1,1,1 ReceptorArrowsY=SCREEN_CENTER_Y-140 diff --git a/src/ScreenNameEntry.cpp b/src/ScreenNameEntry.cpp index 06e729db0c..38015d0ce4 100644 --- a/src/ScreenNameEntry.cpp +++ b/src/ScreenNameEntry.cpp @@ -32,6 +32,7 @@ #define CHARS_ZOOM_SMALL THEME->GetMetricF(m_sName,"CharsZoomSmall") #define CHARS_ZOOM_LARGE THEME->GetMetricF(m_sName,"CharsZoomLarge") #define CHARS_SPACING_Y THEME->GetMetricF(m_sName,"CharsSpacingY") +#define CHARS_CHOICES THEME->GetMetric(m_sName,"CharsChoices") #define SCROLLING_CHARS_COMMAND THEME->GetMetricA(m_sName,"ScrollingCharsCommand") #define SELECTED_CHARS_COMMAND THEME->GetMetricA(m_sName,"SelectedCharsCommand") #define GRAY_ARROWS_Y THEME->GetMetricF(m_sName,"ReceptorArrowsY") @@ -50,9 +51,6 @@ static int g_iNumCharsToDrawBehind; static int g_iNumCharsToDrawTotal; static float g_fFakeBeatsPerSec; -// TODO: Let themers change this? -aj -RString ScreenNameEntry::ScrollingText::g_sNameChars = " ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - void ScreenNameEntry::ScrollingText::Init( const RString &sName, const vector &xs ) { SetName( sName ); @@ -65,15 +63,15 @@ void ScreenNameEntry::ScrollingText::Init( const RString &sName, const vectorm_fSongBeat; - const size_t iClosestIndex = lrintf( fFakeBeat ) % g_sNameChars.size(); + const size_t iClosestIndex = lrintf( fFakeBeat ) % CHARS_CHOICES.size(); const float fClosestYOffset = GetClosestCharYOffset( fFakeBeat ); - size_t iCharIndex = ( iClosestIndex - NUM_CHARS_TO_DRAW_BEHIND + g_sNameChars.size() ) % g_sNameChars.size(); + size_t iCharIndex = ( iClosestIndex - NUM_CHARS_TO_DRAW_BEHIND + CHARS_CHOICES.size() ) % CHARS_CHOICES.size(); float fY = GRAY_ARROWS_Y + ( fClosestYOffset - g_iNumCharsToDrawBehind ) * g_fCharsSpacingY; for( int i = 0; i < NUM_CHARS_TO_DRAW_TOTAL; ++i ) { - const RString c = g_sNameChars.substr( iCharIndex, 1 ); + const RString c = CHARS_CHOICES.substr( iCharIndex, 1 ); float fZoom = g_fCharsZoomSmall; float fAlpha = 1.f; @@ -94,14 +92,14 @@ void ScreenNameEntry::ScrollingText::DrawPrimitives() m_Stamp.Draw(); } fY += g_fCharsSpacingY; - iCharIndex = (iCharIndex+1) % g_sNameChars.size(); + iCharIndex = (iCharIndex+1) % CHARS_CHOICES.size(); } } char ScreenNameEntry::ScrollingText::GetClosestChar( float fFakeBeat ) const { ASSERT( fFakeBeat >= 0.f ); - return g_sNameChars[lrintf(fFakeBeat) % g_sNameChars.size()]; + return CHARS_CHOICES[lrintf(fFakeBeat) % CHARS_CHOICES.size()]; } // return value is relative to gray arrows diff --git a/src/ScreenNameEntry.h b/src/ScreenNameEntry.h index f67268197e..35a2ccc655 100644 --- a/src/ScreenNameEntry.h +++ b/src/ScreenNameEntry.h @@ -17,7 +17,6 @@ public: virtual void HandleScreenMessage( const ScreenMessage SM ); virtual void MenuStart( const InputEventPlus &input ); - private: class ScrollingText : public Actor {