1#pragma once
2
3#include <math/seadMatrix.h>
4#include <math/seadVector.h>
5
6namespace al {
7class HitSensor;
8class LiveActor;
9
10class HitSensorKeeper {
11public:
12 HitSensorKeeper(s32 sensorCount);
13
14 HitSensor* addSensor(LiveActor* parentActor, const char* name, u32 hitSensorType, f32 radius,
15 u16 maxSensorCount, const sead::Vector3f* followPos,
16 const sead::Matrix34f* followMatrix, const sead::Vector3f& offset);
17 void update();
18 s32 getSensorNum() const;
19 HitSensor* getSensor(s32 index) const;
20 void attackSensor();
21 void clear();
22 void validate();
23 void invalidate();
24 void validateBySystem();
25 void invalidateBySystem();
26 HitSensor* getSensor(const char* name) const;
27
28private:
29 s32 mMaxSensors;
30 s32 mSensorCount = 0;
31 HitSensor** mSensors;
32};
33
34static_assert(sizeof(HitSensorKeeper) == 0x10);
35
36} // namespace al
37