1#include "Game/Boss/SkeletalFishBabyRailHolder.hpp"
2#include "Game/Boss/SkeletalFishBabyRail.hpp"
4SkeletalFishBabyRailGroupNode::SkeletalFishBabyRailGroupNode(s32 a1) {
22 if (MR::isLoopRail(pRail)) {
23 if (_24->_10 ==
nullptr) {
32 if (_20->_10 ==
nullptr) {
42void SkeletalFishBabyRailGroupNode::tidy() {
45 MR::calcRailEndPointPos(&endPointPos, curLink->_0);
47 TVec3f nearestRailPos;
48 MR::calcNearestRailPos(&nearestRailPos, curLink->_4, endPointPos);
49 f32 totalDist = PSVECDistance(endPointPos.toCVec(), nearestRailPos.toCVec());
52 MR::calcNearestRailPos(&nearestRailPos, child->_4, endPointPos);
53 f32 dist = PSVECDistance(endPointPos.toCVec(), nearestRailPos.toCVec());
55 if (dist < totalDist) {
69void SkeletalFishBabyRailGroupNode::createChild() {
77SkeletalFishBabyRailHolder::SkeletalFishBabyRailHolder(
const char *pName) :
NameObj(pName) {
81void SkeletalFishBabyRailHolder::initAfterPlacement() {
85 for (curNode = nodes; curNode !=
nullptr; curNode = curNode->_14) {
93 for (; nextNode !=
nullptr; nextNode = nextNode->_14) {
94 if (nextNode->_0 == pRail->_8C) {
99 if (nextNode ==
nullptr) {
100 nextNode = createGroup(pRail->_8C);
103 nextNode->addChild(pRail);
110 groupNode->_14 = cur;
112 if (cur !=
nullptr) {
113 cur->_10 = groupNode;
121 return MR::getSceneObj<SkeletalFishBabyRailHolder*>(SceneObj_SkeletalFishBabyRailHolder);
124 void createSkeletalFishBabyRailHolder() {
125 MR::createSceneObj(SceneObj_SkeletalFishBabyRailHolder);
129SkeletalFishBabyRailHolder::~SkeletalFishBabyRailHolder() {
133SkeletalFishBabyRailSetLinkNode::SkeletalFishBabyRailSetLinkNode() {
The most basic form of an object.