1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4
5namespace al {
6class EnemyStateBlowDown;
7}
8
9class Popn : public al::LiveActor {
10public:
11 Popn(const char* actorName);
12 void init(const al::ActorInitInfo& info) override;
13 void attackSensor(al::HitSensor* self, al::HitSensor* other) override;
14 bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
15 al::HitSensor* self) override;
16 void control() override;
17
18 void appearByGenerater(const sead::Vector3f& pos, s32 color, bool isAppear,
19 bool isGenerateItem);
20 void exeAppear();
21 void exeWait();
22 void exeWaitRove();
23 void exeTurn();
24 void exeMoveStart();
25 void exeMove();
26 void exeMoveEnd();
27 void exeBlowDown();
28
29private:
30 al::EnemyStateBlowDown* mStateBlowDown = nullptr;
31 f32 mAwakeDistance = 1500.0f;
32 bool mIsGenerateItem = false;
33 sead::Quatf mQuat = sead::Quatf::unit;
34 const char* mArchiveName = "Popn";
35 bool mIsAngry = false;
36 bool mIsFollowGroundNormal = true;
37};
38