SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SkeletalFishJointCalc.cpp
1#include "Game/Boss/SkeletalFishJointCalc.hpp"
2
3void SkeletalFishJointCalc::calcJoint(TPos3f *pOutMtx, const TPos3f *pInMtx, SkeletalFishRailControl *pRailCtrl, const JointControllerInfo &rJointInfo) {
4 pOutMtx->concat(*pInMtx, *pOutMtx);
5 TVec3f pos;
6 f32 z = pOutMtx->mMtx[2][3];
7 f32 y = pOutMtx->mMtx[1][3];
8 f32 x = pOutMtx->mMtx[0][3];
9 pos.set(x, y, z);
10 TMtx34f mtx;
11 f32 negZ = -pos.z;
12
13 mtx.mMtx[0][0] = 1.0f;
14 mtx.mMtx[1][0] = 0.0f;
15 mtx.mMtx[2][0] = 0.0f;
16 mtx.mMtx[0][1] = 0.0f;
17 mtx.mMtx[1][1] = 1.0f;
18 mtx.mMtx[2][1] = 0.0f;
19 mtx.mMtx[0][2] = 0.0f;
20 mtx.mMtx[1][2] = 0.0f;
21 mtx.mMtx[2][2] = 1.0f;
22 mtx.mMtx[0][3] = 0.0f;
23 mtx.mMtx[1][3] = 0.0f;
24 mtx.mMtx[2][3] = negZ;
25
26 pOutMtx->concat(mtx, *pOutMtx);
27 TPos3f railMtx;
28 pRailCtrl->getMtx(&railMtx, -pos.z);
29 pOutMtx->concat(railMtx, *pOutMtx);
30}