1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace al {
6class LiveActor;
7class ActorResource;
8struct ActionAnimCtrlInfo;
9
10class ActionAnimCtrl {
11public:
12 static ActionAnimCtrl* tryCreate(LiveActor*, const ActorResource*, const char*, const char*);
13
14 ActionAnimCtrl(LiveActor*);
15
16 void init(const ActorResource*, const char*, const char*);
17 bool start(const char*);
18 bool trySetFrame(f32);
19 bool isExistAction(const char*);
20 bool isActionOneTime(const char*);
21 bool isActionEnd();
22 void sortCtrlInfo();
23 const char* findAnimInfo(const char*) const;
24 const char* getPlayingActionName();
25 f32 getActionFrameMax(const char*) const;
26 f32 getFrame() const;
27 f32 getFrameRate() const;
28
29private:
30 LiveActor* mParentActor;
31 const char* mPlayingAnimName = nullptr;
32 s32 mInfoCount = 0;
33 ActionAnimCtrlInfo* mInfos = nullptr;
34 const char* mPlayingActionName = nullptr;
35 s32 mPartIndex = -1;
36};
37
38} // namespace al
39