SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
ActorJointCtrl.cpp
1#include "Game/LiveActor/ActorJointCtrl.hpp"
2#include "Game/LiveActor/DynamicJointCtrl.hpp"
3#include "Game/LiveActor/FaceJointCtrl.hpp"
4#include "Game/LiveActor/IKJointCtrl.hpp"
5#include "Game/LiveActor/LiveActor.hpp"
6
7ActorJointCtrl::ActorJointCtrl(LiveActor *pActor) {
8 mActor = pActor;
9 mJointCtrlKeeper = 0;
10 mFaceJointCtrl = 0;
11 mJointCtrlHolder = 0;
12 _10 = 1;
13 _11 = 0;
14
15 mJointCtrlKeeper = new DynamicJointCtrlKeeper(mActor);
16 mFaceJointCtrl = new FaceJointCtrl(mActor);
17 mFaceJointCtrl->init();
18 mJointCtrlHolder = ActorJoint::createIKJointCtrlHolder(mActor);
19
20 if (mJointCtrlHolder) {
21 _11 = 1;
22 }
23}
24
25void ActorJointCtrl::startDynamicCtrl(const char *pName, s32 val) {
26 mJointCtrlKeeper->startCtrl(pName, val);
27}
28void ActorJointCtrl::endDynamicCtrl(const char *pName, s32 val) {
29 mJointCtrlKeeper->endCtrl(pName, val);
30}
31
32void ActorJointCtrl::resetDynamicCtrl() {
33 mJointCtrlKeeper->reset();
34}
35
36void ActorJointCtrl::startFaceCtrl(s32 val) {
37 mFaceJointCtrl->startCtrl(val);
38}
39
40void ActorJointCtrl::endFaceCtrl(s32 val) {
41 mFaceJointCtrl->endCtrl(val);
42}
43
44void ActorJointCtrl::setIKEndPosition(const char *pName, const TVec3f &a2, f32 a3) {
45 mJointCtrlHolder->setEndPosition(pName, a2, a3);
46}
47
48void ActorJointCtrl::setIKEndDirection(const char *pName, const TVec3f &a2, f32 a3) {
49 mJointCtrlHolder->setEndDirection(pName, a2, a3);
50}
51
52void ActorJointCtrl::endIKCtrlAll() {
53 mJointCtrlHolder->endCtrlAll();
54}
55
56void ActorJointCtrl::update() {
57 startUpdate();
58 endUpdate();
59}
60
61void ActorJointCtrl::startUpdate() {
62 if (mJointCtrlHolder) {
63 mJointCtrlHolder->startUpdate();
64 }
65
66 if (_11) {
67 mActor->calcAnim();
68 }
69
70 _10 = 0;
71}
72
73void ActorJointCtrl::endUpdate() {
74 if (mJointCtrlKeeper) {
75 mJointCtrlKeeper->update();
76 }
77
78 if (mFaceJointCtrl) {
79 mFaceJointCtrl->update();
80 }
81
82 if (mJointCtrlHolder) {
83 mJointCtrlHolder->endUpdate();
84 }
85
86 _10 = 1;
87}
88
89void ActorJointCtrl::setCallBackFunction() {
90 if (_10) {
91 if (mJointCtrlKeeper) {
92 mJointCtrlKeeper->setCallBackFunction();
93 }
94
95 if (mFaceJointCtrl) {
96 mFaceJointCtrl->setCallBackFunction();
97 }
98
99 if (mJointCtrlHolder) {
100 mJointCtrlHolder->setCallBackFunction();
101 }
102 }
103}
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24