diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index f1a2594219..1fcc714e9d 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2710,20 +2710,17 @@ NGCommand=shadowlength,4;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;l OKCommand=shadowlength,4;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0;diffusealpha,0 [Combo] +ShowComboAt=4 LabelX=SCREEN_CENTER_X-314 LabelY=SCREEN_CENTER_Y-220 -LabelHorizAlign=0 -LabelVertAlign=2 +LabelOnCommand=HorizAlign,left;VertAlign,bottom NumberX=0 NumberY=SCREEN_CENTER_Y-220 -NumberHorizAlign=2 -NumberVertAlign=2 -ShowComboAt=4 +NumberOnCommand=HorizAlign,right;VertAlign,bottom NumberMinZoom=0.5 NumberMaxZoom=0.9 NumberMaxZoomAt=300 -PulseZoom=1.2 -TweenSeconds=0.05 +PulseCommand=%function(self) local origZoom=self:GetZoom(); self:zoom(1.2*origZoom); self:linear(0.05); self:zoom(origZoom); end FullComboGreatsCommand= FullComboPerfectsCommand= FullComboMarvelousesCommand= diff --git a/stepmania/src/Combo.cpp b/stepmania/src/Combo.cpp index bc9973a039..3c89778ef8 100644 --- a/stepmania/src/Combo.cpp +++ b/stepmania/src/Combo.cpp @@ -17,20 +17,17 @@ void Combo::Load( PlayerNumber pn ) { m_PlayerNumber = pn; + SHOW_COMBO_AT.Load(m_sName,"ShowComboAt"); LABEL_X.Load(m_sName,"LabelX"); LABEL_Y.Load(m_sName,"LabelY"); - LABEL_HORIZ_ALIGN.Load(m_sName,"LabelHorizAlign"); - LABEL_VERT_ALIGN.Load(m_sName,"LabelVertAlign"); + LABEL_ON_COMMAND.Load(m_sName,"LabelOnCommand"); NUMBER_X.Load(m_sName,"NumberX"); NUMBER_Y.Load(m_sName,"NumberY"); - NUMBER_HORIZ_ALIGN.Load(m_sName,"NumberHorizAlign"); - NUMBER_VERT_ALIGN.Load(m_sName,"NumberVertAlign"); - SHOW_COMBO_AT.Load(m_sName,"ShowComboAt"); + NUMBER_ON_COMMAND.Load(m_sName,"NumberOnCommand"); NUMBER_MIN_ZOOM.Load(m_sName,"NumberMinZoom"); NUMBER_MAX_ZOOM.Load(m_sName,"NumberMaxZoom"); NUMBER_MAX_ZOOM_AT.Load(m_sName,"NumberMaxZoomAt"); - PULSE_ZOOM.Load(m_sName,"PulseZoom"); - C_TWEEN_SECONDS.Load(m_sName,"TweenSeconds"); + PULSE_COMMAND.Load(m_sName,"PulseCommand"); FULL_COMBO_GREATS_COMMAND.Load(m_sName,"FullComboGreatsCommand"); FULL_COMBO_PERFECTS_COMMAND.Load(m_sName,"FullComboPerfectsCommand"); FULL_COMBO_MARVELOUSES_COMMAND.Load(m_sName,"FullComboMarvelousesCommand"); @@ -41,23 +38,20 @@ void Combo::Load( PlayerNumber pn ) m_sprComboLabel.SetShadowLength( 4 ); m_sprComboLabel.StopAnimating(); m_sprComboLabel.SetXY( LABEL_X, LABEL_Y ); - m_sprComboLabel.SetHorizAlign( (Actor::HorizAlign)(int)LABEL_HORIZ_ALIGN ); - m_sprComboLabel.SetVertAlign( (Actor::VertAlign)(int)LABEL_VERT_ALIGN ); + m_sprComboLabel.RunCommands( LABEL_ON_COMMAND ); m_sprComboLabel.SetHidden( true ); m_sprMissesLabel.Load( THEME->GetPathG(m_sName,"misses") ); m_sprMissesLabel.SetShadowLength( 4 ); m_sprMissesLabel.StopAnimating(); m_sprMissesLabel.SetXY( LABEL_X, LABEL_Y ); - m_sprMissesLabel.SetHorizAlign( (Actor::HorizAlign)(int)LABEL_HORIZ_ALIGN ); - m_sprMissesLabel.SetVertAlign( (Actor::VertAlign)(int)LABEL_VERT_ALIGN ); + m_sprMissesLabel.RunCommands( LABEL_ON_COMMAND ); m_sprMissesLabel.SetHidden( true ); m_textNumber.LoadFromFont( THEME->GetPathF(m_sName,"numbers") ); m_textNumber.SetShadowLength( 4 ); m_textNumber.SetXY( NUMBER_X, NUMBER_Y ); - m_textNumber.SetHorizAlign( (Actor::HorizAlign)(int)NUMBER_HORIZ_ALIGN ); - m_textNumber.SetVertAlign( (Actor::VertAlign)(int)NUMBER_VERT_ALIGN ); + m_textNumber.RunCommands( NUMBER_ON_COMMAND ); m_textNumber.SetHidden( true ); } @@ -87,16 +81,13 @@ void Combo::SetCombo( int iCombo, int iMisses ) float fNumberZoom = SCALE(iNum,0.f,(float)NUMBER_MAX_ZOOM_AT,(float)NUMBER_MIN_ZOOM,(float)NUMBER_MAX_ZOOM); CLAMP( fNumberZoom, (float)NUMBER_MIN_ZOOM, (float)NUMBER_MAX_ZOOM ); m_textNumber.StopTweening(); - m_textNumber.SetZoom( fNumberZoom * (float)PULSE_ZOOM ); - m_textNumber.BeginTweening( C_TWEEN_SECONDS ); m_textNumber.SetZoom( fNumberZoom ); + m_textNumber.RunCommands( PULSE_COMMAND ); Sprite &sprLabel = bMisses ? m_sprMissesLabel : m_sprComboLabel; sprLabel.StopTweening(); - sprLabel.SetZoom( PULSE_ZOOM ); - sprLabel.BeginTweening( C_TWEEN_SECONDS ); - sprLabel.SetZoom( 1 ); + sprLabel.RunCommands( PULSE_COMMAND ); // don't show a colored combo until 1/4 of the way through the song bool bPastMidpoint = GAMESTATE->GetCourseSongIndex()>0 || diff --git a/stepmania/src/Combo.h b/stepmania/src/Combo.h index e85a2165e8..fc148c318f 100644 --- a/stepmania/src/Combo.h +++ b/stepmania/src/Combo.h @@ -21,25 +21,24 @@ public: void SetCombo( int iCombo, int iMisses ); protected: - ThemeMetric LABEL_X; - ThemeMetric LABEL_Y; - ThemeMetric LABEL_HORIZ_ALIGN; - ThemeMetric LABEL_VERT_ALIGN; - ThemeMetric NUMBER_X; - ThemeMetric NUMBER_Y; - ThemeMetric NUMBER_HORIZ_ALIGN; - ThemeMetric NUMBER_VERT_ALIGN; - ThemeMetric SHOW_COMBO_AT; - ThemeMetric NUMBER_MIN_ZOOM; - ThemeMetric NUMBER_MAX_ZOOM; - ThemeMetric NUMBER_MAX_ZOOM_AT; - ThemeMetric PULSE_ZOOM; - ThemeMetric C_TWEEN_SECONDS; + ThemeMetric SHOW_COMBO_AT; + ThemeMetric LABEL_X; + ThemeMetric LABEL_Y; + ThemeMetric LABEL_ON_COMMAND; + ThemeMetric NUMBER_X; + ThemeMetric NUMBER_Y; + ThemeMetric NUMBER_ON_COMMAND; + ThemeMetric NUMBER_MIN_ZOOM; + ThemeMetric NUMBER_MAX_ZOOM; + ThemeMetric NUMBER_MAX_ZOOM_AT; + ThemeMetric PULSE_COMMAND; + ThemeMetric TWEEN_SECONDS; + ThemeMetric FULL_COMBO_GREATS_COMMAND; ThemeMetric FULL_COMBO_PERFECTS_COMMAND; ThemeMetric FULL_COMBO_MARVELOUSES_COMMAND; ThemeMetric FULL_COMBO_BROKEN_COMMAND; - ThemeMetric SHOW_MISS_COMBO; + ThemeMetric SHOW_MISS_COMBO; PlayerNumber m_PlayerNumber;