1#include "Game/MapObj/MagicBell.hpp"
3MagicBell::MagicBell(
const char *pName) :
LiveActor(pName) {
5 mSurface1Mtx =
nullptr;
6 mSurface2Mtx =
nullptr;
8 mSurface1Mtx =
nullptr;
15 MR::initDefaultPos(
this, rIter);
16 initModelManagerWithAnm(
"Bell",
nullptr,
false);
17 mSurface2Mtx = MR::getJointMtx(
this,
"polySurface2");
18 mSurface1Mtx = MR::getJointMtx(
this,
"polySurface1");
19 MR::connectToSceneMapObjNoCalcAnim(
this);
21 MR::addHitSensorMapObj(
this,
"body", 8, 60.0f, TVec3f(0.0f, -80.0f, 0.0f));
22 initEffectKeeper(1,
nullptr,
false);
23 MR::addEffect(
this,
"StarWandHitMark");
24 MR::setEffectHostSRT(
this,
"StarWandHitMark", &_9C,
nullptr,
nullptr);
26 initNerve(&NrvMagicBell::MagicBellNrvWait::sInstance);
27 MR::initShadowVolumeSphere(
this, 100.0f);
28 MR::useStageSwitchWriteA(
this, rIter);
29 MR::initStarPointerTarget(
this, 100.0f, TVec3f(0.0f, -80.0f, 0.0f));
32 MR::makeMtxTR(mtx.toMtxPtr(),
this);
33 MR::calcGravity(
this);
39void MagicBell::exeWait() {
40 MR::isFirstStep(
this);
43 PSMTXCopy(_8C->_60.toMtxPtr(), mSurface2Mtx);
44 PSMTXCopy(_94->_60.toMtxPtr(), mSurface1Mtx);
45 TVec3f v3(0.0f, 0.0f, 0.0f);
46 MR::setMtxTrans(mSurface2Mtx, v3.x, v3.y, v3.z);
47 TVec3f v2(0.0f, 0.0f, 0.0f);
48 MR::setMtxTrans(mSurface1Mtx, v2.x, v2.y, v2.z);
84 if (MR::isSensorPlayer(a2)) {
85 MR::sendMsgPush(a2, a1);
93MagicBell::~MagicBell() {
97namespace NrvMagicBell {
98 INIT_NERVE(MagicBellNrvWait);
99 INIT_NERVE(MagicBellNrvRing);
The basis of a drawable actor that can contain states (see: Nerve)
TVec3f mPosition
3D vector of the actor's position.
TVec3f mScale
3D vector of the actor's scale.
TVec3f mGravity
3D vector of the actor's gravity.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
virtual MtxPtr getBaseMtx() const
Gets the base matrix of the model used for the actor.