From 03d30faba045cd240e30a8be7e5ad44349e57b1b Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Tue, 18 Jan 2011 13:17:32 -0500 Subject: [PATCH] Allow placing the labels on either side. --- Themes/_fallback/metrics.ini | 6 ++++++ src/NoteField.cpp | 26 ++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index c4e7056843..9d97da69b7 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -894,6 +894,12 @@ StopColor=color("0.8,0.8,0,1") DelayColor=color("0,0.8,0.8,1") TimeSignatureColor=color("1,0.55,0,1") TickcountColor=color("0,1,0,1") +# +BPMIsLeftSide=true +StopIsLeftSide=true +DelayIsLeftSide=true +TimeSignatureIsLeftSide=true +TickcountIsLeftSide=false [PlayerStageStats] # Original CVS Grading diff --git a/src/NoteField.cpp b/src/NoteField.cpp index 863c684814..fa3c1bf15f 100644 --- a/src/NoteField.cpp +++ b/src/NoteField.cpp @@ -417,19 +417,26 @@ static ThemeMetric STOP_COLOR ( "NoteField", "StopColor" ); static ThemeMetric DELAY_COLOR ( "NoteField", "DelayColor" ); static ThemeMetric TIME_SIGNATURE_COLOR ( "NoteField", "TimeSignatureColor" ); static ThemeMetric TICKCOUNT_COLOR ( "NoteField", "TickcountColor" ); +static ThemeMetric BPM_IS_LEFT_SIDE ( "NoteField", "BPMIsLeftSide" ); +static ThemeMetric STOP_IS_LEFT_SIDE ( "NoteField", "StopIsLeftSide" ); +static ThemeMetric DELAY_IS_LEFT_SIDE ( "NoteField", "DelayIsLeftSide" ); +static ThemeMetric TIME_SIGNATURE_IS_LEFT_SIDE ( "NoteField", "TimeSignatureIsLeftSide" ); +static ThemeMetric TICKCOUNT_IS_LEFT_SIDE ( "NoteField", "TickcountIsLeftSide" ); void NoteField::DrawBPMText( const float fBeat, const float fBPM ) { const float fYOffset = ArrowEffects::GetYOffset( m_pPlayerState, 0, fBeat ); const float fYPos = ArrowEffects::GetYPos( m_pPlayerState, 0, fYOffset, m_fYReverseOffsetPixels ); const float fZoom = ArrowEffects::GetZoom( m_pPlayerState ); + const float xBase = GetWidth()/2.f; + const float xOffset = 60 * fZoom; m_textMeasureNumber.SetZoom( fZoom ); m_textMeasureNumber.SetHorizAlign( align_right ); m_textMeasureNumber.SetDiffuse( BPM_COLOR ); m_textMeasureNumber.SetGlow( RageColor(1,1,1,RageFastCos(RageTimer::GetTimeSinceStartFast()*2)/2+0.5f) ); m_textMeasureNumber.SetText( ssprintf("%.3f", fBPM) ); - m_textMeasureNumber.SetXY( -GetWidth()/2 - 60*fZoom, fYPos ); + m_textMeasureNumber.SetXY( (BPM_IS_LEFT_SIDE ? -xBase - xOffset : xBase + xOffset), fYPos ); m_textMeasureNumber.Draw(); } @@ -438,16 +445,23 @@ void NoteField::DrawFreezeText( const float fBeat, const float fSecs, const floa const float fYOffset = ArrowEffects::GetYOffset( m_pPlayerState, 0, fBeat ); const float fYPos = ArrowEffects::GetYPos( m_pPlayerState, 0, fYOffset, m_fYReverseOffsetPixels ); const float fZoom = ArrowEffects::GetZoom( m_pPlayerState ); + const float xBase = GetWidth()/2.f; + const float xOffset = (bDelay ? 10 : 10) * fZoom; m_textMeasureNumber.SetZoom( fZoom ); m_textMeasureNumber.SetHorizAlign( align_right ); if(bDelay) + { m_textMeasureNumber.SetDiffuse( DELAY_COLOR ); + m_textMeasureNumber.SetXY( (DELAY_IS_LEFT_SIDE ? -xBase - xOffset : xBase + xOffset), fYPos ); + } else + { m_textMeasureNumber.SetDiffuse( STOP_COLOR ); + m_textMeasureNumber.SetXY( (STOP_IS_LEFT_SIDE ? -xBase - xOffset : xBase + xOffset), fYPos ); + } m_textMeasureNumber.SetGlow( RageColor(1,1,1,RageFastCos(RageTimer::GetTimeSinceStartFast()*2)/2+0.5f) ); m_textMeasureNumber.SetText( ssprintf("%.3f", fSecs) ); - m_textMeasureNumber.SetXY( -GetWidth()/2.f - 10*fZoom, fYPos ); m_textMeasureNumber.Draw(); } @@ -456,13 +470,15 @@ void NoteField::DrawTimeSignatureText( const float fBeat, int iNumerator, int iD const float fYOffset = ArrowEffects::GetYOffset( m_pPlayerState, 0, fBeat ); const float fYPos = ArrowEffects::GetYPos( m_pPlayerState, 0, fYOffset, m_fYReverseOffsetPixels ); const float fZoom = ArrowEffects::GetZoom( m_pPlayerState ); + const float xBase = GetWidth()/2.f; + const float xOffset = 30 * fZoom; m_textMeasureNumber.SetZoom( fZoom ); m_textMeasureNumber.SetHorizAlign( align_right ); m_textMeasureNumber.SetDiffuse( TIME_SIGNATURE_COLOR ); m_textMeasureNumber.SetGlow( RageColor(1,1,1,RageFastCos(RageTimer::GetTimeSinceStartFast()*2)/2+0.5f) ); m_textMeasureNumber.SetText( ssprintf("%d\n--\n%d", iNumerator, iDenominator) ); - m_textMeasureNumber.SetXY( -GetWidth()/2.f - 30*fZoom, fYPos ); + m_textMeasureNumber.SetXY( (TIME_SIGNATURE_IS_LEFT_SIDE ? -xBase - xOffset : xBase + xOffset), fYPos ); m_textMeasureNumber.Draw(); } @@ -471,13 +487,15 @@ void NoteField::DrawTickcountText( const float fBeat, int iTicks ) const float fYOffset = ArrowEffects::GetYOffset( m_pPlayerState, 0, fBeat ); const float fYPos = ArrowEffects::GetYPos( m_pPlayerState, 0, fYOffset, m_fYReverseOffsetPixels ); const float fZoom = ArrowEffects::GetZoom( m_pPlayerState ); + const float xBase = GetWidth()/2.f; + const float xOffset = 10 * fZoom; m_textMeasureNumber.SetZoom( fZoom ); m_textMeasureNumber.SetHorizAlign( align_left ); m_textMeasureNumber.SetDiffuse( TICKCOUNT_COLOR ); m_textMeasureNumber.SetGlow( RageColor(1,1,1,RageFastCos(RageTimer::GetTimeSinceStartFast()*2)/2+0.5f) ); m_textMeasureNumber.SetText( ssprintf("%d", iTicks) ); - m_textMeasureNumber.SetXY( GetWidth()/2.f + 10*fZoom, fYPos ); + m_textMeasureNumber.SetXY( (TICKCOUNT_IS_LEFT_SIDE ? -xBase - xOffset : xBase + xOffset), fYPos ); m_textMeasureNumber.Draw(); }