Browse Source

alternate to https://github.com/GarageGames/Torque3D/pull/1602

Azaezel 9 years ago
parent
commit
ad613f2e82
2 changed files with 6 additions and 4 deletions
  1. 5 3
      Engine/source/T3D/lightAnimData.cpp
  2. 1 1
      Engine/source/T3D/lightAnimData.h

+ 5 - 3
Engine/source/T3D/lightAnimData.cpp

@@ -190,13 +190,15 @@ void LightAnimData::AnimValue<COUNT>::updateKey()
 }
 
 template<U32 COUNT>
-bool LightAnimData::AnimValue<COUNT>::animate( F32 time, F32 *output )
+bool LightAnimData::AnimValue<COUNT>::animate(F32 time, F32 *output, bool multiply)
 {
    F32 scaledTime, lerpFactor, valueRange, keyFrameLerp;
    U32 posFrom, posTo;
    S32 keyFrameFrom, keyFrameTo;
    F32 initialValue = *output;
-   
+   if (!multiply)
+      initialValue = 1;
+
    bool wasAnimated = false;
 
    for ( U32 i=0; i < COUNT; i++ )
@@ -305,6 +307,6 @@ void LightAnimData::animate( LightInfo *lightInfo, LightAnimState *state )
    lightInfo->setColor( color );
 
    F32 brightness = state->brightness;
-   mBrightness.animate( time, &brightness );
+   mBrightness.animate( time, &brightness, true );
    lightInfo->setBrightness( brightness );
 }

+ 1 - 1
Engine/source/T3D/lightAnimData.h

@@ -151,7 +151,7 @@ public:
       /// Performs the animation returning the results in the output if
       /// the time scale is greater than zero.
       /// @return Returns true if the animation was performed.
-      bool animate( F32 time, F32 *output );
+      bool animate(F32 time, F32 *output, bool multiply = false);
 
       /// Called when the key string is changed to update the
       /// key length and time scale.