1#include "Game/MapObj/ShootingStar.hpp"
3ShootingStar::ShootingStar(
const char *pName) :
LiveActor(pName), _8C(0, 0, 0), _98(0, 0, 1), _A4(0, -1, 0) {
10 initModelManagerWithAnm(
"ShootingStar",
nullptr,
false);
11 MR::connectToSceneMapObj(
this);
12 MR::initDefaultPos(
this, rIter);
15 MR::getJMapInfoArg0NoInit(rIter, &arg0);
18 MR::getJMapInfoArg1NoInit(rIter, &arg0);
21 MR::getJMapInfoArg2NoInit(rIter, &arg2);
28 MR::getJMapInfoArg3NoInit(rIter, &arg0);
29 MR::declareStarPiece(
this, arg0);
30 initBinder(100.0f, 0.0f, 0);
31 MR::setBindTriangleFilter(
this, MR::createTriangleFilterFunc(MR::isWallCodeNoAction));
32 initNerve(&NrvShootingStar::HostTypeNrvPreShooting::sInstance);
33 initEffectKeeper(0,
"ShootingStar",
false);
40 MR::addHitSensorMapObj(
this,
"message", 1, 0.0f, offset);
41 MR::initShadowVolumeSphere(
this, 30.0f);
43 if (MR::useStageSwitchReadAppear(
this, rIter)) {
55 x = matrix.mMtx[0][1];
56 y = matrix.mMtx[1][1];
57 z = matrix.mMtx[2][1];
58 _98.set<f32>(x, y, z);
59 MR::startBpk(
this,
"ShootingStar");
62void ShootingStar::appearPreShooting() {
64 MR::invalidateClipping(
this);
65 setNerve(&NrvShootingStar::HostTypeNrvPreShooting::sInstance);
88void ShootingStar::exeWaitForNextShoot() {
89 if (MR::isFirstStep(
this)) {
91 MR::emitEffect(
this,
"ShootingStarBreak");
94 if (!MR::isValidSwitchAppear(
this)) {
95 MR::validateClipping(
this);
98 MR::offCalcAnim(
this);
99 MR::invalidateShadow(
this,
nullptr);
102 if (!MR::getDeclareRemnantStarPieceCount(
this)) {
106 if (MR::isGreaterStep(
this, _B4)) {
107 MR::onCalcAnim(
this);
108 MR::validateShadow(
this,
nullptr);
109 setNerve(&NrvShootingStar::HostTypeNrvPreShooting::sInstance);
113namespace NrvShootingStar {
114 INIT_NERVE(HostTypeNrvPreShooting);
115 INIT_NERVE(HostTypeNrvShooting);
116 INIT_NERVE(HostTypeNrvWaitForNextShoot);
118 void HostTypeNrvWaitForNextShoot::execute(
Spine *pSpine)
const {
120 star->exeWaitForNextShoot();
123 void HostTypeNrvShooting::execute(
Spine *pSpine)
const {
128 void HostTypeNrvPreShooting::execute(
Spine *pSpine)
const {
130 star->exePreShooting();
134ShootingStar::~ShootingStar() {
The basis of a drawable actor that can contain states (see: Nerve)
TVec3f mPosition
3D vector of the actor's position.
TVec3f mVelocity
3D vector of the actor's velocity.
virtual void calcAndSetBaseMtx()
Calculates and sets the base matrix of the actor.
virtual MtxPtr getBaseMtx() const
Gets the base matrix of the model used for the actor.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.