1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4
5namespace al {
6class RippleCtrl;
7
8class ClockMapParts : public LiveActor {
9public:
10 ClockMapParts(const char* name);
11
12 void init(const ActorInitInfo& info) override;
13 void start();
14 void standBy();
15 bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
16 void appearAndSetStart();
17 void setRestartNerve();
18 void control() override;
19 void setRotateStartNerve();
20
21 void exeStandBy();
22 void exeDelay();
23 void exeRotateSign();
24 void exeRotate();
25 void exeWait();
26 void exeAssistStop();
27 void exeAssistStopSync();
28 void exeAssistStopEndWait();
29
30private:
31 sead::Quatf mQuat = sead::Quatf::unit;
32 s32 mRotateAxis = 0;
33 s32 mClockAngleDegree = 0;
34 s32 mCurrentStep = 0;
35 s32 mTurnStepCount = 1;
36 s32 mDelayTime = 0;
37 s32 mRotateTime = 30;
38 s32 mWaitTime = 30;
39 s32 mRotateSignTime = 0;
40 s32 mRotateTimer = 30;
41 s32 mActiveTimer;
42 s32 mTimer = 0;
43 s32 mAssistStopTimer;
44 RippleCtrl* mRippleCtrl = nullptr;
45};
46
47static_assert(sizeof(ClockMapParts) == 0x150);
48} // namespace al
49