1#pragma once
2
3#include <math/seadVector.h>
4
5#include "Library/LiveActor/LiveActor.h"
6
7#include "Util/IUseDimension.h"
8
9class Togezo2D : public al::LiveActor, public IUseDimension {
10public:
11 Togezo2D(const char* name);
12
13 void init(const al::ActorInitInfo& info) override;
14 bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
15 al::HitSensor* self) override;
16 void attackSensor(al::HitSensor* self, al::HitSensor* other) override;
17 void control() override;
18 void startMove();
19
20 void exeWalk();
21 void exeDamage();
22 void exeHideWait();
23
24 ActorDimensionKeeper* getActorDimensionKeeper() const override { return mDimensionKeeper; }
25
26 inline void checkFacingTarget(al::HitSensor* target);
27
28private:
29 ActorDimensionKeeper* mDimensionKeeper = nullptr;
30 f32 mVelocityFront = 0.0f;
31 bool mIsAlwaysFalse = false;
32 f32 mLocalZRotator = 0.0f;
33 sead::Vector3f mInitTrans = sead::Vector3f::zero;
34 sead::Vector3f mInitFront = sead::Vector3f::zero;
35};
36
37static_assert(sizeof(Togezo2D) == 0x140);
38