1#pragma once
2
3#include <basis/seadTypes.h>
4
5#include "Library/Effect/IUseEffectKeeper.h"
6
7namespace al {
8struct ActionEffectCtrlInfo {
9 const char* name;
10 const char* materialName;
11 bool hasEmittedEffect;
12};
13
14class ActionEffectCtrl : public IUseEffectKeeper {
15public:
16 static ActionEffectCtrl* tryCreate(IUseEffectKeeper*);
17
18 ActionEffectCtrl(IUseEffectKeeper*);
19
20 void startAction(const char*);
21 void update(f32, f32, f32, bool);
22 bool isKeepSameEffectNext(const ActionEffectCtrlInfo*, const char*);
23
24private:
25 EffectKeeper* mEffectKeeper = nullptr;
26 s32 mInfoCount = 0;
27 ActionEffectCtrlInfo* mInfoTable = nullptr;
28};
29} // namespace al
30