1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4
5namespace al {
6class KeyPoseKeeper;
7
8enum class FloaterMoveType : s32 { Wait, Back, Sink };
9
10class FloaterMapParts : public LiveActor {
11public:
12 FloaterMapParts(const char* name);
13
14 void init(const ActorInitInfo& info) override;
15 bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
16 void appearAndSetStart();
17 void control() override;
18 void exeWait();
19 void exeSink();
20 void exeBack();
21
22private:
23 KeyPoseKeeper* mKeyPoseKeeper = nullptr;
24 f32 mCoord = 0.0f;
25 f32 mMaxCoord = 0.0f;
26 f32 mSinkSpeed = 5.0f;
27 f32 mBackSpeed = 5.0f;
28 FloaterMoveType mMoveType = FloaterMoveType::Wait;
29 s32 mSinkTime = 0;
30 s32 mSinkKeepTime = 10;
31 s32 mMaxAccelCount = 10;
32 s32 mAccelCount = 0;
33 sead::Matrix34f mMtxTR = sead::Matrix34f::ident;
34};
35} // namespace al
36