From aec111214444ecd720b048e9a7ccdd4a3ef10c64 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sat, 14 May 2011 19:36:50 -0500 Subject: [PATCH] [ScreenEvaluation] Stop the Bonus bars from overflowing in course modes. --- Docs/Changelog_sm5.txt | 1 + src/ScreenEvaluation.cpp | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index 0ad0e45592..94335c16d0 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -11,6 +11,7 @@ StepMania 5.0 $NEXT | 20110xyy 2011/05/14 ---------- * [MusicWheel] Added ShowSectionsInBPMSort and ShowSectionsInLengthSort metrics. [AJ] +* [ScreenEvaluation] Stop the Bonus bars from overflowing in course modes. [AJ] 2011/05/11 ---------- diff --git a/src/ScreenEvaluation.cpp b/src/ScreenEvaluation.cpp index 76c40f03a1..de756c34fc 100644 --- a/src/ScreenEvaluation.cpp +++ b/src/ScreenEvaluation.cpp @@ -370,6 +370,11 @@ void ScreenEvaluation::Init() // init bonus area if( SHOW_BONUS_AREA ) { + // In course mode, we need to make sure the bar doesn't overflow. -aj + float fDivider = 1.0f; + if( GAMESTATE->IsCourseMode() ) + fDivider = fDivider / GAMESTATE->m_pCurCourse->m_vEntries.size(); + FOREACH_EnabledPlayer( p ) { m_sprBonusFrame[p].Load( THEME->GetPathG(m_sName,ssprintf("BonusFrame p%d",p+1)) ); @@ -382,7 +387,7 @@ void ScreenEvaluation::Init() for( int r=0; rGetPathG(m_sName,ssprintf("BarPossible p%d",p+1)) ); - m_sprPossibleBar[p][r].SetWidth( m_sprPossibleBar[p][r].GetUnzoomedWidth() * m_pStageStats->m_player[p].m_radarPossible[r] ); + m_sprPossibleBar[p][r].SetWidth( m_sprPossibleBar[p][r].GetUnzoomedWidth() * m_pStageStats->m_player[p].m_radarPossible[r] * fDivider ); m_sprPossibleBar[p][r].SetName( ssprintf("BarPossible%dP%d",r+1,p+1) ); ActorUtil::LoadAllCommands( m_sprPossibleBar[p][r], m_sName ); SET_XY( m_sprPossibleBar[p][r] ); @@ -390,7 +395,7 @@ void ScreenEvaluation::Init() m_sprActualBar[p][r].Load( THEME->GetPathG(m_sName,ssprintf("BarActual p%d",p+1)) ); // should be out of the possible bar, not actual (whatever value that is at) - m_sprActualBar[p][r].SetWidth( m_sprPossibleBar[p][r].GetUnzoomedWidth() * m_pStageStats->m_player[p].m_radarActual[r] ); + m_sprActualBar[p][r].SetWidth( m_sprPossibleBar[p][r].GetUnzoomedWidth() * m_pStageStats->m_player[p].m_radarActual[r] * fDivider ); float value = (float)100 * m_sprActualBar[p][r].GetUnzoomedWidth() / m_sprPossibleBar[p][r].GetUnzoomedWidth(); LOG->Trace("Radar bar %d of 5 - %f percent", r, value);