From b4a3dc369ff65362bc675100ff0a32ce8efc894f Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Sat, 31 Aug 2013 15:31:17 -0700 Subject: [PATCH] Fixed bug in animation splitting that would cause curves that don't start at frame 0 to be offset incorrectly --HG-- extra : source : c293b845a630673ed0a62c9855e2f295235e3e28 --- KREngine/kraken/KRAnimationCurve.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/KREngine/kraken/KRAnimationCurve.cpp b/KREngine/kraken/KRAnimationCurve.cpp index b85ad15..8c6d8eb 100644 --- a/KREngine/kraken/KRAnimationCurve.cpp +++ b/KREngine/kraken/KRAnimationCurve.cpp @@ -127,7 +127,7 @@ void KRAnimationCurve::setFrameStart(int frame_number) float KRAnimationCurve::getValue(int frame_number) { //printf("frame_number: %i\n", frame_number); - int clamped_frame = frame_number; + int clamped_frame = frame_number - getFrameStart(); if(frame_number < 0) { clamped_frame = 0; } else if(frame_number >= getFrameCount()) { @@ -139,9 +139,10 @@ float KRAnimationCurve::getValue(int frame_number) void KRAnimationCurve::setValue(int frame_number, float value) { - if(frame_number >= 0 && frame_number < getFrameCount()) { + int clamped_frame = frame_number - getFrameStart(); + if(clamped_frame >= 0 && clamped_frame < getFrameCount()) { float *frame_data = (float *)((char *)m_pData->getStart() + sizeof(animation_curve_header)); - frame_data[frame_number] = value; + frame_data[clamped_frame] = value; } }