1#include "Game/MapObj/MapPartsAppearController.hpp"
5 mPostureHolder =
nullptr;
10 MapPartsFunction::initNerve(&NrvMapPartsAppearController::HostTypeWait::sInstance);
11 initSwitchMessenger(rIter);
12 MR::getMapPartsArgSignMotionType(&mSignMotionType, rIter);
16void MapPartsAppearController::start() {
17 MapPartsFunction::setNerve(&NrvMapPartsAppearController::HostTypeWait::sInstance);
20void MapPartsAppearController::end() {
21 MapPartsFunction::setNerve(&NrvMapPartsAppearController::HostTypeWait::sInstance);
24void MapPartsAppearController::storeCurrentPosture() {
25 mPostureHolder->store(mHost);
28void MapPartsAppearController::initSwitchMessenger(
const JMapInfoIter &rIter) {
29 if (MR::isExistStageSwitchAppear(rIter)) {
32 MR::listenNameObjStageSwitchOnOffAppear(
this, MR::createStageSwitchCtrl(
this, rIter), MR::Functor(
this, s), MR::Functor(
this, k));
36s32 MapPartsAppearController::receiveMsg(u32 msg) {
38 if (MR::isDead(mHost)) {
42 if (!isNerve(&NrvMapPartsAppearController::HostTypeWait::sInstance)) {
46 if (MR::hasMapPartsVanishSignMotion(mSignMotionType)) {
47 setNerve(&NrvMapPartsAppearController::HostTypeDisappear::sInstance);
60void MapPartsAppearController::startAppear() {
61 if (MR::isValidSwitchAppear(mHost) && !_20) {
62 if (isNerve(&NrvMapPartsAppearController::HostTypeDisappear::sInstance)) {
63 setNerve(&NrvMapPartsAppearController::HostTypeWait::sInstance);
71void MapPartsAppearController::startKill() {
72 if (MR::isValidSwitchAppear(mHost)) {
74 if (!MR::isDead(mHost)) {
75 if (isNerve(&NrvMapPartsAppearController::HostTypeWait::sInstance)) {
76 if (MR::hasMapPartsVanishSignMotion(mSignMotionType)) {
77 setNerve(&NrvMapPartsAppearController::HostTypeDisappear::sInstance);
87void MapPartsAppearController::appearHost() {
88 if (MR::isDead(mHost)) {
90 mPostureHolder->store(mHost);
93 if (MR::isHiddenModel(mHost)) {
98void MapPartsAppearController::killHost() {
99 if (!MR::isDead(mHost)) {
101 mPostureHolder->restore(mHost);
105void MapPartsAppearController::exeDisappear() {
106 s32 div = getStep() < 218 ? 13 : 6;
107 if (getStep() % div) {
109 if (MR::isHiddenModel(host)) {
118 setNerve(&NrvMapPartsAppearController::HostTypeWait::sInstance);
119 MR::showModel(mHost);
124namespace NrvMapPartsAppearController {
125 INIT_NERVE(HostTypeWait);
126 INIT_NERVE(HostTypeDisappear);
128 void HostTypeDisappear::execute(
Spine *pSpine)
const {
130 ctrl->exeDisappear();
133 void HostTypeWait::execute(
Spine *pSpine)
const {
138MapPartsAppearController::~MapPartsAppearController() {
The basis of a drawable actor that can contain states (see: Nerve)
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.