1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4#include "Library/Math/Axis.h"
5
6namespace al {
7class SlideMapParts : public LiveActor {
8public:
9 SlideMapParts(const char* name);
10
11 void init(const ActorInitInfo& info) override;
12 void start();
13 bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
14
15 void exeStandBy();
16 void exeDelay();
17 void exeWait();
18 void exeMove();
19
20 s32 calcMoveTime() const;
21
22private:
23 sead::Matrix34f mSurfaceEffectMtx = sead::Matrix34f::ident;
24 sead::Vector3f mTrans = sead::Vector3f::zero;
25 Axis mMoveAxis = Axis::None;
26 f32 mMoveDistance = 100.0f;
27 f32 mMoveSpeed = 10.0f;
28 s32 mWaitTime = 60;
29 s32 mMoveTime = -1;
30 s32 mDelayTime = 0;
31 bool mIsMoveForwards = true;
32};
33
34static_assert(sizeof(SlideMapParts) == 0x160);
35} // namespace al
36