multiply the alphas so we can fade even while an effect is playing

This commit is contained in:
Chris Danford
2005-03-26 19:30:10 +00:00
parent 40b6c0c350
commit 6016f34983
+9
View File
@@ -205,15 +205,24 @@ void Actor::BeginDraw() // set the world matrix and calculate actor properties
* (That would have the same effect with 1,1,1,1, and allow tweening the diffuse
* while blinking and shifting.) */
for(int i=0; i<4; i++)
{
m_tempState.diffuse[i] = bBlinkOn ? m_effectColor1 : m_effectColor2;
m_tempState.diffuse[i].a *= fOriginalAlpha; // multiply the alphas so we can fade even while an effect is playing
}
break;
case diffuse_shift:
for(int i=0; i<4; i++)
{
m_tempState.diffuse[i] = m_effectColor1*fPercentBetweenColors + m_effectColor2*(1.0f-fPercentBetweenColors);
m_tempState.diffuse[i].a *= fOriginalAlpha; // multiply the alphas so we can fade even while an effect is playing
}
break;
case diffuse_ramp:
for(int i=0; i<4; i++)
{
m_tempState.diffuse[i] = m_effectColor1*fPercentThroughEffect + m_effectColor2*(1.0f-fPercentThroughEffect);
m_tempState.diffuse[i].a *= fOriginalAlpha; // multiply the alphas so we can fade even while an effect is playing
}
break;
case glow_blink:
m_tempState.glow = bBlinkOn ? m_effectColor1 : m_effectColor2;