replay-interpolation: scale-factor based on time between frames has been calculated for each kart in the loop, we just need it to be calculated once ..
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@1264 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
952e4629d8
commit
c1ed88df9c
@ -127,8 +127,12 @@ void ReplayPlayer::showReplayAt( float abs_time )
|
|||||||
{
|
{
|
||||||
ReplayFrame const* frame_next = m_ReplayBuffers.getFrameAt( m_current_frame_index+1 );
|
ReplayFrame const* frame_next = m_ReplayBuffers.getFrameAt( m_current_frame_index+1 );
|
||||||
|
|
||||||
|
// calc scale factor based on time between frames
|
||||||
|
assert( frame_next->time > frame->time );
|
||||||
|
assert( frame_next->time != frame->time );
|
||||||
|
float scale = (abs_time - frame->time) / (frame_next->time - frame->time);
|
||||||
|
|
||||||
sgVec3 tmp_v3;
|
sgVec3 tmp_v3;
|
||||||
float scale;
|
|
||||||
sgCoord pos;
|
sgCoord pos;
|
||||||
|
|
||||||
// calc interpolations for all objects
|
// calc interpolations for all objects
|
||||||
@ -139,10 +143,7 @@ void ReplayPlayer::showReplayAt( float abs_time )
|
|||||||
sgCopyVec3( tmp_v3, frame_next->p_kart_states[k].position.xyz ) ;
|
sgCopyVec3( tmp_v3, frame_next->p_kart_states[k].position.xyz ) ;
|
||||||
sgSubVec3( tmp_v3, pos.xyz );
|
sgSubVec3( tmp_v3, pos.xyz );
|
||||||
|
|
||||||
// calc scale factor based on time between frames
|
// scale it based on time between frames
|
||||||
assert( frame_next->time > frame->time );
|
|
||||||
assert( frame_next->time != frame->time );
|
|
||||||
scale = (abs_time - frame->time) / (frame_next->time - frame->time);
|
|
||||||
sgScaleVec3( tmp_v3, scale );
|
sgScaleVec3( tmp_v3, scale );
|
||||||
|
|
||||||
// add interpolated vector
|
// add interpolated vector
|
||||||
|
Loading…
x
Reference in New Issue
Block a user