OdysseyDecomp/lib/al/Project/HitSensor/HitSensor.cpp

53 lines
1.1 KiB
C++

#include "Project/HitSensor/HitSensor.h"
#include "Project/HitSensor/SensorHitGroup.h"
namespace al {
void HitSensor::setFollowPosPtr(const sead::Vector3f* followPos) {
mFollowPos = followPos;
mFollowMtx = nullptr;
}
void HitSensor::setFollowMtxPtr(const sead::Matrix34f* followMtx) {
mFollowPos = nullptr, mFollowMtx = followMtx;
}
void HitSensor::validate() {
if (!mIsValid) {
mIsValid = true;
if (mMaxSensorCount) {
if (mIsValidBySystem)
mHitGroup->add(this);
}
}
mSensorCount = 0;
}
void HitSensor::invalidate() {
if (mIsValid) {
mIsValid = false;
if (mMaxSensorCount) {
if (mIsValidBySystem)
mHitGroup->remove(this);
}
}
mSensorCount = 0;
}
// HitSensor::validateBySystem
// HitSensor::invalidateBySystem
// HitSensor::update (requires some more LiveActor research)
void HitSensor::addHitSensor(HitSensor* sensor) {
// todo -- registers are different
if (mSensorCount < mMaxSensorCount) {
mSensors[mSensorCount] = sensor;
++mSensorCount;
}
}
} // namespace al