From 73611901986af6056b78f7836c3f7831d89a2114 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 16 Sep 2002 18:25:29 +0000 Subject: [PATCH] fix "Max Combo" showing on Oni Evauation screen NG now causes to lose a battery life songs w/o music no longer show up in courses changed all "numbers" images to have the same format --- stepmania/TODO.chris | 14 ++++++---- stepmania/Themes/default/metrics.ini | 14 ++++++++++ stepmania/src/Combo.cpp | 2 +- stepmania/src/Course.cpp | 2 ++ stepmania/src/LifeMeterBattery.cpp | 13 ++++++++- stepmania/src/MenuTimer.cpp | 4 +-- stepmania/src/ScoreDisplayNormal.cpp | 2 +- stepmania/src/ScreenEvaluation.cpp | 42 ++++++++++++++-------------- 8 files changed, 61 insertions(+), 32 deletions(-) diff --git a/stepmania/TODO.chris b/stepmania/TODO.chris index 33c707522f..f09b544c5e 100644 --- a/stepmania/TODO.chris +++ b/stepmania/TODO.chris @@ -2,20 +2,22 @@ Fix ///////////////////////// -> We also throw when we get a difficulty we don't know about. +Fixed: +fix "Max Combo" showing on Oni Evauation screen +NG now causes to lose a battery life +songs w/o music no longer show up in courses +changed all "numbers" images to have the same format -> LifeMeterBattery::Refresh wants "x", but the font being used.. -Like when playing MAX300, how the judgement "pulsing" goofs up? +SMANIAC difficulty BLUE DUDE! DO IT! +yes because basically these days, Oni challenge modes are defined as smaniac +Spig301: so really, challenge = smaniac -freezes are locked until NG the CDTitles DWI style arent being read anymore. faster IniFile (with std::map?) -flag for use hold head - fix movie texture crash The "groove bar" reports at the results screen is broken. diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 596c750953..bb2f1842ec 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -339,24 +339,38 @@ PercentBaseY=134 JudgeLabelsX=320 PerfectP1X=230 PerfectP2X=410 +PerfectOniP1X=230 +PerfectOniP2X=410 PerfectY=176 GreatP1X=230 GreatP2X=410 +GreatOniP1X=230 +GreatOniP2X=410 GreatY=208 GoodP1X=230 GoodP2X=410 +GoodOniP1X=230 +GoodOniP2X=410 GoodY=240 BooP1X=230 BooP2X=410 +BooOniP1X=230 +BooOniP2X=410 BooY=272 MissP1X=230 MissP2X=410 +MissOniP1X=230 +MissOniP2X=410 MissY=304 OKP1X=230 OKP2X=410 +OKOniP1X=230 +OKOniP2X=410 OKY=336 MaxComboP1X=134 MaxComboP2X=578 +MaxComboOniP1X=1000 // off screen +MaxComboOniP2X=1000 // off screen MaxComboY=334 ScoreLabelsX=320 ScoreNumbersP1X=150 diff --git a/stepmania/src/Combo.cpp b/stepmania/src/Combo.cpp index 18ec8b4703..bcc7d1a5a7 100644 --- a/stepmania/src/Combo.cpp +++ b/stepmania/src/Combo.cpp @@ -35,7 +35,7 @@ Combo::Combo() m_sprCombo.SetX( 40 ); m_sprCombo.SetZoom( 1.0f ); - m_textComboNumber.LoadFromTextureAndChars( THEME->GetPathTo("Graphics","gameplay combo numbers 5x2"), "0123456789" ); + m_textComboNumber.LoadFromTextureAndChars( THEME->GetPathTo("Graphics","gameplay combo numbers 5x3"), "0123456789%. :x" ); m_textComboNumber.TurnShadowOn(); m_textComboNumber.SetHorizAlign( Actor::align_right ); m_textComboNumber.SetX( 0 ); diff --git a/stepmania/src/Course.cpp b/stepmania/src/Course.cpp index ed2d37480a..9192aca65f 100644 --- a/stepmania/src/Course.cpp +++ b/stepmania/src/Course.cpp @@ -179,6 +179,8 @@ void Course::GetSongAndNotesForCurrentStyle( Notes* pNotes = GetNotesForStage( num ); CString sModifiers = m_asModifiers[num]; + if( !pSong->HasMusic() ) + continue; // skip if( pNotes == NULL ) continue; // skip diff --git a/stepmania/src/LifeMeterBattery.cpp b/stepmania/src/LifeMeterBattery.cpp index 5c46b8cd0b..844d1c1391 100644 --- a/stepmania/src/LifeMeterBattery.cpp +++ b/stepmania/src/LifeMeterBattery.cpp @@ -119,6 +119,8 @@ void LifeMeterBattery::ChangeLife( TapNoteScore score ) Refresh(); m_fBatteryBlinkTime = BATTERY_BLINK_TIME; break; + default: + ASSERT(0); } if( m_iLivesLeft == 0 ) m_bFailedEarlier = true; @@ -126,7 +128,16 @@ void LifeMeterBattery::ChangeLife( TapNoteScore score ) void LifeMeterBattery::ChangeLife( HoldNoteScore score ) { - // do nothing + switch( score ) + { + case HNS_OK: + break; + case HNS_NG: + ChangeLife( TNS_MISS ); // NG is the same as a miss + break; + default: + ASSERT(0); + } } void LifeMeterBattery::OnDancePointsChange() diff --git a/stepmania/src/MenuTimer.cpp b/stepmania/src/MenuTimer.cpp index 6523b64f44..94fea32ddf 100644 --- a/stepmania/src/MenuTimer.cpp +++ b/stepmania/src/MenuTimer.cpp @@ -25,12 +25,12 @@ MenuTimer::MenuTimer() m_fStallSeconds = 0; m_bTimerStopped = false; - m_textDigit1.LoadFromTextureAndChars( THEME->GetPathTo("Graphics","menu timer numbers 5x2"), "1234567890" ); + m_textDigit1.LoadFromTextureAndChars( THEME->GetPathTo("Graphics","menu timer numbers 5x3"), "0123456789%. :x" ); m_textDigit1.TurnShadowOff(); m_textDigit1.SetXY( -18, 0 ); this->AddChild( &m_textDigit1 ); - m_textDigit2.LoadFromTextureAndChars( THEME->GetPathTo("Graphics","menu timer numbers 5x2"), "1234567890" ); + m_textDigit2.LoadFromTextureAndChars( THEME->GetPathTo("Graphics","menu timer numbers 5x3"), "0123456789%. :x" ); m_textDigit2.TurnShadowOff(); m_textDigit2.SetXY( +18, 0 ); this->AddChild( &m_textDigit2 ); diff --git a/stepmania/src/ScoreDisplayNormal.cpp b/stepmania/src/ScoreDisplayNormal.cpp index 8b4b7a4648..0b830decf1 100644 --- a/stepmania/src/ScoreDisplayNormal.cpp +++ b/stepmania/src/ScoreDisplayNormal.cpp @@ -26,7 +26,7 @@ ScoreDisplayNormal::ScoreDisplayNormal() LOG->Trace( "ScoreDisplayNormal::ScoreDisplayNormal()" ); // init the text - BitmapText::LoadFromTextureAndChars( THEME->GetPathTo("Graphics","gameplay score numbers 7x2"), "01234 :56789%." ); + BitmapText::LoadFromTextureAndChars( THEME->GetPathTo("Graphics","gameplay score numbers 5x3"), "0123456789%. :x" ); TurnShadowOff(); m_fScore = 0; diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index e9f85e18c4..e13bd136d3 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -33,19 +33,19 @@ #define PERCENT_BASE_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("PercentBaseP%dX",p+1)) #define PERCENT_BASE_Y THEME->GetMetricF("ScreenEvaluation","PercentBaseY") #define JUDGE_LABELS_X THEME->GetMetricF("ScreenEvaluation","JudgeLabelsX") -#define PERFECT_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("PerfectP%dX",p+1)) +#define PERFECT_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Perfect%sP%dX",o?"Oni":"",p+1)) #define PERFECT_Y THEME->GetMetricF("ScreenEvaluation","PerfectY") -#define GREAT_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("GreatP%dX",p+1)) +#define GREAT_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Great%sP%dX",o?"Oni":"",p+1)) #define GREAT_Y THEME->GetMetricF("ScreenEvaluation","GreatY") -#define GOOD_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("GoodP%dX",p+1)) +#define GOOD_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Good%sP%dX",o?"Oni":"",p+1)) #define GOOD_Y THEME->GetMetricF("ScreenEvaluation","GoodY") -#define BOO_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BooP%dX",p+1)) +#define BOO_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Boo%sP%dX",o?"Oni":"",p+1)) #define BOO_Y THEME->GetMetricF("ScreenEvaluation","BooY") -#define MISS_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("MissP%dX",p+1)) +#define MISS_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Miss%sP%dX",o?"Oni":"",p+1)) #define MISS_Y THEME->GetMetricF("ScreenEvaluation","MissY") -#define OK_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("OKP%dX",p+1)) +#define OK_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("OK%sP%dX",o?"Oni":"",p+1)) #define OK_Y THEME->GetMetricF("ScreenEvaluation","OKY") -#define MAX_COMBO_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("MaxComboP%dX",p+1)) +#define MAX_COMBO_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("MaxCombo%sP%dX",o?"Oni":"",p+1)) #define MAX_COMBO_Y THEME->GetMetricF("ScreenEvaluation","MaxComboY") #define SCORE_LABELS_X THEME->GetMetricF("ScreenEvaluation","ScoreLabelsX") #define SCORE_NUMBERS_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("ScoreNumbersP%dX",p+1)) @@ -70,15 +70,15 @@ #define GRADES_GLOW_COLOR_1 THEME->GetMetricC("ScreenEvaluation","GradesGlowColor1") #define GRADES_GLOW_COLOR_2 THEME->GetMetricC("ScreenEvaluation","GradesGlowColor2") -float JUDGE_X( int p, int l ) { +float JUDGE_X( bool oni, int p, int l ) { switch( l ) { - case 0: return PERFECT_X(p); - case 1: return GREAT_X(p); - case 2: return GOOD_X(p); - case 3: return BOO_X(p); - case 4: return MISS_X(p); - case 5: return OK_X(p); - case 6: return MAX_COMBO_X(p); + case 0: return PERFECT_X(oni,p); + case 1: return GREAT_X(oni,p); + case 2: return GOOD_X(oni,p); + case 3: return BOO_X(oni,p); + case 4: return MISS_X(oni,p); + case 5: return OK_X(oni,p); + case 6: return MAX_COMBO_X(oni,p); default: ASSERT(0); return 0; } } @@ -369,7 +369,7 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary ) m_sprPercentFrame[p].SetXY( GRADE_X(p), GRADE_Y ); this->AddChild( &m_sprPercentFrame[p] ); - m_textOniPercentLarge[p].LoadFromTextureAndChars( THEME->GetPathTo("Graphics","evaluation percent numbers 5x3"),"1234567890%. " ); + m_textOniPercentLarge[p].LoadFromTextureAndChars( THEME->GetPathTo("Graphics","evaluation percent numbers 5x3"),"0123456789%. :x" ); m_textOniPercentLarge[p].TurnShadowOff(); m_textOniPercentLarge[p].SetXY( PERCENT_BASE_X(p), PERCENT_BASE_Y ); m_textOniPercentLarge[p].SetHorizAlign( Actor::align_right ); @@ -377,7 +377,7 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary ) m_textOniPercentLarge[p].SetEffectGlowing( 1.0f ); this->AddChild( &m_textOniPercentLarge[p] ); - m_textOniPercentSmall[p].LoadFromTextureAndChars( THEME->GetPathTo("Graphics","evaluation percent numbers 5x3"),"1234567890%. " ); + m_textOniPercentSmall[p].LoadFromTextureAndChars( THEME->GetPathTo("Graphics","evaluation percent numbers 5x3"),"0123456789%. :x" ); m_textOniPercentSmall[p].TurnShadowOff(); m_textOniPercentSmall[p].SetZoom( 0.5f ); m_textOniPercentSmall[p].SetXY( PERCENT_BASE_X(p), PERCENT_BASE_Y ); @@ -401,7 +401,7 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary ) m_sprCourseFrame[p].SetXY( BONUS_X(p), BONUS_Y ); this->AddChild( &m_sprCourseFrame[p] ); - m_textSongsSurvived[p].LoadFromTextureAndChars( THEME->GetPathTo("Graphics","evaluation stage numbers 5x3"),"1234567890%. "); + m_textSongsSurvived[p].LoadFromTextureAndChars( THEME->GetPathTo("Graphics","evaluation stage numbers 5x3"),"0123456789%. :x"); m_textSongsSurvived[p].TurnShadowOff(); m_textSongsSurvived[p].SetXY( SONGS_SURVIVED_X(p), SONGS_SURVIVED_Y ); m_textSongsSurvived[p].SetText( ssprintf("%02d", GAMESTATE->m_iSongsBeforeFail[p]) ); @@ -411,7 +411,7 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary ) case RM_ARCADE_STAGE: case RM_ARCADE_SUMMARY: { - m_sprGradeFrame[p].Load( THEME->GetPathTo("Graphics","evaluation grade frame") ); + m_sprGradeFrame[p].Load( THEME->GetPathTo("Graphics","evaluation grade frame 1x2") ); m_sprGradeFrame[p].StopAnimating(); m_sprGradeFrame[p].SetState( p ); m_sprGradeFrame[p].SetXY( GRADE_X(p), GRADE_Y ); @@ -511,9 +511,9 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary ) for( l=0; lGetPathTo("Graphics","evaluation score numbers 7x2"), "01234 :56789%." ); + m_textJudgeNumbers[l][p].LoadFromTextureAndChars( THEME->GetPathTo("Graphics","evaluation score numbers 5x3"), "0123456789%. :x" ); m_textJudgeNumbers[l][p].TurnShadowOff(); - m_textJudgeNumbers[l][p].SetXY( JUDGE_X(p,l), JUDGE_Y(l) ); + m_textJudgeNumbers[l][p].SetXY( JUDGE_X(m_ResultMode==RM_ONI,p,l), JUDGE_Y(l) ); m_textJudgeNumbers[l][p].SetZoom( 0.7f ); m_textJudgeNumbers[l][p].SetDiffuse( PlayerToColor(p) ); this->AddChild( &m_textJudgeNumbers[l][p] );