mirror of
https://github.com/dhewm/dhewm3-sdk.git
synced 2024-11-22 12:41:48 +00:00
3c96e19610 for d3xp/ - fix miscompilation with gcc 4.5
idAnimator::GetJointLocalTransform() miscompiles with gcc 4.5 and -ftree-vrp (implied by -O2). Reorder code to avoid the compiler bug, no functional change. The original commit was for game/ only, but d3xp/ will have the same issues..
This commit is contained in:
parent
ba549be284
commit
63aa4b1036
1 changed files with 8 additions and 6 deletions
|
@ -4558,15 +4558,17 @@ bool idAnimator::GetJointLocalTransform( jointHandle_t jointHandle, int currentT
|
||||||
// FIXME: overkill
|
// FIXME: overkill
|
||||||
CreateFrame( currentTime, false );
|
CreateFrame( currentTime, false );
|
||||||
|
|
||||||
if ( jointHandle > 0 ) {
|
if ( jointHandle == 0 ) {
|
||||||
|
offset = joints[ jointHandle ].ToVec3();
|
||||||
|
axis = joints[ jointHandle ].ToMat3();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
idJointMat m = joints[ jointHandle ];
|
idJointMat m = joints[ jointHandle ];
|
||||||
m /= joints[ modelJoints[ jointHandle ].parentNum ];
|
m /= joints[ modelJoints[ jointHandle ].parentNum ];
|
||||||
offset = m.ToVec3();
|
offset = m.ToVec3();
|
||||||
axis = m.ToMat3();
|
axis = m.ToMat3();
|
||||||
} else {
|
|
||||||
offset = joints[ jointHandle ].ToVec3();
|
|
||||||
axis = joints[ jointHandle ].ToMat3();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue