1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4#include "Library/Math/Axis.h"
5
6namespace al {
7class SwingMovement;
8
9class SwingMapParts : public LiveActor {
10public:
11 SwingMapParts(const char* name);
12
13 void init(const ActorInitInfo& info) override;
14 void initAfterPlacement() override;
15 bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
16 void control() override;
17
18 void start();
19
20 void exeStandBy();
21 void exeMoveRight();
22 void exeMoveLeft();
23 void exeStop();
24
25private:
26 sead::Quatf mQuat = sead::Quatf::unit;
27 SwingMovement* mSwingMovement = nullptr;
28 Axis mRotateAxis = Axis::None;
29 bool mIsFloorTouchStart = false;
30 sead::Vector3f mDepthShadowLength = {0.0f, 0.0f, 0.0f};
31};
32
33static_assert(sizeof(SwingMapParts) == 0x138);
34} // namespace al
35