1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4
5namespace al {
6class SwitchKeepOnAreaGroup;
7class SwitchOnAreaGroup;
8
9class RailMoveMapParts : public LiveActor {
10public:
11 RailMoveMapParts(const char* name);
12
13 void init(const ActorInitInfo& info) override;
14 void start();
15 void stop();
16 bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
17 void control() override;
18 void appearAndSetStart();
19
20 void exeStandBy();
21 void exeMoveSign();
22 void exeMove();
23
24private:
25 SwitchKeepOnAreaGroup* mSwitchKeepOnAreaGroup = nullptr;
26 SwitchOnAreaGroup* mSwitchOnAreaGroup = nullptr;
27 sead::Vector3f mRailPos = {0.0f, 0.0f, 0.0f};
28 f32 mRailCoord = 0.0f;
29};
30
31static_assert(sizeof(RailMoveMapParts) == 0x128);
32} // namespace al
33