1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadVector.h>
5
6#include "Library/Nerve/NerveStateBase.h"
7
8namespace al {
9class LiveActor;
10} // namespace al
11
12enum class FurnitureType : u64 {
13 Chair = 0,
14 Bed = 1,
15};
16
17enum class PlayerFurnitureState : u32 {
18 AirFacing = 0,
19 AirNotFacing = 1,
20 Bound = 2,
21 Unbound = 3,
22};
23
24class FurnitureStateWait : public al::ActorStateBase {
25public:
26 FurnitureStateWait(al::LiveActor* actor, FurnitureType furniture);
27 void appear() override;
28 bool isEnableBindRequest() const;
29 void exeWait();
30 void exeBindRequest();
31
32private:
33 FurnitureType mFurnitureType : 32;
34 PlayerFurnitureState mPlayerState = PlayerFurnitureState::Unbound;
35 bool mIsPlayerNotOnGround = false;
36 sead::Vector3f mPlayerPos = sead::Vector3f::zero;
37};
38