always update m_fSecsIntoEffect

add GetEffectDeltaTime() to allow easy access to the effect timer
This commit is contained in:
Glenn Maynard
2004-10-18 04:19:20 +00:00
parent 0634c55431
commit 1e7e57a1c8
2 changed files with 25 additions and 17 deletions
+20 -16
View File
@@ -30,6 +30,7 @@ void Actor::Reset()
m_Effect = no_effect;
m_fSecsIntoEffect = 0;
m_fEffectDelta = 0;
m_fEffectPeriodSeconds = 1;
m_fEffectDelay = 0;
m_fEffectOffset = 0;
@@ -305,6 +306,25 @@ void Actor::Update( float fDeltaTime )
if( m_fHibernateSecondsLeft > 0 )
return;
switch( m_EffectClock )
{
case CLOCK_TIMER:
m_fSecsIntoEffect += fDeltaTime;
m_fEffectDelta = fDeltaTime;
m_fSecsIntoEffect = fmodfp( m_fSecsIntoEffect, m_fEffectPeriodSeconds + m_fEffectDelay );
break;
case CLOCK_BGM_BEAT:
m_fEffectDelta = g_fCurrentBGMBeat - m_fSecsIntoEffect;
m_fSecsIntoEffect = g_fCurrentBGMBeat;
break;
case CLOCK_BGM_TIME:
m_fEffectDelta = g_fCurrentBGMTime - m_fSecsIntoEffect;
m_fSecsIntoEffect = g_fCurrentBGMTime;
break;
}
// update effect
switch( m_Effect )
{
@@ -319,22 +339,6 @@ void Actor::Update( float fDeltaTime )
case bounce:
case bob:
case pulse:
switch( m_EffectClock )
{
case CLOCK_TIMER:
m_fSecsIntoEffect += fDeltaTime;
m_fSecsIntoEffect = fmodfp( m_fSecsIntoEffect, m_fEffectPeriodSeconds + m_fEffectDelay );
break;
case CLOCK_BGM_BEAT:
m_fSecsIntoEffect = g_fCurrentBGMBeat;
break;
case CLOCK_BGM_TIME:
m_fSecsIntoEffect = g_fCurrentBGMTime;
break;
}
break;
case spin:
m_current.rotation += fDeltaTime*m_vEffectMagnitude;
+5 -1
View File
@@ -364,12 +364,16 @@ protected:
// Stuff for effects
//
Effect m_Effect;
float m_fSecsIntoEffect;
float m_fSecsIntoEffect, m_fEffectDelta;
float m_fEffectPeriodSeconds;
float m_fEffectDelay;
float m_fEffectOffset;
EffectClock m_EffectClock;
/* This can be used in lieu of the fDeltaTime parameter to Update() to
* follow the effect clock. Actor::Update must be called first. */
float GetEffectDeltaTime() const { return m_fEffectDelta; }
RageColor m_effectColor1;
RageColor m_effectColor2;
RageVector3 m_vEffectMagnitude;