SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
ModelManager.cpp
1#include "Game/LiveActor/ModelManager.hpp"
2#include "Game/LiveActor/DisplayListMaker.hpp"
3#include "Game/Animation/XanimePlayer.hpp"
4
5void ModelManager::update() {
6 XanimePlayer* player = mXanimePlayer;
7
8 if (player) {
9 player->updateBeforeMovement();
10 player->updateAfterMovement();
11 }
12
13 if (mBtkPlayer) {
14 mBtkPlayer->update();
15 }
16
17 if (mBrkPlayer) {
18 mBrkPlayer->update();
19 }
20
21 if (mBtpPlayer) {
22 mBtpPlayer->update();
23 }
24
25 if (mBpkPlayer) {
26 mBpkPlayer->update();
27 }
28
29 if (mBvaPlayer) {
30 mBvaPlayer->update();
31 }
32}
33
34void ModelManager::calcAnim() {
35 calc();
36 updateDL(true);
37}
38
39void ModelManager::calcView() {
40 getJ3DModel()->viewCalc();
41}
42
43void ModelManager::entry() {
44 getJ3DModel()->entry();
45}
46
47void ModelManager::newDifferedDLBuffer() {
48 mDisplayListMaker->newDifferedDisplayList();
49}
50
51// ModelManager::updateDL
52
53void ModelManager::startBck(const char *pAnimName, const char *pUnk) {
54 mXanimePlayer->changeAnimationBck(pAnimName);
55 mXanimePlayer->changeInterpoleFrame(0);
56 changeBckSetting(pAnimName, pUnk, 0);
57}
58
59void ModelManager::startBckWithInterpole(const char *pAnimName, s32 interpole) {
60 mXanimePlayer->changeAnimationBck(pAnimName);
61 mXanimePlayer->changeInterpoleFrame(0);
62 mXanimePlayer->changeInterpoleFrame(interpole);
63}
64
65void ModelManager::startBtk(const char *pBtkName) {
66 stopBtk();
67 mBtkPlayer->start(pBtkName);
68 mDisplayListMaker->onCurFlagBtk(reinterpret_cast<const J3DAnmBase*>(mBtkPlayer->mData));
69}
70
71void ModelManager::startBrk(const char *pBrkName) {
72 stopBrk();
73 mBrkPlayer->start(pBrkName);
74 mDisplayListMaker->onCurFlagBrk(reinterpret_cast<const J3DAnmBase*>(mBrkPlayer->mData));
75}
76
77void ModelManager::startBtp(const char *pBtpName) {
78 stopBtp();
79 mBtpPlayer->start(pBtpName);
80 mDisplayListMaker->onCurFlagBtp(reinterpret_cast<const J3DAnmBase*>(mBtpPlayer->mData));
81}
82
83void ModelManager::startBpk(const char *pBpkName) {
84 stopBpk();
85 mBpkPlayer->start(pBpkName);
86 mDisplayListMaker->onCurFlagBpk(reinterpret_cast<const J3DAnmBase*>(mBpkPlayer->mData));
87}
88
89void ModelManager::startBva(const char *pBvaName) {
90 stopBva();
91 mBvaPlayer->start(pBvaName);
92}
93
94void ModelManager::stopBtk() {
95 if (mBtkPlayer->mData) {
96 mDisplayListMaker->offCurFlagBtk((const J3DAnmBase*)mBtkPlayer->mData);
97 mBtkPlayer->stop();
98 }
99}
100
101void ModelManager::stopBrk() {
102 if (mBrkPlayer->mData) {
103 mDisplayListMaker->offCurFlagBrk((const J3DAnmBase*)mBrkPlayer->mData);
104 mBrkPlayer->stop();
105 }
106}
107
108void ModelManager::stopBtp() {
109 if (mBtpPlayer->mData) {
110 mDisplayListMaker->offCurFlagBtp((const J3DAnmBase*)mBtpPlayer->mData);
111 mBtpPlayer->stop();
112 }
113}
114
115void ModelManager::stopBpk() {
116 if (mBpkPlayer->mData) {
117 mDisplayListMaker->offCurFlagBpk((const J3DAnmBase*)mBpkPlayer->mData);
118 mBpkPlayer->stop();
119 }
120}
121
122void ModelManager::stopBva() {
123 if (mBvaPlayer->mData) {
124 mBvaPlayer->stop();
125 }
126}
127
128bool ModelManager::isBtkStopped() const {
129 if (mBtkPlayer) {
130 return mBtkPlayer->isStop();
131 }
132
133 return false;
134}
135
136bool ModelManager::isBrkStopped() const {
137 if (mBrkPlayer) {
138 return mBrkPlayer->isStop();
139 }
140
141 return false;
142}
143
144bool ModelManager::isBtpStopped() const {
145 if (mBtpPlayer) {
146 return mBtpPlayer->isStop();
147 }
148
149 return false;
150}
151
152bool ModelManager::isBpkStopped() const {
153 if (mBpkPlayer) {
154 return mBpkPlayer->isStop();
155 }
156
157 return false;
158}
159
160bool ModelManager::isBvaStopped() const {
161 if (mBvaPlayer) {
162 return mBvaPlayer->isStop();
163 }
164
165 return false;
166}
167
168bool ModelManager::isBtkPlaying(const char *pName) const {
169 return mBtkPlayer->isPlaying(pName);
170}
171
172bool ModelManager::isBrkPlaying(const char *pName) const {
173 return mBrkPlayer->isPlaying(pName);
174}
175
176bool ModelManager::isBpkPlaying(const char *pName) const {
177 return mBpkPlayer->isPlaying(pName);
178}
179
180bool ModelManager::isBtpPlaying(const char *pName) const {
181 return mBtpPlayer->isPlaying(pName);
182}
183
184bool ModelManager::isBvaPlaying(const char *pName) const {
185 return mBvaPlayer->isPlaying(pName);
186}
187
188void ModelManager::initJointTransform() {
189 J3DModel* model = getJ3DModel();
190 mXanimePlayer->mCore->enableJointTransform(model->mModelData);
191}
192
193ResourceHolder* ModelManager::getModelResourceHolder() const {
194 return mModelResourceHolder;
195}
196
197J3DModelData* ModelManager::getJ3DModelData() const {
198 return getJ3DModel()->mModelData;
199}