1#pragma once
2
3#include <prim/seadSafeString.h>
4
5namespace al {
6class LiveActor;
7}
8
9class PlayerAnimFrameCtrl {
10public:
11 PlayerAnimFrameCtrl();
12
13 void startAction(al::LiveActor* player, const sead::SafeString& name);
14 void changeActionName(al::LiveActor* player, const sead::SafeString& name);
15 void update();
16 void updateSync(al::LiveActor* player);
17 void setFrame(f32 frame);
18
19 const char* getActionName() const;
20 f32 getCurrentFrame() const;
21 f32 getRate() const;
22 bool isActionEnd() const;
23
24private:
25 sead::FixedSafeString<64> mActionName = {""};
26 bool mIsActionRepeat = false;
27 f32 mCurrentFrame = 0.0f;
28 f32 mActionFrameMax = 0.0f;
29 f32 mRate = 1.0f;
30 bool mIsSkipUpdate = false;
31};
32
33static_assert(sizeof(PlayerAnimFrameCtrl) == 0x70);
34