diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 93d709d6cd..e33e548086 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -1927,6 +1927,18 @@ RightEdge=620 BottomEdge=460 [Judgment] +BooOddCommand= +GoodOddCommand= +GreatOddCommand= +MarvelousOddCommand= +MissOddCommand= +PerfectOddCommand= +BooEvenCommand= +GoodEvenCommand= +GreatEvenCommand= +MarvelousEvenCommand= +MissEvenCommand= +PerfectEvenCommand= MarvelousCommand=shadowlength,4;diffusealpha,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.8;linear,0;diffusealpha,0;glowblink;effectperiod,0.05;effectcolor1,1,1,1,0;effectcolor2,1,1,1,0.8 PerfectCommand=shadowlength,4;diffusealpha,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.8;linear,0;diffusealpha,0 GreatCommand=shadowlength,4;diffusealpha,1;zoom,1.2;linear,0.05;zoom,1;sleep,0.8;linear,0;diffusealpha,0 @@ -1934,6 +1946,9 @@ GoodCommand=shadowlength,4;diffusealpha,1;zoom,1.1;linear,0.05;zoom,1;sleep,0.8; BooCommand=shadowlength,4;diffusealpha,1;zoom,1.0;vibrate;effectmagnitude,4,8,8;sleep,0.8;linear,0;diffusealpha,0 MissCommand=shadowlength,4;diffusealpha,1;zoom,1;y,-20;linear,0.8;y,20;sleep,0.8;linear,0;diffusealpha,0 +[HoldJudgment] +NGCommand=shadowlength,4;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;linear,0;diffusealpha,0 +OKCommand=shadowlength,4;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0;diffusealpha,0 [Combo] LabelX=6 @@ -1951,10 +1966,6 @@ NumberMaxZoomAt=300 PulseZoom=1.2 TweenSeconds=0.05 -[HoldJudgment] -NGCommand=shadowlength,4;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;linear,0;diffusealpha,0 -OKCommand=shadowlength,4;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0;diffusealpha,0 - [Player] GrayArrowsYStandard=96 GrayArrowsYReverse=384 diff --git a/stepmania/src/Judgment.cpp b/stepmania/src/Judgment.cpp index 5353c74b9e..41a2651649 100644 --- a/stepmania/src/Judgment.cpp +++ b/stepmania/src/Judgment.cpp @@ -18,12 +18,26 @@ #include "ThemeManager.h" -static CachedThemeMetric MARVELOUS_COMMAND ("Judgment","MarvelousCommand"); -static CachedThemeMetric PERFECT_COMMAND ("Judgment","PerfectCommand"); -static CachedThemeMetric GREAT_COMMAND ("Judgment","GreatCommand"); -static CachedThemeMetric GOOD_COMMAND ("Judgment","GoodCommand"); -static CachedThemeMetric BOO_COMMAND ("Judgment","BooCommand"); -static CachedThemeMetric MISS_COMMAND ("Judgment","MissCommand"); +static CachedThemeMetric MARVELOUS_COMMAND ("Judgment","MarvelousCommand"); +static CachedThemeMetric PERFECT_COMMAND ("Judgment","PerfectCommand"); +static CachedThemeMetric GREAT_COMMAND ("Judgment","GreatCommand"); +static CachedThemeMetric GOOD_COMMAND ("Judgment","GoodCommand"); +static CachedThemeMetric BOO_COMMAND ("Judgment","BooCommand"); +static CachedThemeMetric MISS_COMMAND ("Judgment","MissCommand"); + +static CachedThemeMetric MARVELOUS_ODD_COMMAND ("Judgment","MarvelousOddCommand"); +static CachedThemeMetric PERFECT_ODD_COMMAND ("Judgment","PerfectOddCommand"); +static CachedThemeMetric GREAT_ODD_COMMAND ("Judgment","GreatOddCommand"); +static CachedThemeMetric GOOD_ODD_COMMAND ("Judgment","GoodOddCommand"); +static CachedThemeMetric BOO_ODD_COMMAND ("Judgment","BooOddCommand"); +static CachedThemeMetric MISS_ODD_COMMAND ("Judgment","MissOddCommand"); + +static CachedThemeMetric MARVELOUS_EVEN_COMMAND ("Judgment","MarvelousEvenCommand"); +static CachedThemeMetric PERFECT_EVEN_COMMAND ("Judgment","PerfectEvenCommand"); +static CachedThemeMetric GREAT_EVEN_COMMAND ("Judgment","GreatEvenCommand"); +static CachedThemeMetric GOOD_EVEN_COMMAND ("Judgment","GoodEvenCommand"); +static CachedThemeMetric BOO_EVEN_COMMAND ("Judgment","BooEvenCommand"); +static CachedThemeMetric MISS_EVEN_COMMAND ("Judgment","MissEvenCommand"); Judgment::Judgment() @@ -35,6 +49,22 @@ Judgment::Judgment() BOO_COMMAND.Refresh(); MISS_COMMAND.Refresh(); + MARVELOUS_ODD_COMMAND.Refresh(); + PERFECT_ODD_COMMAND.Refresh(); + GREAT_ODD_COMMAND.Refresh(); + GOOD_ODD_COMMAND.Refresh(); + BOO_ODD_COMMAND.Refresh(); + MISS_ODD_COMMAND.Refresh(); + + MARVELOUS_EVEN_COMMAND.Refresh(); + PERFECT_EVEN_COMMAND.Refresh(); + GREAT_EVEN_COMMAND.Refresh(); + GOOD_EVEN_COMMAND.Refresh(); + BOO_EVEN_COMMAND.Refresh(); + MISS_EVEN_COMMAND.Refresh(); + + m_iCount = 0; + m_sprJudgment.Load( THEME->GetPathToG("Judgment 1x6") ); m_sprJudgment.StopAnimating(); Reset(); @@ -60,29 +90,37 @@ void Judgment::SetJudgment( TapNoteScore score ) { case TNS_MARVELOUS: m_sprJudgment.SetState( 0 ); + m_sprJudgment.Command( (m_iCount%2) ? MARVELOUS_ODD_COMMAND : MARVELOUS_EVEN_COMMAND ); m_sprJudgment.Command( MARVELOUS_COMMAND ); break; case TNS_PERFECT: m_sprJudgment.SetState( 1 ); + m_sprJudgment.Command( (m_iCount%2) ? PERFECT_ODD_COMMAND : PERFECT_EVEN_COMMAND ); m_sprJudgment.Command( PERFECT_COMMAND ); break; case TNS_GREAT: m_sprJudgment.SetState( 2 ); + m_sprJudgment.Command( (m_iCount%2) ? GREAT_ODD_COMMAND : GREAT_EVEN_COMMAND ); m_sprJudgment.Command( GREAT_COMMAND ); break; case TNS_GOOD: m_sprJudgment.SetState( 3 ); + m_sprJudgment.Command( (m_iCount%2) ? GOOD_ODD_COMMAND : GOOD_EVEN_COMMAND ); m_sprJudgment.Command( GOOD_COMMAND ); break; case TNS_BOO: m_sprJudgment.SetState( 4 ); + m_sprJudgment.Command( (m_iCount%2) ? BOO_ODD_COMMAND : BOO_EVEN_COMMAND ); m_sprJudgment.Command( BOO_COMMAND ); break; case TNS_MISS: m_sprJudgment.SetState( 5 ); + m_sprJudgment.Command( (m_iCount%2) ? MISS_ODD_COMMAND : MISS_EVEN_COMMAND ); m_sprJudgment.Command( MISS_COMMAND ); break; default: ASSERT(0); } + + m_iCount++; } diff --git a/stepmania/src/Judgment.h b/stepmania/src/Judgment.h index b5d79ea093..4950448f2d 100644 --- a/stepmania/src/Judgment.h +++ b/stepmania/src/Judgment.h @@ -27,6 +27,7 @@ public: protected: Sprite m_sprJudgment; + int m_iCount; }; #endif