| 372 | } |
| 373 | |
| 374 | Vector3 GetJointOffset(GAME_OBJECT_ID objectID, int boneID, bool discardZSign) |
| 375 | { |
| 376 | const auto& object = Objects[objectID]; |
| 377 | int boneIndex = object.boneIndex + (boneID * 4); |
| 378 | |
| 379 | if (g_Level.Bones.size() <= boneIndex) |
| 380 | return Vector3::Zero; |
| 381 | |
| 382 | int* bone = &g_Level.Bones[boneIndex]; |
| 383 | auto offset = Vector3(*(bone + 1), *(bone + 2), *(bone + 3)); |
| 384 | |
| 385 | if (discardZSign) |
| 386 | offset.z = abs(offset.z); |
| 387 | |
| 388 | return offset; |
| 389 | } |
| 390 | |
| 391 | Quaternion GetBoneOrientation(const ItemInfo& item, int boneID) |
| 392 | { |
no test coverage detected