1#include "Library/LiveActor/ActorSensorController.h"
2
3#include "Library/LiveActor/ActorSensorUtil.h"
4#include "Project/HitSensor/HitSensor.h"
5
6namespace al {
7
8ActorSensorController::ActorSensorController(LiveActor* sensorParent, const char* sensorName) {
9 HitSensor* actorSensor = getHitSensor(sensorParent, sensorName);
10 mHitSensor = actorSensor;
11 mSensorRadius = actorSensor->getRadius();
12 mSensorFollowPosOffset = actorSensor->getFollowPosOffset();
13}
14
15void ActorSensorController::setSensorScale(f32 scale) {
16 mHitSensor->setRadius(mSensorRadius * scale);
17 mHitSensor->setFollowPosOffset(mSensorFollowPosOffset * scale);
18}
19
20void ActorSensorController::setSensorRadius(f32 radius) {
21 mHitSensor->setRadius(radius);
22}
23
24void ActorSensorController::setSensorFollowPosOffset(const sead::Vector3f& offset) {
25 mHitSensor->setFollowPosOffset(offset);
26}
27
28void ActorSensorController::resetActorSensorController() {
29 mHitSensor->setRadius(mSensorRadius);
30 mHitSensor->setFollowPosOffset(mSensorFollowPosOffset);
31}
32
33ActorSensorControllerList::ActorSensorControllerList(s32 maxControllers)
34 : mMaxControllers(maxControllers) {
35 mControllers = new ActorSensorController*[maxControllers];
36 for (s32 i = 0; i < mMaxControllers; i++)
37 mControllers[i] = nullptr;
38}
39
40void ActorSensorControllerList::addSensor(LiveActor* actor, const char* sensorName) {
41 mControllers[mControllerNum++] = new ActorSensorController(actor, sensorName);
42}
43
44void ActorSensorControllerList::setAllSensorScale(f32 scale) {
45 for (s32 i = 0; i < mControllerNum; i++)
46 mControllers[i]->setSensorScale(scale);
47}
48
49void ActorSensorControllerList::resetAllActorSensorController() {
50 for (s32 i = 0; i < mControllerNum; i++)
51 mControllers[i]->resetActorSensorController();
52}
53
54} // namespace al
55