From e02690299a3d50a9653ed3b69f870da5c88ae2f9 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Wed, 8 Mar 2006 18:08:04 +0000 Subject: [PATCH] add Explanation OffCommand --- stepmania/Themes/default/metrics.ini | 9 ++-- stepmania/src/ScreenOptions.cpp | 61 ++++++++++++++-------------- stepmania/src/ScreenOptions.h | 7 +--- 3 files changed, 37 insertions(+), 40 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 2d7f2f0189..b1e254bee9 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2513,9 +2513,12 @@ ExplanationP2X=SCREEN_CENTER_X+250 ExplanationP2Y=SCREEN_CENTER_Y+172 ExplanationTogetherX=SCREEN_CENTER_X-250 ExplanationTogetherY=SCREEN_CENTER_Y+172 -ExplanationTogetherOnCommand=zoom,0.5;wrapwidthpixels,1000;horizalign,left;cropright,1;linear,0.5;cropright,0 -ExplanationP1OnCommand=zoom,0.5;wrapwidthpixels,500;horizalign,left;cropright,1;linear,0.5;cropright,0 -ExplanationP2OnCommand=zoom,0.5;wrapwidthpixels,500;horizalign,right;cropright,1;linear,0.5;cropright,0 +ExplanationTogetherOnCommand=shadowlength,0;zoom,0.5;wrapwidthpixels,1000;horizalign,left;cropright,1;linear,0.5;cropright,0 +ExplanationTogetherOffCommand= +ExplanationP1OnCommand=shadowlength,0;zoom,0.5;wrapwidthpixels,500;horizalign,left;cropright,1;linear,0.5;cropright,0 +ExplanationP1OffCommand= +ExplanationP2OnCommand=shadowlength,0;zoom,0.5;wrapwidthpixels,500;horizalign,right;cropright,1;linear,0.5;cropright,0 +ExplanationP2OffCommand= DisqualifyP1X= DisqualifyP1Y= DisqualifyP1OnCommand=hidden,1 diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index cc1ae9957b..670729bb87 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -95,12 +95,6 @@ void ScreenOptions::Init() ROW_INIT_COMMAND.Load( m_sName, "RowInitCommand" ); ROW_ON_COMMAND.Load( m_sName, "RowOnCommand" ); ROW_OFF_COMMAND.Load( m_sName, "RowOffCommand" ); - EXPLANATION_X.Load( m_sName, EXPLANATION_X_NAME, NUM_PLAYERS ); - EXPLANATION_Y.Load( m_sName, EXPLANATION_Y_NAME, NUM_PLAYERS ); - EXPLANATION_ON_COMMAND.Load( m_sName, EXPLANATION_ON_COMMAND_NAME, NUM_PLAYERS ); - 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" ); @@ -150,23 +144,25 @@ void ScreenOptions::Init() m_framePage.AddChild( &m_Cursor[p] ); } - // on top: - FOREACH_PlayerNumber( p ) - { - m_textExplanation[p].LoadFromFont( THEME->GetPathF(m_sName,"explanation") ); - m_textExplanation[p].SetShadowLength( 0 ); - m_textExplanation[p].SetDrawOrder( 2 ); - m_framePage.AddChild( &m_textExplanation[p] ); - } - switch( m_InputMode ) { case INPUTMODE_INDIVIDUAL: FOREACH_PlayerNumber( p ) - m_textExplanation[p].SetXY( EXPLANATION_X.GetValue(p), EXPLANATION_Y.GetValue(p) ); + { + m_textExplanation[p].LoadFromFont( THEME->GetPathF(m_sName,"explanation") ); + m_textExplanation[p].SetDrawOrder( 2 ); + m_textExplanation[p].SetName( "Explanation" + PlayerNumberToString(p) ); + SET_XY( m_textExplanation[p] ); + m_framePage.AddChild( &m_textExplanation[p] ); + + } break; case INPUTMODE_SHARE_CURSOR: - m_textExplanation[0].SetXY( EXPLANATION_TOGETHER_X, EXPLANATION_TOGETHER_Y ); + m_textExplanationTogether.LoadFromFont( THEME->GetPathF(m_sName,"explanation") ); + m_textExplanationTogether.SetDrawOrder( 2 ); + m_textExplanationTogether.SetName( "ExplanationTogether" ); + SET_XY( m_textExplanationTogether ); + m_framePage.AddChild( &m_textExplanationTogether ); break; default: ASSERT(0); @@ -335,6 +331,12 @@ void ScreenOptions::TweenOnScreen() ON_COMMAND( m_sprMore ); + FOREACH_PlayerNumber( p ) + if( !m_textExplanation[p].GetName().empty() ) + ON_COMMAND( m_textExplanation[p] ); + if( !m_textExplanationTogether.GetName().empty() ) + ON_COMMAND( m_textExplanationTogether ); + m_framePage.SortByDrawOrder(); } @@ -346,6 +348,10 @@ void ScreenOptions::TweenOffScreen() (*p)->RunCommands( ROW_OFF_COMMAND ); OFF_COMMAND( m_framePage ); + + FOREACH_PlayerNumber( p ) + OFF_COMMAND( m_textExplanation[p] ); + OFF_COMMAND( m_textExplanationTogether ); } ScreenOptions::~ScreenOptions() @@ -731,29 +737,22 @@ void ScreenOptions::AfterChangeValueOrRow( PlayerNumber pn ) } const RString text = GetExplanationText( iCurRow ); - BitmapText *pText = NULL; switch( m_InputMode ) { case INPUTMODE_INDIVIDUAL: pText = &m_textExplanation[pn]; - if( pText->GetText() != text ) - { - pText->FinishTweening(); - pText->RunCommands( EXPLANATION_ON_COMMAND.GetValue(pn) ); - pText->SetText( text ); - } break; case INPUTMODE_SHARE_CURSOR: - pText = &m_textExplanation[0]; - if( pText->GetText() != text ) - { - pText->FinishTweening(); - pText->RunCommands( EXPLANATION_TOGETHER_ON_COMMAND ); - pText->SetText( text ); - } + pText = &m_textExplanationTogether; break; } + if( pText->GetText() != text ) + { + pText->FinishTweening(); + ON_COMMAND( pText ); + pText->SetText( text ); + } } diff --git a/stepmania/src/ScreenOptions.h b/stepmania/src/ScreenOptions.h index 5c3577ebe4..67997ed313 100644 --- a/stepmania/src/ScreenOptions.h +++ b/stepmania/src/ScreenOptions.h @@ -118,6 +118,7 @@ protected: // derived classes need access to these AutoActor m_sprLineHighlight[NUM_PLAYERS]; BitmapText m_textExplanation[NUM_PLAYERS]; + BitmapText m_textExplanationTogether; DualScrollBar m_ScrollBar; AutoActor m_sprMore; @@ -133,12 +134,6 @@ protected: // derived classes need access to these ThemeMetric ROW_ON_COMMAND; ThemeMetric ROW_OFF_COMMAND; LuaExpressionTransform m_exprRowPositionTransformFunction; // params: self,positionIndex,itemIndex,numItems - ThemeMetric1D EXPLANATION_X; - ThemeMetric1D EXPLANATION_Y; - ThemeMetric1D EXPLANATION_ON_COMMAND; - ThemeMetric EXPLANATION_TOGETHER_X; - ThemeMetric EXPLANATION_TOGETHER_Y; - ThemeMetric EXPLANATION_TOGETHER_ON_COMMAND; ThemeMetric SHOW_SCROLL_BAR; ThemeMetric SCROLL_BAR_HEIGHT; ThemeMetric SCROLL_BAR_TIME;