Browse Source

utils: mdldec: smd.c: linear movement loss fix.

pull/2/head
Andrey Akhmichin 1 year ago committed by Alibek Omarov
parent
commit
26ef3e274c
  1. 5
      utils/mdldec/smd.c

5
utils/mdldec/smd.c

@ -383,6 +383,7 @@ WriteFrameInfo
static void WriteFrameInfo( FILE *fp, mstudioanim_t *anim, mstudioseqdesc_t *seqdesc, int frame ) static void WriteFrameInfo( FILE *fp, mstudioanim_t *anim, mstudioseqdesc_t *seqdesc, int frame )
{ {
int i, j; int i, j;
float scale;
vec_t motion[6]; // x, y, z, xr, yr, zr vec_t motion[6]; // x, y, z, xr, yr, zr
mstudiobone_t *bone; mstudiobone_t *bone;
@ -396,8 +397,10 @@ static void WriteFrameInfo( FILE *fp, mstudioanim_t *anim, mstudioseqdesc_t *seq
if( bone->parent == -1 ) if( bone->parent == -1 )
{ {
scale = frame / (float)( seqdesc->numframes - 1 );
for( j = 0; j < 3; j++ ) for( j = 0; j < 3; j++ )
motion[j] += frame * 1.0f / seqdesc->numframes * seqdesc->linearmovement[j]; motion[j] += scale * seqdesc->linearmovement[j];
ProperBoneRotationZ( motion, 270.0f ); ProperBoneRotationZ( motion, 270.0f );
} }

Loading…
Cancel
Save