MCPcopy Create free account
hub / github.com/doldecomp/mkdd / AnmController

Class AnmController

include/Sato/AnmController.h:215–288  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

213};
214
215class AnmController
216{
217public:
218 AnmController(); // 0x8026f25c
219 void InitRegistrationMat(const MatAnmInfo &, ExModel *); // 0x8026f27c
220 void FrameProc(); // 0x8026f858
221 void SetAnimation(); // 0x8026f8d4
222 void Reset(); // 0x8026f950
223 void ResetMat(); // 0x8026f99c
224 void ResetAnm() { // fabricated but causes TAnmControlBase<J3DAnmObjTrans>::resetAnm() to be ordered correctly in GeoCannon, also inlines into a matching AnmController::reset()
225 if (mTrans != nullptr) {
226 mTrans->resetAnm();
227 }
228 }
229
230 // Inline/Unused
231 void appendMaterial(AnmControlBase *);
232 void ChangeMatAnmAll(u8);
233 void FrameProcTrans();
234 void FrameProcMat();
235 void SetAnimationTrans();
236 void SetAnimationMat();
237
238 virtual ~AnmController() {}
239
240 void InitRegistration(u8 anm_no, ExModel *model) {
241 mTrans = new AnmControlTrans();
242 mTrans->initAnm(anm_no, model);
243 }
244
245 void RegisterTransBlend(u8 anm_no, J3DAnmTransform *transform, J3DMtxCalc *mtxCalc) {
246 mTrans->registrationBlend(anm_no, transform, mtxCalc);
247 }
248
249 void ChangeTransAnm(u8 AnmNo) { // fabricated
250 if (mTrans == nullptr) {
251 return;
252 }
253#line 338
254 JUT_MINMAX_ASSERT(0, AnmNo, mTrans->mMaxAnmNo);
255 J3DAnmObjTrans *transObj = mTrans->getObj(AnmNo);
256 if (transObj->_28 & 1) {
257 transObj->setWeight(0, 1.0f);
258 for(u8 i = 1; i < 4; i++) {
259 transObj->setWeight(i, 0.0f);
260 }
261 }
262 mTrans->changeAnm(AnmNo, true); // TODO: additional parameter?
263 }
264
265 void ChangeBlendTransAnm(u8 AnmNo, u8 p2, u8 p3) {
266 if (mTrans == nullptr)
267 return;
268#line 353
269 JUT_MINMAX_ASSERT(0, AnmNo, mTrans->mMaxAnmNo);
270 mTrans->changeBlendAnm(AnmNo, p2, p3);
271 }
272 u8 getNowTransNo() const { return mTrans->getNowAnmNo(); }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected