always update m_fSecsIntoEffect
add GetEffectDeltaTime() to allow easy access to the effect timer
This commit is contained in:
+20
-16
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user