|
|
@ -847,8 +847,8 @@ void R_StudioCalcRotations( cl_entity_t *e, float pos[][3], vec4_t *q, mstudiose |
|
|
|
|
|
|
|
|
|
|
|
for( i = 0; i < m_pStudioHeader->numbones; i++, pbone++, panim++ ) |
|
|
|
for( i = 0; i < m_pStudioHeader->numbones; i++, pbone++, panim++ ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
gEngfuncs.R_StudioCalcBoneQuaternion( frame, s, pbone, panim, adj, q[i] ); |
|
|
|
R_StudioCalcBoneQuaternion( frame, s, pbone, panim, adj, q[i] ); |
|
|
|
gEngfuncs.R_StudioCalcBonePosition( frame, s, pbone, panim, adj, pos[i] ); |
|
|
|
R_StudioCalcBonePosition( frame, s, pbone, panim, adj, pos[i] ); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if( pseqdesc->motiontype & STUDIO_X ) pos[pseqdesc->motionbone][0] = 0.0f; |
|
|
|
if( pseqdesc->motiontype & STUDIO_X ) pos[pseqdesc->motionbone][0] = 0.0f; |
|
|
@ -960,7 +960,7 @@ void R_StudioSetupBones( cl_entity_t *e ) |
|
|
|
dadt = R_StudioEstimateInterpolant( e ); |
|
|
|
dadt = R_StudioEstimateInterpolant( e ); |
|
|
|
s = (e->curstate.blending[0] * dadt + e->latched.prevblending[0] * (1.0f - dadt)) / 255.0f; |
|
|
|
s = (e->curstate.blending[0] * dadt + e->latched.prevblending[0] * (1.0f - dadt)) / 255.0f; |
|
|
|
|
|
|
|
|
|
|
|
gEngfuncs.R_StudioSlerpBones( m_pStudioHeader->numbones, q, pos, q2, pos2, s ); |
|
|
|
R_StudioSlerpBones( m_pStudioHeader->numbones, q, pos, q2, pos2, s ); |
|
|
|
|
|
|
|
|
|
|
|
if( pseqdesc->numblends == 4 ) |
|
|
|
if( pseqdesc->numblends == 4 ) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -971,10 +971,10 @@ void R_StudioSetupBones( cl_entity_t *e ) |
|
|
|
R_StudioCalcRotations( e, pos4, q4, pseqdesc, panim, f ); |
|
|
|
R_StudioCalcRotations( e, pos4, q4, pseqdesc, panim, f ); |
|
|
|
|
|
|
|
|
|
|
|
s = (e->curstate.blending[0] * dadt + e->latched.prevblending[0] * (1.0f - dadt)) / 255.0f; |
|
|
|
s = (e->curstate.blending[0] * dadt + e->latched.prevblending[0] * (1.0f - dadt)) / 255.0f; |
|
|
|
gEngfuncs.R_StudioSlerpBones( m_pStudioHeader->numbones, q3, pos3, q4, pos4, s ); |
|
|
|
R_StudioSlerpBones( m_pStudioHeader->numbones, q3, pos3, q4, pos4, s ); |
|
|
|
|
|
|
|
|
|
|
|
s = (e->curstate.blending[1] * dadt + e->latched.prevblending[1] * (1.0f - dadt)) / 255.0f; |
|
|
|
s = (e->curstate.blending[1] * dadt + e->latched.prevblending[1] * (1.0f - dadt)) / 255.0f; |
|
|
|
gEngfuncs.R_StudioSlerpBones( m_pStudioHeader->numbones, q, pos, q3, pos3, s ); |
|
|
|
R_StudioSlerpBones( m_pStudioHeader->numbones, q, pos, q3, pos3, s ); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -997,7 +997,7 @@ void R_StudioSetupBones( cl_entity_t *e ) |
|
|
|
R_StudioCalcRotations( e, pos2, q2, pseqdesc, panim, e->latched.prevframe ); |
|
|
|
R_StudioCalcRotations( e, pos2, q2, pseqdesc, panim, e->latched.prevframe ); |
|
|
|
|
|
|
|
|
|
|
|
s = (e->latched.prevseqblending[0]) / 255.0f; |
|
|
|
s = (e->latched.prevseqblending[0]) / 255.0f; |
|
|
|
gEngfuncs.R_StudioSlerpBones( m_pStudioHeader->numbones, q1b, pos1b, q2, pos2, s ); |
|
|
|
R_StudioSlerpBones( m_pStudioHeader->numbones, q1b, pos1b, q2, pos2, s ); |
|
|
|
|
|
|
|
|
|
|
|
if( pseqdesc->numblends == 4 ) |
|
|
|
if( pseqdesc->numblends == 4 ) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -1008,15 +1008,15 @@ void R_StudioSetupBones( cl_entity_t *e ) |
|
|
|
R_StudioCalcRotations( e, pos4, q4, pseqdesc, panim, e->latched.prevframe ); |
|
|
|
R_StudioCalcRotations( e, pos4, q4, pseqdesc, panim, e->latched.prevframe ); |
|
|
|
|
|
|
|
|
|
|
|
s = (e->latched.prevseqblending[0]) / 255.0f; |
|
|
|
s = (e->latched.prevseqblending[0]) / 255.0f; |
|
|
|
gEngfuncs.R_StudioSlerpBones( m_pStudioHeader->numbones, q3, pos3, q4, pos4, s ); |
|
|
|
R_StudioSlerpBones( m_pStudioHeader->numbones, q3, pos3, q4, pos4, s ); |
|
|
|
|
|
|
|
|
|
|
|
s = (e->latched.prevseqblending[1]) / 255.0f; |
|
|
|
s = (e->latched.prevseqblending[1]) / 255.0f; |
|
|
|
gEngfuncs.R_StudioSlerpBones( m_pStudioHeader->numbones, q1b, pos1b, q3, pos3, s ); |
|
|
|
R_StudioSlerpBones( m_pStudioHeader->numbones, q1b, pos1b, q3, pos3, s ); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
s = 1.0f - ( g_studio.time - e->latched.sequencetime ) / 0.2f; |
|
|
|
s = 1.0f - ( g_studio.time - e->latched.sequencetime ) / 0.2f; |
|
|
|
gEngfuncs.R_StudioSlerpBones( m_pStudioHeader->numbones, q, pos, q1b, pos1b, s ); |
|
|
|
R_StudioSlerpBones( m_pStudioHeader->numbones, q, pos, q1b, pos1b, s ); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|