| 363 | } |
| 364 | |
| 365 | static void GetBonePos(xVec3* result, xMat4x3* matArray, S32 index, xVec3* offset) |
| 366 | { |
| 367 | xMat4x3 tmpMat; |
| 368 | |
| 369 | if (index == 0) |
| 370 | { |
| 371 | xMat3x3RMulVec(result, matArray, offset); |
| 372 | xVec3AddTo(result, &matArray->pos); |
| 373 | } |
| 374 | else |
| 375 | { |
| 376 | xMat4x3Mul(&tmpMat, &matArray[index], matArray); |
| 377 | |
| 378 | if (offset) |
| 379 | { |
| 380 | xMat3x3RMulVec(result, &tmpMat, offset); |
| 381 | xVec3AddTo(result, &tmpMat.pos); |
| 382 | } |
| 383 | else |
| 384 | { |
| 385 | xVec3Copy(result, &tmpMat.pos); |
| 386 | } |
| 387 | } |
| 388 | } |
| 389 | |
| 390 | static void Pat_ResetGlobalStuff() |
| 391 | { |
no test coverage detected