diff --git a/stepmania/src/StreamDisplay.cpp b/stepmania/src/StreamDisplay.cpp index 598e66a3d4..800d120597 100644 --- a/stepmania/src/StreamDisplay.cpp +++ b/stepmania/src/StreamDisplay.cpp @@ -1,7 +1,20 @@ #include "global.h" #include "StreamDisplay.h" #include "GameState.h" +#include +StreamDisplay::StreamDisplay() +{ + m_fMeterHeight = 1; + m_fMeterWidth = 1; + m_iNumStrips = 1; + m_iNumChambers = 1; + m_fPercent = 0; + m_fTrailingPercent = 0; + m_fVelocity = 0; + m_fPassingAlpha = 0; + m_fHotAlpha = 0; +} void StreamDisplay::Load( float fMeterWidth, @@ -111,7 +124,18 @@ void StreamDisplay::DrawPrimitives() void StreamDisplay::SetPercent( float fPercent ) { - ASSERT( fPercent >= 0.0f && fPercent <= 1.0f ); + DEBUG_ASSERT( fPercent >= 0.0f && fPercent <= 1.0f ); + if( _isnan(fPercent) ) + { + DEBUG_ASSERT_M( 0, "fPercent is NaN" ); + fPercent = 1; + } + if( !_finite(fPercent) ) + { + DEBUG_ASSERT_M( 0, "fPercent is infinite" ); + fPercent = 1; + } + float fDeltaPercent = fPercent - m_fPercent; m_fVelocity += fDeltaPercent; m_fPercent = fPercent; diff --git a/stepmania/src/StreamDisplay.h b/stepmania/src/StreamDisplay.h index 8e4e67e4ef..6afe19d2fa 100644 --- a/stepmania/src/StreamDisplay.h +++ b/stepmania/src/StreamDisplay.h @@ -7,16 +7,7 @@ class StreamDisplay : public Actor { public: - StreamDisplay() - { - m_fMeterWidth = 0; - m_fMeterHeight = 0; - m_iNumStrips = 1; - m_iNumChambers = 1; - m_fPercent = 0; - m_fPassingAlpha = 0; - m_fHotAlpha = 0; - } + StreamDisplay(); virtual void Update( float fDeltaSecs ); diff --git a/stepmania/src/global.h b/stepmania/src/global.h index a0b084546b..118def675b 100644 --- a/stepmania/src/global.h +++ b/stepmania/src/global.h @@ -110,9 +110,11 @@ void ShowWarning( const char *file, int line, const char *message ); // don't pu #define WARN(MESSAGE) (ShowWarning(__FILE__, __LINE__, MESSAGE)) #ifdef DEBUG -#define DEBUG_ASSERT(x) ASSERT(x) +#define DEBUG_ASSERT(x) ASSERT(x) +#define DEBUG_ASSERT_M(x,y) ASSERT_M(x,y) #else #define DEBUG_ASSERT(x) +#define DEBUG_ASSERT_M(x,y) #endif /* Define a macro to tell the compiler that a function has printf() semantics, to