| 213 | }; |
| 214 | |
| 215 | class AnmController |
| 216 | { |
| 217 | public: |
| 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(); } |
nothing calls this directly
no outgoing calls
no test coverage detected