1#include "Game/Map/Air.hpp"
2#include "Game/LiveActor/MaterialCtrl.hpp"
3#include "Game/Scene/SceneObjHolder.hpp"
4#include "Game/Util.hpp"
6Air::Air(
const char *pName) :
LiveActor(pName) {
13 MR::initDefaultPos(
this, rIter);
14 const char* object_name = 0;
15 MR::getObjectName(&object_name, rIter);
16 initModel(object_name);
17 MR::connectToSceneAir(
this);
18 MR::useStageSwitchReadA(
this, rIter);
19 MR::getJMapInfoArg0NoInit(rIter, &mDistance);
21 MR::getJMapInfoArg1NoInit(rIter, &arg_1);
23 MR::tryStartAllAnim(
this, object_name);
24 MR::setClippingTypeSphereContainsModelBoundingBox(
this, 100.0f);
26 MR::setGroupClipping(
this, rIter, 0x10);
27 initNerve(&NrvAir::HostTypeOut::sInstance);
28 MR::registerDemoSimpleCastAll(
this);
29 bool registered = MR::tryRegisterDemoCast(
this, rIter);
34 void (
Air::*fadeOut)(
void) = &Air::appearFadeOut;
35 bool ret = MR::tryRegisterDemoActionFunctor(
this, MR::Functor(
this, fadeOut),
"消滅");
38 void (
Air::*fadeIn)(
void) = &Air::appearFadeIn;
39 ret = MR::tryRegisterDemoActionFunctor(
this, MR::Functor(
this, fadeIn), 0);
58 f32 val = 100.0f * mDistance;
59 f32 dist = MR::calcDistanceToPlayer(
this);
62 MR::tryStartAllAnim(
this,
"Appear");
63 MR::setAllAnimFrameAtEnd(
this,
"Appear");
64 setNerve(&NrvAir::HostTypeIn::sInstance);
67 MR::tryStartAllAnim(
this,
"Disappear");
68 MR::setAllAnimFrameAtEnd(
this,
"Disappear");
70 setNerve(&NrvAir::HostTypeOut::sInstance);
74bool Air::isDrawing()
const {
75 if (!MR::isDead(
this)) {
76 return !MR::isHiddenModel(
this);
82void Air::initModel(
const char *pModelName) {
83 initModelManagerWithAnm(pModelName, 0,
false);
86bool Air::tryChange() {
87 if (!MR::isValidSwitchA(
this)) {
95 if (MR::isOnSwitchA(
this)) {
96 MR::tryStartAllAnim(
this,
"Change");
104void Air::appearFadeIn() {
106 MR::tryStartAllAnim(
this,
"Appear");
107 setNerve(&NrvAir::HostTypeIn::sInstance);
110void Air::appearFadeOut() {
112 MR::tryStartAllAnim(
this,
"Disappear");
113 setNerve(&NrvAir::HostTypeOut::sInstance);
117 bool isCameraNotEnd =
false;
119 if (_8D && !MR::isStartAnimCameraEnd()) {
120 isCameraNotEnd =
true;
123 if (!isCameraNotEnd) {
125 f32 val = (100.0f * (20.0f + mDistance));
126 if (val < MR::calcDistanceToPlayer(
this)) {
127 MR::tryStartAllAnim(
this,
"Disappear");
128 setNerve(&NrvAir::HostTypeOut::sInstance);
136 if (_8D && !MR::isStartAnimCameraEnd()) {
143 if (!MR::isHiddenModel(
this) && MR::isAnyAnimStopped(
this,
"Disappear")) {
147 f32 distMult = (100.0f * mDistance);
149 if (MR::calcDistanceToPlayer(
this) < distMult) {
151 MR::tryStartAllAnim(
this,
"Appear");
152 setNerve(&NrvAir::HostTypeIn::sInstance);
161void ProjectionMapAir::initModel(
const char *pModelName) {
162 initModelManagerWithAnm(pModelName,
nullptr,
true);
164 MR::newDifferedDLBuffer(
this);
165 mtxSetter->updateMtxUseBaseMtx();
168void Air::setFarClipping() {
169 MR::setClippingFarMax(
this);
172AirFar100m::AirFar100m(
const char *pName) :
Air(pName) {
176void AirFar100m::setFarClipping() {
177 MR::setClippingFar100m(
this);
180PriorDrawAir::PriorDrawAir(
const char *pName) :
Air(pName) {
181 MR::createSceneObj(SceneObj_PriorDrawAirHolder);
182 MR::getSceneObj<PriorDrawAirHolder*>(SceneObj_PriorDrawAirHolder)->add(
this);
185PriorDrawAirHolder::PriorDrawAirHolder() :
NameObj(
"先描画大気保持") {
190 s32 airCnt = mAirCount++;
191 mAirs[airCnt] = pAir;
194bool PriorDrawAirHolder::isExistValidDrawAir()
const {
197 for (; curAir != &mAirs[mAirCount]; *curAir++) {
198 if ((*curAir)->isDrawing()) {
207 bool isExistPriorDrawAir() {
208 if (!MR::isExistSceneObj(SceneObj_PriorDrawAirHolder)) {
212 return MR::getSceneObj<PriorDrawAirHolder*>(SceneObj_PriorDrawAirHolder)->isExistValidDrawAir();
217 INIT_NERVE(HostTypeIn);
218 INIT_NERVE(HostTypeOut);
221AirFar100m::~AirFar100m() {
225ProjectionMapAir::~ProjectionMapAir() {
229PriorDrawAir::~PriorDrawAir() {
233PriorDrawAirHolder::~PriorDrawAirHolder() {
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
The basis of a drawable actor that can contain states (see: Nerve)
The most basic form of an object.