finally got it to work with a another hack inside that hack.
This commit is contained in:
+6
-5
@@ -311,6 +311,11 @@ void Actor::BeginDraw() // set the world matrix and calculate actor properties
|
||||
m_pTempState = &tempState;
|
||||
tempState = m_current;
|
||||
|
||||
// XXX HACK! We can't really determine the active player outside Draw() so
|
||||
// figure it out just for this clock type here.
|
||||
if( m_EffectClock == CLOCK_BGM_BEAT_PLAYER_ACTIVE )
|
||||
m_fSecsIntoEffect = g_vfCurrentBGMBeatPlayerNoOffset[m_ActivePlayerNumber];
|
||||
|
||||
const float fTotalPeriod = GetEffectPeriod();
|
||||
ASSERT( fTotalPeriod > 0 );
|
||||
const float fTimeIntoEffect = fmodfp( m_fSecsIntoEffect+m_fEffectOffset, fTotalPeriod );
|
||||
@@ -680,16 +685,12 @@ void Actor::UpdateInternal( float fDeltaTime )
|
||||
break;
|
||||
}
|
||||
|
||||
case CLOCK_BGM_BEAT_PLAYER_ACTIVE:
|
||||
case CLOCK_BGM_BEAT:
|
||||
m_fEffectDelta = g_fCurrentBGMBeat - m_fSecsIntoEffect;
|
||||
m_fSecsIntoEffect = g_fCurrentBGMBeat;
|
||||
break;
|
||||
|
||||
case CLOCK_BGM_BEAT_PLAYER_ACTIVE:
|
||||
m_fEffectDelta = g_vfCurrentBGMBeatPlayer[m_ActivePlayerNumber] - m_fSecsIntoEffect;
|
||||
m_fSecsIntoEffect = g_vfCurrentBGMBeatPlayerNoOffset[m_ActivePlayerNumber];
|
||||
break;
|
||||
|
||||
case CLOCK_BGM_BEAT_PLAYER1:
|
||||
m_fEffectDelta = g_vfCurrentBGMBeatPlayer[PLAYER_1] - m_fSecsIntoEffect;
|
||||
m_fSecsIntoEffect = g_vfCurrentBGMBeatPlayerNoOffset[PLAYER_1];
|
||||
|
||||
@@ -768,6 +768,8 @@ void NoteField::DrawPrimitives()
|
||||
{
|
||||
|
||||
// XXX Hack: Set Actor's active player number so the notes get the flashing that matches the steps.
|
||||
// save the active player number (so they can nest)
|
||||
PlayerNumber pnLastActivePlayerNumber = m_pPlayerState->m_PlayerNumber;
|
||||
Actor::m_ActivePlayerNumber = m_pPlayerState->m_PlayerNumber;
|
||||
|
||||
//LOG->Trace( "NoteField::DrawPrimitives()" );
|
||||
@@ -1252,6 +1254,9 @@ void NoteField::DrawPrimitives()
|
||||
}
|
||||
|
||||
cur->m_GhostArrowRow.Draw();
|
||||
|
||||
// restore the active player number
|
||||
Actor::m_ActivePlayerNumber = pnLastActivePlayerNumber;
|
||||
}
|
||||
|
||||
void NoteField::FadeToFail()
|
||||
|
||||
Reference in New Issue
Block a user