1#pragma once
2
3#include <math/seadVector.h>
4
5namespace al {
6class LiveActor;
7class HitSensor;
8
9class ActorSensorController {
10public:
11 ActorSensorController(LiveActor* sensorParent, const char* sensorName);
12 void setSensorScale(f32 scale);
13 void setSensorRadius(f32 radius);
14 void setSensorFollowPosOffset(const sead::Vector3f& offset);
15 void resetActorSensorController();
16
17 f32 getSensorRadius() const { return mSensorRadius; };
18
19 const sead::Vector3f& getSensorFollowPosOffset() const { return mSensorFollowPosOffset; };
20
21private:
22 HitSensor* mHitSensor = nullptr;
23 f32 mSensorRadius = 0.0f;
24 sead::Vector3f mSensorFollowPosOffset = {0.0f, 0.0f, 0.0f};
25};
26
27class ActorSensorControllerList {
28public:
29 ActorSensorControllerList(s32 maxControllers);
30 void addSensor(LiveActor* actor, const char* sensorName);
31 void setAllSensorScale(f32 scale);
32 void resetAllActorSensorController();
33
34private:
35 ActorSensorController** mControllers;
36 s32 mMaxControllers;
37 s32 mControllerNum = 0;
38};
39
40} // namespace al
41