SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
CameraHeightArrange.cpp
1#include "Game/Camera/Camera.hpp"
2#include "Game/Camera/CameraHeightArrange.hpp"
3#include "Game/Camera/CameraPoseParam.hpp"
4#include "Game/Camera/CameraTargetObj.hpp"
5
6bool CameraTargetObj::isFastDrop() const {
7 return false;
8}
9
10bool CameraTargetObj::isFastRise() const {
11 return false;
12}
13
14CameraHeightArrange::CameraHeightArrange(Camera *pCamera) : NameObj("CameraHeightArrange") {
15 mCamera = pCamera;
16 _10 = 0;
17 _11 = 0;
18 _12 = 0;
19 _14 = new CameraPoseParam();
20 _18 = new CameraPoseParam();
21 _28 = 0.0f;
22 _2C = 0.0f;
23 _30 = 0.0f;
24 _34 = 0.0f;
25 _38 = 0.0f;
26 _3C = 0.0f;
27 _40 = 0;
28 _44 = 0;
29 _4C = 0;
30 _50 = 0;
31 _54 = 0;
32 _58 = 0;
33 _5C = 0;
34 _60 = 0;
35 mGlobalAxis.x = 0.0f;
36 mGlobalAxis.y = 1.0f;
37 mGlobalAxis.z = 0.0f;
38 _70 = 0.1f;
39 _74 = 15.0f;
40 mUpper = 0.3f;
41 mLower = 0.1f;
42 mGndInt = 160;
43 mUPlay = 500.0f;
44 mLPlay = 800.0f;
45 mPushDelay = 120;
46 mPushDelayLow = 120;
47 mUDown = 120;
48 mVPanUse = 1;
49 mVPanAxis.x = 0.0f;
50 mVPanAxis.y = 1.0f;
51 mVPanAxis.z = 0.0f;
52}
53
54void CameraHeightArrange::resetJump() {
55 _10 = 0;
56 _11 = 0;
57 _12 = 0;
58}
59
60void CameraHeightArrange::resetParameter() {
61 _70 = 0.1f;
62 _74 = 15.0f;
63 mUpper = 0.3f;
64 mLower = 0.1f;
65 mGndInt = 160;
66 mUPlay = 500.0f;
67 mLPlay = 800.0f;
68 mPushDelay = 120;
69 mPushDelayLow = 120;
70 mUDown = 120;
71 mVPanUse = 1;
72 mVPanAxis.x = 0.0f;
73 mVPanAxis.y = 1.0f;
74 mVPanAxis.z = 0.0f;
75 mGlobalAxis.x = 0.0f;
76 mGlobalAxis.y = 1.0f;
77 mGlobalAxis.z = 0.0f;
78 _60 = 0;
79}
80
81void CameraHeightArrange::chase() {
82 TVec3f globalAxis = *getGlobalAxis();
83
84 f32 fVar1 = (float)_50 / (float)mLPlay;
85
86 if (fVar1 > 1.0f) {
87 fVar1 = 1.0f;
88 }
89
90 if (fVar1 > 0.5f) {
91 _5C = 0;
92 }
93
94 updateHeightAndOffset();
95}
96
97void CameraHeightArrange::updateHeightAndOffset() {
98 TVec3f globalAxis = *getGlobalAxis();
99 f32 fVar1;
100
101 if (mVPanUse != 0) {
102 fVar1 = 0.05f;
103 }
104 else {
105 fVar1 = 1.0f;
106 }
107
108 _38 += -_38 * fVar1;
109 _3C += -_3C * fVar1;
110 float dVar4 = globalAxis.dot(_14->_C);
111 _30 += fVar1 * (dVar4 - _30);
112 dVar4 = globalAxis.dot(_14->_24);
113 _34 += fVar1 * (dVar4 - _34);
114}
115
116#ifdef NON_MATCHING
117// Float operation order
118TVec3f *CameraHeightArrange::getGlobalAxis() {
119 if (_60 != 0) {
120 _60 = 0;
121
122 mGlobalAxis.set(mVPanAxis);
123 TMtx34f &matrix = mCamera->mZoneMatrix;
124
125 float axisX = mGlobalAxis.x;
126 float axisY = mGlobalAxis.y;
127 float axisZ = mGlobalAxis.z;
128
129 mGlobalAxis.set(
130 axisZ * matrix.mMtx[0][2] + axisX * matrix.mMtx[0][0] + axisY * matrix.mMtx[0][1],
131 axisZ * matrix.mMtx[1][2] + axisX * matrix.mMtx[1][0] + axisY * matrix.mMtx[1][1],
132 axisZ * matrix.mMtx[2][2] + axisX * matrix.mMtx[2][0] + axisY * matrix.mMtx[2][1]
133 );
134 }
135
136 return &mGlobalAxis;
137}
138#endif
The most basic form of an object.
Definition NameObj.hpp:11