diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-11-17 18:38:04 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-17 15:38:04 -0800 |
| commit | bd2def28db1f529298039b6312b6b53f1575fbb7 (patch) | |
| tree | 3216aedaaf199bcc2aeb872425b7313a7c52a63e /src | |
| parent | 4ab97e8f2613e2caf63227db3790d33f9bb2d791 (diff) | |
d_a_demo00 OK (#2817)
* Misc small matches
* Add J3DFrameCtrl::EMode_NULL enum
* Improve weak bss fakematch and remove a functionvalue fakematch
* demo00 OK
Diffstat (limited to 'src')
| -rw-r--r-- | src/JSystem/JStudio/JStudio/functionvalue.cpp | 3 | ||||
| -rw-r--r-- | src/d/actor/d_a_andsw2.cpp | 12 | ||||
| -rw-r--r-- | src/d/actor/d_a_bg.cpp | 4 | ||||
| -rw-r--r-- | src/d/actor/d_a_boomerang.cpp | 6 | ||||
| -rw-r--r-- | src/d/actor/d_a_demo00.cpp | 1789 | ||||
| -rw-r--r-- | src/d/actor/d_a_e_rdb.cpp | 2 | ||||
| -rw-r--r-- | src/d/actor/d_a_e_wb.cpp | 24 | ||||
| -rw-r--r-- | src/d/actor/d_a_horse.cpp | 3 | ||||
| -rw-r--r-- | src/d/actor/d_a_npc_gra.cpp | 1 | ||||
| -rw-r--r-- | src/d/actor/d_a_npc_shaman.cpp | 21 | ||||
| -rw-r--r-- | src/d/actor/d_a_obj_brakeeff.cpp | 2 | ||||
| -rw-r--r-- | src/d/d_particle.cpp | 2 | ||||
| -rw-r--r-- | src/m_Do/m_Do_ext.cpp | 2 |
13 files changed, 965 insertions, 906 deletions
diff --git a/src/JSystem/JStudio/JStudio/functionvalue.cpp b/src/JSystem/JStudio/JStudio/functionvalue.cpp index f169e00469..27aa708d25 100644 --- a/src/JSystem/JStudio/JStudio/functionvalue.cpp +++ b/src/JSystem/JStudio/JStudio/functionvalue.cpp @@ -46,9 +46,6 @@ ExtrapolateParameter TFunctionValue::toFunction_outside(int idx) { TFunctionValue::TFunctionValue() {} TFunctionValue::~TFunctionValue() {} -TFunctionValueAttribute_refer::TFunctionValueAttribute_refer() : - JGadget::TVector_pointer<TFunctionValue*>(JGadget::TAllocator<void*>()) {} - void TFunctionValueAttribute_refer::refer_initialize() { clear(); } diff --git a/src/d/actor/d_a_andsw2.cpp b/src/d/actor/d_a_andsw2.cpp index b726ab3ee3..cb46c6b3a1 100644 --- a/src/d/actor/d_a_andsw2.cpp +++ b/src/d/actor/d_a_andsw2.cpp @@ -189,15 +189,17 @@ static int daAndsw2_actionOnAll(daAndsw2_c* i_this) { case 0: case 1: case 5: - case 6: + case 6: { BOOL temp_r0 = i_this->chkAllSw2() != 0; var_r29 = temp_r0; break; + } case 2: - case 3: + case 3: { BOOL temp_r0_2 = i_this->chkSwStatus() != 0; var_r29 = temp_r0_2; break; + } case 4: if (!dComIfGs_isSwitch(i_this->getSwbit(), fopAcM_GetRoomNo(i_this))) { BOOL temp_r0 = i_this->chkSwStatus2() != 0; @@ -302,15 +304,17 @@ static int daAndsw2_actionOff(daAndsw2_c* i_this) { case 0: case 1: case 5: - case 6: + case 6: { BOOL temp_r0 = i_this->chkAllSw2() != 0; var_r29 = temp_r0; break; + } case 2: - case 3: + case 3: { BOOL temp_r0_2 = i_this->chkSwStatus() != 0; var_r29 = temp_r0_2; break; + } case 4: break; } diff --git a/src/d/actor/d_a_bg.cpp b/src/d/actor/d_a_bg.cpp index e566507b5a..dc836e4af5 100644 --- a/src/d/actor/d_a_bg.cpp +++ b/src/d/actor/d_a_bg.cpp @@ -55,7 +55,7 @@ int daBg_btkAnm_c::create(J3DModelData* i_modelData, J3DAnmTextureSRTKey* i_btk, return 0; } - if (!mpBtk->init(i_modelData, i_btk, i_anmPlay, -1, 1.0f, 0, -1)) { + if (!mpBtk->init(i_modelData, i_btk, i_anmPlay, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1)) { return 0; } @@ -90,7 +90,7 @@ int daBg_brkAnm_c::create(J3DModelData* i_modelData, J3DAnmTevRegKey* i_brk, int return 0; } - if (!mpBrk->init(i_modelData, i_brk, i_anmPlay, -1, 1.0f, 0, -1)) { + if (!mpBrk->init(i_modelData, i_brk, i_anmPlay, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1)) { return 0; } diff --git a/src/d/actor/d_a_boomerang.cpp b/src/d/actor/d_a_boomerang.cpp index 41061f37a3..cd147e40c1 100644 --- a/src/d/actor/d_a_boomerang.cpp +++ b/src/d/actor/d_a_boomerang.cpp @@ -117,7 +117,7 @@ static u8 const l_blurTop[12] = { /* 804A2868-804A287A 000018 000C+06 0/0 0/0 0/0 .rodata l_blurRoot */ // unused -static u8 const l_blurRoot[12 + 6] = { +static u8 const l_blurRoot[12] = { 0xC2, 0x20, 0x00, @@ -130,6 +130,10 @@ static u8 const l_blurRoot[12 + 6] = { 0x00, 0x00, 0x00, +}; + +// TODO: what is this? +static const u8 lbl_46_rodata_24[6] = { 0xB4, 0xA0, 0x8C, diff --git a/src/d/actor/d_a_demo00.cpp b/src/d/actor/d_a_demo00.cpp index a3eaed0c68..e9ecc05393 100644 --- a/src/d/actor/d_a_demo00.cpp +++ b/src/d/actor/d_a_demo00.cpp @@ -22,6 +22,29 @@ #include "d/d_debug_viewer.h" #endif +struct UnknownLightData { + u32 field_0x00; + const char* field_0x04; + u32 field_0x08; + u32 field_0x0C; + u32 field_0x10; + u32 field_0x14; +}; // Size: 0x18 + +static UnknownLightData l_lightData = { + 0x01010000, + "V_24_tri_joint", + 0x00010000, + 0x00000000, + 0x00010000, + 0x00000000, +}; + +#ifndef DEBUG +// TODO: what is this? +static const u8 lit_3727[0xC] = {}; +#endif + /* 804A430C-804A4338 0000EC 002C+00 3/3 0/0 0/0 .text reset__16daDemo00_resID_cFv */ void daDemo00_resID_c::reset() { mShapeID = -1; @@ -37,70 +60,83 @@ void daDemo00_resID_c::reset() { /* 804A4338-804A4388 000118 0050+00 1/1 0/0 0/0 .text reset__16daDemo00_model_cFv */ void daDemo00_model_c::reset() { - // NONMATCHING - field_0x0.reset(); - mID.mShapeID = 0; - mID.field_0xc = 0; - mID.field_0x10 = 0; - mID.field_0x14 = 0; - mID.field_0x8 = 0; - mID.field_0x18 = 0; - mID.field_0x1c = 0; - mID.field_0x20 = 0; + mID.reset(); + field_0x5d4 = NULL; + mpBtpAnm = NULL; + mpBtkAnm = NULL; + mpBrkAnm = NULL; + mpBpkAnm = NULL; + mShadow = NULL; + mDeformData = NULL; + mpBlkAnm = NULL; } /* 804A4388-804A4420 000168 0098+00 1/1 0/0 0/0 .text __dt__10daDemo00_cFv */ daDemo00_c::~daDemo00_c() { if (heap != NULL) { - if (mpModelMorf != NULL) { - mpModelMorf->stopZelAnime(); + if (mModel.mpModelMorf != NULL) { + mModel.mpModelMorf->stopZelAnime(); } } } -/* 804A4420-804A449C 000200 007C+00 2/2 0/0 0/0 .text __dt__12demo_s1_ke_sFv */ -demo_s1_ke_s::~demo_s1_ke_s() {} +static void dummy() { + // Fixes weak function order + cM3dGPla plane; + plane.~cM3dGPla(); +} -/* 804A8998-804A8998 000138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -static char const* const stringBase_804A8998 = "V_24_tri_joint"; +inline int daDemo00_c::create() { + dKy_tevstr_init(&tevStr, dComIfGp_roomControl_getStayNo(), 0xFF); + tevStr.field_0x384 = 1; + mSound.init(&eyePos, NULL, 10, 1); + setAction(&daDemo00_c::actStandby); + field_0x588.reset(); + field_0x6a0 = -1; + return cPhs_COMPLEATE_e; +} /* 804A4520-804A45A0 000300 0080+00 1/1 0/0 0/0 .text get_foward_angle__FP4cXyzP4cXyzPsPs */ static void get_foward_angle(cXyz* param_1, cXyz* param_2, s16* param_3, s16* param_4) { - // NONMATCHING cXyz sp38; + if (param_1 == NULL || param_2 == NULL || param_3 == NULL || param_4 == NULL) { + JUT_ASSERT(173, FALSE); + } dKyr_get_vectle_calc(param_1, param_2, &sp38); - *param_3 = cM_atan2s(JMAFastSqrt(sp38.x * sp38.x + sp38.z * sp38.z), sp38.y); + f32 f31 = JMAFastSqrt(sp38.x * sp38.x + sp38.z * sp38.z); + *param_3 = cM_atan2s(f31, sp38.y); *param_4 = sp38.atan2sX_Z(); } /* 804A45A0-804A4948 000380 03A8+00 2/2 0/0 0/0 .text setBaseMtx__10daDemo00_cFv */ void daDemo00_c::setBaseMtx() { - // NONMATCHING s16 sVar1, sVar2; cXyz sp38; - BOOL bVar1 = FALSE; + bool bVar1 = FALSE; cM3dGPla plane; if (tevStr.mInitTimer == 1) { field_0x574 = shape_angle; + #ifdef DEBUG + debug_field_0x570 = current.pos; + debug_field_0x57c = shape_angle; + #endif } sp38 = current.pos; if (field_0x6a2 != 0 || mground2 != 0) { cXyz sp44(current.pos.x, current.pos.y + 1000.0f, current.pos.z); - mBgc->mGndChk.SetPos(&sp44); - sp38.y = dComIfG_Bgsp().GroundCross(&mBgc->mGndChk); + mModel.mBgc->mGndChk.SetPos(&sp44); + sp38.y = dComIfG_Bgsp().GroundCross(&mModel.mBgc->mGndChk); } if (field_0x6a4 != 0 && field_0x568.x != 10000000.0f) { - if (current.pos != field_0x568) { - if (current.pos.abs(field_0x568) >= 1.5f) { - get_foward_angle(&field_0x568, ¤t.pos, &sVar1, &sVar2); - shape_angle.x = field_0x574.x = sVar1; - shape_angle.y = field_0x574.y = sVar2; - } + if (current.pos != field_0x568 && current.pos.abs(field_0x568) >= 1.5f) { + get_foward_angle(&field_0x568, ¤t.pos, &sVar1, &sVar2); + shape_angle.x = field_0x574.x = sVar1; + shape_angle.y = field_0x574.y = sVar2; } else { shape_angle.x = field_0x574.x; shape_angle.y = field_0x574.y; @@ -111,7 +147,7 @@ void daDemo00_c::setBaseMtx() { if (mground2 != 0) { if (sp38.y != -G_CM3D_F_INF) { - bVar1 = dComIfG_Bgsp().GetTriPla(mBgc->mGndChk, &plane); + bVar1 = dComIfG_Bgsp().GetTriPla(mModel.mBgc->mGndChk, &plane); } if (bVar1 && cBgW_CheckBGround(plane.mNormal.y)) { @@ -129,56 +165,39 @@ void daDemo00_c::setBaseMtx() { mDoMtx_stack_c::transS(sp38.x, sp38.y, sp38.z); mDoMtx_stack_c::XYZrotM(current.angle.x, current.angle.y, current.angle.z); - field_0x5d4->setBaseTRMtx(mDoMtx_stack_c::get()); - field_0x5d4->setBaseScale(scale); + mModel.field_0x5d4->setBaseTRMtx(mDoMtx_stack_c::get()); + mModel.field_0x5d4->setBaseScale(scale); } /* 804A4948-804A4D48 000728 0400+00 1/1 0/0 0/0 .text setShadowSize__10daDemo00_cFv */ void daDemo00_c::setShadowSize() { - // NONMATCHING - J3DModelData* modelData = field_0x5d4->getModelData(); - cXyz sp98(100000000.0f, 100000000.0f, 100000000.0f); - cXyz spa4(-100000000.0f, -100000000.0f, -100000000.0f); + J3DModelData* modelData = mModel.field_0x5d4->getModelData(); + cXyz min(100000000.0f, 100000000.0f, 100000000.0f); + cXyz max(-100000000.0f, -100000000.0f, -100000000.0f); for (u16 i = 0; i < modelData->getJointNum(); i++) { J3DJoint* jntNodeP = modelData->getJointNodePointer(i); if (jntNodeP->getKind() == 0) { cXyz spb0, spbc; - cMtx_multVec(field_0x5d4->getAnmMtx(i), jntNodeP->getMin(), &spb0); - cMtx_multVec(field_0x5d4->getAnmMtx(i), jntNodeP->getMin(), &spbc); + cMtx_multVec(mModel.field_0x5d4->getAnmMtx(i), jntNodeP->getMin(), &spb0); + cMtx_multVec(mModel.field_0x5d4->getAnmMtx(i), jntNodeP->getMax(), &spbc); - if (spb0.x < sp98.x) { - sp98.x = spb0.x; - } + min.x = spb0.x < min.x ? spb0.x : min.x; + min.y = spb0.y < min.y ? spb0.y : min.y; + min.z = spb0.z < min.z ? spb0.z : min.z; - if (spb0.y < sp98.y) { - sp98.y = spb0.y; - } - - if (spb0.z < sp98.z) { - sp98.z = spb0.z; - } - - if (spa4.x < spbc.x) { - spa4.x = spbc.x; - } - - if (spa4.y < spbc.y) { - spa4.y = spbc.y; - } - - if (spa4.z < spbc.z) { - spa4.z = spbc.z; - } + max.x = spbc.x > max.x ? spbc.x : max.x; + max.y = spbc.y > max.y ? spbc.y : max.y; + max.z = spbc.z > max.z ? spbc.z : max.z; } } - mShadow->field_0x4.x = (spa4.x + sp98.x) * 0.5f; - mShadow->field_0x4.y = (spa4.y + sp98.y) * 0.5f; - mShadow->field_0x4.z = (spa4.z + sp98.z) * 0.5f; - cXyz spc8(spa4 - sp98); - mShadow->field_0x1c = spc8.abs() * 3.0f; - mShadow->field_0x20 = spc8.absXZ() * 0.25f; + mModel.mShadow->field_0x4.x = (max.x + min.x) * 0.5f; + mModel.mShadow->field_0x4.y = (max.y + min.y) * 0.5f; + mModel.mShadow->field_0x4.z = (max.z + min.z) * 0.5f; + cXyz spc8(max - min); + mModel.mShadow->field_0x1c = spc8.abs() * 3.0f; + mModel.mShadow->field_0x20 = spc8.absXZ() * 0.25f; } /* 804A4D48-804A4F54 000B28 020C+00 1/1 0/0 0/0 .text awaCheck__FP8J3DModel */ @@ -221,7 +240,6 @@ static int createHeapCallBack(fopAc_ac_c* a_this) { /* 804A4F74-804A5750 000D54 07DC+00 1/1 0/0 0/0 .text createHeap__10daDemo00_cFv */ int daDemo00_c::createHeap() { - // NONMATCHING if (mModel.mID.mShapeID != -1) { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.mShapeID); mDoExt_bckAnmRemove(modelData); @@ -229,49 +247,52 @@ int daDemo00_c::createHeap() { if (modelData == NULL) { OS_REPORT("\ngetDemoArcName=[%s]", dStage_roomControl_c::getDemoArcName()); OS_REPORT("\nmModel.mID.mShapeID=[%d]\n", mModel.mID.mShapeID); - JUT_ASSERT(441, modelData != NULL); } + JUT_ASSERT(441, modelData != NULL); s32 uVar1 = 0x11000084; for (int i = 0; i < modelData->getShapeNum(); i++) { - if (modelData->getShapeNodePointer(i)->getTexMtxLoadType() == 0x2000) { + J3DShape* shape = modelData->getShapeNodePointer(i); + if (shape->getTexMtxLoadType() == 0x2000) { field_0x6ad = 1; break; } } if (mModel.mID.field_0xc != -1) { - mpBtpAnm = new mDoExt_btpAnm(); - if (mpBtpAnm == NULL) { + mModel.mpBtpAnm = new mDoExt_btpAnm(); + if (mModel.mpBtpAnm == NULL) { return 0; } J3DAnmTexPattern* i_btk = (J3DAnmTexPattern*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0xc); if (i_btk == NULL) { - OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", mModel.mID.field_0xc); // ESC_WARNING: The specified BTP animation could not be found! (%d) + // ESC_WARNING: The specified BTP animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", mModel.mID.field_0xc); return 1; } - if (mpBtpAnm->init(modelData, i_btk, 1, -1, 1.0f, 0, -1) == 0) { + if (mModel.mpBtpAnm->init(modelData, i_btk, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1) == 0) { return 0; } - uVar1 = 0x15020084; + uVar1 |= 0x4020000; } if (mModel.mID.field_0x10 != -1) { - mpBtkAnm = new mDoExt_btkAnm(); - if (mpBtkAnm == NULL) { + mModel.mpBtkAnm = new mDoExt_btkAnm(); + if (mModel.mpBtkAnm == NULL) { return 0; } J3DAnmTextureSRTKey* key = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x10); if (key == NULL) { - OS_REPORT("ESC_WARNING指定btkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x10); // ESC_WARNING: The specified btk animation could not be found! (%d) + // ESC_WARNING: The specified btk animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定btkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x10); return 1; } - if (mpBtkAnm->init(modelData, key, 1, -1, 1.0f, 0, -1) == 0) { + if (mModel.mpBtkAnm->init(modelData, key, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1) == 0) { return 0; } @@ -283,35 +304,37 @@ int daDemo00_c::createHeap() { } if (mModel.mID.field_0x14 != -1) { - mpBrkAnm = new mDoExt_brkAnm(); - if (mpBrkAnm == NULL) { + mModel.mpBrkAnm = new mDoExt_brkAnm(); + if (mModel.mpBrkAnm == NULL) { return 0; } J3DAnmTevRegKey* regKey = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x14); if (regKey == NULL) { - OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x14); // ESC_WARNING: The specified brk animation could not be found! (%d) + // ESC_WARNING: The specified brk animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x14); return 1; } - if (mpBrkAnm->init(modelData, regKey, 1, -1, 1.0f, 0, -1) == 0) { + if (mModel.mpBrkAnm->init(modelData, regKey, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1) == 0) { return 0; } } if (mModel.mID.field_0x8 != -1) { - mpBpkAnm = new mDoExt_bpkAnm(); - if (mpBpkAnm == NULL) { + mModel.mpBpkAnm = new mDoExt_bpkAnm(); + if (mModel.mpBpkAnm == NULL) { return 0; } J3DAnmColor* anm_color = (J3DAnmColor*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x8); if (anm_color == NULL) { - OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x8); // ESC_WARNING: The specified brk animation could not be found! (%d) + // ESC_WARNING: The specified brk animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x8); return 1; } - if (mpBpkAnm->init(modelData, anm_color, 1, -1, 1.0f, 0, -1) == 0) { + if (mModel.mpBpkAnm->init(modelData, anm_color, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1) == 0) { return 0; } @@ -319,14 +342,14 @@ int daDemo00_c::createHeap() { } if (mModel.mID.field_0x4 == -1) { - mpModelMorf = NULL; + mModel.mpModelMorf = NULL; if (field_0x6ad == 0) { - field_0x5d4 = mDoExt_J3DModel__create(modelData, 0x80000, uVar1); + mModel.field_0x5d4 = mDoExt_J3DModel__create(modelData, 0x80000, uVar1); } else { - field_0x5d4 = mDoExt_J3DModel__create(modelData, 0, uVar1); + mModel.field_0x5d4 = mDoExt_J3DModel__create(modelData, 0, uVar1); } - if (field_0x5d4 == NULL) { + if (mModel.field_0x5d4 == NULL) { return 0; } } else { @@ -338,74 +361,78 @@ int daDemo00_c::createHeap() { } if (field_0x6ad == 0) { - mpModelMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, anm, -1, 1.0f, 0, -1, &mSound, 0x80000, uVar1); + mModel.mpModelMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, anm, -1, 1.0f, 0, -1, &mSound, 0x80000, uVar1); } else { - mpModelMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, anm, -1, 1.0f, 0, -1, &mSound, 0, uVar1); + mModel.mpModelMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, anm, -1, 1.0f, 0, -1, &mSound, 0, uVar1); } - if (mpModelMorf == NULL || mpModelMorf->getModel() == NULL) { + if (mModel.mpModelMorf == NULL || mModel.mpModelMorf->getModel() == NULL) { return 0; } - field_0x5d4 = mpModelMorf->getModel(); + mModel.field_0x5d4 = mModel.mpModelMorf->getModel(); - if (!awaCheck(field_0x5d4)) { + if (!awaCheck(mModel.field_0x5d4)) { return 0; } } if (field_0x6b4 != 0) { - field_0x5d8 = new mDoExt_invisibleModel(); - if (field_0x5d8 == NULL) { + mModel.field_0x5d8 = new mDoExt_invisibleModel(); + if (mModel.field_0x5d8 == NULL) { return 0; } - if (field_0x5d8->create(field_0x5d4, 1) == 0) { + if (mModel.field_0x5d8->create(mModel.field_0x5d4, 1) == 0) { return 0; } } else { - field_0x5d8 = NULL; + mModel.field_0x5d8 = NULL; } mModel.mID.field_0x18 = 1; if (mModel.mID.field_0x18 != -1) { - mShadow = new daDemo00_shadow_c(); - if (mShadow == NULL) { + mModel.mShadow = new daDemo00_shadow_c(); + if (mModel.mShadow == NULL) { return 0; } - field_0x5d4->calc(); + #ifdef DEBUG + mModel.field_0x5d4->getBaseTRMtx()[0][0] = 1.0f; + #endif + mModel.field_0x5d4->calc(); setShadowSize(); } - mBgc = new daDemo00_bgc_c(); - if (mBgc == NULL) { + mModel.mBgc = new daDemo00_bgc_c(); + if (mModel.mBgc == NULL) { return 0; } - mBgc->mGndChk.OffWall(); + mModel.mBgc->mGndChk.OffWall(); if (mModel.mID.field_0x1c != -1) { - mDeformData = (J3DDeformData*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x1c); - // Should be mModel.mDeformData - JUT_ASSERT(687, mDeformData != NULL); + mModel.mDeformData = (J3DDeformData*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x1c); + JUT_ASSERT(687, mModel.mDeformData != NULL); if (mModel.mID.field_0x20 != -1) { - mpBlkAnm = new mDoExt_blkAnm(); - if (mpBlkAnm == NULL) { + mModel.mpBlkAnm = new mDoExt_blkAnm(); + if (mModel.mpBlkAnm == NULL) { return 0; } J3DAnmCluster* anm_cluster = (J3DAnmCluster*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x20); if (anm_cluster == NULL) { - OS_REPORT("ESC_WARNING指定blkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x20); // ESC_WARNING: Specified blk animation not found! (%d) + // ESC_WARNING: Specified blk animation not found! (%d) + OS_REPORT("ESC_WARNING指定blkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x20); } else { - if (mpBlkAnm->init(mDeformData, anm_cluster, 1, -1, 1.0f, 0, -1) == 0) { + if (mModel.mpBlkAnm->init(mModel.mDeformData, anm_cluster, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1) == 0) { return 0; } } } - if (field_0x5d4->setDeformData(mDeformData, 1) != 0) { + s32 ret = mModel.field_0x5d4->setDeformData(mModel.mDeformData, 1); + if (ret != kJ3DError_Success) { return 0; } } @@ -417,13 +444,12 @@ int daDemo00_c::createHeap() { } f32* pfVar1 = field_0x6bc.getSize(0); - for (int i = 0; i < 32; i++) { + for (int i = 0; i < 32; i++, pfVar1++) { if (field_0x6a7 >= 2 && field_0x6a7 <= 4) { *pfVar1 = 5.0f; } else { *pfVar1 = 3.0f; } - pfVar1++; } } @@ -436,20 +462,22 @@ int daDemo00_c::createHeap() { /* 804A5798-804A594C 001578 01B4+00 2/0 0/0 0/0 .text actStandby__10daDemo00_cFP13dDemo_actor_c */ int daDemo00_c::actStandby(dDemo_actor_c* actor) { - // NONMATCHING - if (mModel.field_0x0.mShapeID != -1) { - mModel.mID = mModel.field_0x0; - if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x9004c5e0)) { + if (field_0x588.mShapeID != -1) { + mModel.mID = field_0x588; + u32 heapSize = 0x4c5e0; + heapSize |= 0x80000000; + heapSize |= 0x10000000; + if (fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize)) { OS_REPORT("汎用くん確保ヒープサイズ %d\n", heap->getHeapSize()); - if (field_0x5d4 != NULL) { + if (mModel.field_0x5d4 != NULL) { dDemo_setDemoData(this, 42, NULL, NULL, 0, NULL, 0, 0); setBaseMtx(); - fopAcM_SetMtx(this, field_0x5d4->getBaseTRMtx()); - actor->setModel(field_0x5d4); + fopAcM_SetMtx(this, mModel.field_0x5d4->getBaseTRMtx()); + actor->setModel(mModel.field_0x5d4); - if (mpModelMorf != NULL) { - actor->setAnmFrameMax(mpModelMorf->getEndFrame()); + if (mModel.mpModelMorf != NULL) { + actor->setAnmFrameMax(mModel.mpModelMorf->getEndFrame()); } } @@ -467,17 +495,16 @@ int daDemo00_c::actStandby(dDemo_actor_c* actor) { /* 804A594C-804A604C 00172C 0700+00 1/0 0/0 0/0 .text actPerformance__10daDemo00_cFP13dDemo_actor_c */ int daDemo00_c::actPerformance(dDemo_actor_c* actor) { - // NONMATCHING f32 fVar1; - int i_attribute; - if (mModel.mID.mShapeID != mModel.field_0x0.mShapeID) { + if (mModel.mID.mShapeID != field_0x588.mShapeID) { mModel.reset(); setAction(&daDemo00_c::actLeaving); - } else if (field_0x5d4 != NULL) { - if (mpModelMorf != NULL && mModel.mID.field_0x4 != mModel.field_0x0.field_0x4) { - J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x4); + } else if (mModel.field_0x5d4 != NULL) { + if (mModel.mpModelMorf != NULL && mModel.mID.field_0x4 != field_0x588.field_0x4) { + J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)field_0x588.field_0x4); if (anm == NULL) { - OS_REPORT("ESC_WARNING指定bckアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x4); // ESC_WARNING: Specified bck animation not found! (%d) + // ESC_WARNING: Specified bck animation not found! (%d) + OS_REPORT("ESC_WARNING指定bckアニメーションが見つかりません!(%d)\n", field_0x588.field_0x4); return 1; } @@ -485,97 +512,107 @@ int daDemo00_c::actPerformance(dDemo_actor_c* actor) { if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_TRANSITION_e)) { fVar1 = actor->getAnmTransition(); } - mpModelMorf->setAnm(anm, -1, fVar1, 1.0f, 0.0f, -1.0f); - mModel.mID.field_0x4 = mModel.field_0x0.field_0x4; + mModel.mpModelMorf->setAnm(anm, -1, fVar1, 1.0f, 0.0f, -1.0f); + mModel.mID.field_0x4 = field_0x588.field_0x4; } - if (mModel.mID.field_0xc != mModel.field_0x0.field_0xc) { - J3DAnmTexPattern* anmTexPattern = (J3DAnmTexPattern*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0xc); + if (mModel.mID.field_0xc != field_0x588.field_0xc) { + J3DAnmTexPattern* anmTexPattern = (J3DAnmTexPattern*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)field_0x588.field_0xc); if (anmTexPattern == NULL) { - OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0xc); // ESC_WARNING: The specified btp animation could not be found! (%d) + // ESC_WARNING: The specified btp animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", field_0x588.field_0xc); return 1; } - mpBtpAnm->init(field_0x5d4->getModelData(), anmTexPattern, 1, -1, 1.0f, 0, -1); - mModel.mID.field_0xc = mModel.field_0x0.field_0xc; + mModel.mpBtpAnm->init(mModel.field_0x5d4->getModelData(), anmTexPattern, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1); + mModel.mID.field_0xc = field_0x588.field_0xc; } - if (mModel.mID.field_0x10 != mModel.field_0x0.field_0x10) { - J3DAnmTextureSRTKey* key = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x10); + if (mModel.mID.field_0x10 != field_0x588.field_0x10) { + J3DAnmTextureSRTKey* key = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)field_0x588.field_0x10); if (key == NULL) { - OS_REPORT("ESC_WARNING指定btkアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x10); // ESC_WARNING: The specified btk animation could not be found! (%d) + // ESC_WARNING: The specified btk animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定btkアニメーションが見つかりません!(%d)\n", field_0x588.field_0x10); return 1; } - mpBtkAnm->init(field_0x5d4->getModelData(), key, 1, -1, 1.0f, 0, -1); - mModel.mID.field_0x10 = mModel.field_0x0.field_0x10; + mModel.mpBtkAnm->init(mModel.field_0x5d4->getModelData(), key, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1); + mModel.mID.field_0x10 = field_0x588.field_0x10; } - if (mModel.mID.field_0x14 != mModel.field_0x0.field_0x14) { - J3DAnmTevRegKey* anmTev = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x14); + if (mModel.mID.field_0x14 != field_0x588.field_0x14) { + J3DAnmTevRegKey* anmTev = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)field_0x588.field_0x14); if (anmTev == NULL) { - OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x14); // ESC_WARNING: The specified brk animation could not be found! (%d) + // ESC_WARNING: The specified brk animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", field_0x588.field_0x14); return 1; } if ((mModel.mID.field_0x14 & 0x10000000) != 0) { - fVar1 = mpBrkAnm->getFrame(); + fVar1 = mModel.mpBrkAnm->getFrame(); } else { fVar1 = 0.0f; } + s16 start = fVar1; + + int attribute; if ((mModel.mID.field_0x14 & 0x10000000) != 0) { - i_attribute = 2; + attribute = J3DFrameCtrl::EMode_LOOP; } else { - i_attribute = -1; + attribute = J3DFrameCtrl::EMode_NULL; } - mpBrkAnm->init(field_0x5d4->getModelData(), anmTev, 1, i_attribute, 1.0f, fVar1, -1); - mModel.mID.field_0x14 = mModel.field_0x0.field_0x14; + mModel.mpBrkAnm->init(mModel.field_0x5d4->getModelData(), anmTev, 1, attribute, 1.0f, start, -1); + mModel.mID.field_0x14 = field_0x588.field_0x14; } - if (mModel.mID.field_0x8 != mModel.field_0x0.field_0x8) { - J3DAnmColor* anm_color = (J3DAnmColor*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x8); + if (mModel.mID.field_0x8 != field_0x588.field_0x8) { + J3DAnmColor* anm_color = (J3DAnmColor*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)field_0x588.field_0x8); if (anm_color == NULL) { - OS_REPORT("ESC_WARNING指定bpkアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x8); // ESC_WARNING: The specified bpk animation could not be found! (%d) + // ESC_WARNING: The specified bpk animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定bpkアニメーションが見つかりません!(%d)\n", field_0x588.field_0x8); return 1; } - if ((mModel.mID.field_0x14 & 0x10000000) != 0) { - fVar1 = mpBpkAnm->getFrame(); + if ((mModel.mID.field_0x8 & 0x10000000) != 0) { + fVar1 = mModel.mpBpkAnm->getFrame(); } else { fVar1 = 0.0f; } - if ((mModel.mID.field_0x14 & 0x10000000) != 0) { - i_attribute = 2; + s16 start = fVar1; + + int attribute; + if ((mModel.mID.field_0x8 & 0x10000000) != 0) { + attribute = J3DFrameCtrl::EMode_LOOP; } else { - i_attribute = -1; + attribute = J3DFrameCtrl::EMode_NULL; } - mpBpkAnm->init(field_0x5d4->getModelData(), anm_color, 1, i_attribute, 1.0f, fVar1, -1); - mModel.mID.field_0x8 = mModel.field_0x0.field_0x8; + mModel.mpBpkAnm->init(mModel.field_0x5d4->getModelData(), anm_color, 1, attribute, 1.0f, start, -1); + mModel.mID.field_0x8 = field_0x588.field_0x8; } - if (mModel.mID.field_0x20 != mModel.field_0x0.field_0x20) { - // Should be mModel.mDeformData and mModel.mBlkAnm - JUT_ASSERT(1049, mDeformData != NULL && mpBlkAnm != NULL); + if (mModel.mID.field_0x20 != field_0x588.field_0x20) { + JUT_ASSERT(1049, mModel.mDeformData != NULL && mModel.mpBlkAnm != NULL); - J3DAnmCluster* anmCluster = (J3DAnmCluster*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x20); + J3DAnmCluster* anmCluster = (J3DAnmCluster*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)field_0x588.field_0x20); if (anmCluster == NULL) { - OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x20); // ESC_WARNING: The specified btp animation could not be found! (%d) + // ESC_WARNING: The specified btp animation could not be found! (%d) + OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", field_0x588.field_0x20); return 1; } - mpBlkAnm->init(mDeformData, anmCluster, 1, -1, 1.0f, 0, -1); - mModel.mID.field_0x20 = mModel.field_0x0.field_0x20; + mModel.mpBlkAnm->init(mModel.mDeformData, anmCluster, 1, J3DFrameCtrl::EMode_NULL, 1.0f, 0, -1); + mModel.mID.field_0x20 = field_0x588.field_0x20; } dDemo_setDemoData(this, 0x2A, 0, 0, 0, 0, 0, 0); - if (mBgc != NULL) { + if (mModel.mBgc != NULL) { cXyz sp70(current.pos.x, current.pos.y + 100.0f, current.pos.z); - mBgc->mGndChk.SetPos(&sp70); - mBgc->field_0x54 = dComIfG_Bgsp().GroundCross(&mBgc->mGndChk); + mModel.mBgc->mGndChk.SetPos(&sp70); + mModel.mBgc->field_0x54 = dComIfG_Bgsp().GroundCross(&mModel.mBgc->mGndChk); field_0x6a1 = 1; } @@ -584,104 +621,102 @@ int daDemo00_c::actPerformance(dDemo_actor_c* actor) { if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_FRAME_e)) { fVar1 = actor->getAnmFrame(); if (fVar1 > 1.0f) { - f32 fVar2 = fVar1 - 1.0f; - if (mpModelMorf != NULL) { - mpModelMorf->setFrameF(fVar1 - 1.0f); - u32 sndId; - if (mBgc != NULL && field_0x6a1 != 0 && fabsf(mBgc->field_0x54 - current.pos.y) < 20.0f) { - sndId = dComIfG_Bgsp().GetMtrlSndId(mBgc->mGndChk); - } else { - sndId = 0; - } - - mpModelMorf->play(sndId, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo())); + fVar1 -= 1.0f; + if (mModel.mpModelMorf != NULL) { + mModel.mpModelMorf->setFrameF(fVar1); + mModel.mpModelMorf->play( + mModel.mBgc != NULL && field_0x6a1 != 0 && fabsf(mModel.mBgc->field_0x54 - current.pos.y) < 20.0f ? + dComIfG_Bgsp().GetMtrlSndId(mModel.mBgc->mGndChk) : + 0, + dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()) + ); } - if (mpBtpAnm != NULL) { - mpBtpAnm->setFrame(fVar2); - mpBtpAnm->play(); + if (mModel.mpBtpAnm != NULL) { + mModel.mpBtpAnm->setFrame(fVar1); + mModel.mpBtpAnm->play(); } - if (mpBtkAnm != NULL) { + if (mModel.mpBtkAnm != NULL) { if ((mModel.mID.field_0x10 & 0x10000000) == 0) { - mpBtkAnm->setFrame(fVar2); + mModel.mpBtkAnm->setFrame(fVar1); } - mpBtkAnm->play(); + mModel.mpBtkAnm->play(); } - if (mpBrkAnm != NULL) { + if (mModel.mpBrkAnm != NULL) { if ((mModel.mID.field_0x14 & 0x10000000) == 0) { - mpBrkAnm->setFrame(fVar2); + mModel.mpBrkAnm->setFrame(fVar1); } - mpBrkAnm->play(); + mModel.mpBrkAnm->play(); } - if (mpBpkAnm != NULL) { + if (mModel.mpBpkAnm != NULL) { if ((mModel.mID.field_0x8 & 0x10000000) == 0) { - mpBpkAnm->setFrame(fVar2); + mModel.mpBpkAnm->setFrame(fVar1); } - mpBpkAnm->play(); + mModel.mpBpkAnm->play(); } - if (mpBlkAnm != NULL) { + if (mModel.mpBlkAnm != NULL) { if ((mModel.mID.field_0x20 & 0x10000000) == 0) { - mpBlkAnm->setFrame(fVar2); + mModel.mpBlkAnm->setFrame(fVar1); } - mpBlkAnm->play(); + mModel.mpBlkAnm->play(); } } else { - if (mpModelMorf != NULL) { - mpModelMorf->setFrameF(fVar1); + if (mModel.mpModelMorf != NULL) { + mModel.mpModelMorf->setFrameF(fVar1); } - if (mpBtpAnm != NULL) { - mpBtpAnm->setFrame(fVar1); + if (mModel.mpBtpAnm != NULL) { + mModel.mpBtpAnm->setFrame(fVar1); } - if (mpBtkAnm != NULL) { + if (mModel.mpBtkAnm != NULL) { if ((mModel.mID.field_0x10 & 0x10000000) == 0) { - mpBtkAnm->setFrame(fVar1); + mModel.mpBtkAnm->setFrame(fVar1); } else { - mpBtkAnm->play(); + mModel.mpBtkAnm->play(); } } - if (mpBrkAnm != NULL) { + if (mModel.mpBrkAnm != NULL) { if ((mModel.mID.field_0x14 & 0x10000000) == 0) { - mpBrkAnm->setFrame(fVar1); + mModel.mpBrkAnm->setFrame(fVar1); } else { - mpBrkAnm->play(); + mModel.mpBrkAnm->play(); } } - if (mpBpkAnm != NULL) { + if (mModel.mpBpkAnm != NULL) { if ((mModel.mID.field_0x8 & 0x10000000) == 0) { - mpBpkAnm->setFrame(fVar1); + mModel.mpBpkAnm->setFrame(fVar1); } else { - mpBpkAnm->play(); + mModel.mpBpkAnm->play(); } } - if (mpBlkAnm != NULL) { + if (mModel.mpBlkAnm != NULL) { if ((mModel.mID.field_0x20 & 0x10000000) == 0) { - mpBlkAnm->setFrame(fVar1); + mModel.mpBlkAnm->setFrame(fVar1); } else { - mpBlkAnm->play(); + mModel.mpBlkAnm->play(); } } } - } else if (mpModelMorf != NULL) { - mpModelMorf->play(0, 0); - } else if (mpBtpAnm != NULL) { - mpBtpAnm->play(); - } else if (mpBtkAnm != NULL) { - mpBtkAnm->play(); - } else if (mpBrkAnm != NULL) { - mpBrkAnm->play(); - } else if (mpBpkAnm != NULL) { - mpBpkAnm->play(); - } else if (mpBlkAnm != NULL) { - mpBlkAnm->play(); + } else if (mModel.mpModelMorf != NULL) { + mModel.mpModelMorf->play(0, 0); + } else if (mModel.mpBtpAnm != NULL) { + mModel.mpBtpAnm->play(); + } else if (mModel.mpBtkAnm != NULL) { + mModel.mpBtkAnm->play(); + } else if (mModel.mpBrkAnm != NULL) { + mModel.mpBrkAnm->play(); + } else if (mModel.mpBpkAnm != NULL) { + mModel.mpBpkAnm->play(); + } else if (mModel.mpBlkAnm != NULL) { + mModel.mpBlkAnm->play(); } if (actor->checkEnable(dDemo_actor_c::ENABLE_SCALE_e)) { @@ -694,9 +729,8 @@ int daDemo00_c::actPerformance(dDemo_actor_c* actor) { /* 804A604C-804A60B0 001E2C 0064+00 1/0 0/0 0/0 .text actLeaving__10daDemo00_cFP13dDemo_actor_c */ int daDemo00_c::actLeaving(dDemo_actor_c* actor) { - // NONMATCHING - if (mpModelMorf != NULL) { - mpModelMorf->stopZelAnime(); + if (mModel.mpModelMorf != NULL) { + mModel.mpModelMorf->stopZelAnime(); } fopAcM_DeleteHeap(this); @@ -704,9 +738,476 @@ int daDemo00_c::actLeaving(dDemo_actor_c* actor) { return 1; } +/* 804A7BA8-804A84AC 003988 0904+00 7/1 0/0 0/0 .text execute__10daDemo00_cFv */ +inline int daDemo00_c::execute() { + field_0x6a1 = 0; + dDemo_actor_c* actor = dDemo_c::getActor(demoActorID); + + if (actor == NULL) { + fopAcM_delete(this); + OS_REPORT("汎用くん<dactor%d>削除!!\n", argument); + } else { + if (actor->checkEnable(dDemo_actor_c::ENABLE_SHAPE_e)) { + field_0x588.mShapeID = actor->getShapeId(); + } + + if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_e)) { + field_0x588.field_0x4 = actor->getAnmId(); + } + + int sp48, sp44, sp40; + u16 sp0E; + u8 sp09; + if (actor->checkEnable(dDemo_actor_c::ENABLE_UNK_e)) { + dDemo_prm_c* sp3C = actor->getPrm(); + while (actor->getDemoIDData(&sp48, &sp44, &sp40, &sp0E, &sp09) != 0) { + if (sp48 == 0) { + switch (sp40) { + case 0: { + u16 sp0C = (sp0E >> 8) & 0xFF; + u16 resID8 = sp0E & 0xFF; // r29 + switch (sp0C) { + case 1: + switch (resID8) { + case 1: + field_0x6b4 = 1; + break; + + case 2: + field_0x6a5 = 1; + break; + + case 3: + field_0x6a5 = 2; + break; + + case 4: + field_0x6a6 = 1; + break; + + case 5: + field_0x6a6 = 2; + break; + + case 6: + field_0x6a6 = 3; + break; + + case 0: + break; + } + break; + + case 2: + if (resID8 == 0) { + field_0x6a2 = 0; + mground2 = 0; + } else if (resID8 == 1) { + field_0x6a2 = 1; + } else { + mground2 = 1; + } + + OS_REPORT("\nmground2=[%d]", mground2); + break; + + case 3: { + static u8 const l_itemNo[4] = { + 0x29, + 0xFF, + 0xFF, + 0xFF, + }; + JUT_ASSERT(1389, resID8 < (sizeof(l_itemNo)/sizeof(u8))); + u8 itemNo = l_itemNo[resID8]; + if (itemNo != 0xFF) { + execItemGet(itemNo); + } + break; + } + case 4: + case 5: + case 6: + case 7: { + BOOL bVar1 = FALSE; + BOOL bVar2 = FALSE; + int sp30 = resID8; + if (sp0C == 5 || sp0C == 7) { + bVar1 = TRUE; + } + + if (sp0C == 6 || sp0C == 7) { + bVar2 = TRUE; + } + + if (sp30 == 0xFF) { + sp30 = 0x1A; + } + + switch (bVar1) { + case FALSE: + mDoGph_gInf_c::fadeIn(1.0f / sp30, !bVar2 ? g_blackColor : g_saftyWhiteColor); + break; + case TRUE: + mDoGph_gInf_c::fadeOut(1.0f / sp30, !bVar2 ? g_blackColor : g_saftyWhiteColor); + break; + } + break; + } + case 8: { + u32 sp2C = (resID8 & 0xC0) >> 6; + u32 sp28 = resID8 & 0x3F; + + switch (sp2C) { + case 0: + dComIfGp_getVibration().StopQuake(1); + break; + + case 1: + dComIfGp_getVibration().StartShock(sp28, 1, cXyz(0.0f, 1.0f, 0.0f)); + break; + + case 2: + dComIfGp_getVibration().StartQuake(sp28, 1, cXyz(0.0f, 1.0f, 0.0f)); + break; + + default: + // Demo General-Kun Vibration Setting Error!! + OS_REPORT("\nデモ汎用君振動設定エラー!!"); + break; + } + break; + } + case 9: + if (resID8 == 0) { + field_0x6a4 = 0; + } else { + field_0x6a4 = 1; + } + break; + + case 10: { + int sp24 = resID8 & 0xFF; + if (sp24 < 0x40) { + dKy_change_colpat(sp24); + OS_REPORT("\nパレット型[%d]へ変更", sp24); + } + break; + } + case 11: { + u32 sp20 = resID8; + switch (sp20) { + case 0: + g_env_light.mThunderEff.field_0x2 = 1; + break; + + case 1: + field_0x6b2 = 1; + break; + + case 2: + field_0x6b2 = 2; + break; + + case 3: + field_0x69c = 0xFA; + break; + + case 4: + field_0x69c = 0; + break; + + case 5: + field_0x69e = 0x32; + break; + + case 6: + field_0x69e = 0; + break; + } + break; + } + case 12: { + u32 sp1C = resID8; + switch (sp1C) { + case 0: + field_0x6a7 = 0; + break; + + case 1: + field_0x6a7 = 2; + break; + + case 2: + field_0x6a7 = 3; + break; + + case 3: + field_0x6a7 = 1; + break; + + case 4: + field_0x6a7 = 8; + break; + + case 5: + field_0x6a7 = 4; + break; + + case 6: + field_0x6b6 = 1; + break; + + case 7: + field_0x6b6 = 2; + break; + + case 8: + field_0x6a7 = 6; + break; + + case 9: + field_0x6a7 = 7; + break; + + case 10: + field_0x6a7 = 5; + break; + } + break; + } + case 13: + field_0x6a9 = resID8; + break; + + case 14: + field_0x6a8 = resID8; + break; + + case 15: + if (resID8 == 1) { + field_0x6aa = 1; + } else { + field_0x6aa = 0; + } + break; + + case 16: + field_0x6ab = resID8; + break; + + case 17: + switch (resID8) { + case 1: + field_0x6ac = 2; + break; + + case 2: + field_0x6ac = 4; + break; + + case 3: + field_0x6ac = 7; + break; + + case 4: + field_0x6ac = 9; + break; + + case 5: + field_0x6ac = 1; + break; + + case 6: + field_0x6ac = 16; + break; + + case 7: + field_0x6ac = 17; + break; + + case 8: + field_0x6ac = 18; + break; + + case 9: + field_0x6ac = 19; + break; + + case 10: + field_0x6ac = 10; + break; + + case 11: + field_0x6ac = 14; + break; + + case 12: + field_0x6ac = 3; + break; + + case 13: + field_0x6ac = 5; + break; + + case 14: + field_0x6ac = 15; + break; + } + break; + + case 18: + field_0x6ae = 1; + break; + + case 19: + field_0x6af = resID8; + break; + + case 20: + field_0x6b0 = resID8; + break; + + case 21: + field_0x6b1 = 1; + break; + + case 22: + field_0x6b5 = resID8; + break; + + case 23: + field_0x6b7 = resID8; + break; + + case 24: + field_0x6b8 = 1; + break; + + case 25: + cXyz sp90, sp9c; + sp90.x = 0.0f; + sp90.y = 0.0f; + sp90.z = 0.0f; + sp9c.x = 1.0f; + sp9c.y = 1.0f; + sp9c.z = 1.0f; + field_0x6b9 = 1; + dComIfGp_particle_set((u16)field_0x588.mShapeID, &sp90, NULL, NULL, &sp9c); + field_0x588.reset(); + field_0x588.mShapeID = -1; + actor->offEnable(16); + break; + } + break; + } + case 1: + dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[sp0E]); + break; + + case 2: { + u16 sp0A = sp0E & 0x3FFF; + if ((sp0E & 0xC000) == 0) { + fopAcM_create(PROC_MOVIE_PLAYER, sp0A, NULL, fopAcM_GetRoomNo(this), NULL, NULL, 0xFF); + mDoGph_gInf_c::fadeOut(1.0f); + } else { + switch (sp0A) { + case 0: + daMP_c::daMP_c_THPPlayerPlay(); + break; + + case 1: + daMP_c::daMP_c_THPPlayerPause(); + break; + } + } + break; + } + case 3: + dComIfGs_onTmpBit((u16)dSv_event_tmp_flag_c::tempBitLabels[sp0E]); + break; + } + } else { + switch (sp40) { + case 1: + field_0x588.reset(); + field_0x588.mShapeID = sp0E; + break; + + case 2: + field_0x588.field_0x4 = sp0E; + break; + + case 3: + if (sp09 == 0) { + field_0x588.field_0x10 = sp0E; + } else { + field_0x588.field_0x10 = sp0E | 0x10000000; + } + break; + + case 4: + if (sp09 == 0) { + field_0x588.field_0x14 = sp0E; + } else { + field_0x588.field_0x14 = sp0E | 0x10000000; + } + break; + + case 5: + field_0x588.field_0xc = sp0E; + break; + + case 6: + field_0x588.field_0x1c = sp0E; + break; + + case 7: + field_0x588.field_0x20 = sp0E; + break; + + case 8: + field_0x588.field_0x8 = sp0E; + break; + } + } + } + + actor->offEnable(dDemo_actor_c::ENABLE_UNK_e); + } + + action(actor); + + #if WIDESCREEN_SUPPORT + if (field_0x6b1 != 0) { + mDoGph_gInf_c::onWideZoom(); + } + #endif + } + + if (field_0x6ae != 0) { + f32 cutoff = 90.0f; + cutoff = shape_angle.z / 182.04445f; + GXColor color; + color.r = scale.x; + color.g = scale.y; + color.b = scale.z; + color.a = 0xFF; + f32 f30 = shape_angle.x / 182.04445f; + f32 f29 = shape_angle.y / 182.04445f; + dKy_BossSpotLight_set(¤t.pos, f30, f29 - 90.0f, + cutoff, &color, gravity, field_0x6b0, field_0x6af); + } + + if (field_0x6b8 != 0) { + dComIfGs_setTime(current.pos.x * 15.0f); + } + + return 1; +} + /* 804A60B0-804A61F0 001E90 0140+00 1/1 0/0 0/0 .text mDad00_changeXluMaterial__FP11J3DMateriali */ static void mDad00_changeXluMaterial(J3DMaterial* i_material, int param_2) { - // NONMATCHING static J3DBlendInfo l_blendInfoOPA = { 0, 1, @@ -736,27 +1237,33 @@ static void mDad00_changeXluMaterial(J3DMaterial* i_material, int param_2) { if (param_2 == 0) { i_material->setMaterialMode(4); - i_material->getPEBlock()->getBlend()->setBlendInfo(l_blendInfo); - i_material->getPEBlock()->getZMode()->setZModeInfo(l_zmodeInfo); + J3DTevBlock* tevBlock = i_material->getTevBlock(); + J3DPEBlock* peBlock = i_material->getPEBlock(); + u8 tevStageNum = tevBlock->getTevStageNum(); + peBlock->getBlend()->setBlendInfo(l_blendInfo); + peBlock->getZMode()->setZModeInfo(l_zmodeInfo); } else { i_material->setMaterialMode(1); - i_material->getPEBlock()->getBlend()->setBlendInfo(l_blendInfoOPA); - i_material->getPEBlock()->getZMode()->setZModeInfo(l_zmodeInfoOPA); + J3DTevBlock* tevBlock = i_material->getTevBlock(); + J3DPEBlock* peBlock = i_material->getPEBlock(); + u8 tevStageNum = tevBlock->getTevStageNum(); + peBlock->getBlend()->setBlendInfo(l_blendInfoOPA); + peBlock->getZMode()->setZModeInfo(l_zmodeInfoOPA); } } /* 804A61F0-804A6428 001FD0 0238+00 1/1 0/0 0/0 .text teduna_calc__FP4cXyzP4cXyzP4cXyzsi */ static void teduna_calc(cXyz* param_1, cXyz* param_2, cXyz* param_3, s16 param_4, int param_5) { - // NONMATCHING cXyz sp70(*param_1 - *param_2); - f32 fVar1 = 6.0f; + f32 f31; + f32 f30 = 6.0f; cXyz sp7c, sp88; mDoMtx_stack_c::YrotS(param_4); - if (param_5 == 5) { + if (param_5 == 1) { sp7c.set(0.0f, -5.0f, 130.0f); - fVar1 = 1.0f; + f30 = 1.0f; } else if (param_5 == 5) { sp7c.set(0.0f, -30.0f, 78.0f); } else { @@ -765,12 +1272,12 @@ static void teduna_calc(cXyz* param_1, cXyz* param_2, cXyz* param_3, s16 param_4 mDoMtx_stack_c::multVec(&sp7c, &sp88); - for (int i = 0; i < 16; i++) { + for (int i = 0; i < 16; i++, param_3++) { *param_3 = *param_1 - (sp70 * (i / 15.0f)); - f32 fVar2 = cM_ssin((i / 15.0f) * 32768.0f); - *param_3 += sp88 * fVar2; - param_3->y += fVar2 * (fVar1 * cM_ssin(g_Counter.mCounter0 * 2500 + i * 1600)); - param_3++; + f31 = cM_ssin((i / 15.0f) * 32768.0f); + *param_3 += sp88 * f31; + f32 f29 = f30 * cM_ssin(g_Counter.mCounter0 * 2500 + i * 1600); + param_3->y += f31 * f29; } } @@ -788,7 +1295,6 @@ static cXyz S_ganon_right_hand_pos; /* 804A6428-804A6868 002208 0440+00 1/1 0/0 0/0 .text teduna_draw__FP8J3DModelP19mDoExt_3DlineMat1_cP12dKy_tevstr_ciiii */ static void teduna_draw(J3DModel* i_model, mDoExt_3DlineMat1_c* param_2, dKy_tevstr_c* param_3, int param_4, int param_5, int param_6, int param_7) { - // NONMATCHING static GXColor l_color = { 0x14, 0x0F, 0x00, 0xFF, }; @@ -829,7 +1335,7 @@ static void teduna_draw(J3DModel* i_model, mDoExt_3DlineMat1_c* param_2, dKy_tev mDoMtx_stack_c::multVec(&sp38, &sp50); } - teduna_calc(&sp44, &sp50, teduna_posL, sVar1 + cM_atan2s(sp44.x - sp50.x, sp44.z - sp50.z) + 0x6000, param_7); + teduna_calc(&sp44, &sp50, teduna_posL, (sVar1 + 0x6000) + cM_atan2s(sp44.x - sp50.x, sp44.z - sp50.z), param_7); MTXCopy(i_model->getAnmMtx(param_6), mDoMtx_stack_c::get()); if (param_7 == 5) { @@ -858,22 +1364,16 @@ static void teduna_draw(J3DModel* i_model, mDoExt_3DlineMat1_c* param_2, dKy_tev mDoMtx_stack_c::multVec(&sp38, &sp50); } - teduna_calc(&sp44, &sp50, teduna_posR, sVar1 + cM_atan2s(sp44.x - sp50.x, sp44.z - sp50.z) + 0x6000, param_7); - cXyz* pcVar1 = teduna_posL; - cXyz* pcVar2 = param_2->getPos(0); - for (int i = 0; i < 16; i++) { - pcVar2 = pcVar1; - pcVar2++; - pcVar1++; + teduna_calc(&sp44, &sp50, teduna_posR, cM_atan2s(sp44.x - sp50.x, sp44.z - sp50.z) - (sVar1 + 0x6000), param_7); + cXyz* src = teduna_posL; + cXyz* dst = param_2->getPos(0); + for (int i = 0; i < 16; i++, dst++, src++) { + *dst = *src; } - - pcVar1 = teduna_posR; - pcVar2 = param_2->getPos(0); - pcVar2 += 31; - for (int i = 0; i < 16; i++) { - pcVar2 = pcVar1; - pcVar2--; - pcVar1++; + src = teduna_posR; + dst = param_2->getPos(0) + 31; + for (int i = 0; i < 16; i++, dst--, src++) { + *dst = *src; } param_2->update(0x20, l_color, param_3); @@ -882,7 +1382,6 @@ static void teduna_draw(J3DModel* i_model, mDoExt_3DlineMat1_c* param_2, dKy_tev /* 804A6868-804A692C 002648 00C4+00 1/1 0/0 0/0 .text teduna_ganon_hand_set__FP8J3DModelii */ static void teduna_ganon_hand_set(J3DModel* i_model, int param_2, int param_3) { - // NONMATCHING cXyz sp20; MTXCopy(i_model->getAnmMtx(param_2), mDoMtx_stack_c::get()); @@ -896,66 +1395,86 @@ static void teduna_ganon_hand_set(J3DModel* i_model, int param_2, int param_3) { /* 804A692C-804A6C48 00270C 031C+00 1/1 0/0 0/0 .text ke_control__FP10daDemo00_cP12demo_s1_ke_sif */ static void ke_control(daDemo00_c* i_this, demo_s1_ke_s* param_2, int param_3, f32 param_4) { - // NONMATCHING - cXyz spa4, spb0; - cXyz* pcVar1 = param_2->field_0x0; - cXyz* pcVar2 = param_2->field_0xc0; - - spa4.x = 0.0f; - spa4.y = 0.0f; - spa4.z = param_4; + param_3; + fopAc_ac_c* actor = i_this; + int i; + cXyz sp4C, sp40; + cXyz* pcVar1 = ¶m_2->field_0x0[1]; + cXyz* pcVar2 = ¶m_2->field_0xc0[1]; + + sp4C.x = 0.0f; + sp4C.y = 0.0f; + sp4C.z = param_4; + + cXyz sp34; + f32 sp28; + f32 sp24; + f32 sp20; + f32 sp1C; + s16 sp14; + s16 sp12; + s16 sp10; + + f32 f30; + f32 f29; + f32 f28; + f32 f27; + f32 f26; + f32 f25; + f32 f31; + + sp24 = -12.0f; + sp10 = cM_rndF2(65536.0f); + f26 = 3.0f; + f25 = actor->current.pos.y; + f31 = 0.8f; - cXyz spbc; - s16 sVar1 = cM_rndF2(65536.0f); - f32 fVar1 = 3.0f; - f32 fVar2 = i_this->current.pos.y; - f32 fVar3 = 0.8f; if (i_this->field_0x6b3 != 0) { - fVar3 = 0.0f; + f31 = 0.0f; } - for (int i = 0; pcVar1++, pcVar2++, i < 16; i++) { - f32 fVar4 = fVar1 * cM_ssin(sVar1 + i * 7000); - f32 fVar5 = cM_ssin(sVar1 + i * 6000 + 10000); - f32 fVar6 = (16 - i) * 0.1f; + for (i = 1; i < 16; i++, pcVar1++, pcVar2++) { + sp20 = f26 * cM_ssin(sp10 + i * 7000); + sp1C = f26 * cM_ssin(sp10 + 10000 + i * 6000); + f27 = (16 - i) * 0.1f; - spbc.x = pcVar2->x + fVar4 + param_2->field_0x180.x * fVar6; - spbc.y = pcVar2->y + param_2->field_0x180.y * fVar6; - spbc.z = pcVar2->z + (fVar1 * fVar5) + param_2->field_0x180.z * fVar6; - fVar6 = spbc.x + (pcVar1->x - pcVar1[-1].x); - fVar5 = spbc.z + (pcVar1->z - pcVar1[-1].z); - fVar4 = pcVar1->y + spbc.y + -12.0f; + sp34.x = param_2->field_0x180.x * f27 + sp20 + pcVar2->x; + sp34.y = pcVar2->y + param_2->field_0x180.y * f27; + sp34.z = param_2->field_0x180.z * f27 + sp1C + pcVar2->z; + sp28 = sp34.x + (pcVar1->x - pcVar1[-1].x); + f29 = sp34.z + (pcVar1->z - pcVar1[-1].z); + f28 = pcVar1->y + sp34.y + sp24; - if (fVar4 < fVar2) { - fVar4 = fVar2; + if (f28 < f25) { + f28 = f25; } - f32 fVar7 = fVar4 - pcVar1[-1].y; + f30 = f28 - pcVar1[-1].y; - cMtx_XrotS(*calc_mtx, -cM_atan2s(fVar7, fVar5)); - cMtx_YrotM(*calc_mtx, cM_atan2s(fVar6, JMAFastSqrt(fVar4 * fVar4 + fVar5 * fVar5))); - MtxPosition(&spa4, &spb0); + sp14 = (s16)-cM_atan2s(f30, f29); + sp12 = (s16)cM_atan2s(sp28, JMAFastSqrt(f30 * f30 + f29 * f29)); + cMtx_XrotS(*calc_mtx, sp14); + cMtx_YrotM(*calc_mtx, sp12); + MtxPosition(&sp4C, &sp40); - pcVar2 = pcVar1; - pcVar1->x = pcVar1[-1].x + spb0.x; - pcVar1->y = pcVar1[-1].y + spb0.y; - pcVar1->z = pcVar1[-1].z + spb0.z; - pcVar2->x = fVar3 * (pcVar1->x - pcVar2->x); - pcVar2->y = fVar3 * (pcVar1->y - pcVar2->y); - pcVar2->z = fVar3 * (pcVar1->x - pcVar2->z); + *pcVar2 = *pcVar1; + pcVar1->x = pcVar1[-1].x + sp40.x; + pcVar1->y = pcVar1[-1].y + sp40.y; + pcVar1->z = pcVar1[-1].z + sp40.z; + pcVar2->x = f31 * (pcVar1->x - pcVar2->x); + pcVar2->y = f31 * (pcVar1->y - pcVar2->y); + pcVar2->z = f31 * (pcVar1->z - pcVar2->z); } - } /* 804A6C48-804A6D20 002A28 00D8+00 1/1 0/0 0/0 .text ke_move__FP10daDemo00_cP19mDoExt_3DlineMat0_cP12demo_s1_ke_sif */ static void ke_move(daDemo00_c* i_this, mDoExt_3DlineMat0_c* param_2, demo_s1_ke_s* param_3, int param_4, f32 param_5) { - // NONMATCHING ke_control(i_this, param_3, param_4, param_5); cXyz* pcVar1 = param_2->getPos(param_4); f32* pfVar1 = param_2->getSize(param_4); - for (int i = 0; i < 16; i++) { + for (int i = 0; i < 16; i++, pcVar1++, pfVar1++) { *pcVar1 = param_3->field_0x0[i]; if (i == 14) { *pfVar1 = 0.6f; @@ -964,24 +1483,21 @@ static void ke_move(daDemo00_c* i_this, mDoExt_3DlineMat0_c* param_2, demo_s1_ke } else { *pfVar1 = cM_rndF2(1.0f) + 1.8f; } - - pcVar1++; - pfVar1++; } } /* 804A6D20-804A6F74 002B00 0254+00 1/1 0/0 0/0 .text ke_set__FP10daDemo00_c */ static void ke_set(daDemo00_c* i_this) { - // NONMATCHING static s16 ke_za[22] = { 0xFCE0, 0xFE70, 0, 0x0190, 0x0320, 0xFCE0, 0xFE70, 0, 0x0190, 0x0320, 0xFCE0, 0xFE70, 0, 0x0190, 0x0320, 0x04B0, 0xFCE0, 0xFE70, 0, 0x0190, 0x0320, 0x04B0, }; + fopAc_ac_c* actor = i_this; cXyz sp58, sp64; - cM_initRnd2(12, 0x7B, fopAcM_GetID(i_this) * 2 + 0x32); - MTXCopy(i_this->field_0x5d4->getAnmMtx(4), *calc_mtx); + cM_initRnd2(12, 0x7B, fopAcM_GetID(actor) * 2 + 0x32); + MTXCopy(i_this->mModel.field_0x5d4->getAnmMtx(4), *calc_mtx); f32 fVar1, fVar2, fVar3; for (int i = 0; i < 22; i++) { @@ -1002,13 +1518,13 @@ static void ke_set(daDemo00_c* i_this) { } sp58.set(fVar2, 15.0f, fVar3); - MtxPosition(&sp58, &i_this->field_0x6f8[i].field_0x0[i]); + MtxPosition(&sp58, &i_this->field_0x6f8[i].field_0x0[0]); sp58.set(fVar2, 35.0f, fVar3); MtxPosition(&sp58, &i_this->field_0x6f8[i].field_0x180); - i_this->field_0x6f8[i].field_0x180 -= i_this->field_0x6f8[i].field_0x0[i]; + i_this->field_0x6f8[i].field_0x180 -= i_this->field_0x6f8[i].field_0x0[0]; - ke_move(i_this, &i_this->field_0x2900, i_this->field_0x6f8, i, fVar1); + ke_move(i_this, &i_this->field_0x2900, &i_this->field_0x6f8[i], i, fVar1); MtxPull(); } } @@ -1020,38 +1536,38 @@ static int daDemo00_Draw(daDemo00_c* i_this) { /* 804A6F94-804A7B88 002D74 0BF4+00 1/1 0/0 0/0 .text draw__10daDemo00_cFv */ int daDemo00_c::draw() { - // NONMATCHING - if (field_0x5d4 != NULL) { + f32 f31 = 15.0f; + if (mModel.field_0x5d4 != NULL) { if (field_0x6ac == 7) { tevStr.TevColor.a = 0xFF; } g_env_light.settingTevStruct(field_0x6ac, &eyePos, &tevStr); - g_env_light.setLightTevColorType_MAJI(field_0x5d4, &tevStr); - dKy_bg_MAxx_proc(field_0x5d4); + g_env_light.setLightTevColorType_MAJI(mModel.field_0x5d4, &tevStr); + dKy_bg_MAxx_proc(mModel.field_0x5d4); - if (mpBtpAnm != NULL) { - mpBtpAnm->entry(field_0x5d4->getModelData()); + if (mModel.mpBtpAnm != NULL) { + mModel.mpBtpAnm->entry(mModel.field_0x5d4->getModelData()); } - if (mpBtkAnm != NULL) { - mpBtkAnm->entry(field_0x5d4->getModelData()); + if (mModel.mpBtkAnm != NULL) { + mModel.mpBtkAnm->entry(mModel.field_0x5d4->getModelData()); } - if (mpBrkAnm != NULL){ - mpBrkAnm->entry(field_0x5d4->getModelData()); + if (mModel.mpBrkAnm != NULL){ + mModel.mpBrkAnm->entry(mModel.field_0x5d4->getModelData()); } - if (mpBpkAnm != NULL) { - mpBpkAnm->entry(field_0x5d4->getModelData()); + if (mModel.mpBpkAnm != NULL) { + mModel.mpBpkAnm->entry(mModel.field_0x5d4->getModelData()); } - if (mpBlkAnm != NULL) { - mpBlkAnm->entryFrame(); + if (mModel.mpBlkAnm != NULL) { + mModel.mpBlkAnm->entryFrame(); } if (field_0x6a5 != 0) { - J3DModelData* modelData = field_0x5d4->getModelData(); + J3DModelData* modelData = mModel.field_0x5d4->getModelData(); for (u16 i = 0; i < modelData->getMaterialNum(); i++) { J3DMaterial* material = modelData->getMaterialNodePointer(i); @@ -1069,22 +1585,22 @@ int daDemo00_c::draw() { dComIfGd_setListFilter(); } - if (field_0x5d8 != NULL) { - mpModelMorf->calc(); + if (mModel.field_0x5d8 != NULL) { + mModel.mpModelMorf->modelCalc(); if (field_0x6b5 != 0) { - field_0x5d8->entryDL(NULL); + mModel.field_0x5d8->entryDL(NULL); } } else if (field_0x6b5 != 0) { - if (mpModelMorf != NULL) { - mpModelMorf->updateDL(); + if (mModel.mpModelMorf != NULL) { + mModel.mpModelMorf->updateDL(); } else { - mDoExt_modelUpdateDL(field_0x5d4); + mDoExt_modelUpdateDL(mModel.field_0x5d4); } - } else if (mpModelMorf != NULL) { - mpModelMorf->modelCalc(); + } else if (mModel.mpModelMorf != NULL) { + mModel.mpModelMorf->modelCalc(); } - if (field_0x5d4->getSkinDeform() != NULL) { + if (mModel.field_0x5d4->getSkinDeform() != NULL) { dComIfGd_setList(); } @@ -1094,21 +1610,21 @@ int daDemo00_c::draw() { if (field_0x6a7 >= 0) { if (field_0x6a7 == 0) { - teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 22, 0x1B, 0x27, field_0x6a7); + teduna_draw(mModel.field_0x5d4, &field_0x6bc, &tevStr, 22, 0x1B, 0x27, field_0x6a7); } else if (field_0x6a7 == 1) { - teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x2B, 0x2B, 0x27, field_0x6a7); + teduna_draw(mModel.field_0x5d4, &field_0x6bc, &tevStr, 0x2B, 0x2B, 0x27, field_0x6a7); } else if (field_0x6a7 == 2) { - teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x17, 0x1F, 0x3E, field_0x6a7); + teduna_draw(mModel.field_0x5d4, &field_0x6bc, &tevStr, 0x17, 0x1F, 0x3E, field_0x6a7); } else if (field_0x6a7 == 3) { - teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x1F, 0x1F, 0x3E, field_0x6a7); + teduna_draw(mModel.field_0x5d4, &field_0x6bc, &tevStr, 0x1F, 0x1F, 0x3E, field_0x6a7); } else if (field_0x6a7 == 4) { - teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x17, 0x17, 0x3E, field_0x6a7); + teduna_draw(mModel.field_0x5d4, &field_0x6bc, &tevStr, 0x17, 0x17, 0x3E, field_0x6a7); } else if (field_0x6a7 == 6) { - teduna_ganon_hand_set(field_0x5d4, 0x20, 0x21); + teduna_ganon_hand_set(mModel.field_0x5d4, 0x20, 0x21); } else if (field_0x6a7 == 7) { - teduna_ganon_hand_set(field_0x5d4, 0x16, 0x17); + teduna_ganon_hand_set(mModel.field_0x5d4, 0x16, 0x17); } else if (field_0x6a7 == 5) { - teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0, 0, 0x13, field_0x6a7); + teduna_draw(mModel.field_0x5d4, &field_0x6bc, &tevStr, 0, 0, 0x13, field_0x6a7); } else if (field_0x6a7 == 8) { if ((current.pos - field_0x291c).abs() > 200.0f) { field_0x6b3 = 5; @@ -1138,63 +1654,63 @@ int daDemo00_c::draw() { if (field_0x6b6 != 0) { if (field_0x6b6 == 1) { - if (field_0x5d4->getModelData() != NULL) { - if (field_0x5d4->getModelData()->getMaterialNodePointer(9) != NULL) { - if (field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape() != NULL) { - field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape()->show(); + if (mModel.field_0x5d4->getModelData() != NULL) { + if (mModel.field_0x5d4->getModelData()->getMaterialNodePointer(9) != NULL) { + if (mModel.field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape() != NULL) { + mModel.field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape()->show(); } } } - } else if (field_0x5d4->getModelData() != NULL) { - if (field_0x5d4->getModelData()->getMaterialNodePointer(9) != NULL) { - if (field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape() != NULL) { - field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape()->hide(); + } else if (mModel.field_0x5d4->getModelData() != NULL) { + if (mModel.field_0x5d4->getModelData()->getMaterialNodePointer(9) != NULL) { + if (mModel.field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape() != NULL) { + mModel.field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape()->hide(); } } } } - if (mShadow != NULL && field_0x6b7 != 0 && field_0x6b5 != 0 && field_0x6a1 != 0) { + if (mModel.mShadow != NULL && field_0x6b7 != 0 && field_0x6b5 != 0 && field_0x6a1 != 0) { cXyz sp98, spa4, spb0; - MTXCopy(field_0x5d4->getAnmMtx(0), mDoMtx_stack_c::get()); + MTXCopy(mModel.field_0x5d4->getAnmMtx(0), mDoMtx_stack_c::get()); spb0.set(0.0f, 0.0f, 0.0f); mDoMtx_stack_c::multVec(&spb0, &sp98); mDoLib_project(&sp98, &spa4); if (spa4.x >= -700.0f && spa4.x < 1600.0f && spa4.y >= -200.0f && spa4.y < 600.0f) { if (mModel.mID.field_0x18 == 0 || mModel.mID.field_0x18 == 1) { - cXyz spbc = sp98 + mShadow->field_0x4; - spbc.y = mBgc->field_0x54 + 15.0f; - mShadow->field_0x0 = dComIfGd_setShadow(mShadow->field_0x0, mModel.mID.field_0x18, field_0x5d4, - &spbc, mShadow->field_0x1c, mShadow->field_0x20, sp98.y + 15.0f, sp98.y + 3.0f, - mBgc->mGndChk, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + cXyz spbc = sp98 + mModel.mShadow->field_0x4; + spbc.y = mModel.mBgc->field_0x54 + f31; + mModel.mShadow->field_0x0 = dComIfGd_setShadow(mModel.mShadow->field_0x0, mModel.mID.field_0x18 == 0 ? 0 : 1, mModel.field_0x5d4, + &spbc, mModel.mShadow->field_0x1c, mModel.mShadow->field_0x20, sp98.y + f31, sp98.y + 3.0f, + mModel.mBgc->mGndChk, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } else { - cXyz spc8(sp98.x, mBgc->field_0x54, sp98.z); - dComIfGd_setSimpleShadow(&spc8, spc8.y, mShadow->field_0x20, mBgc->mGndChk, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + cXyz spc8(sp98.x, mModel.mBgc->field_0x54, sp98.z); + dComIfGd_setSimpleShadow(&spc8, spc8.y, mModel.mShadow->field_0x20, mModel.mBgc->mGndChk, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } } } - if (mpBtpAnm != NULL) { - mpBtpAnm->remove(field_0x5d4->getModelData()); + if (mModel.mpBtpAnm != NULL) { + mModel.mpBtpAnm->remove(mModel.field_0x5d4->getModelData()); } - if (mpBtkAnm != NULL) { - mpBtkAnm->remove(field_0x5d4->getModelData()); + if (mModel.mpBtkAnm != NULL) { + mModel.mpBtkAnm->remove(mModel.field_0x5d4->getModelData()); } - if (mpBrkAnm != NULL) { - mpBrkAnm->remove(field_0x5d4->getModelData()); + if (mModel.mpBrkAnm != NULL) { + mModel.mpBrkAnm->remove(mModel.field_0x5d4->getModelData()); } - if (mpBpkAnm != NULL) { - mpBpkAnm->remove(field_0x5d4->getModelData()); + if (mModel.mpBpkAnm != NULL) { + mModel.mpBpkAnm->remove(mModel.field_0x5d4->getModelData()); } cXyz spd4, spe0, spec; - MTXCopy(field_0x5d4->getAnmMtx(0), mDoMtx_stack_c::get()); + MTXCopy(mModel.field_0x5d4->getAnmMtx(0), mDoMtx_stack_c::get()); spd4.set(0.0f, 0.0f, 0.0f); mDoMtx_stack_c::multVec(&spd4, &spe0); eyePos = spe0; @@ -1214,7 +1730,7 @@ int daDemo00_c::draw() { } else if (field_0x6a8 == 6) { cXyz sp11c, sp128, sp134; - MTXCopy(field_0x5d4->getAnmMtx(7), mDoMtx_stack_c::get()); + MTXCopy(mModel.field_0x5d4->getAnmMtx(7), mDoMtx_stack_c::get()); sp11c.set(0.0f, 0.0f, 0.0f); mDoMtx_stack_c::multVec(&sp11c, &sp128); spf8 = sp128; @@ -1273,8 +1789,8 @@ int daDemo00_c::draw() { } if (field_0x6ab >= 0) { - g_env_light.field_0x1278 = current.pos.y / 100.0f; g_env_light.field_0x12fc = field_0x6ab; + g_env_light.field_0x1278 = current.pos.y / 100.0f; if (g_env_light.field_0x1278 >= 1.0f) { g_env_light.field_0x1278 = 1.0f; } @@ -1336,468 +1852,6 @@ static int daDemo00_Execute(daDemo00_c* i_this) { return i_this->execute(); } -static u8 const l_itemNo[4] = { - 0x29, - 0xFF, - 0xFF, - 0xFF, -}; - -/* 804A7BA8-804A84AC 003988 0904+00 7/1 0/0 0/0 .text execute__10daDemo00_cFv */ -int daDemo00_c::execute() { - // NONMATCHING - - field_0x6a1 = 0; - dDemo_actor_c* actor = dDemo_c::getActor(demoActorID); - - if (actor == NULL) { - fopAcM_delete(this); - OS_REPORT("汎用くん<dactor%d>削除!!\n", argument); - } else { - if (actor->checkEnable(dDemo_actor_c::ENABLE_SHAPE_e)) { - mModel.field_0x0.mShapeID = actor->getShapeId(); - } - - if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_e)) { - mModel.field_0x0.field_0x4 = actor->getAnmId(); - } - - int piVar1, piVar2, piVar3; - u16 upVar1; - u8 upVar2; - if (actor->checkEnable(dDemo_actor_c::ENABLE_UNK_e)) { - while (actor->getDemoIDData(&piVar1, &piVar2, &piVar3, &upVar1, &upVar2) != 0) { - if (piVar1 == 0) { - switch (piVar3) { - case 0: - u16 uVar1 = upVar1 >> 8; - u32 resID8 = uVar1 & 0xFF; - switch (uVar1) { - case 1: - switch ((u8)upVar1) { - case 1: - field_0x6b4 = 1; - break; - - case 2: - field_0x6a5 = 1; - break; - - case 3: - field_0x6a5 = 2; - break; - - case 4: - field_0x6a6 = 1; - break; - - case 5: - field_0x6a6 = 2; - break; - - case 6: - field_0x6a6 = 3; - break; - } - break; - - case 2: - if (resID8 == 0) { - field_0x6a2 = 0; - mground2 = 0; - } else if (resID8 == 1) { - field_0x6a2 = 1; - } else { - mground2 = 1; - } - - OS_REPORT("\nmground2=[%d]", mground2); - break; - - case 3: - JUT_ASSERT(1389, resID8 < (sizeof(l_itemNo)/sizeof(u8))); - if (l_itemNo[resID8] != 0xFF) { - execItemGet(l_itemNo[resID8]); - } - break; - - case 4: - case 5: - case 6: - case 7: - BOOL bVar1 = FALSE; - BOOL bVar2 = FALSE; - if (uVar1 == 5 || uVar1 == 7) { - bVar1 = TRUE; - } - - if (uVar1 == 6 || uVar1 == 7) { - bVar2 = TRUE; - } - - u32 uVar2 = resID8; - if (resID8 == 0xFF) { - uVar2 = 0x1A; - } - - if (bVar1) { - if (!bVar1) { - GXColor fadeInColor; - if (!bVar2) { - fadeInColor = g_blackColor; - } else { - fadeInColor = g_saftyWhiteColor; - } - - mDoGph_gInf_c::fadeIn(1.0f / uVar2, fadeInColor); - } - } else { - GXColor fadeOutColor; - if (!bVar2) { - fadeOutColor = g_blackColor; - } else { - fadeOutColor = g_saftyWhiteColor; - } - - mDoGph_gInf_c::fadeOut(1.0f / uVar2, fadeOutColor); - } - break; - - case 8: - u32 uVar4 = upVar1 & 0x3F; - - switch ((upVar1 & 0xC0) >> 6) { - case 0: - dComIfGp_getVibration().StopQuake(1); - break; - - case 1: - dComIfGp_getVibration().StartShock(uVar4, 1, cXyz(0.0f, 1.0f, 0.0f)); - break; - - case 2: - dComIfGp_getVibration().StartQuake(uVar4, 1, cXyz(0.0f, 1.0f, 0.0f)); - - default: - OS_REPORT("\nデモ汎用君振動設定エラー!!"); // Demo General-Kun Vibration Setting Error!! - } - break; - - case 9: - if (resID8 == 0) { - field_0x6a4 = 0; - } else { - field_0x6a4 = 1; - } - break; - - case 10: - if ((uVar1 & 0xFF) < 0x40) { - dKy_change_colpat(resID8); - OS_REPORT("\nパレット型[%d]へ変更", resID8); - } - break; - - case 11: - switch (resID8) { - case 0: - g_env_light.mThunderEff.field_0x2 = 1; - break; - - case 1: - field_0x6b2 = 1; - break; - - case 2: - field_0x6b2 = 2; - break; - - case 3: - field_0x69c = 0xFA; - break; - - case 4: - field_0x69c = 0; - break; - - case 5: - field_0x69e = 0x32; - break; - - case 6: - field_0x69e = 0; - break; - } - break; - - case 12: - switch (resID8) { - case 0: - field_0x6a7 = 0; - break; - - case 1: - field_0x6a7 = 2; - break; - - case 2: - field_0x6a7 = 3; - break; - - case 3: - field_0x6a7 = 1; - break; - - case 4: - field_0x6a7 = 8; - break; - - case 5: - field_0x6a7 = 4; - break; - - case 6: - field_0x6b6 = 1; - break; - - case 7: - field_0x6b6 = 2; - break; - - case 8: - field_0x6a7 = 6; - break; - - case 9: - field_0x6a7 = 7; - break; - - case 10: - field_0x6a7 = 5; - break; - } - break; - - case 13: - field_0x6a9 = upVar1; - break; - - case 14: - field_0x6a8 = upVar1; - break; - - case 15: - if (resID8 == 1) { - field_0x6aa = 1; - } else { - field_0x6aa = 0; - } - break; - - case 16: - field_0x6ab = upVar1; - break; - - case 17: - switch (resID8) { - case 1: - field_0x6ac = 2; - break; - - case 2: - field_0x6ac = 4; - break; - - case 3: - field_0x6ac = 7; - break; - - case 4: - field_0x6ac = 9; - break; - - case 5: - field_0x6ac = 1; - break; - - case 6: - field_0x6ac = 16; - break; - - case 7: - field_0x6ac = 17; - break; - - case 8: - field_0x6ac = 18; - break; - - case 9: - field_0x6ac = 19; - break; - - case 10: - field_0x6ac = 10; - break; - - case 11: - field_0x6ac = 14; - break; - - case 12: - field_0x6ac = 3; - break; - - case 13: - field_0x6ac = 5; - break; - - case 14: - field_0x6ac = 15; - break; - } - break; - - case 18: - field_0x6ae = 1; - break; - - case 19: - field_0x6af = upVar1; - break; - - case 20: - field_0x6b0 = upVar1; - break; - - case 21: - field_0x6b1 = 1; - break; - - case 22: - field_0x6b5 = upVar1; - break; - - case 23: - field_0x6b7 = upVar1; - break; - - case 24: - field_0x6b8 = 1; - break; - - case 25: - cXyz sp90, sp9c; - sp90.x = 0.0f; - sp90.y = 0.0f; - sp90.z = 0.0f; - sp9c.x = 1.0f; - sp9c.y = 1.0f; - sp9c.z = 1.0f; - field_0x6b9 = 1; - dComIfGp_particle_set((u16)mModel.field_0x0.mShapeID, &sp90, NULL, NULL, &sp9c); - mModel.field_0x0.reset(); - mModel.field_0x0.mShapeID = -1; - actor->offEnable(16); - break; - } - break; - - case 1: - dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[upVar1]); - break; - - case 2: - if ((upVar1 & 0xC000) == 0) { - fopAcM_create(PROC_MOVIE_PLAYER, upVar1, NULL, fopAcM_GetRoomNo(this), NULL, NULL, 0xFF); - mDoGph_gInf_c::fadeOut(1.0f); - } else { - switch (upVar1) { - case 0: - daMP_c::daMP_c_THPPlayerPlay(); - break; - - case 1: - daMP_c::daMP_c_THPPlayerPause(); - break; - } - } - break; - - case 3: - dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[upVar1]); - break; - } - } else { - switch (piVar3) { - case 1: - mModel.field_0x0.reset(); - mModel.field_0x0.mShapeID = upVar1; - break; - - case 2: - mModel.field_0x0.field_0x4 = upVar1; - break; - - case 3: - if (upVar2 == 0) { - mModel.field_0x0.field_0x10 = upVar1; - } else { - mModel.field_0x0.field_0x10 = upVar1 | 0x10000000; - } - break; - - case 4: - if (upVar2 == 0) { - mModel.field_0x0.field_0x14 = upVar1; - } else { - mModel.field_0x0.field_0x14 = upVar1 | 0x10000000; - } - break; - - case 5: - mModel.field_0x0.field_0xc = upVar1; - break; - - case 6: - mModel.field_0x0.field_0x1c = upVar1; - break; - - case 7: - mModel.field_0x0.field_0x20 = upVar1; - break; - - case 8: - mModel.field_0x0.field_0x8 = upVar1; - break; - } - } - } - - actor->offEnable(dDemo_actor_c::ENABLE_UNK_e); - } - - action(actor); - } - - if (field_0x6ae != 0) { - f32 cutoff = shape_angle.z / 182.04445f; - GXColor color; - color.r = scale.x; - color.g = scale.y; - color.b = scale.z; - color.a = 0xFF; - dKy_BossSpotLight_set(¤t.pos, shape_angle.x / 182.04445f, shape_angle.y / 182.04445f - 90.0f, - cutoff, &color, gravity, field_0x6b0, field_0x6af); - } - - if (field_0x6b8 != 0) { - dComIfGs_setTime(current.pos.x * 15.0f); - } - - return 1; -} - /* 804A84AC-804A84B4 00428C 0008+00 1/0 0/0 0/0 .text daDemo00_IsDelete__FP10daDemo00_c */ static int daDemo00_IsDelete(daDemo00_c* i_this) { return 1; @@ -1805,47 +1859,46 @@ static int daDemo00_IsDelete(daDemo00_c* i_this) { /* 804A84B4-804A84DC 004294 0028+00 1/0 0/0 0/0 .text daDemo00_Delete__FP10daDemo00_c */ static int daDemo00_Delete(daDemo00_c* i_this) { - fopAcM_GetID(i_this); + fopAcM_RegisterDeleteID(i_this, "Demo00"); i_this->~daDemo00_c(); return 1; } /* 804A84DC-804A86B4 0042BC 01D8+00 1/0 0/0 0/0 .text daDemo00_Create__FP10fopAc_ac_c */ -static int daDemo00_Create(fopAc_ac_c* a_this) { - // NONMATCHING - daDemo00_c* i_this = (daDemo00_c*)a_this; +static int daDemo00_Create(fopAc_ac_c* i_this) { + fopAcM_RegisterCreateID(daDemo00_c, i_this, "Demo00"); fopAcM_ct(a_this, daDemo00_c); - i_this->field_0x6a2 = 0; - i_this->mground2 = 0; - i_this->field_0x6a4 = 0; - i_this->field_0x6b2 = 0; - i_this->field_0x69c = -1; - i_this->field_0x69e = -1; - i_this->field_0x694 = 0; - i_this->field_0x698 = 0; - i_this->field_0x568.x = 10000000.0f; - i_this->field_0x568.y = 10000000.0f; - i_this->field_0x568.z = 10000000.0f; - i_this->field_0x6a5 = 0; - i_this->field_0x6a6 = 0; - i_this->field_0x6a7 = 0xFF; - i_this->field_0x6a8 = -1; - i_this->field_0x6a9 = -1; - i_this->field_0x6aa = 0xFF; - i_this->field_0x6ab = -1; - i_this->field_0x6ac = 0; - i_this->field_0x6ad = 0; - i_this->field_0x6ae = 0; - i_this->field_0x6b8 = 0; - i_this->field_0x6b9 = 0; - i_this->field_0x6af = 3; - i_this->field_0x6b0 = 2; - i_this->field_0x6b4 = 0; - i_this->field_0x6b1 = 0; - i_this->field_0x6b5 = 1; - i_this->field_0x6b6 = 0; - i_this->field_0x6b7 = 1; + a_this->field_0x6a2 = 0; + a_this->mground2 = 0; + a_this->field_0x6a4 = 0; + a_this->field_0x6b2 = 0; + a_this->field_0x69c = -1; + a_this->field_0x69e = -1; + a_this->field_0x694 = 0; + a_this->field_0x698 = 0; + a_this->field_0x568.x = 10000000.0f; + a_this->field_0x568.y = 10000000.0f; + a_this->field_0x568.z = 10000000.0f; + a_this->field_0x6a5 = 0; + a_this->field_0x6a6 = 0; + a_this->field_0x6a7 = 0xFF; + a_this->field_0x6a8 = -1; + a_this->field_0x6a9 = -1; + a_this->field_0x6aa = 0xFF; + a_this->field_0x6ab = -1; + a_this->field_0x6ac = 0; + a_this->field_0x6ad = 0; + a_this->field_0x6ae = 0; + a_this->field_0x6b8 = 0; + a_this->field_0x6b9 = 0; + a_this->field_0x6af = 3; + a_this->field_0x6b0 = 2; + a_this->field_0x6b4 = 0; + a_this->field_0x6b1 = 0; + a_this->field_0x6b5 = 1; + a_this->field_0x6b6 = 0; + a_this->field_0x6b7 = 1; S_ganon_left_hand_pos.x = 0.0f; S_ganon_left_hand_pos.y = 0.0f; S_ganon_left_hand_pos.z = 0.0f; @@ -1853,13 +1906,13 @@ static int daDemo00_Create(fopAc_ac_c* a_this) { S_ganon_right_hand_pos.y = 0.0f; S_ganon_right_hand_pos.z = 0.0f; - return i_this->create(); + return a_this->create(); } -/* 804A86B4-804A871C 004494 0068+00 1/1 0/0 0/0 .text __ct__12demo_s1_ke_sFv */ -demo_s1_ke_s::demo_s1_ke_s() {} - AUDIO_INSTANCES; +class JAUSectionHeap; +template<> +JAUSectionHeap* JASGlobalInstance<JAUSectionHeap>::sInstance; /* 804A8B94-804A8BB4 -00001 0020+00 1/0 0/0 0/0 .data l_daDemo00_Method */ static actor_method_class l_daDemo00_Method = { diff --git a/src/d/actor/d_a_e_rdb.cpp b/src/d/actor/d_a_e_rdb.cpp index 28cea25602..b9e5af80e2 100644 --- a/src/d/actor/d_a_e_rdb.cpp +++ b/src/d/actor/d_a_e_rdb.cpp @@ -285,7 +285,6 @@ static int getPolyColor(cBgS_PolyInfo& i_polyInfo, int param_2, _GXColor* p_effP /* 80765B70-80765E70 000B90 0300+00 1/1 0/0 0/0 .text e_rdb_attack__FP11e_rdb_class */ static void e_rdb_attack(e_rdb_class* i_this) { - // NONMATCHING static u16 ap_name[3] = { 0x8A5C, 0x8A5D, @@ -360,7 +359,6 @@ static void e_rdb_attack(e_rdb_class* i_this) { /* 80765E70-80766188 000E90 0318+00 1/1 0/0 0/0 .text e_rdb_spin_attack__FP11e_rdb_class */ static void e_rdb_spin_attack(e_rdb_class* i_this) { - // NONMATCHING static u16 ap_name[2] = { 0x8A5F, 0x8A60, diff --git a/src/d/actor/d_a_e_wb.cpp b/src/d/actor/d_a_e_wb.cpp index 504c007a55..67f06e1f9b 100644 --- a/src/d/actor/d_a_e_wb.cpp +++ b/src/d/actor/d_a_e_wb.cpp @@ -1921,7 +1921,7 @@ static void e_wb_b_ikki(e_wb_class* i_this) { i_this->field_0x1690 = 0; } break; - case 4: + case 4: { dVar17 = l_HIO.mSingleRiderSpeed; dVar16 = 5.0f; i_this->mMovementType = 1; @@ -1976,6 +1976,7 @@ static void e_wb_b_ikki(e_wb_class* i_this) { } local_d6 = 0x800; break; + } case 5: if (a_this->speedF > 15.0f) { i_this->mMovementType = 2; @@ -2104,7 +2105,7 @@ static void e_wb_b_ikki2(e_wb_class* i_this) { e_rd_class* rider = (e_rd_class*)fopAcM_SearchByID(i_this->field_0x1434); switch (i_this->mActionMode) { - case -100: + case -100: { int local_a0 = dComIfGp_getEventManager().getMyStaffId("RiderBoss", NULL, 0); if (local_a0 != -1) { dComIfGp_getEventManager().cutEnd(local_a0); @@ -2112,7 +2113,8 @@ static void e_wb_b_ikki2(e_wb_class* i_this) { anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); } break; - case -99: + } + case -99: { a_this->current.angle.y = 0x58f0; turn_speed = 0; local_b6 = 0; @@ -2122,6 +2124,7 @@ static void e_wb_b_ikki2(e_wb_class* i_this) { i_this->mActionMode = -98; } break; + } case -98: turn_speed = 0; break; @@ -3275,7 +3278,7 @@ static s8 e_wb_c_run(e_wb_class* i_this) { i_this->mStatusFlags |= 0x20; // fallthrough - case 1: + case 1: { cXyz target_pos(-62943.0f, -9045.0f, 70997.0f); local_10c = target_pos - a_this->current.pos; s16 target_angle = cM_atan2s(local_10c.x, local_10c.z); @@ -3291,7 +3294,7 @@ static s8 e_wb_c_run(e_wb_class* i_this) { i_this->field_0x17e1 = 1; } break; - + } case 2: if (i_this->field_0x7a6 == 0) { anm_init(i_this, 0x1b, 3.0f, 0, 1.0f); @@ -3326,7 +3329,7 @@ static s8 e_wb_c_run(e_wb_class* i_this) { case 0xc: i_this->mActionMode = 0xd; // fallthrough - case 0xd: + case 0xd: { local_10c = a_this->current.pos; local_10c.y += 500.0f; cStack_118 = coach->eyePos; @@ -3431,7 +3434,7 @@ static s8 e_wb_c_run(e_wb_class* i_this) { i_this->mMovementType = 1; i_this->mPursuitFlag = 1; break; - + } case 0x14: anm_init(i_this, 0x25, 3.0f, 2, 1.0f); i_this->mActionMode = 0x15; @@ -4069,7 +4072,7 @@ static void demo_camera(e_wb_class* i_this) { i_this->field_0x169e = 0; } break; - case 0x19: + case 0x19: { if (!a_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, 2, 0xffff, 0); a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); @@ -4089,6 +4092,7 @@ static void demo_camera(e_wb_class* i_this) { } else { i_this->field_0x170c = -200.0f; } + } case 0x1a: mDoMtx_stack_c::YrotS(a_this->shape_angle.y); local_3c.x = i_this->field_0x170c; @@ -4644,7 +4648,7 @@ static void demo_camera(e_wb_class* i_this) { i_this->field_0x16a0 = 0; } break; - case 0x3e: + case 0x3e: { daObjCRVSTEEL_c* crvSteel = (daObjCRVSTEEL_c*)fopAcM_SearchByName(PROC_Obj_CRVSTEEL); if (i_this->field_0x16a0 == 20) { crvSteel->OpenSet(20.0f, 350.0f); @@ -4677,6 +4681,7 @@ static void demo_camera(e_wb_class* i_this) { i_this->field_0x169e = 0x3f; i_this->field_0x16a0 = 0; // fallthrough + } case 0x3f: if (i_this->field_0x16a0 == 40) { rdb->field_0xfe4 = 1; @@ -5916,4 +5921,5 @@ extern actor_process_profile_definition g_profile_E_WB = { AUDIO_INSTANCES; #include "JSystem/JAudio2/JAUSectionHeap.h" +template<> JAUSectionHeap* JASGlobalInstance<JAUSectionHeap>::sInstance; diff --git a/src/d/actor/d_a_horse.cpp b/src/d/actor/d_a_horse.cpp index d3843f47b8..62c98eead8 100644 --- a/src/d/actor/d_a_horse.cpp +++ b/src/d/actor/d_a_horse.cpp @@ -3365,8 +3365,7 @@ int daHorse_c::callHorseSubstance(cXyz const* i_pos) { /* 80841468-808415B4 009628 014C+00 1/0 0/0 0/0 .text * setHorsePosAndAngleSubstance__9daHorse_cFPC4cXyzs */ -// NONMATCHING - small regalloc, equivalent -int daHorse_c::setHorsePosAndAngleSubstance(cXyz const* param_0, s16 param_1) { +void daHorse_c::setHorsePosAndAngleSubstance(cXyz const* param_0, s16 param_1) { int i, j; cXyz sp10(current.pos); diff --git a/src/d/actor/d_a_npc_gra.cpp b/src/d/actor/d_a_npc_gra.cpp index 9706a38ede..cf21d735ba 100644 --- a/src/d/actor/d_a_npc_gra.cpp +++ b/src/d/actor/d_a_npc_gra.cpp @@ -357,7 +357,6 @@ daNpc_grA_c::cut_type daNpc_grA_c::mEvtCutList[] = { /* 809BE94C-809BEB24 0000EC 01D8+00 1/1 0/0 0/0 .text __ct__11daNpc_grA_cFv */ daNpc_grA_c::daNpc_grA_c() : daNpcF_c() { - // NONMATCHING } /* 809BEB64-809BEDA4 000304 0240+00 1/0 0/0 0/0 .text __dt__11daNpc_grA_cFv */ diff --git a/src/d/actor/d_a_npc_shaman.cpp b/src/d/actor/d_a_npc_shaman.cpp index 2739b1de68..15bf6e456e 100644 --- a/src/d/actor/d_a_npc_shaman.cpp +++ b/src/d/actor/d_a_npc_shaman.cpp @@ -763,7 +763,6 @@ BOOL daNpc_Sha_c::setAction(actionFunc action) { /* 80AE45DC-80AE48D0 0018FC 02F4+00 1/1 0/0 0/0 .text getSceneChangeNoTableIx__11daNpc_Sha_cFv */ int daNpc_Sha_c::getSceneChangeNoTableIx() { - // NONMATCHING int iVar2[48]; BOOL bool_array[48]; int sp_0x40 = 0; @@ -778,7 +777,7 @@ int daNpc_Sha_c::getSceneChangeNoTableIx() { u8 tmp_reg; for (int i = 0; i < 6; i++) { - eventReg = dComIfGs_getEventReg(u16(mEvtBitLabels[i])); + eventReg = dComIfGs_getEventReg((u16)mEvtBitLabels[i]); tmp_reg = 1; for (int j = 0; j < 8; j++) { @@ -799,10 +798,10 @@ int daNpc_Sha_c::getSceneChangeNoTableIx() { for (sp_0x40 = 2; sp_0x40 != 0; sp_0x40--) { for (int idx = 0; idx < 6; idx++) { - tmp_reg = dComIfGs_getTmpReg(mTmpBitLabels[idx]); - eventReg = dComIfGs_getEventReg(u16(mEvtBitLabels[idx])); + tmp_reg = dComIfGs_getTmpReg((u16)mTmpBitLabels[idx]); + eventReg = dComIfGs_getEventReg((u16)mEvtBitLabels[idx]); tmp_reg |= eventReg; - dComIfGs_setTmpReg(mTmpBitLabels[idx], tmp_reg); + dComIfGs_setTmpReg((u16)mTmpBitLabels[idx], tmp_reg); } for (int m = 0; m < 48; m++) { @@ -823,7 +822,7 @@ int daNpc_Sha_c::getSceneChangeNoTableIx() { sp_0x28++; } - eventReg = dComIfGs_getTmpReg(mTmpBitLabels[n]); + eventReg = dComIfGs_getTmpReg((u16)mTmpBitLabels[n]); if ((tmp_reg & eventReg) == 0) { iVar2[sp_0x3c] = sp_0x30; sp_0x3c++; @@ -874,7 +873,7 @@ void daNpc_Sha_c::setTempBit(int i_idx) { u8 reg_r30 = 0; u8 reg_r29 = 0; if (i_idx < 48) { - reg_r30 = dComIfGs_getTmpReg(mTmpBitLabels[i_idx / 8]); + reg_r30 = dComIfGs_getTmpReg((u16)mTmpBitLabels[i_idx / 8]); reg_r29 = 1; if (i_idx % 8 != 0) { @@ -884,7 +883,7 @@ void daNpc_Sha_c::setTempBit(int i_idx) { } reg_r30 |= reg_r29; - dComIfGs_setTmpReg(mTmpBitLabels[i_idx / 8], reg_r30); + dComIfGs_setTmpReg((u16)mTmpBitLabels[i_idx / 8], reg_r30); } } @@ -1161,17 +1160,17 @@ int daNpc_Sha_c::test(void* param_1) { } /* 80AE711C-80AE7128 000404 000C+00 1/1 0/0 0/0 .data mEvtBitLabels__11daNpc_Sha_c */ -u16 daNpc_Sha_c::mEvtBitLabels[6] = { +const u16 daNpc_Sha_c::mEvtBitLabels[6] = { 0xF0FF, 0xEFFF, 0xEEFF, 0xEDFF, 0xECFF, 0xEBFF, }; /* 80AE7128-80AE7134 000410 000C+00 2/2 0/0 0/0 .data mTmpBitLabels__11daNpc_Sha_c */ -u16 daNpc_Sha_c::mTmpBitLabels[6] = { +const u16 daNpc_Sha_c::mTmpBitLabels[6] = { 0xFAFF, 0xF9FF, 0xF8FF, 0xF7FF, 0xF6FF, 0xF5FF, }; /* 80AE7134-80AE71F4 00041C 00C0+00 1/1 0/0 0/0 .data mSceneChangeNoTable__11daNpc_Sha_c */ -int daNpc_Sha_c::mSceneChangeNoTable[48] = { +const int daNpc_Sha_c::mSceneChangeNoTable[48] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, diff --git a/src/d/actor/d_a_obj_brakeeff.cpp b/src/d/actor/d_a_obj_brakeeff.cpp index 41cade46af..16002a3185 100644 --- a/src/d/actor/d_a_obj_brakeeff.cpp +++ b/src/d/actor/d_a_obj_brakeeff.cpp @@ -167,7 +167,7 @@ int useHeapInit(fopAc_ac_c* i_this) { J3DAnmTevRegKey* tev_anm = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes("Obj_Bef", bef_brk[a_this->mEffectType])); - if (!a_this->mpBrk->init(a_this->mpModel->getModelData(), tev_anm, 1,0,1.0f,0,-1)) { + if (!a_this->mpBrk->init(a_this->mpModel->getModelData(), tev_anm, 1, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1)) { return 0; } diff --git a/src/d/d_particle.cpp b/src/d/d_particle.cpp index 6ff34964e9..f9b16713df 100644 --- a/src/d/d_particle.cpp +++ b/src/d/d_particle.cpp @@ -2109,7 +2109,7 @@ void dPa_light8PcallBack::draw(JPABaseEmitter* param_1, JPABaseParticle* param_2 /* 8004E6A8-8004ED44 048FE8 069C+00 1/0 0/0 0/0 .text * draw__25dPa_gen_b_light8PcallBackFP14JPABaseEmitterP15JPABaseParticle */ -// NONMATCHING regalloc +// NONMATCHING - fpr regalloc void dPa_gen_b_light8PcallBack::draw(JPABaseEmitter* param_1, JPABaseParticle* param_2) { Mtx local_80; JGeometry::TVec3<f32> local_8c; diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 80d5a346d3..2981337681 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -775,7 +775,7 @@ static JKRSolidHeap* mDoExt_createSolidHeap(u32 i_size, JKRHeap* i_heap, u32 i_a JKRSolidHeap* createdHeap; if (i_size == 0 || i_size == 0xFFFFFFFF) { - createdHeap = JKRSolidHeap::create(0xFFFFFFFFFF, i_heap, false); + createdHeap = JKRSolidHeap::create(0xFFFFFFFF, i_heap, false); } else { i_size = ALIGN_NEXT(i_size, 0x10); i_size += 0x80; |
