1#pragma once
2
3#include <math/seadMatrix.h>
4#include <math/seadVector.h>
5
6namespace al {
7class LiveActor;
8class IUsePlayerCollision;
9} // namespace al
10
11class CapTargetInfo {
12public:
13 CapTargetInfo();
14
15 void init(const al::LiveActor* actor, const char* name);
16 void setFollowLockOnMtx(const char* jointName, const sead::Vector3f& localTrans,
17 const sead::Vector3f& localRotate);
18 void setLockOnStartAnimName(const char* animName);
19 void setLockOnAnimName(const char* animName);
20 void setHackName(const char* hackName);
21 void makeLockOnMtx(sead::Matrix34f* outMtx) const;
22 void calcLockOnFollowTargetScale(sead::Vector3f* targetScale) const;
23
24 void setPoseMatrix(sead::Matrix34f* mtx) { mPoseMatrix = mtx; }
25
26private:
27 const al::LiveActor* mActor = nullptr;
28 const char* mHackName = nullptr;
29 al::IUsePlayerCollision* mPlayerCollision = nullptr;
30 sead::Matrix34f* mPoseMatrix = nullptr;
31 const sead::Matrix34f* mJointMtx = nullptr;
32 sead::Vector3f mLocalTrans = sead::Vector3f::zero;
33 sead::Vector3f mLocalRotate = sead::Vector3f::zero;
34 f32 mLockOnScale = 1.0f;
35 bool mIsUseLockOnFollowMtxScale = false;
36 bool mIsUseFollowScaleLocalOffset = false;
37 const char* mLockOnStartAnimName = "Capture";
38 const char* mLockOnAnimName = "Capture";
39 bool mIsEscapeLocalOffset = false;
40 sead::Vector3f mEscapeLocalOffset = {0.0f, 0.0f, 0.0f};
41 const char* mName = nullptr;
42 bool mIsExistModel = false;
43 bool mIsLockOnOnly = false;
44 bool _72 = false;
45 bool mIsUseDepthShadow = false;
46 bool _74 = false;
47 bool mIsLockOn = true;
48 bool mIsLockOnStart = false;
49 bool mIsSetHackNameToCamera = false;
50 bool _78 = false;
51 bool _79 = false;
52 bool mIsInvalidHackThrow = false;
53 bool mIsInvalidCapEye = false;
54 bool _7c = false;
55 bool _7d = false;
56 bool _7e = false;
57 bool _7f = false;
58};
59