OdysseyDecomp/lib/al/Library/Collision/PartsConnector.cpp

45 lines
1.1 KiB
C++

#include "Library/Collision/PartsConnector.h"
#include "Library/Collision/CollisionParts.h"
namespace al {
CollisionPartsConnector::CollisionPartsConnector() = default;
bool CollisionPartsConnector::isConnecting() const {
if (isConnectInvalidCollision())
return false;
return MtxConnector::isConnecting();
}
void CollisionPartsConnector::clear() {
MtxConnector::clear();
mCollisionParts = nullptr;
}
void CollisionPartsConnector::init(const sead::Matrix34f* mtxA, const sead::Matrix34f& mtxB,
const CollisionParts* collisionParts) {
MtxConnector::init(mtxA, mtxB);
mCollisionParts = collisionParts;
}
const HitSensor* CollisionPartsConnector::getConnectingSensor() const {
return mCollisionParts->getConnectedSensor();
}
bool CollisionPartsConnector::isMoved() const {
if (!mCollisionParts)
return false;
return mCollisionParts->get_15c() == 0 || mCollisionParts->isMoving();
}
bool CollisionPartsConnector::isConnectInvalidCollision() const {
if (!mCollisionParts)
return false;
return !mCollisionParts->isValidCollision();
}
} // namespace al