SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SkeletalFishBossRail.cpp
1#include "Game/Boss/SkeletalFishBossRail.hpp"
2#include "Game/Boss/SkeletalFishBossFunc.hpp"
3#include "Game/Boss/SkeletalFishBossRailHolder.hpp"
4
5SkeletalFishBossRail::SkeletalFishBossRail(const char *pName) : LiveActor(pName) {
6 _8C = -1;
7 mFillUpFlags = nullptr;
8 mNamePosIDs = nullptr;
9 _98 = 0.0f;
10}
11
13 MR::createSkeletalFishBossRailHolder();
14 initRailRider(rIter);
15 MR::getJMapInfoArg0WithInit(rIter, &_8C);
16 MR::getSkeletalFishBossRailHolder()->add(this);
17 createFillUpFlag();
18 createFillUpNamePosID();
19 makeActorDead();
20}
21
22void SkeletalFishBossRail::initAfterPlacement() {
23 linkFillUpNamePosID();
24}
25
26bool SkeletalFishBossRail::isFillUpPoint(s32 idx) const {
27 return mFillUpFlags[idx];
28}
29
30s32 SkeletalFishBossRail::getFillUpNamePos(s32 idx) const {
31 return mNamePosIDs[idx];
32}
33
34void SkeletalFishBossRail::createFillUpFlag() {
35 mFillUpFlags = new bool[MR::getRailPointNum(this)];
36
37 for (u32 i = 0; i < MR::getRailPointNum(this); i++) {
38 s32 pointArg;
39 MR::getRailPointArg0WithInit(this, i, &pointArg);
40
41 if (pointArg == -1) {
42 mFillUpFlags[i] = false;
43 }
44 else {
45 mFillUpFlags[i] = true;
46 }
47 }
48}
49
50void SkeletalFishBossRail::createFillUpNamePosID() {
51 mNamePosIDs = new s32[MR::getRailPointNum(this)];
52
53 for (s32 i = 0; i < MR::getRailPointNum(this); i++) {
54 mNamePosIDs[i] = -1;
55 }
56}
57
58void SkeletalFishBossRail::linkFillUpNamePosID() {
59 for (s32 i = 0; i < MR::getRailPointNum(this); i++) {
60 TVec3f railPos;
61 MR::calcRailPointPos(&railPos, this, i);
62 mNamePosIDs[i] = SkeletalFishBossFunc::getNearestGuardPosID(railPos);
63 }
64}
65
66SkeletalFishBossRail::~SkeletalFishBossRail() {
67
68}
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.