1#pragma once
2
3#include <basis/seadTypes.h>
4#include <prim/seadSafeString.h>
5
6namespace al {
7struct ActionAnimCtrlInfo;
8struct ActionAnimDataInfo;
9class HitSensorKeeper;
10class LiveActor;
11
12struct ActionFlagCtrlInfo {
13 const char* name;
14 void* _8;
15 void* _10;
16};
17
18class ActionFlagCtrl {
19public:
20 static ActionFlagCtrl* tryCreate(LiveActor*, const char*);
21
22 ActionFlagCtrl(LiveActor*, const char*);
23
24 ActionFlagCtrlInfo* findFlagInfo(const char*) const;
25 void initPost();
26 void start(const char*);
27 void startCtrlFlag();
28 void startCtrlSensor();
29 void update(f32, f32, f32, bool);
30 void updateCtrlSensor(f32, f32, f32, bool);
31 bool isFlagValidOn(s32, bool);
32 bool isFlagValidOff(s32, bool);
33
34private:
35 LiveActor* mParentActor;
36 const char* mName;
37 HitSensorKeeper* mHitSensorKeeper = nullptr;
38 s32 mInfoCount = 0;
39 ActionFlagCtrlInfo** mInfos = nullptr;
40 ActionFlagCtrlInfo* mLastFlag = nullptr;
41 bool mIsBool = false;
42};
43} // namespace al
44