OdysseyDecomp/lib/al/Library/MapObj/FloaterMapParts.h

36 lines
894 B
C++

#pragma once
#include "Library/LiveActor/LiveActor.h"
namespace al {
class KeyPoseKeeper;
enum class FloaterMoveType : s32 { Wait, Back, Sink };
class FloaterMapParts : public LiveActor {
public:
FloaterMapParts(const char* name);
void init(const ActorInitInfo& info) override;
bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
void appearAndSetStart();
void control() override;
void exeWait();
void exeSink();
void exeBack();
private:
KeyPoseKeeper* mKeyPoseKeeper = nullptr;
f32 mCoord = 0.0f;
f32 mMaxCoord = 0.0f;
f32 mSinkSpeed = 5.0f;
f32 mBackSpeed = 5.0f;
FloaterMoveType mMoveType = FloaterMoveType::Wait;
s32 mSinkTime = 0;
s32 mSinkKeepTime = 10;
s32 mMaxAccelCount = 10;
s32 mAccelCount = 0;
sead::Matrix34f mMtxTR = sead::Matrix34f::ident;
};
} // namespace al