From d4f96aa3a64ee2bb085e53dff3b80e0b2be1f9ba Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 12 Feb 2007 22:38:09 +0000 Subject: [PATCH] load metrics on demand --- stepmania/src/LifeMeterBar.cpp | 40 +++++++++++++++++----------------- stepmania/src/LifeMeterBar.h | 11 ++++++++++ 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/stepmania/src/LifeMeterBar.cpp b/stepmania/src/LifeMeterBar.cpp index fc2543fd24..02d80e82e8 100644 --- a/stepmania/src/LifeMeterBar.cpp +++ b/stepmania/src/LifeMeterBar.cpp @@ -17,18 +17,18 @@ #include "Course.h" static RString LIFE_PERCENT_CHANGE_NAME( size_t i ) { return "LifePercentChange" + ScoreEventToString( (ScoreEvent)i ); } -static ThemeMetric1D g_fLifePercentChange( "LifeMeterBar", LIFE_PERCENT_CHANGE_NAME, NUM_ScoreEvent ); - -static ThemeMetric METER_WIDTH ("LifeMeterBar","MeterWidth"); -static ThemeMetric METER_HEIGHT ("LifeMeterBar","MeterHeight"); -static ThemeMetric DANGER_THRESHOLD ("LifeMeterBar","DangerThreshold"); -static ThemeMetric NUM_CHAMBERS ("LifeMeterBar","NumChambers"); -static ThemeMetric NUM_STRIPS ("LifeMeterBar","NumStrips"); -static ThemeMetric INITIAL_VALUE ("LifeMeterBar","InitialValue"); -static ThemeMetric MIN_STAY_ALIVE ("LifeMeterBar","MinStayAlive"); LifeMeterBar::LifeMeterBar() { + METER_WIDTH.Load ("LifeMeterBar","MeterWidth"); + METER_HEIGHT.Load ("LifeMeterBar","MeterHeight"); + DANGER_THRESHOLD.Load ("LifeMeterBar","DangerThreshold"); + NUM_CHAMBERS.Load ("LifeMeterBar","NumChambers"); + NUM_STRIPS.Load ("LifeMeterBar","NumStrips"); + INITIAL_VALUE.Load ("LifeMeterBar","InitialValue"); + MIN_STAY_ALIVE.Load ("LifeMeterBar","MinStayAlive"); + m_fLifePercentChange.Load( "LifeMeterBar", LIFE_PERCENT_CHANGE_NAME, NUM_ScoreEvent ); + m_pPlayerState = NULL; switch( GAMESTATE->m_SongOptions.GetStage().m_DrainType ) @@ -127,14 +127,14 @@ void LifeMeterBar::ChangeLife( TapNoteScore score ) switch( score ) { DEFAULT_FAIL( score ); - case TNS_W1: fDeltaLife = g_fLifePercentChange.GetValue(SE_W1); break; - case TNS_W2: fDeltaLife = g_fLifePercentChange.GetValue(SE_W2); break; - case TNS_W3: fDeltaLife = g_fLifePercentChange.GetValue(SE_W3); break; - case TNS_W4: fDeltaLife = g_fLifePercentChange.GetValue(SE_W4); break; - case TNS_W5: fDeltaLife = g_fLifePercentChange.GetValue(SE_W5); break; - case TNS_Miss: fDeltaLife = g_fLifePercentChange.GetValue(SE_Miss); break; - case TNS_HitMine: fDeltaLife = g_fLifePercentChange.GetValue(SE_HitMine); break; - case TNS_None: fDeltaLife = g_fLifePercentChange.GetValue(SE_Miss); break; + case TNS_W1: fDeltaLife = m_fLifePercentChange.GetValue(SE_W1); break; + case TNS_W2: fDeltaLife = m_fLifePercentChange.GetValue(SE_W2); break; + case TNS_W3: fDeltaLife = m_fLifePercentChange.GetValue(SE_W3); break; + case TNS_W4: fDeltaLife = m_fLifePercentChange.GetValue(SE_W4); break; + case TNS_W5: fDeltaLife = m_fLifePercentChange.GetValue(SE_W5); break; + case TNS_Miss: fDeltaLife = m_fLifePercentChange.GetValue(SE_Miss); break; + case TNS_HitMine: fDeltaLife = m_fLifePercentChange.GetValue(SE_HitMine); break; + case TNS_None: fDeltaLife = m_fLifePercentChange.GetValue(SE_Miss); break; } if( IsHot() && score < TNS_W4 ) fDeltaLife = -0.10f; // make it take a while to get back to "hot" @@ -166,8 +166,8 @@ void LifeMeterBar::ChangeLife( HoldNoteScore score, TapNoteScore tscore ) case SongOptions::DRAIN_NORMAL: switch( score ) { - case HNS_Held: fDeltaLife = g_fLifePercentChange.GetValue(SE_Held); break; - case HNS_LetGo: fDeltaLife = g_fLifePercentChange.GetValue(SE_LetGo); break; + case HNS_Held: fDeltaLife = m_fLifePercentChange.GetValue(SE_Held); break; + case HNS_LetGo: fDeltaLife = m_fLifePercentChange.GetValue(SE_LetGo); break; default: ASSERT(0); } @@ -178,7 +178,7 @@ void LifeMeterBar::ChangeLife( HoldNoteScore score, TapNoteScore tscore ) switch( score ) { case HNS_Held: fDeltaLife = +0.000f; break; - case HNS_LetGo: fDeltaLife = g_fLifePercentChange.GetValue(SE_LetGo); break; + case HNS_LetGo: fDeltaLife = m_fLifePercentChange.GetValue(SE_LetGo); break; default: ASSERT(0); } diff --git a/stepmania/src/LifeMeterBar.h b/stepmania/src/LifeMeterBar.h index 089187d038..ca9558b046 100644 --- a/stepmania/src/LifeMeterBar.h +++ b/stepmania/src/LifeMeterBar.h @@ -5,6 +5,7 @@ #include "Sprite.h" #include "AutoActor.h" #include "Quad.h" +#include "ThemeMetric.h" class StreamDisplay; @@ -33,6 +34,16 @@ public: // this function is solely for HowToPlay private: + ThemeMetric METER_WIDTH; + ThemeMetric METER_HEIGHT; + ThemeMetric DANGER_THRESHOLD; + ThemeMetric NUM_CHAMBERS; + ThemeMetric NUM_STRIPS; + ThemeMetric INITIAL_VALUE; + ThemeMetric MIN_STAY_ALIVE; + + ThemeMetric1D m_fLifePercentChange; + AutoActor m_sprBackground; Quad m_quadDangerGlow; StreamDisplay* m_pStream;