1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace al {
6class ByamlIter;
7class JointSpringController;
8class LiveActor;
9
10class JointSpringControllerHolder {
11public:
12 JointSpringControllerHolder();
13 void init(s32);
14 void init(LiveActor*, const char*);
15 void init(LiveActor*, const ByamlIter&);
16 void addController(JointSpringController*, const char*);
17 bool tryInvalidateConstraints(u32);
18 bool tryValidateConstraints(u32);
19 bool tryInvalidateConstraints(const char*);
20 bool tryValidateConstraints(const char*);
21 void offControlAll();
22 void setControlRateAll(f32);
23 void onControlAll();
24 void resetControlAll();
25 void addControlRateAll(f32);
26 void subControlRateAll(f32);
27 JointSpringControllerHolder* tryCreateAndInitJointControllerKeeper(LiveActor*, const char*);
28 s32 calcInitFileSpringControlJointNum(const LiveActor*, const char*);
29
30private:
31 JointSpringController** mJointSpringControllerEntries;
32 s32 mSize;
33 s32 mMaxSize;
34};
35
36static_assert(sizeof(JointSpringControllerHolder) == 0x10);
37
38} // namespace al
39