1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4#include "Library/Movement/MoveType.h"
5
6namespace al {
7class MtxConnector;
8
9class EffectObj : public LiveActor {
10public:
11 EffectObj(const char* name);
12
13 void init(const ActorInitInfo& info) override;
14 void initAfterPlacement() override;
15 void control() override;
16 void appear() override;
17 void kill() override;
18 virtual bool tryEmitStart();
19
20private:
21 sead::Matrix34f mBaseMtx = sead::Matrix34f::ident;
22 MtxConnector* mMtxConnector = nullptr;
23 MoveType mMoveType = MoveType::Loop;
24 f32 mRailMoveSpeed = 0;
25 sead::Vector3f mRailPos = {0, 0, 0};
26 bool mIsSyncRailPose = false;
27 bool mIsStarted = false;
28 bool mIsEffectObjScale = false;
29};
30
31static_assert(sizeof(EffectObj) == 0x158);
32} // namespace al
33