From 8b5f3c3e5521fb48c0b38b2c686c3f079c6da384 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 4 Apr 2005 09:21:16 +0000 Subject: [PATCH] fix bogus initial calorie number --- stepmania/src/ScoreDisplayCalories.cpp | 18 ++++++++++++++---- stepmania/src/ScoreDisplayCalories.h | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/stepmania/src/ScoreDisplayCalories.cpp b/stepmania/src/ScoreDisplayCalories.cpp index caf25c6a17..693557e722 100644 --- a/stepmania/src/ScoreDisplayCalories.cpp +++ b/stepmania/src/ScoreDisplayCalories.cpp @@ -37,11 +37,19 @@ void ScoreDisplayCalories::LoadFromNode( const CString& sDir, const XNode* pNode m_sMessageOnStep = ssprintf("StepP%d",m_PlayerNumber+1); - UpdateNumber(); - MESSAGEMAN->Subscribe( this, m_sMessageOnStep ); } +void ScoreDisplayCalories::Update( float fDelta ) +{ + // We have to set the initial text after StatsManager::CalcAccumStageStats + // is called. + if( IsFirstUpdate() ) + UpdateNumber(); + + RollingNumbers::Update( fDelta ); +} + void ScoreDisplayCalories::PlayCommand( const CString &sCommandName ) { if( sCommandName == m_sMessageOnStep ) @@ -54,8 +62,10 @@ void ScoreDisplayCalories::PlayCommand( const CString &sCommandName ) void ScoreDisplayCalories::UpdateNumber() { - float fCals = STATSMAN->m_CurStageStats.m_player[m_PlayerNumber].fCaloriesBurned; - fCals += STATSMAN->GetAccumStageStats().m_player[m_PlayerNumber].fCaloriesBurned; + float fCals = + STATSMAN->GetAccumStageStats().m_player[m_PlayerNumber].fCaloriesBurned + + STATSMAN->m_CurStageStats.m_player[m_PlayerNumber].fCaloriesBurned; + SetTargetNumber( fCals ); } diff --git a/stepmania/src/ScoreDisplayCalories.h b/stepmania/src/ScoreDisplayCalories.h index aa265678b5..31c7dcfeb7 100644 --- a/stepmania/src/ScoreDisplayCalories.h +++ b/stepmania/src/ScoreDisplayCalories.h @@ -26,6 +26,8 @@ public: ScoreDisplayCalories(); ~ScoreDisplayCalories(); + virtual void Update( float fDelta ); + void LoadFromNode( const CString& sDir, const XNode* pNode ); void PlayCommand( const CString &sCommandName );