mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-13 03:59:55 -04:00
d_a_obj_mkie - matching retail (#931)
* d_a_obj_mkie - matching * review changes
This commit is contained in:
+1
-1
@@ -1725,7 +1725,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_obj_kanoke"),
|
||||
ActorRel(Matching, "d_a_obj_ladder"),
|
||||
ActorRel(NonMatching, "d_a_obj_light"),
|
||||
ActorRel(NonMatching, "d_a_obj_mkie"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_mkie"),
|
||||
ActorRel(Matching, "d_a_obj_mkiek"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_mknjd"),
|
||||
ActorRel(NonMatching, "d_a_obj_mmrr"),
|
||||
|
||||
@@ -2,52 +2,93 @@
|
||||
#define D_A_OBJ_MKIE_H
|
||||
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
namespace daObjMkie {
|
||||
class Act_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
static u32 prm_make(u8 eventId, int swNo) {
|
||||
return swNo << 0x10 | (eventId | 0x3000);
|
||||
}
|
||||
|
||||
void setup(const cXyz* pos) {
|
||||
current.pos = *pos;
|
||||
mF58 = 1;
|
||||
}
|
||||
void attr() const {}
|
||||
void prm_get_correct() const {}
|
||||
void prm_get_evId() const {}
|
||||
void prm_get_swSave() const {}
|
||||
void prm_get_type() const {}
|
||||
|
||||
virtual BOOL CreateHeap();
|
||||
void init_cc();
|
||||
void set_cc_pos();
|
||||
virtual BOOL Create();
|
||||
cPhs_State Mthd_Create();
|
||||
virtual BOOL Delete();
|
||||
BOOL Mthd_Delete();
|
||||
void set_mtx();
|
||||
void init_mtx();
|
||||
void chk_light();
|
||||
void eff_break();
|
||||
void sound_melt();
|
||||
void sound_break();
|
||||
void vib_break();
|
||||
void mode_wait();
|
||||
void mode_demoWait_init();
|
||||
void mode_demoWait();
|
||||
void mode_demo_init();
|
||||
void mode_demo();
|
||||
void mode_proc_call();
|
||||
virtual BOOL Execute(Mtx**);
|
||||
virtual BOOL Draw();
|
||||
|
||||
public:
|
||||
/* 0x2C8 */ u8 m2C8[0xF58 - 0x2C8];
|
||||
/* 0xF58 */ u8 mF58;
|
||||
/* 0xF59 */ u8 mF59[0xF64 - 0xF59];
|
||||
class Act_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
static Mtx M_tmp_mtx;
|
||||
static u32 prm_make(u8 eventId, int swNo) { return swNo << 0x10 | (eventId | 0x3000); };
|
||||
|
||||
void setup(const cXyz* pos) {
|
||||
current.pos = *pos;
|
||||
mCcInit = 1;
|
||||
};
|
||||
};
|
||||
|
||||
struct Attr_c {
|
||||
const char* name;
|
||||
float mScale;
|
||||
Vec table[8][3];
|
||||
};
|
||||
|
||||
enum Prm_e {
|
||||
PRM_CORRECT_W = 0x01,
|
||||
PRM_CORRECT_S = 0xc,
|
||||
|
||||
PRM_EVID_W = 0x08,
|
||||
PRM_EVID_S = 0x0,
|
||||
|
||||
PRM_SWSAVE_W = 0x08,
|
||||
PRM_SWSAVE_S = 0x10,
|
||||
|
||||
PRM_TYPE_W = 0x01,
|
||||
PRM_TYPE_S = 0x08,
|
||||
|
||||
PRM_FLAG_W = 0x01,
|
||||
PRM_FLAG_S = 0x0d,
|
||||
};
|
||||
|
||||
BOOL prm_get_correct() const { return daObj::PrmAbstract<Prm_e>(this, PRM_CORRECT_W, PRM_CORRECT_S); }
|
||||
u8 prm_get_evId() const { return daObj::PrmAbstract<Prm_e>(this, PRM_EVID_W, PRM_EVID_S); }
|
||||
int prm_get_swSave() const { return daObj::PrmAbstract<Prm_e>(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
|
||||
int prm_get_type() const { return daObj::PrmAbstract<Prm_e>(this, PRM_TYPE_W, PRM_TYPE_S); }
|
||||
|
||||
virtual BOOL CreateHeap();
|
||||
void init_cc();
|
||||
void set_cc_pos();
|
||||
virtual BOOL Create();
|
||||
cPhs_State Mthd_Create();
|
||||
virtual BOOL Delete();
|
||||
BOOL Mthd_Delete();
|
||||
void set_mtx();
|
||||
void init_mtx();
|
||||
BOOL chk_light();
|
||||
void eff_break();
|
||||
void sound_melt();
|
||||
void sound_break();
|
||||
void vib_break();
|
||||
void mode_wait();
|
||||
void mode_demoWait_init();
|
||||
void mode_demoWait();
|
||||
void mode_demo_init();
|
||||
void mode_demo();
|
||||
void mode_proc_call();
|
||||
virtual BOOL Execute(Mtx**);
|
||||
virtual BOOL Draw();
|
||||
|
||||
static const char M_arcname[];
|
||||
static const dCcD_SrcTri M_tri_src;
|
||||
static const Attr_c M_attr[];
|
||||
|
||||
public:
|
||||
/* 0x2C8 */ request_of_phase_process_class mPhs;
|
||||
/* 0x2D0 */ J3DModel* mModelBase;
|
||||
/* 0x2D4 */ J3DModel* mModelVan;
|
||||
/* 0x2D8 */ mDoExt_brkAnm mBrkVan;
|
||||
/* 0x2F0 */ dCcD_Tri mTri[8];
|
||||
/* 0xD70 */ dCcD_Stts mStts[8];
|
||||
/* 0xF50 */ int mModeProc;
|
||||
/* 0xF54 */ int mType;
|
||||
/* 0xF58 */ bool mCcInit;
|
||||
/* 0xF59 */ bool mStatueDelete;
|
||||
/* 0xF5A */ bool mEvtPlaying;
|
||||
/* 0xF5B */ bool mBaseAnmPlaying;
|
||||
/* 0xF5C */ s16 mState;
|
||||
/* 0xF5E */ s16 mLightCnt;
|
||||
/* 0xF60 */ s16 mEvtIdx;
|
||||
/* 0xF62 */ bool mSwitch;
|
||||
/* 0xF63 */ bool mBroken;
|
||||
}; // Size: 0xF64
|
||||
}; // namespace daObjMkie
|
||||
|
||||
#endif /* D_A_OBJ_MKIE_H */
|
||||
|
||||
+350
-29
@@ -1,121 +1,442 @@
|
||||
//
|
||||
// Generated by dtk
|
||||
// Translation Unit: d_a_obj_mkie.cpp
|
||||
//
|
||||
/**
|
||||
* d_a_obj_mkie.cpp
|
||||
* Elephant statue in Earth Temple, that dissolves when hit with light.
|
||||
*/
|
||||
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
#include "d/actor/d_a_obj_mkie.h"
|
||||
#include "d/res/res_mkieb.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_priority.h"
|
||||
|
||||
Mtx daObjMkie::Act_c::M_tmp_mtx;
|
||||
const char daObjMkie::Act_c::M_arcname[] = "MkieB";
|
||||
const dCcD_SrcTri daObjMkie::Act_c::M_tri_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
/* Flags */ 0,
|
||||
/* SrcObjAt Type */ 0,
|
||||
/* SrcObjAt Atp */ 0,
|
||||
/* SrcObjAt SPrm */ 0,
|
||||
/* SrcObjTg Type */ AT_TYPE_LIGHT,
|
||||
/* SrcObjTg SPrm */ dCcG_TgSPrm_Shield_e | dCcG_TgSPrm_ShieldFrontRange_e,
|
||||
/* SrcObjCo SPrm */ 0,
|
||||
/* SrcGObjAt Se */ 0,
|
||||
/* SrcGObjAt HitMark */ 0,
|
||||
/* SrcGObjAt Spl */ 0,
|
||||
/* SrcGObjAt Mtrl */ 0,
|
||||
/* SrcGObjAt SPrm */ 0,
|
||||
/* SrcGObjTg Se */ 0,
|
||||
/* SrcGObjTg HitMark */ 0,
|
||||
/* SrcGObjTg Spl */ 0,
|
||||
/* SrcGObjTg Mtrl */ 0,
|
||||
/* SrcGObjTg SPrm */ 0,
|
||||
/* SrcGObjCo SPrm */ 0,
|
||||
},
|
||||
// cM3dGTriS
|
||||
{{
|
||||
/* a */ {0.0f, 0.0f, 0.0f},
|
||||
/* b */ {0.0f, 0.0f, 0.0f},
|
||||
/* c */ {0.0f, 0.0f, 0.0f},
|
||||
}},
|
||||
};
|
||||
const daObjMkie::Act_c::Attr_c daObjMkie::Act_c::M_attr[2] = {
|
||||
{
|
||||
"MkieB_die",
|
||||
1.0f,
|
||||
{
|
||||
{
|
||||
{-30.0f, 190.0f, 40.0f},
|
||||
{-65.0f, 50.0f, 75.0f},
|
||||
{65.0f, 50.0f, 75.0f},
|
||||
},
|
||||
{
|
||||
{-30.0f, 190.0f, 40.0f},
|
||||
{65.0f, 50.0f, 75.0f},
|
||||
{30.0f, 190.0f, 40.0f},
|
||||
},
|
||||
{
|
||||
{38.0f, 190.0f, 20.0f},
|
||||
{75.0f, 50.0f, 65.0f},
|
||||
{75.0f, 50.0f, -65.0f},
|
||||
},
|
||||
{
|
||||
{38.0f, 190.0f, 20.0f},
|
||||
{75.0f, 50.0f, -65.0f},
|
||||
{38.0f, 190.0f, -40.0f},
|
||||
},
|
||||
{
|
||||
{30.0f, 190.0f, -60.0f},
|
||||
{65.0f, 50.0f, -75.0f},
|
||||
{-65.0f, 50.0f, -75.0f},
|
||||
},
|
||||
{
|
||||
{30.0f, 190.0f, -60.0f},
|
||||
{-65.0f, 50.0f, -75.0f},
|
||||
{-30.0f, 190.0f, -60.0f},
|
||||
},
|
||||
{
|
||||
{-38.0f, 190.0f, -40.0f},
|
||||
{-75.0f, 50.0f, -65.0f},
|
||||
{-75.0f, 50.0f, 65.0f},
|
||||
},
|
||||
{{-38.0f, 190.0f, -40.0f}, {-75.0f, 50.0f, 65.0f}, {-38.0f, 190.0f, 20.0f}},
|
||||
},
|
||||
},
|
||||
{"MkieBAB_die",
|
||||
3.0f,
|
||||
{{
|
||||
{-90.0f, 570.0f, 170.0f},
|
||||
{-195.0f, 150.0f, 225.0f},
|
||||
{195.0f, 150.0f, 225.0f},
|
||||
},
|
||||
{
|
||||
{-90.0f, 570.0f, 170.0f},
|
||||
{195.0f, 150.0f, 225.0f},
|
||||
{90.0f, 570.0f, 170.0f},
|
||||
},
|
||||
{
|
||||
{120.0f, 570.0f, 60.0f},
|
||||
{225.f, 150.0f, 195.0f},
|
||||
{225.0f, 150.0f, -195.0f},
|
||||
},
|
||||
{
|
||||
{120.0f, 570.0f, 60.0f},
|
||||
{225.0f, 150.0f, -195.0f},
|
||||
{120.0f, 570.0f, -120.0f},
|
||||
},
|
||||
{
|
||||
{90.0f, 570.0f, -180.0f},
|
||||
{195.0f, 150.0f, -225.0f},
|
||||
{-195.0f, 150.0f, -225.0f},
|
||||
},
|
||||
{
|
||||
{90.0f, 570.0f, -180.0f},
|
||||
{-195.0f, 150.0f, -225.0f},
|
||||
{-90.0f, 570.0f, -180.0f},
|
||||
},
|
||||
{
|
||||
{-120.0f, 570.0f, -120.0f},
|
||||
{-225.0f, 150.0f, -195.0f},
|
||||
{-225.0f, 150.0f, 195.0f},
|
||||
},
|
||||
{{-120.0f, 570.0f, -120.0f}, {-225.0f, 150.0f, 195.0f}, {-120.0f, 570.0f, 60.0f}}}}
|
||||
};
|
||||
|
||||
/* 00000078-00000250 .text CreateHeap__Q29daObjMkie5Act_cFv */
|
||||
BOOL daObjMkie::Act_c::CreateHeap() {
|
||||
/* Nonmatching */
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(M_arcname, MKIEB_BDL_MKIEB);
|
||||
JUT_ASSERT(0x192, model_data != NULL);
|
||||
mModelBase = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000022);
|
||||
|
||||
J3DModelData* model_data_van = (J3DModelData*)dComIfG_getObjectRes(M_arcname, MKIEB_BDL_YLSMF00);
|
||||
JUT_ASSERT(0x19b, model_data_van != NULL);
|
||||
mModelVan = mDoExt_J3DModel__create(model_data_van, 0x80000, 0x11000022);
|
||||
|
||||
J3DAnmTevRegKey* brk_van = (J3DAnmTevRegKey*)dComIfG_getObjectRes(M_arcname, MKIEB_BRK_YLSMF00);
|
||||
JUT_ASSERT(0x1a5, brk_van != NULL);
|
||||
int init = mBrkVan.init(model_data_van, brk_van, true, 0, 1.0f, 0, -1, false, 0);
|
||||
|
||||
bool ret = false;
|
||||
if (mModelBase != NULL && mModelVan != NULL && init != 0) {
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000250-000002EC .text init_cc__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::init_cc() {
|
||||
/* Nonmatching */
|
||||
for (int i = 0; i < 8; i++) {
|
||||
mStts[i].Init(0xff, 0xff, this);
|
||||
mTri[i].Set(M_tri_src);
|
||||
mTri[i].SetStts(&mStts[i]);
|
||||
mTri[i].OnTgNoHitMark();
|
||||
}
|
||||
set_cc_pos();
|
||||
}
|
||||
|
||||
/* 000002EC-00000420 .text set_cc_pos__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::set_cc_pos() {
|
||||
/* Nonmatching */
|
||||
for (int i = 0; i < 8; i++) {
|
||||
Vec src[3];
|
||||
Vec dst[3];
|
||||
src[0] = M_attr[mType].table[i][0];
|
||||
src[1] = M_attr[mType].table[i][1];
|
||||
src[2] = M_attr[mType].table[i][2];
|
||||
mDoMtx_multVecArray(mModelBase->getBaseTRMtx(), src, dst, 3);
|
||||
mTri[i].setPos(&dst[0], &dst[1], &dst[2]);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000420-00000568 .text Create__Q29daObjMkie5Act_cFv */
|
||||
BOOL daObjMkie::Act_c::Create() {
|
||||
/* Nonmatching */
|
||||
fopAcM_SetMtx(this, mModelBase->getBaseTRMtx());
|
||||
init_mtx();
|
||||
{
|
||||
const Attr_c* mAttrPtr = M_attr + mType;
|
||||
float initialScale = mAttrPtr->mScale;
|
||||
fopAcM_setCullSizeBox(
|
||||
this, initialScale * -80.0f, initialScale * -1.0f, initialScale * -80.0f, initialScale * 80.0f, initialScale * 230.0f, initialScale * 80.0f
|
||||
);
|
||||
}
|
||||
init_cc();
|
||||
|
||||
if (daObj::PrmAbstract<Prm_e>(this, PRM_FLAG_W, PRM_FLAG_S) != 0) {
|
||||
actor_status &= ~0x3F;
|
||||
gbaName = 0;
|
||||
}
|
||||
|
||||
mCcInit = false;
|
||||
mBaseAnmPlaying = false;
|
||||
|
||||
{
|
||||
const Attr_c* mAttrPtr = M_attr + mType;
|
||||
attention_info.position.y = current.pos.y + mAttrPtr->mScale * 130.0f;
|
||||
}
|
||||
eyePos = attention_info.position;
|
||||
mEvtIdx = dComIfGp_evmng_getEventIdx(M_attr[mType].name, prm_get_evId());
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000568-00000754 .text Mthd_Create__Q29daObjMkie5Act_cFv */
|
||||
cPhs_State daObjMkie::Act_c::Mthd_Create() {
|
||||
/* Nonmatching */
|
||||
cPhs_State phase_state = cPhs_ERROR_e;
|
||||
fopAcM_SetupActor(this, daObjMkie::Act_c);
|
||||
mSwitch = !fopAcM_isSwitch(this, prm_get_swSave());
|
||||
if (mSwitch && (phase_state = dComIfG_resLoad(&mPhs, M_arcname), phase_state == cPhs_COMPLEATE_e)) {
|
||||
mType = prm_get_type();
|
||||
const Attr_c* mAttrPtr = M_attr + mType;
|
||||
float initialScale = mAttrPtr->mScale;
|
||||
scale.setall(initialScale);
|
||||
phase_state = MoveBGCreate(M_arcname, MKIEB_DZB_MKIEB, dBgS_MoveBGProc_Trans, 0x1b20);
|
||||
JUT_ASSERT(0x216, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e));
|
||||
}
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 00000BF0-00000BF8 .text Delete__Q29daObjMkie5Act_cFv */
|
||||
BOOL daObjMkie::Act_c::Delete() {
|
||||
/* Nonmatching */
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000BF8-00000C54 .text Mthd_Delete__Q29daObjMkie5Act_cFv */
|
||||
BOOL daObjMkie::Act_c::Mthd_Delete() {
|
||||
/* Nonmatching */
|
||||
BOOL ret = true;
|
||||
if (mSwitch != false) {
|
||||
ret = MoveBGDelete();
|
||||
dComIfG_resDelete(&mPhs, M_arcname);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000C54-00000CF8 .text set_mtx__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::set_mtx() {
|
||||
/* Nonmatching */
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mModelBase->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mModelVan->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mDoMtx_stack_c::scaleM(scale);
|
||||
cMtx_copy(mDoMtx_stack_c::now, M_tmp_mtx);
|
||||
}
|
||||
|
||||
/* 00000CF8-00000D50 .text init_mtx__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::init_mtx() {
|
||||
/* Nonmatching */
|
||||
mModelBase->setBaseScale(scale);
|
||||
mModelVan->setBaseScale(scale);
|
||||
set_mtx();
|
||||
}
|
||||
|
||||
/* 00000D50-00000DF4 .text chk_light__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::chk_light() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjMkie::Act_c::chk_light() {
|
||||
BOOL ret = false;
|
||||
|
||||
if (dComIfGp_getDetect().chk_light(&eyePos)) {
|
||||
ret = true;
|
||||
} else {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (mTri[i].ChkTgHit()) {
|
||||
mTri[i].ClrTgHit();
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000DF4-00000E84 .text eff_break__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::eff_break() {
|
||||
/* Nonmatching */
|
||||
_GXColor envColor;
|
||||
envColor.r = (u8)tevStr.mColorC0.r;
|
||||
envColor.g = (u8)tevStr.mColorC0.g;
|
||||
envColor.b = (u8)tevStr.mColorC0.b;
|
||||
envColor.a = (u8)tevStr.mColorC0.a;
|
||||
|
||||
dComIfGp_particle_set(dPa_name::ID_SCENE_81A0, ¤t.pos, &shape_angle, &scale, 0xff, NULL, -1, &tevStr.mColorK0, &envColor, NULL);
|
||||
}
|
||||
|
||||
/* 00000E84-00000EF4 .text sound_melt__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::sound_melt() {
|
||||
/* Nonmatching */
|
||||
fopAcM_seStart(this, JA_SE_OBJ_L_OBJ_BRK_TAME, 0);
|
||||
}
|
||||
|
||||
/* 00000EF4-00000F7C .text sound_break__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::sound_break() {
|
||||
/* Nonmatching */
|
||||
static const u32 se_break[] = {
|
||||
JA_SE_OBJ_L_STATUE_BREAK,
|
||||
JA_SE_OBJ_L_STATUE_L_BREAK,
|
||||
};
|
||||
fopAcM_seStart(this, se_break[mType], 0);
|
||||
}
|
||||
|
||||
/* 00000F7C-00000FD0 .text vib_break__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::vib_break() {
|
||||
/* Nonmatching */
|
||||
dComIfGp_getVibration().StartShock(4, -0x21, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
|
||||
/* 00000FD0-00001094 .text mode_wait__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::mode_wait() {
|
||||
/* Nonmatching */
|
||||
if (chk_light() & 0xff) {
|
||||
mLightCnt += 1;
|
||||
} else {
|
||||
mLightCnt = 0;
|
||||
}
|
||||
|
||||
if (mLightCnt > 20) {
|
||||
mode_demoWait_init();
|
||||
} else {
|
||||
if (mCcInit != false) {
|
||||
set_cc_pos();
|
||||
}
|
||||
if (!fopAcM_cullingCheck(this)) {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
dComIfG_Ccsp()->Set(&mTri[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001094-000010A8 .text mode_demoWait_init__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::mode_demoWait_init() {
|
||||
/* Nonmatching */
|
||||
mEvtPlaying = false;
|
||||
mModeProc = 1;
|
||||
}
|
||||
|
||||
/* 000010A8-00001168 .text mode_demoWait__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::mode_demoWait() {
|
||||
/* Nonmatching */
|
||||
bool demo = false;
|
||||
|
||||
if (dComIfGp_evmng_existence(mEvtIdx)) {
|
||||
if (eventInfo.checkCommandDemoAccrpt()) {
|
||||
demo = true;
|
||||
mEvtPlaying = true;
|
||||
} else {
|
||||
fopAcM_orderOtherEventId(this, mEvtIdx, prm_get_evId());
|
||||
eventInfo.onCondition(2);
|
||||
}
|
||||
} else {
|
||||
demo = true;
|
||||
}
|
||||
|
||||
if (demo) {
|
||||
mode_demo_init();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001168-000011FC .text mode_demo_init__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::mode_demo_init() {
|
||||
/* Nonmatching */
|
||||
mModeProc = 2;
|
||||
mState = 10;
|
||||
if (!prm_get_correct()) {
|
||||
mDoAud_seStart(JA_SE_READ_RIDDLE_1);
|
||||
}
|
||||
mBroken = false;
|
||||
mBaseAnmPlaying = false;
|
||||
}
|
||||
|
||||
/* 000011FC-00001338 .text mode_demo__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::mode_demo() {
|
||||
/* Nonmatching */
|
||||
if (mState > 0 && (mState -= 1, mState == 0)) {
|
||||
eff_break();
|
||||
sound_melt();
|
||||
fopAcM_onSwitch(this, prm_get_swSave());
|
||||
}
|
||||
|
||||
if (mState == 0) {
|
||||
mBaseAnmPlaying = mBrkVan.play();
|
||||
if (!mBroken && mBaseAnmPlaying) {
|
||||
sound_break();
|
||||
vib_break();
|
||||
mBroken = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (mEvtPlaying && dComIfGp_evmng_endCheck(mEvtIdx)) {
|
||||
dComIfGp_event_reset();
|
||||
mEvtPlaying = false;
|
||||
}
|
||||
|
||||
if (!mEvtPlaying && mState == 0 && mBaseAnmPlaying) {
|
||||
mStatueDelete = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001338-000013DC .text mode_proc_call__Q29daObjMkie5Act_cFv */
|
||||
void daObjMkie::Act_c::mode_proc_call() {
|
||||
/* Nonmatching */
|
||||
static void (Act_c::* mode_proc[])() = {
|
||||
&Act_c::mode_wait,
|
||||
&Act_c::mode_demoWait,
|
||||
&Act_c::mode_demo,
|
||||
};
|
||||
|
||||
(this->*mode_proc[mModeProc])();
|
||||
}
|
||||
|
||||
/* 000013DC-000014A0 .text Execute__Q29daObjMkie5Act_cFPPA3_A4_f */
|
||||
BOOL daObjMkie::Act_c::Execute(Mtx**) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjMkie::Act_c::Execute(Mtx** pMtx) {
|
||||
attention_info.position.x = current.pos.x;
|
||||
const Attr_c* mAttrPtr = M_attr + mType;
|
||||
attention_info.position.y = current.pos.y + mAttrPtr->mScale * 130.0f;
|
||||
attention_info.position.z = current.pos.z;
|
||||
|
||||
eyePos = attention_info.position;
|
||||
mode_proc_call();
|
||||
if (mStatueDelete) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
mCcInit = false;
|
||||
set_mtx();
|
||||
*pMtx = &M_tmp_mtx;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000014A0-000015B8 .text Draw__Q29daObjMkie5Act_cFv */
|
||||
BOOL daObjMkie::Act_c::Draw() {
|
||||
/* Nonmatching */
|
||||
if (!mBaseAnmPlaying) {
|
||||
bool flagVan = false;
|
||||
if (mModeProc == 2) {
|
||||
if (mState == 0) {
|
||||
flagVan = true;
|
||||
}
|
||||
}
|
||||
g_env_light.settingTevStruct(0, ¤t.pos, &tevStr);
|
||||
if (flagVan) {
|
||||
g_env_light.setLightTevColorType(mModelVan, &tevStr);
|
||||
J3DModelData* modelData = mModelVan->getModelData();
|
||||
mBrkVan.entry(modelData, mBrkVan.getFrame());
|
||||
} else {
|
||||
g_env_light.setLightTevColorType(mModelBase, &tevStr);
|
||||
}
|
||||
|
||||
dComIfGd_setListBG();
|
||||
if (flagVan) {
|
||||
mDoExt_modelUpdateDL(mModelVan);
|
||||
} else {
|
||||
mDoExt_modelUpdateDL(mModelBase);
|
||||
}
|
||||
dComIfGd_setList();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
namespace daObjMkie {
|
||||
@@ -137,7 +458,7 @@ BOOL Mthd_Execute(void* i_this) {
|
||||
|
||||
/* 00001618-00001644 .text Mthd_Draw__Q29daObjMkie26@unnamed@d_a_obj_mkie_cpp@FPv */
|
||||
BOOL Mthd_Draw(void* i_this) {
|
||||
return ((daObjMkie::Act_c*)i_this)->Draw();
|
||||
return ((daObjMkie::Act_c*)i_this)->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* 00001644-00001670 .text Mthd_IsDelete__Q29daObjMkie26@unnamed@d_a_obj_mkie_cpp@FPv */
|
||||
|
||||
Reference in New Issue
Block a user