1#pragma once
2
3#include <basis/seadTypes.h>
4
5#include "Library/LiveActor/LiveActor.h"
6
7namespace al {
8struct ActorInitInfo;
9class HitSensor;
10class MtxConnector;
11class NerveStateBase;
12class SensorMsg;
13} // namespace al
14
15class WaterSurfaceFinder;
16class FireSurfaceFinder;
17
18class LifeUpItem : public al::LiveActor {
19public:
20 LifeUpItem(const char* name);
21
22 void init(const al::ActorInitInfo& initInfo) override;
23 void initAfterPlacement() override;
24 bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
25 al::HitSensor* self) override;
26 void control() override;
27
28 void appearPopUp();
29 void appearPopUpBack();
30 void appearPopUpAbove();
31 void appearSlot();
32 void appearInvalidClipping();
33 void appearAmiiboTouch();
34 void get();
35
36 void exePopUp();
37 void exeLand();
38 void exeWait();
39 void exeTakeWater();
40 void exeLandWater();
41 void exeFloatWater();
42 void exeGet();
43 void exeAutoGetDemo();
44
45 void setBool145(bool value) { _145 = value; }
46
47private:
48 al::NerveStateBase* mNerveStateBase = nullptr;
49 al::HitSensor* mHitSensor = nullptr;
50 al::MtxConnector* mMtxConnector = nullptr;
51 al::LiveActor* _120 = nullptr;
52 s32 _12c = 0;
53 WaterSurfaceFinder* mWaterSurfaceFinder = nullptr;
54 FireSurfaceFinder* mFireSurfaceFinder = nullptr;
55 s32 mShadowMaskDropLength = 0;
56 bool mIsValidateClipping = true;
57 bool _145 = false;
58};
59