Skip to content

Commit 32e576a

Browse files
committed
Merge branch 'master' into mobile_hacks
2 parents 32fb8fd + 836bcd0 commit 32e576a

File tree

12 files changed

+690
-852
lines changed

12 files changed

+690
-852
lines changed

Android.mk

Lines changed: 0 additions & 1 deletion
This file was deleted.

cl_dll/Android.mk

Lines changed: 0 additions & 115 deletions
This file was deleted.

cl_dll/StudioModelRenderer.cpp

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,6 @@ StudioSlerpBones
339339
void CStudioModelRenderer::StudioSlerpBones( vec4_t q1[], float pos1[][3], vec4_t q2[], float pos2[][3], float s )
340340
{
341341
int i;
342-
vec4_t q3;
343342
float s1;
344343

345344
if( s < 0.0f )
@@ -349,13 +348,28 @@ void CStudioModelRenderer::StudioSlerpBones( vec4_t q1[], float pos1[][3], vec4_
349348

350349
s1 = 1.0f - s;
351350

351+
switch (m_pStudioHeader->numbones % 4)
352+
{
353+
case 3:
354+
QuaternionSlerp( q1[0], q2[0], s, q1[0] );
355+
QuaternionSlerp( q1[1], q2[1], s, q1[1] );
356+
QuaternionSlerp( q1[2], q2[2], s, q1[2] );
357+
break;
358+
case 2:
359+
QuaternionSlerp( q1[0], q2[0], s, q1[0] );
360+
QuaternionSlerp( q1[1], q2[1], s, q1[1] );
361+
break;
362+
case 1:
363+
QuaternionSlerp( q1[0], q2[0], s, q1[0] );
364+
break;
365+
case 0:
366+
break;
367+
}
368+
for ( i = m_pStudioHeader->numbones % 4; i < m_pStudioHeader->numbones; i += 4 )
369+
QuaternionSlerpX4( q1 + i, q2 + i, s, q1 + i );
370+
352371
for( i = 0; i < m_pStudioHeader->numbones; i++ )
353372
{
354-
QuaternionSlerp( q1[i], q2[i], s, q3 );
355-
q1[i][0] = q3[0];
356-
q1[i][1] = q3[1];
357-
q1[i][2] = q3[2];
358-
q1[i][3] = q3[3];
359373
pos1[i][0] = pos1[i][0] * s1 + pos2[i][0] * s;
360374
pos1[i][1] = pos1[i][1] * s1 + pos2[i][1] * s;
361375
pos1[i][2] = pos1[i][2] * s1 + pos2[i][2] * s;

0 commit comments

Comments
 (0)