diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-11-17 10:01:03 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-17 20:01:03 +0200 |
| commit | 540217c31b88246d5c3abd57bb3fbd97cff6d31c (patch) | |
| tree | cc08666dad6a7cd55539168a0d0e3f6bba188488 /src/d/actor | |
| parent | 4350a38fe01fa57890eade52c7c5e3789cce83ac (diff) | |
wii building OK / m_Do_graphic debug work (#2815)
* wii building OK + m_Do_graphic debug work
* d_meter_HIO debug cleanup
* wii m_Do_graphic stuff
* tag_attack_item OK, mirror_chain almost
* fix build
* mg_fshop matching
Diffstat (limited to 'src/d/actor')
34 files changed, 1233 insertions, 1224 deletions
diff --git a/src/d/actor/d_a_alink_kandelaar.inc b/src/d/actor/d_a_alink_kandelaar.inc index afea666b31..0a24d7516c 100644 --- a/src/d/actor/d_a_alink_kandelaar.inc +++ b/src/d/actor/d_a_alink_kandelaar.inc @@ -207,7 +207,7 @@ void daAlink_c::preKandelaarDraw() { var_f3 = 0.0f; } - if (proj.x > 0.0f && proj.x < 608.0f && proj.y > var_f3 && proj.y < 448.0f - var_f3) { + if (proj.x > 0.0f && proj.x < FB_WIDTH && proj.y > var_f3 && proj.y < FB_HEIGHT - var_f3) { dComIfGd_peekZ(proj.x, proj.y, &field_0x32c8); } else { field_0x32c8 = 0; diff --git a/src/d/actor/d_a_balloon_2D.cpp b/src/d/actor/d_a_balloon_2D.cpp index c177fb2230..6a49136da8 100644 --- a/src/d/actor/d_a_balloon_2D.cpp +++ b/src/d/actor/d_a_balloon_2D.cpp @@ -567,7 +567,7 @@ void daBalloon2D_c::setHIO(bool param_1) { field_0x5a0->paneTrans(l_HOSTIO.m.mBalloonSmallPosX, l_HOSTIO.m.mBalloonSmallPosY); field_0x5a0->scale(l_HOSTIO.m.mBalloonSmallSize, l_HOSTIO.m.mBalloonSmallSize); field_0x5a0->setAlphaRate(l_HOSTIO.m.mBalloonSmallAlpha * mAllAlpha); -#if DEBUG +#if WIDESCREEN_SUPPORT if (mDoGph_gInf_c::isWide()) { field_0x5a4->paneTrans(l_HOSTIO.m.m2DNumberCombo2PosX, l_HOSTIO.m.m2DNumberCombo2PosY); } else { diff --git a/src/d/actor/d_a_e_fk.cpp b/src/d/actor/d_a_e_fk.cpp index 9fa0e46915..38c369b538 100644 --- a/src/d/actor/d_a_e_fk.cpp +++ b/src/d/actor/d_a_e_fk.cpp @@ -466,7 +466,7 @@ void daE_FK_c::DamageAction() { bool daE_FK_c::checkViewArea() { Vec proj; mDoLib_project(¤t.pos, &proj); - return (proj.x >= 0.0f && proj.x <= 608.0f) && (proj.y >= 0.0f && proj.y <= 448.0f); + return (proj.x >= 0.0f && proj.x <= FB_WIDTH) && (proj.y >= 0.0f && proj.y <= FB_HEIGHT); } namespace { diff --git a/src/d/actor/d_a_e_fs.cpp b/src/d/actor/d_a_e_fs.cpp index d8582fb900..d5b8edaaa8 100644 --- a/src/d/actor/d_a_e_fs.cpp +++ b/src/d/actor/d_a_e_fs.cpp @@ -480,7 +480,7 @@ static bool checkViewArea(cXyz* i_pos) { Vec proj; mDoLib_project(i_pos, &proj); bool ret = false; - if (proj.x >= 0.0f && proj.x <= 608.0f && proj.y >= 0.0f && proj.y <= 448.0f) { + if (proj.x >= 0.0f && proj.x <= FB_WIDTH && proj.y >= 0.0f && proj.y <= FB_HEIGHT) { ret = true; } return ret; diff --git a/src/d/actor/d_a_e_sm.cpp b/src/d/actor/d_a_e_sm.cpp index cdd670aefb..18125a1db4 100644 --- a/src/d/actor/d_a_e_sm.cpp +++ b/src/d/actor/d_a_e_sm.cpp @@ -1394,7 +1394,7 @@ bool daE_SM_c::CheckViewArea() { mDoLib_project(¤t.pos, &vec); bool rv = false; - if (vec.x >= 0.0f && vec.x <= 608.0f && vec.y >= 0.0f && vec.y <= 448.0f) { + if (vec.x >= 0.0f && vec.x <= FB_WIDTH && vec.y >= 0.0f && vec.y <= FB_HEIGHT) { rv = true; } diff --git a/src/d/actor/d_a_mg_fshop.cpp b/src/d/actor/d_a_mg_fshop.cpp index 8b0c6f5980..7e94d1bbf6 100644 --- a/src/d/actor/d_a_mg_fshop.cpp +++ b/src/d/actor/d_a_mg_fshop.cpp @@ -6,57 +6,62 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_mg_fshop.h" -#include "JSystem/J3DGraphBase/J3DMaterial.h" #include "d/actor/d_a_npc_henna.h" +#include "d/actor/d_a_mg_rod.h" #include "d/actor/d_a_player.h" -#include "d/d_bg_w.h" -#include "d/d_kankyo.h" -#include "f_op/f_op_actor_mng.h" #include "f_op/f_op_camera_mng.h" #include "d/d_timer.h" -#include "dol2asm.h" -#include "m_Do/m_Do_controller_pad.h" -#include "SSystem/SComponent/c_math.h" +#include "d/d_s_play.h" #include "Z2AudioLib/Z2Instances.h" /* 8086C06C-8086C08C 0000EC 0020+00 1/1 0/0 0/0 .text * ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ -static void ride_call_back(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) { - if (param_2->field_0x567 == 0) { - param_2->field_0x567 = 1; - ((fshop_class*)param_2)->field_0x428c = 0; +static void ride_call_back(dBgW* i_bgw, fopAc_ac_c* i_bgActor, fopAc_ac_c* i_rideActor) { + if (i_rideActor->field_0x567 == 0) { + i_rideActor->field_0x567 = 1; + ((fshop_class*)i_rideActor)->field_0x428c = 0; } } /* 8086C08C-8086C140 00010C 00B4+00 1/1 0/0 0/0 .text Reel_CallBack__FP8J3DJointi */ -static int Reel_CallBack(J3DJoint* param_0, int param_1) { +static int Reel_CallBack(J3DJoint* i_joint, int param_1) { + s32 userarea; + J3DJoint* var_r27; + if (param_1 == 0) { - u16 uVar1 = param_0->getJntNo(); + var_r27 = i_joint; + int jnt_no = var_r27->getJntNo(); J3DModel* model = j3dSys.getModel(); - s32 iVar2 = model->getUserArea(); - MTXCopy(model->getAnmMtx(uVar1), (MtxP)calc_mtx); - cMtx_XrotM((MtxP)calc_mtx, (int)*(short*)(iVar2 + 0x58)); - model->setAnmMtx(uVar1, (MtxP)calc_mtx); - PSMTXCopy((MtxP)calc_mtx, (MtxP) J3DSys::mCurrentMtx); + userarea = model->getUserArea(); + MTXCopy(model->getAnmMtx(jnt_no), *calc_mtx); + cMtx_XrotM(*calc_mtx, *(s16*)(userarea + 0x58)); // fakematch, unknown type for userarea + model->setAnmMtx(jnt_no, *calc_mtx); + MTXCopy(*calc_mtx, J3DSys::mCurrentMtx); } + return 1; } /* 8086C140-8086C214 0001C0 00D4+00 1/1 0/0 0/0 .text frog_CallBack__FP8J3DJointi */ -static int frog_CallBack(J3DJoint* param_0, int param_1) { +static int frog_CallBack(J3DJoint* i_joint, int param_1) { + int userarea; + J3DJoint* var_r27; + if (param_1 == 0) { - s32 sVar2 = param_0->getJntNo(); + var_r27 = i_joint; + int jnt_no = var_r27->getJntNo(); J3DModel* model = j3dSys.getModel(); - model->getUserArea(); - if (sVar2 == 1) { - MtxP uVar1 = model->getAnmMtx(sVar2); - MTXCopy(uVar1, (MtxP)calc_mtx); - cMtx_YrotM((MtxP)calc_mtx, -8800); - MtxScale(2.0f, 1.0f, 1.5f, 1); - model->setAnmMtx(sVar2, (MtxP)calc_mtx); - MTXCopy((MtxP)calc_mtx, (MtxP)J3DSys::mCurrentMtx); + userarea = model->getUserArea(); // unknown type + + if (jnt_no == 1) { + MTXCopy(model->getAnmMtx(jnt_no), *calc_mtx); + cMtx_YrotM(*calc_mtx, JREG_S(7) + -8800); + MtxScale(JREG_F(10) + 2.0f, JREG_F(11) + 1.0f, JREG_F(12) + 1.5f, 1); + model->setAnmMtx(jnt_no, *calc_mtx); + MTXCopy(*calc_mtx, J3DSys::mCurrentMtx); } } + return 1; } @@ -70,19 +75,23 @@ static cXyz BallEndPos; static J3DModel* ArcIX_A_crwaku_model[1]; /* 8086C214-8086C310 000294 00FC+00 1/1 0/0 0/0 .text koro2_draw__FP11fshop_class */ -static void koro2_draw(fshop_class* param_1) { +static void koro2_draw(fshop_class* i_this) { + fopAc_ac_c* actor = &i_this->actor; - if (param_1->scale.x > 5.0f) { + if (actor->scale.x > 5.0f) { dComIfGd_setListBG(); } - g_env_light.setLightTevColorType_MAJI(ArcIX_A_crwaku_model[0], ¶m_1->tevStr); + + g_env_light.setLightTevColorType_MAJI(ArcIX_A_crwaku_model[0], &actor->tevStr); mDoExt_modelUpdateDL(ArcIX_A_crwaku_model[0]); - for (s32 iVar1 = 0; iVar1 < ARRAY_SIZE(param_1->mKoro2); iVar1++) { - if (param_1->mKoro2[iVar1].mpModel != NULL) { - g_env_light.setLightTevColorType_MAJI(param_1->mKoro2[iVar1].mpModel, ¶m_1->tevStr); - mDoExt_modelUpdateDL(param_1->mKoro2[iVar1].mpModel); + + for (int i = 0; i < ARRAY_SIZE(i_this->mKoro2); i++) { + if (i_this->mKoro2[i].mpModel != NULL) { + g_env_light.setLightTevColorType_MAJI(i_this->mKoro2[i].mpModel, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->mKoro2[i].mpModel); } } + dComIfGd_setList(); } @@ -983,91 +992,94 @@ static J3DModel* ArcIX_A_crcurve_b_model[4]; static J3DModel* ArcIX_A_crsaka_model[8]; /* 80870704-8087071C -00001 0018+00 0/1 0/0 0/0 .data koro2_union_model */ -static void* koro2_union_model[6] = { - (void*)&ArcIX_A_crstart_model, (void*)&ArcIX_A_crgoal_model, (void*)&ArcIX_A_crbox_model, - (void*)&ArcIX_A_crcurve_a_model, (void*)&ArcIX_A_crcurve_b_model, (void*)&ArcIX_A_crsaka_model, +static J3DModel** koro2_union_model[6] = { + ArcIX_A_crstart_model, ArcIX_A_crgoal_model, ArcIX_A_crbox_model, + ArcIX_A_crcurve_a_model, ArcIX_A_crcurve_b_model, ArcIX_A_crsaka_model, }; -/* 8087071C-80870728 000498 000C+00 1/1 0/0 0/0 .data rod_color$3900 */ -static GXColor rod_color[3] = { - {0x96, 0x50, 0x14, 0xFF}, {0x64, 0x96, 0x14, 0xFF}, {0x96, 0x14, 0x14, 0xFF}, -}; +/* 8086C310-8086C6E4 000390 03D4+00 1/0 0/0 0/0 .text daFshop_Draw__FP11fshop_class */ +static int daFshop_Draw(fshop_class* i_this) { + fopAc_ac_c* actor = &i_this->actor; + g_env_light.settingTevStruct(0x10, &actor->current.pos, &actor->tevStr); -/* 80870728-8087072C 0004A4 0004+00 1/1 0/0 0/0 .data l_color$3912 */ -static GXColor l_color = { - 0x32, - 0x64, - 0x1E, - 0xFF, -}; + if (i_this->field_0x4070 != NULL) { + g_env_light.setLightTevColorType_MAJI(i_this->field_0x4070, &actor->tevStr); -/* 8086C310-8086C6E4 000390 03D4+00 1/0 0/0 0/0 .text daFshop_Draw__FP11fshop_class */ -// NONMATCHING regalloc -static int daFshop_Draw(fshop_class* param_0) { - g_env_light.settingTevStruct(0x10, ¶m_0->current.pos, ¶m_0->tevStr); - - if (param_0->field_0x4070 != NULL) { - g_env_light.setLightTevColorType_MAJI(param_0->field_0x4070, ¶m_0->tevStr); - param_0->field_0x4070->getModelData()->getMaterialNodePointer(0)->getTevKColor(1)->r = 0; - mDoExt_modelUpdateDL(param_0->field_0x4070); + J3DMaterial* sp1C = i_this->field_0x4070->getModelData()->getMaterialNodePointer(0); + sp1C->getTevKColor(1)->r = 0; + + mDoExt_modelUpdateDL(i_this->field_0x4070); dComIfGd_setSimpleShadow( - ¶m_0->current.pos, param_0->field_0x40b4.GetGroundH(), 66.6f * param_0->scale.x, - param_0->field_0x40b4.m_gnd, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + &actor->current.pos, i_this->field_0x40b4.GetGroundH(), (TREG_F(8) + 66.6f) * actor->scale.x, + i_this->field_0x40b4.m_gnd, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); return 1; } - if (param_0->field_0x400e != 0) { - if (param_0->field_0x400d == 0) { - koro2_draw(param_0); - param_0->field_0x400d = 1; + if (i_this->field_0x400e != 0) { + if (i_this->field_0x400d == 0) { + koro2_draw(i_this); + i_this->field_0x400d = 1; } return 1; } - int cVar11 = fopAcM_GetRoomNo(param_0); - camera_class* camera = dComIfGp_getCamera(0); + int roomNo = fopAcM_GetRoomNo(actor); + camera_class* camera = (camera_class*)dComIfGp_getCamera(0); - for (int iVar12 = 0; iVar12 < 48; iVar12++) { - f32 fVar4 = param_0->mLure[iVar12].field_0x00.x - camera->lookat.eye.x; - f32 fVar5 = param_0->mLure[iVar12].field_0x00.z - camera->lookat.eye.z; - if (fVar4 * fVar4 + fVar5 * fVar5 > 1200.0f) { - g_env_light.setLightTevColorType_MAJI(param_0->mLure[iVar12].field_0x14, ¶m_0->tevStr); - mDoExt_modelUpdateDL(param_0->mLure[iVar12].field_0x14); - if (param_0->mLure[iVar12].field_0x24 != 3) { - for (int local_50 = 0; local_50 < 2; local_50++) { - dComIfGp_entrySimpleModel(param_0->mLure[iVar12].field_0x18[local_50], cVar11); + for (int i = 0; i < 48; i++) { + f32 fVar4 = i_this->mLure[i].field_0x00.x - camera->lookat.eye.x; + f32 fVar5 = i_this->mLure[i].field_0x00.z - camera->lookat.eye.z; + if (SQUARE(fVar4) + SQUARE(fVar5) > KREG_F(11) + 1200.0f) { + g_env_light.setLightTevColorType_MAJI(i_this->mLure[i].field_0x14, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->mLure[i].field_0x14); + + if (i_this->mLure[i].field_0x24 != 3) { + for (int j = 0; j < 2; j++) { + dComIfGp_entrySimpleModel(i_this->mLure[i].field_0x18[j], roomNo); } } } } - for (int iVar9 = 0; iVar9 < 3; iVar9++) { - g_env_light.setLightTevColorType_MAJI(param_0->mRod[iVar9].field_0x14, ¶m_0->tevStr); - mDoExt_modelUpdateDL(param_0->mRod[iVar9].field_0x14); - param_0->mRod[iVar9].line_mat.update(8, rod_color[iVar9], ¶m_0->tevStr); - dComIfGd_set3DlineMat(¶m_0->mRod[iVar9].line_mat); - for (int local_54 = 0; local_54 < 6; local_54++) { - dComIfGp_entrySimpleModel(param_0->mRod[iVar9].field_0x18[local_54], cVar11); + for (int i = 0; i < 3; i++) { + g_env_light.setLightTevColorType_MAJI(i_this->mRod[i].field_0x14, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->mRod[i].field_0x14); + + static GXColor rod_color[3] = { + {0x96, 0x50, 0x14, 0xFF}, + {0x64, 0x96, 0x14, 0xFF}, + {0x96, 0x14, 0x14, 0xFF}, + }; + i_this->mRod[i].line_mat.update(8, rod_color[i], &actor->tevStr); + dComIfGd_set3DlineMat(&i_this->mRod[i].line_mat); + + for (int j = 0; j < 6; j++) { + dComIfGp_entrySimpleModel(i_this->mRod[i].field_0x18[j], roomNo); } } - for (int local_58 = 0; local_58 < 2; local_58++) { - g_env_light.setLightTevColorType_MAJI(param_0->mTsubo[local_58].field_0x14, ¶m_0->tevStr); - mDoExt_modelUpdateDL(param_0->mTsubo[local_58].field_0x14); + + for (int i = 0; i < 2; i++) { + g_env_light.setLightTevColorType_MAJI(i_this->mTsubo[i].field_0x14, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->mTsubo[i].field_0x14); } - param_0->field_0x3f88.update(0xf, 1.2f, l_color, 2, ¶m_0->tevStr); - dComIfGd_set3DlineMat(¶m_0->field_0x3f88); - g_env_light.setLightTevColorType_MAJI(param_0->field_0x6b30, ¶m_0->tevStr); - mDoExt_modelUpdateDL(param_0->field_0x6b30); - g_env_light.setLightTevColorType_MAJI(param_0->field_0x3ff4, ¶m_0->tevStr); - mDoExt_modelUpdateDL(param_0->field_0x3ff4); - if (param_0->field_0x4004 != NULL) { + static GXColor l_color = {0x32, 0x64, 0x1E, 0xFF}; + i_this->field_0x3f88.update(15, TREG_F(11) + 1.2f, l_color, 2, &actor->tevStr); + dComIfGd_set3DlineMat(&i_this->field_0x3f88); + + g_env_light.setLightTevColorType_MAJI(i_this->field_0x6b30, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->field_0x6b30); + + g_env_light.setLightTevColorType_MAJI(i_this->field_0x3ff4, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->field_0x3ff4); + + if (i_this->field_0x4004 != NULL) { mDoMtx_stack_c::transS(0.0f, 0.0f, 0.0f); - MtxP pfVar10 = mDoMtx_stack_c::get(); - param_0->field_0x4004->setBaseTRMtx(pfVar10); - g_env_light.setLightTevColorType_MAJI(param_0->field_0x4004, ¶m_0->tevStr); - mDoExt_modelUpdateDL(param_0->field_0x4004); + i_this->field_0x4004->setBaseTRMtx(mDoMtx_stack_c::get()); + g_env_light.setLightTevColorType_MAJI(i_this->field_0x4004, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->field_0x4004); } + return 1; } @@ -1097,9 +1109,10 @@ static f32 hook_2_offy[3] = { }; /* 8086C6E4-8086C9D0 000764 02EC+00 1/1 0/0 0/0 .text lure_set__FP11fshop_class */ -static void lure_set(fshop_class* param_0) { +static void lure_set(fshop_class* i_this) { static f32 lure_ofy[3] = {-12.0f, -10.0f, -14.0f}; - fs_lure_s* pLure = param_0->mLure; + fs_lure_s* pLure = i_this->mLure; + for (int i = 0; i < 48; i++, pLure++) { if (daPy_getPlayerActorClass()->checkFrontRollCrash()) { pLure->field_0x34 = cM_rndF(65536.0f); @@ -1107,12 +1120,15 @@ static void lure_set(fshop_class* param_0) { pLure->field_0x38 = cM_rndF(1000.0f) + 500.0f; pLure->field_0x3c = cM_rndF(1000.0f) + 500.0f; } + pLure->field_0x34 += 4000; pLure->field_0x36 += 4000; pLure->field_0x32 = pLure->field_0x3c * cM_ssin(pLure->field_0x36); pLure->field_0x30 = pLure->field_0x38 * cM_ssin(pLure->field_0x34); + cLib_addCalc0(&pLure->field_0x3c, 1.0f, 40.0f); cLib_addCalc0(&pLure->field_0x38, 1.0f, 40.0f); + f32 fVar1 = 0.0f; f32 fVar2; if (pLure->field_0x24 != 3) { @@ -1121,6 +1137,7 @@ static void lure_set(fshop_class* param_0) { } else { fVar2 = 12.0f; } + mDoMtx_stack_c::transS( pLure->field_0x00.x, pLure->field_0x00.y + fVar1, @@ -1135,6 +1152,7 @@ static void lure_set(fshop_class* param_0) { mDoMtx_stack_c::scaleM(pLure->field_0x2c, pLure->field_0x2c, pLure->field_0x28); mDoMtx_stack_c::transM(0.0f, 0.0f, 0.0f); pLure->field_0x14->setBaseTRMtx(mDoMtx_stack_c::get()); + if (pLure->field_0x24 != 3) { mDoMtx_stack_c::push(); mDoMtx_stack_c::transM(0.0f, hook_1_offy[pLure->field_0x24], 1.0f); @@ -1150,9 +1168,10 @@ static void lure_set(fshop_class* param_0) { } /* 8086C9D0-8086CC30 000A50 0260+00 1/1 0/0 0/0 .text rod_set__FP11fshop_class */ -static void rod_set(fshop_class* param_0) { - fs_rod_s* pRod = param_0->mRod; - for (s32 i = 0; i < 3; i++, pRod++) { +static void rod_set(fshop_class* i_this) { + fs_rod_s* pRod = i_this->mRod; + + for (int i = 0; i < 3; i++, pRod++) { mDoMtx_stack_c::transS(pRod->field_0x00.x, pRod->field_0x00.y, pRod->field_0x00.z); if (i == 0) { mDoMtx_stack_c::YrotM(-12000.0f); @@ -1164,6 +1183,7 @@ static void rod_set(fshop_class* param_0) { mDoMtx_stack_c::XrotM(1300); mDoMtx_stack_c::YrotM(0); pRod->field_0x14->setBaseTRMtx(mDoMtx_stack_c::get()); + cXyz* local_64 = pRod->line_mat.getPos(0); if (pRod->field_0x4c == 0) { mDoMtx_stack_c::transM(0.0f, 15.0f, 0.0f); @@ -1174,11 +1194,11 @@ static void rod_set(fshop_class* param_0) { cXyz cStack_1c; cXyz cStack_28; cXyz local_34; - for (s32 local_68 = 0; local_68 < 8; local_68++) { + for (int j = 0; j < 8; j++) { mDoMtx_stack_c::multVecZero(local_64); - if (local_68 == 0) { + if (j == 0) { cStack_1c = *local_64; - } else if (local_68 == 7) { + } else if (j == 7) { cStack_28 = *local_64; } mDoMtx_stack_c::transM(0.0f, pRod->field_0x54, 0.0f); @@ -1187,33 +1207,35 @@ static void rod_set(fshop_class* param_0) { static f32 guide_p[6] = {0.0f, 0.1f, 0.22f, 0.36f, 0.52f, 0.7f}; static f32 guide_s[6] = {0.5f, 0.5f, 0.55f, 0.6f, 0.65f, 0.8f}; - for (s32 local_6c = 0; local_6c < 6; local_6c++) { - cXyz local_34 = cStack_28 + (cStack_1c - cStack_28) * guide_p[local_6c]; + for (int j = 0; j < 6; j++) { + cXyz local_34 = cStack_28 + (cStack_1c - cStack_28) * guide_p[j]; mDoMtx_stack_c::transS(local_34.x, local_34.y, local_34.z); - mDoMtx_stack_c::scaleM(guide_s[local_6c], guide_s[local_6c], guide_s[local_6c]); + mDoMtx_stack_c::scaleM(guide_s[j], guide_s[j], guide_s[j]); mDoMtx_stack_c::transM(0.0f, 4.0f, 0.0f); mDoMtx_stack_c::YrotM(0x4000); - pRod->field_0x18[local_6c]->setBaseTRMtx(mDoMtx_stack_c::get()); + pRod->field_0x18[j]->setBaseTRMtx(mDoMtx_stack_c::get()); } } } /* 8086CC6C-8086CD70 000CEC 0104+00 1/1 0/0 0/0 .text s_fish_sub__FPvPv */ -static void* s_fish_sub(void* param_0, void* param_1) { - fopAc_ac_c* actor = (fopAc_ac_c*)param_0; - fs_weed_s* weed = (fs_weed_s*)param_1; - if (fopAcM_IsActor(param_0) && fopAcM_GetName(param_0) == PROC_MG_FISH && actor->speedF > 0.1f) { - f32 dVar9 = actor->current.pos.x - weed->field_0x00[0].x; - f32 dVar8 = actor->current.pos.y - weed->field_0x00[0].y; - f32 dVar10 = actor->current.pos.z - weed->field_0x00[0].z; - f32 dVar3 = ((f32*)actor)[0x16F]; +static void* s_fish_sub(void* i_actor, void* i_data) { + mg_fish_class* fish = (mg_fish_class*)i_actor; + fs_weed_s* weed = (fs_weed_s*)i_data; + + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_MG_FISH && fish->actor.speedF > 0.1f) { + f32 x_dist = fish->actor.current.pos.x - weed->field_0x00[0].x; + f32 y_dist = fish->actor.current.pos.y - weed->field_0x00[0].y; + f32 z_dist = fish->actor.current.pos.z - weed->field_0x00[0].z; + + f32 dVar3 = fish->mJointScale; if (dVar3 > 0.7f) { dVar3 = 0.7f; } - if (fabsf(dVar8) < 60.0f * weed->field_0xb4 && - JMAFastSqrt(((dVar9 * dVar9) + (dVar10 * dVar10))) < dVar3 * 35.0f){ + + if (fabsf(y_dist) < 60.0f * weed->field_0xb4 && JMAFastSqrt(SQUARE(x_dist) + SQUARE(z_dist)) < dVar3 * 35.0f) { cLib_addCalc2(&weed->field_0xb8, dVar3, 0.1f, 0.05f); - return (fopAc_ac_c*)param_0; + return i_actor; } } @@ -1221,132 +1243,148 @@ static void* s_fish_sub(void* param_0, void* param_1) { } /* 8086CD70-8086CF8C 000DF0 021C+00 1/1 0/0 0/0 .text tsubo_set__FP11fshop_class */ -static void tsubo_set(fshop_class* param_1) { +static void tsubo_set(fshop_class* i_this) { fopAc_ac_c* pfVar5 = dComIfGp_getPlayer(0); - fs_tsubo_s* pTsubo = param_1->mTsubo; + fs_tsubo_s* pTsubo = i_this->mTsubo; + cXyz local_40; s16 xrot; s16 zrot; - for (s32 local_48 = 0; local_48 < 2; local_48++, pTsubo++) { + for (int i = 0; i < 2; i++, pTsubo++) { local_40.x = pTsubo->field_0x00.x - pfVar5->current.pos.x; local_40.z = pTsubo->field_0x00.z - pfVar5->current.pos.z; - if (daPy_getPlayerActorClass()->checkFrontRollCrash() && - JMAFastSqrt((local_40.x * local_40.x + local_40.z * local_40.z)) < 150.0f) - { - if (local_48 == 0) { + if (daPy_getPlayerActorClass()->checkFrontRollCrash() && JMAFastSqrt(SQUARE(local_40.x) + SQUARE(local_40.z)) < 150.0f) { + if (i == 0) { pTsubo->field_0x1c = 1200.0f; - pTsubo->field_0x24 = 0x708; + pTsubo->field_0x24 = 1800; } else { pTsubo->field_0x1c = 1800.0f; - pTsubo->field_0x24 = 0xaf0; + pTsubo->field_0x24 = 2800; } pTsubo->field_0x20 = cM_rndF(65536.0f); pTsubo->field_0x22 = cM_rndF(65536.0f); + npc_henna_class* henna = (npc_henna_class*)fopAcM_SearchByName(PROC_NPC_HENNA); if (henna != NULL) { - henna->field_0x7b5 = 0x3c; + henna->field_0x7b5 = 60; } } + xrot = cM_ssin(pTsubo->field_0x20) * pTsubo->field_0x1c; zrot = cM_ssin(pTsubo->field_0x22) * pTsubo->field_0x1c; pTsubo->field_0x20 += pTsubo->field_0x24; pTsubo->field_0x22 += pTsubo->field_0x24 + 700; cLib_addCalcAngleS2(&pTsubo->field_0x24, 9000, 1, 200); + mDoMtx_stack_c::transS(pTsubo->field_0x00.x, pTsubo->field_0x00.y, pTsubo->field_0x00.z); mDoMtx_stack_c::XrotM(xrot); mDoMtx_stack_c::ZrotM(zrot); mDoMtx_stack_c::scaleM(1.0f, 1.0f, 1.0f); pTsubo->field_0x14->setBaseTRMtx(mDoMtx_stack_c::get()); + cLib_addCalc0(&pTsubo->field_0x1c, 1.0f, 50.0f); } } /* 8086CF8C-8086D1A0 00100C 0214+00 1/1 0/0 0/0 .text weed_control__FP11fshop_classP9fs_weed_s */ -static void weed_control(fshop_class* param_1, fs_weed_s* param_2) { - int iVar6; +static void weed_control(fshop_class* i_this, fs_weed_s* i_weed) { + int i; cXyz local_84; cXyz local_90; - cXyz* pfVar7 = param_2->field_0x00 + 1; + cXyz* pfVar7 = i_weed->field_0x00 + 1; + local_84.x = 0.0f; local_84.y = 0.0f; - local_84.z = param_2->field_0xb4 * 5.0f; - f32 dVar11 = param_2->field_0xb8 + 0.5f; - param_2->field_0xbc += (s16)(param_2->field_0xb8 * 600.0f + 200.0f); - cLib_addCalc0(¶m_2->field_0xb8, 0.05f, 0.02f); - for (iVar6 = 1; iVar6 < 0xf; iVar6++, pfVar7++) { - f32 dVar10 = dVar11 * cM_ssin(param_2->field_0xbc + iVar6 * -5000); - f32 dVar8 = cM_ssin(param_2->field_0xbc + iVar6 * -5500); - f32 dVar4 = dVar10 + (pfVar7[0].x - pfVar7[0 - 1].x); - f32 dVar12 = (pfVar7[0].y - pfVar7[0 - 1].y) + 3.0f; - f32 dVar6 = dVar11 * dVar8 + (pfVar7[0].z - pfVar7[0 - 1].z); - mDoMtx_XrotS((MtxP)calc_mtx, -cM_atan2s(dVar12, dVar6)); - mDoMtx_YrotM((MtxP)calc_mtx, (s32)cM_atan2s(dVar4, JMAFastSqrt(dVar12 * dVar12 + dVar6 * dVar6))); + local_84.z = i_weed->field_0xb4 * 5.0f; + + f32 dVar11 = i_weed->field_0xb8 + 0.5f; + i_weed->field_0xbc += (s16)(i_weed->field_0xb8 * 600.0f + 200.0f); + cLib_addCalc0(&i_weed->field_0xb8, 0.05f, 0.02f); + + for (i = 1; i < 15; i++, pfVar7++) { + f32 dVar10 = dVar11 * cM_ssin(i_weed->field_0xbc + i * -5000); + f32 dVar8 = cM_ssin(i_weed->field_0xbc + i * -5500); + f32 dVar4 = dVar10 + (pfVar7[0].x - pfVar7[-1].x); + f32 dVar12 = (pfVar7[0].y - pfVar7[-1].y) + 3.0f; + f32 dVar6 = dVar11 * dVar8 + (pfVar7[0].z - pfVar7[-1].z); + cMtx_XrotS(*calc_mtx, -cM_atan2s(dVar12, dVar6)); + cMtx_YrotM(*calc_mtx, (s16)cM_atan2s(dVar4, JMAFastSqrt(SQUARE(dVar12) + SQUARE(dVar6)))); MtxPosition(&local_84, &local_90); - pfVar7[0].x = pfVar7[0 - 1].x + local_90.x; - pfVar7[0].y = pfVar7[0 - 1].y + local_90.y; - pfVar7[0].z = pfVar7[0 - 1].z + local_90.z; + + pfVar7[0].x = pfVar7[-1].x + local_90.x; + pfVar7[0].y = pfVar7[-1].y + local_90.y; + pfVar7[0].z = pfVar7[-1].z + local_90.z; } } /* 8086D1A0-8086D1EC 001220 004C+00 1/1 0/0 0/0 .text stage_copy__FP11fshop_classP11fshop_class */ -static void stage_copy(fshop_class* param_0, fshop_class* param_1) { - param_0->field_0x4014 = param_1->field_0x4014; - param_0->field_0x4020 = param_1->field_0x4020; - param_0->scale = param_1->scale; +static void stage_copy(fshop_class* i_dst, fshop_class* i_src) { + i_dst->field_0x4014 = i_src->field_0x4014; + i_dst->field_0x4020 = i_src->field_0x4020; + i_dst->actor.scale = i_src->actor.scale; } /* 8086D1EC-8086D48C 00126C 02A0+00 1/1 0/0 0/0 .text koro2_mtx_set__FP11fshop_class */ -// NONMATCHING float load order -static void koro2_mtx_set(fshop_class* param_1) { +static void koro2_mtx_set(fshop_class* i_this) { + fopAc_ac_c* actor = &i_this->actor; + cXyz cStack_44; cXyz cStack_50; - if (param_1->field_0x400d) { + if (i_this->field_0x400d) { mDoMtx_stack_c::transS(0.0f, -10000.0f, 0.0f); - MTXCopy(mDoMtx_stack_c::get(), param_1->field_0x4030); - param_1->field_0x402c->Move(); - for (int local_58 = 0; local_58 < 100; local_58++) { - fs_koro2_s* pmVar4 = ¶m_1->mKoro2[local_58]; - if (param_1->mKoro2[local_58].mpModel != NULL) { - MTXCopy(mDoMtx_stack_c::get(), param_1->mKoro2[local_58].field_0x04); - param_1->mKoro2[local_58].mpBgW->Move(); + MTXCopy(mDoMtx_stack_c::get(), i_this->field_0x4030); + i_this->field_0x402c->Move(); + + for (int i = 0; i < 100; i++) { + if (i_this->mKoro2[i].mpModel != NULL) { + MTXCopy(mDoMtx_stack_c::get(), i_this->mKoro2[i].field_0x04); + i_this->mKoro2[i].mpBgW->Move(); } } } else { - mDoMtx_stack_c::transS(param_1->field_0x4014.x, param_1->field_0x4014.y, param_1->field_0x4014.z); - mDoMtx_stack_c::YrotM(param_1->field_0x4020.y); - mDoMtx_stack_c::XrotM(param_1->field_0x4020.x); - mDoMtx_stack_c::ZrotM(param_1->field_0x4020.z); - mDoMtx_stack_c::scaleM(param_1->scale.x, param_1->scale.x, param_1->scale.x); + mDoMtx_stack_c::transS(i_this->field_0x4014.x, i_this->field_0x4014.y, i_this->field_0x4014.z); + mDoMtx_stack_c::YrotM(i_this->field_0x4020.y); + mDoMtx_stack_c::XrotM(i_this->field_0x4020.x); + mDoMtx_stack_c::ZrotM(i_this->field_0x4020.z); + mDoMtx_stack_c::scaleM(actor->scale.x, actor->scale.x, actor->scale.x); mDoMtx_stack_c::push(); mDoMtx_stack_c::scaleM(0.01f, 0.01f, 0.01f); - param_1->mpA_crwaku_model->setBaseTRMtx(mDoMtx_stack_c::get()); - MTXCopy(mDoMtx_stack_c::get(), param_1->field_0x4030); - param_1->field_0x402c->Move(); + i_this->mpA_crwaku_model->setBaseTRMtx(mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), i_this->field_0x4030); + + i_this->field_0x402c->Move(); mDoMtx_stack_c::pop(); - for (int iVar8 = 0; iVar8 < 100; iVar8++) { - if (param_1->mKoro2[iVar8].mpModel != NULL) { + + f32 var_f31 = VREG_F(2) + -10.0f; + f32 var_f30 = VREG_F(4) + -18.0f; + + for (int i = 0; i < 100; i++) { + if (i_this->mKoro2[i].mpModel != NULL) { mDoMtx_stack_c::push(); - mDoMtx_stack_c::transM(param_1->mKoro2[iVar8].field_0x38.x + -10.0f, - param_1->mKoro2[iVar8].field_0x38.y, - param_1->mKoro2[iVar8].field_0x38.z + -18.0f); - mDoMtx_stack_c::YrotM(param_1->mKoro2[iVar8].field_0x50); - mDoMtx_stack_c::scaleM(param_1->mKoro2[iVar8].field_0x44.x, - param_1->mKoro2[iVar8].field_0x44.y, - param_1->mKoro2[iVar8].field_0x44.z); + mDoMtx_stack_c::transM(i_this->mKoro2[i].field_0x38.x + var_f31, + i_this->mKoro2[i].field_0x38.y, + i_this->mKoro2[i].field_0x38.z + var_f30); + mDoMtx_stack_c::YrotM(i_this->mKoro2[i].field_0x50); + mDoMtx_stack_c::scaleM(i_this->mKoro2[i].field_0x44.x, + i_this->mKoro2[i].field_0x44.y, + i_this->mKoro2[i].field_0x44.z); mDoMtx_stack_c::push(); mDoMtx_stack_c::scaleM(0.01f, 0.01f, 0.01f); - param_1->mKoro2[iVar8].mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); - MTXCopy(mDoMtx_stack_c::get(), param_1->mKoro2[iVar8].field_0x04); - param_1->mKoro2[iVar8].mpBgW->Move(); + i_this->mKoro2[i].mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), i_this->mKoro2[i].field_0x04); + + i_this->mKoro2[i].mpBgW->Move(); mDoMtx_stack_c::pop(); - mDoMtx_stack_c::multVecZero(¶m_1->mKoro2[iVar8].field_0x54); - if (param_1->mKoro2[iVar8].field_0x34 == 6) { + mDoMtx_stack_c::multVecZero(&i_this->mKoro2[i].field_0x54); + + if (i_this->mKoro2[i].field_0x34 == 6) { cStack_44.set(0.0f, 0.0f, 2.5f); mDoMtx_stack_c::multVec(&cStack_44, &BallStartPos); - } else if (param_1->mKoro2[iVar8].field_0x34 == 7) { + } else if (i_this->mKoro2[i].field_0x34 == 7) { cStack_44.set(0.0f, 0.0f, -2.0f); mDoMtx_stack_c::multVec(&cStack_44, &BallEndPos); } + mDoMtx_stack_c::pop(); } } @@ -1354,12 +1392,10 @@ static void koro2_mtx_set(fshop_class* param_1) { } /* 8086D48C-8086D500 00150C 0074+00 1/1 0/0 0/0 .text s_sel_sub__FPvPv */ -static void* s_sel_sub(void* param_1, void* param_2) { - if (fopAcM_IsActor(param_1) && fopAcM_GetName(param_1) == PROC_FSHOP) { - u8 uVar1 = ((fshop_class*)param_1)->field_0x400e; - u8 uVar2 = (((fshop_class*)param_2)->field_0x400c & 7) + 1; - if (uVar1 == uVar2) { - return param_1; +static void* s_sel_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_FSHOP) { + if (((fshop_class*)i_actor)->field_0x400e == (u8)((((fshop_class*)i_data)->field_0x400c & 7) + 1)) { + return i_actor; } } @@ -1367,10 +1403,9 @@ static void* s_sel_sub(void* param_1, void* param_2) { } /* 8086D500-8086D55C 001580 005C+00 1/1 0/0 0/0 .text s_ball_sub__FPvPv */ -static void* s_ball_sub(void* param_1, void* param_2) { - if (fopAcM_IsActor(param_1) && fopAcM_GetName(param_1) == PROC_FSHOP && - (u8)fopAcM_GetParam(param_1) == 0x23) { - return param_1; +static void* s_ball_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_FSHOP && (fopAcM_GetParam(i_actor) & 0xFF) == 0x23) { + return i_actor; } return NULL; @@ -1378,9 +1413,11 @@ static void* s_ball_sub(void* param_1, void* param_2) { /* 8086D55C-8086D854 0015DC 02F8+00 1/1 0/0 0/0 .text koro2_game__FP11fshop_class */ static void koro2_game(fshop_class* i_this) { + fopAc_ac_c* actor = &i_this->actor; + cXyz sp5C; cXyz sp68; - i_this->scale.x = 1.0f; + actor->scale.x = 1.0f; switch (i_this->field_0x4010) { case 0: @@ -1399,7 +1436,7 @@ static void koro2_game(fshop_class* i_this) { cLib_addCalcAngleS2(&i_this->field_0x4020.x, 0, 2, 0x200); cLib_addCalcAngleS2(&i_this->field_0x4020.z, 0, 2, 0x200); case 2: - i_this->scale.x = 10.0f; + actor->scale.x = 10.0f; if (i_this->field_0x4010 == 2) { static f32 old_stick_x = 0.0f; @@ -1460,151 +1497,165 @@ static void koro2_game(fshop_class* i_this) { } } -/* 80870AC4-80870AC8 000174 0004+00 1/1 0/0 0/0 .bss None */ -static u8 data_80870AC4[4]; - /* 8086D854-8086DA00 0018D4 01AC+00 1/1 0/0 0/0 .text ball_wall_check__FP11fshop_class */ -static int ball_wall_check(fshop_class* param_1) { - if (!param_1->field_0x40b4.ChkWallHit()) { +static int ball_wall_check(fshop_class* i_this) { + if (!i_this->field_0x40b4.ChkWallHit()) { return 0; } - fopAc_ac_c* actor = param_1; + fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->actor; dBgS_LinChk adStack_88; cXyz cStack_94; cXyz cStack_a0; cXyz local_ac; local_ac.y = 0.0f; + cStack_94 = actor->current.pos; - cStack_94.y +=5.0f; - for (int iVar1 = 0; iVar1 < 4; iVar1++) { + cStack_94.y += nREG_F(7) + 5.0f; + + for (int i = 0; i < 4; i++) { static f32 c_x[4] = {14.0f, -14.0f, 0.0f, 0.0f}; static f32 c_z[4] = {0.0f, 0.0f, 14.0f, -14.0f}; - local_ac.x = c_x[iVar1]; - local_ac.z = c_z[iVar1]; + local_ac.x = c_x[i]; + local_ac.z = c_z[i]; cStack_a0 = cStack_94 + local_ac; + adStack_88.Set(&cStack_94, &cStack_a0, actor); if (dComIfG_Bgsp().LineCross(&adStack_88)) { - if ((iVar1 == 0 && actor->speed.x > 0.0f) || - (iVar1 == 1 && actor->speed.x < 0.0f)) + if ((i == 0 && actor->speed.x > 0.0f) || + (i == 1 && actor->speed.x < 0.0f)) { actor->speed.x = 0.0f; } - if ((iVar1 == 2 && actor->speed.z > 0.0f) || - (iVar1 == 3 && actor->speed.z < 0.0f)) + + if ((i == 2 && actor->speed.z > 0.0f) || + (i == 3 && actor->speed.z < 0.0f)) { actor->speed.z = 0.0f; } } } + return 0; } /* 8086DA00-8086E6C4 001A80 0CC4+00 2/1 0/0 0/0 .text daFshop_Execute__FP11fshop_class */ -static int daFshop_Execute(fshop_class* param_1) { +static int daFshop_Execute(fshop_class* i_this) { + fopAc_ac_c* actor = &i_this->actor; fopAc_ac_c* pPlayer = dComIfGp_getPlayer(0); cXyz local_c0; - param_1->field_0x0570++; - if (param_1->field_0x400e != 0) { - if (param_1->field_0x428d != 0) { - param_1->field_0x428d--; + + i_this->field_0x0570++; + + if (i_this->field_0x400e != 0) { + if (i_this->field_0x428d != 0) { + i_this->field_0x428d--; } - koro2_mtx_set(param_1); + + koro2_mtx_set(i_this); return 1; } - if (param_1->field_0x4070 != NULL) { - param_1->scale.x = 0.024f; + + if (i_this->field_0x4070 != NULL) { + actor->scale.x = 0.024f; cXyz local_cc; cXyz local_d8; BOOL bVar5 = FALSE; - if (param_1->field_0x428d != 0) { - param_1->field_0x428d--; + + if (i_this->field_0x428d != 0) { + i_this->field_0x428d--; } - switch (param_1->field_0x0572) { + + switch (i_this->field_0x0572) { case 0: - param_1->current.pos = BallStartPos; - param_1->current.pos.y += 4.0f; - param_1->old.pos = param_1->current.pos; - param_1->field_0x428d = 10; + actor->current.pos = BallStartPos; + actor->current.pos.y += 4.0f; + actor->old.pos = actor->current.pos; + i_this->field_0x428d = 10; break; case 1: - param_1->current.pos = BallStartPos; - param_1->current.pos.y += 4.0f; - param_1->old.pos = param_1->current.pos; - param_1->speed.zero(); - param_1->field_0x0572++; - param_1->field_0x428c = 3; - param_1->field_0x567 = 0; - param_1->field_0x428d = 10; + actor->current.pos = BallStartPos; + actor->current.pos.y += 4.0f; + actor->old.pos = actor->current.pos; + actor->speed.zero(); + + i_this->field_0x0572++; + i_this->field_0x428c = 3; + actor->field_0x567 = 0; + i_this->field_0x428d = 10; case 2: bVar5 = TRUE; - param_1->scale.x = 0.24000001f; + actor->scale.x = 0.24000001f; break; } if (bVar5) { - cMtx_YrotS((MtxP)calc_mtx, param_1->field_0x4020.y); - cMtx_XrotM((MtxP)calc_mtx, param_1->field_0x4020.x); - cMtx_ZrotM((MtxP)calc_mtx, param_1->field_0x4020.z); - MtxPosition(¶m_1->speed, ¶m_1->field_0x4064); - param_1->field_0x4064 = param_1->speed; - param_1->current.pos += param_1->field_0x4064; - if (param_1->speed.x || param_1->speed.z) { - param_1->current.angle.y = cM_atan2s(param_1->speed.x, param_1->speed.z); + cMtx_YrotS(*calc_mtx, i_this->field_0x4020.y); + cMtx_XrotM(*calc_mtx, i_this->field_0x4020.x); + cMtx_ZrotM(*calc_mtx, i_this->field_0x4020.z); + MtxPosition(&actor->speed, &i_this->field_0x4064); + i_this->field_0x4064 = actor->speed; + actor->current.pos += i_this->field_0x4064; + + if (actor->speed.x || actor->speed.z) { + actor->current.angle.y = cM_atan2s(actor->speed.x, actor->speed.z); } - param_1->speed.y -= 3.5f; - if (param_1->speed.y <= -15.0f) { - param_1->speed.y = -15.0f; + + actor->speed.y -= 3.5f; + if (actor->speed.y <= -15.0f) { + actor->speed.y = -15.0f; } - param_1->field_0x40b4.m_gnd.OffWall(); - param_1->field_0x40b4.CrrPos(dComIfG_Bgsp()); - ball_wall_check(param_1); - fshop_class* iVar6 = param_1->field_0x4008; - for (int local_124 = 0; local_124 < 100; local_124++) { - if (iVar6->mKoro2[local_124].mpModel != NULL) { - local_cc.x = iVar6->mKoro2[local_124].field_0x54.x - param_1->current.pos.x; - local_cc.z = iVar6->mKoro2[local_124].field_0x54.z - param_1->current.pos.z; + + i_this->field_0x40b4.m_gnd.OffWall(); + i_this->field_0x40b4.CrrPos(dComIfG_Bgsp()); + ball_wall_check(i_this); + + fshop_class* iVar6 = i_this->field_0x4008; + for (int i = 0; i < 100; i++) { + if (iVar6->mKoro2[i].mpModel != NULL) { + local_cc.x = iVar6->mKoro2[i].field_0x54.x - actor->current.pos.x; + local_cc.z = iVar6->mKoro2[i].field_0x54.z - actor->current.pos.z; if (JMAFastSqrt(local_cc.x * local_cc.x + local_cc.z * local_cc.z) < 40.0f) { - iVar6->mKoro2[local_124].field_0x60 = 0; + iVar6->mKoro2[i].field_0x60 = 0; } } } - if (param_1->current.pos.y < -2500.0f) { - param_1->field_0x567 = 1; + + if (actor->current.pos.y < -2500.0f) { + actor->field_0x567 = 1; } npc_henna_class* henna = (npc_henna_class*)fopAcM_SearchByName(PROC_NPC_HENNA); - if (henna != NULL && henna->field_0x7b9 != 0 && - (param_1->field_0x567 == 1 || dTimer_getRestTimeMs() == 0)) - { + if (henna != NULL && henna->field_0x7b9 != 0 && (actor->field_0x567 == 1 || dTimer_getRestTimeMs() == 0)) { BOOL bVar5 = FALSE; - for (int local_130 = 0; local_130 < 100; local_130++) { - if (iVar6->mKoro2[local_130].mpModel != NULL && iVar6->mKoro2[local_130].field_0x60) { + for (int i = 0; i < 100; i++) { + if (iVar6->mKoro2[i].mpModel != NULL && iVar6->mKoro2[i].field_0x60) { bVar5 = TRUE; break; } } + if (!bVar5) { henna->actor.health = 1; - } else if (param_1->field_0x567 == 1) { + } else if (actor->field_0x567 == 1) { henna->actor.health = 0; } else { henna->actor.health = 2; } - henna->cam_mode = 0x49; + henna->cam_mode = 73; henna->field_0x754 = 0; henna->field_0x7b9 = 0; - param_1->field_0x567 = 2; + actor->field_0x567 = 2; } else { - if (param_1->field_0x567 == 0) { - local_cc = BallEndPos - param_1->current.pos; + if (actor->field_0x567 == 0) { + local_cc = BallEndPos - actor->current.pos; if (local_cc.abs() < 65.0f) { npc_henna_class* henna = (npc_henna_class*)fopAcM_SearchByName(PROC_NPC_HENNA); if (henna != NULL) { BOOL bVar5 = FALSE; - for (int local_13c = 0; local_13c < 100; local_13c++) { - if (iVar6->mKoro2[local_13c].mpModel != NULL && iVar6->mKoro2[local_13c].field_0x60) { + for (int i = 0; i < 100; i++) { + if (iVar6->mKoro2[i].mpModel != NULL && iVar6->mKoro2[i].field_0x60) { bVar5 = TRUE; break; } @@ -1612,601 +1663,734 @@ static int daFshop_Execute(fshop_class* param_1) { if (bVar5) { henna->actor.health = 3; - henna->cam_mode = 0x49; + henna->cam_mode = 73; } else { - henna->cam_mode = 0x4c; + henna->cam_mode = 76; } + henna->field_0x754 = 0; henna->field_0x7b9 = 0; - param_1->field_0x567 = 2; + actor->field_0x567 = 2; } } } } - if (param_1->field_0x40b4.ChkGroundHit()) { - if (param_1->field_0x428c == 0) { - param_1->speed.y = 7.0f; - } else if (param_1->field_0x428c == 1) { - param_1->speed.y = 2.5f; - } else if (param_1->field_0x428c == 2) { - param_1->speed.y = 1.0f; + + if (i_this->field_0x40b4.ChkGroundHit()) { + if (i_this->field_0x428c == 0) { + actor->speed.y = 7.0f; + } else if (i_this->field_0x428c == 1) { + actor->speed.y = 2.5f; + } else if (i_this->field_0x428c == 2) { + actor->speed.y = 1.0f; } else { - param_1->speed.y = -5.0f; - param_1->field_0x428c = 2; + actor->speed.y = -5.0f; + i_this->field_0x428c = 2; } - param_1->field_0x428c++; + + i_this->field_0x428c++; + dBgS_GndChk adStack_b4; - cXyz local_e4 = param_1->current.pos; + cXyz local_e4 = actor->current.pos; local_e4.y += 10.0f; local_e4.z += 1.0f; adStack_b4.SetPos(&local_e4); local_e4.y = dComIfG_Bgsp().GroundCross(&adStack_b4); - s16 local_160 = -cM_atan2s(local_e4.y - param_1->current.pos.y, - local_e4.z - param_1->current.pos.z); + s16 local_160 = -cM_atan2s(local_e4.y - actor->current.pos.y, + local_e4.z - actor->current.pos.z); if (local_160 > 0x3000) { local_160 = 0x3000; } else if (local_160 < -0x3000) { local_160 = -0x3000; } - local_e4 = param_1->current.pos; + local_e4 = actor->current.pos; local_e4.y += 10.0f; local_e4.x += 1.0f; adStack_b4.SetPos(&local_e4); local_e4.y = dComIfG_Bgsp().GroundCross(&adStack_b4); - s16 local_162 = (s16)cM_atan2s(local_e4.y - param_1->current.pos.y, - local_e4.x - param_1->current.pos.x); + s16 local_162 = (s16)cM_atan2s(local_e4.y - actor->current.pos.y, + local_e4.x - actor->current.pos.x); if (local_162 > 0x3000) { local_162 = 0x3000; } else if (local_162 < -0x3000) { local_162 = -0x3000; } - cMtx_XrotS((MtxP)calc_mtx, local_160); - cMtx_ZrotM((MtxP)calc_mtx, local_162); + + cMtx_XrotS(*calc_mtx, local_160); + cMtx_ZrotM(*calc_mtx, local_162); local_cc.x = 0.0f; local_cc.y = 30.0f; local_cc.z = 0.0f; MtxPosition(&local_cc, &local_d8); - cLib_addCalc2(¶m_1->speed.x, local_d8.x, 0.05f, - (fabsf(local_d8.x) * 0.1f + 0.2f)); - cLib_addCalc2(¶m_1->speed.z, local_d8.z, 0.05f, - (fabsf(local_d8.z) * 0.1f + 0.2f)); + + cLib_addCalc2(&actor->speed.x, local_d8.x, 0.05f, fabsf(local_d8.x) * 0.1f + 0.2f); + cLib_addCalc2(&actor->speed.z, local_d8.z, 0.05f, fabsf(local_d8.z) * 0.1f + 0.2f); } } camera_class* pmVar11 = (camera_class*)dComIfGp_getCamera(0); - mDoMtx_stack_c::transS(param_1->current.pos.x, param_1->current.pos.y, - param_1->current.pos.z); - mDoMtx_stack_c::scaleM(param_1->scale.x, param_1->scale.x, - param_1->scale.x); - mDoMtx_stack_c::transM(0.0f, 190.0f * param_1->scale.x, 0.0f); - local_cc = pmVar11->lookat.eye - param_1->current.pos; + mDoMtx_stack_c::transS(actor->current.pos.x, actor->current.pos.y, + actor->current.pos.z); + mDoMtx_stack_c::scaleM(actor->scale.x, actor->scale.x, + actor->scale.x); + mDoMtx_stack_c::transM(0.0f, 190.0f * actor->scale.x, 0.0f); + local_cc = pmVar11->lookat.eye - actor->current.pos; mDoMtx_stack_c::YrotM(cM_atan2s(local_cc.x, local_cc.z)); mDoMtx_stack_c::XrotM(-cM_atan2s(local_cc.y, JMAFastSqrt((local_cc.x * local_cc.x + local_cc.z * local_cc.z)))); - param_1->field_0x4070->setBaseTRMtx(mDoMtx_stack_c::get()); + i_this->field_0x4070->setBaseTRMtx(mDoMtx_stack_c::get()); return 1; } else { - lure_set(param_1); - rod_set(param_1); - tsubo_set(param_1); - fs_weed_s* pWeed = param_1->mWeed; - for (s32 local_14c = 0; local_14c < 60; local_14c++, pWeed++) { - weed_control(param_1, pWeed); - cXyz* local_148 = param_1->field_0x3f88.getPos(local_14c); - for (s32 local_150 = 0; local_150 < 15; local_150++, local_148++) { + lure_set(i_this); + rod_set(i_this); + tsubo_set(i_this); + + fs_weed_s* pWeed = i_this->mWeed; + for (int i = 0; i < 60; i++, pWeed++) { + weed_control(i_this, pWeed); + cXyz* local_148 = i_this->field_0x3f88.getPos(i); + for (int local_150 = 0; local_150 < 15; local_150++, local_148++) { *local_148 = pWeed->field_0x00[local_150]; } fpcM_Search(s_fish_sub, pWeed); } + cXyz cStack_f0(-720.0f, 30.0f, 70.0f); cXyz cStack_fc(0.5f, 0.5f, 0.5f); - for (int local_154 = 0; local_154 < 2; local_154++) { - if (local_154 == 0) { + for (int i = 0; i < 2; i++) { + if (i == 0) { cStack_f0.z = -30.0f; } else { cStack_f0.z = 220.0f; } - param_1->field_0x6b6c[local_154] = dComIfGp_particle_set( - param_1->field_0x6b6c[local_154], 0x1e8, &cStack_f0, 0, &cStack_fc); + + i_this->field_0x6b6c[i] = dComIfGp_particle_set(i_this->field_0x6b6c[i], ID_ZI_J_LK_ABUKU_A, &cStack_f0, 0, &cStack_fc); } + if (daPy_getPlayerActorClass()->checkFrontRollCrash()) { - param_1->field_0x6b34 = 0x1e; + i_this->field_0x6b34 = 30; } - s16 iVar6 = param_1->field_0x6b34 * cM_ssin(param_1->field_0x6b34 * 5000) * 30.0f; - if (param_1->field_0x6b34 != 0) { - param_1->field_0x6b34--; + + s16 iVar6 = i_this->field_0x6b34 * cM_ssin(i_this->field_0x6b34 * 5000) * 30.0f; + if (i_this->field_0x6b34 != 0) { + i_this->field_0x6b34--; } + mDoMtx_stack_c::transS(-450.0f, 25.0f, -250.0f); mDoMtx_stack_c::YrotM(0x4000); mDoMtx_stack_c::ZrotM(iVar6 + 2000); - param_1->field_0x6b30->setBaseTRMtx(mDoMtx_stack_c::get()); + i_this->field_0x6b30->setBaseTRMtx(mDoMtx_stack_c::get()); mDoMtx_stack_c::transS(-450.0f, 0.0f, -250.0f); mDoMtx_stack_c::scaleM(4.0f, 1.5f, 1.0f); - MTXCopy(mDoMtx_stack_c::get(), param_1->field_0x6b38); - param_1->field_0x6b68->Move(); + MTXCopy(mDoMtx_stack_c::get(), i_this->field_0x6b38); + + i_this->field_0x6b68->Move(); + local_c0.x = 325.0f - pPlayer->current.pos.x; local_c0.z = 237.0f - pPlayer->current.pos.z; - if (daPy_getPlayerActorClass()->checkFrontRollCrash() && - JMAFastSqrt((local_c0.x * local_c0.x + local_c0.z * local_c0.z)) < 150.0f) - { - param_1->field_0x3ff8 = cM_rndF(65536.0f); - param_1->field_0x3ffa = cM_rndF(65536.0f); - param_1->field_0x3ffc = cM_rndF(600.0f) + 1300.0f; - param_1->field_0x4000 = cM_rndF(600.0f) + 1300.0f; + if (daPy_getPlayerActorClass()->checkFrontRollCrash() && JMAFastSqrt(SQUARE(local_c0.x) + SQUARE(local_c0.z)) < 150.0f) { + i_this->field_0x3ff8 = cM_rndF(65536.0f); + i_this->field_0x3ffa = cM_rndF(65536.0f); + i_this->field_0x3ffc = cM_rndF(600.0f) + 1300.0f; + i_this->field_0x4000 = cM_rndF(600.0f) + 1300.0f; } - param_1->field_0x3ff8 += 4000; - param_1->field_0x3ffa += 4000; - s16 iVar10 = param_1->field_0x4000 * cM_ssin(param_1->field_0x3ffa); - s16 iVar11 = param_1->field_0x3ffc * cM_ssin(param_1->field_0x3ff8); - cLib_addCalc0(¶m_1->field_0x3ffc, 1.0f, 40.0f); - cLib_addCalc0(¶m_1->field_0x4000, 1.0f, 40.0f); + + i_this->field_0x3ff8 += 4000; + i_this->field_0x3ffa += 4000; + s16 iVar10 = i_this->field_0x4000 * cM_ssin(i_this->field_0x3ffa); + s16 iVar11 = i_this->field_0x3ffc * cM_ssin(i_this->field_0x3ff8); + cLib_addCalc0(&i_this->field_0x3ffc, 1.0f, 40.0f); + cLib_addCalc0(&i_this->field_0x4000, 1.0f, 40.0f); + mDoMtx_stack_c::transS(325.0f, 140.0f, 237.0f); mDoMtx_stack_c::XrotM((s16)iVar10); mDoMtx_stack_c::ZrotM(iVar11 + 15000); mDoMtx_stack_c::transM(-10.0f, -7.0f, 0.0f); - param_1->field_0x3ff4->setBaseTRMtx(mDoMtx_stack_c::get()); - koro2_game(param_1); + i_this->field_0x3ff4->setBaseTRMtx(mDoMtx_stack_c::get()); + + koro2_game(i_this); } + return 1; } /* 8086E6C4-8086E6CC 002744 0008+00 1/0 0/0 0/0 .text daFshop_IsDelete__FP11fshop_class */ -static int daFshop_IsDelete(fshop_class* param_0) { +static int daFshop_IsDelete(fshop_class* i_this) { return 1; } /* 8086E6CC-8086E7F0 00274C 0124+00 1/0 0/0 0/0 .text daFshop_Delete__FP11fshop_class */ -static int daFshop_Delete(fshop_class* param_1) { - fopAcM_GetID(param_1); - if (param_1->field_0x6b7c != 0) { +static int daFshop_Delete(fshop_class* i_this) { + fopAc_ac_c* actor = &i_this->actor; + fopAcM_GetID(i_this); + + if (i_this->field_0x6b7c != 0) { J3DModelData* pModelData = (J3DModelData*) dComIfG_getObjectRes("Fshop", 5); - dComIfGp_removeSimpleModel(pModelData, fopAcM_GetRoomNo(param_1)); + dComIfGp_removeSimpleModel(pModelData, fopAcM_GetRoomNo(actor)); pModelData = (J3DModelData*) dComIfG_getObjectRes("Fshop", 6); - dComIfGp_removeSimpleModel(pModelData, fopAcM_GetRoomNo(param_1)); + dComIfGp_removeSimpleModel(pModelData, fopAcM_GetRoomNo(actor)); } - dComIfG_resDelete(¶m_1->mPhase, "Fshop"); - dComIfG_Bgsp().Release(param_1->field_0x6b68); - if (param_1->field_0x400e != 0) { - dComIfG_Bgsp().Release(param_1->field_0x402c); + + dComIfG_resDelete(&i_this->mPhase, "Fshop"); + dComIfG_Bgsp().Release(i_this->field_0x6b68); + + if (i_this->field_0x400e != 0) { + dComIfG_Bgsp().Release(i_this->field_0x402c); for (int i = 0; i < 100; i++) { - if (param_1->mKoro2[i].mpBgW != NULL) { - dComIfG_Bgsp().Release(param_1->mKoro2[i].mpBgW); + if (i_this->mKoro2[i].mpBgW != NULL) { + dComIfG_Bgsp().Release(i_this->mKoro2[i].mpBgW); } } } + return 1; } /* 8086E7F0-8086ECC8 002870 04D8+00 1/1 0/0 0/0 .text koro2_heapinit__FP10fopAc_ac_c */ -// NONMATCHING mapPtr definition and stack issue -static int koro2_heapinit(fopAc_ac_c* param_1) { - static s32 koro2_bmd[15] = { +static int koro2_heapinit(fopAc_ac_c* actor) { + static int koro2_bmd[15] = { 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0F, 0x0D, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x0E, 0x0E, 0x0E, }; + static u32 koro2_dzb[15] = { 0x1F, 0x20, 0x20, 0x20, 0x20, 0x24, 0x22, 0x21, 0x21, 0x21, 0x21, 0x23, 0x23, 0x23, 0x23, }; + static u8 pande_d[16] = { 0x00, 0x01, 0x03, 0x02, 0x05, 0x04, 0x06, 0x07, 0x09, 0x08, 0x0B, 0x0A, 0x0C, 0x0D, 0x0F, 0x0E, }; - fshop_class* pShop = (fshop_class*) param_1; - pShop->field_0x402c = new dBgW(); - if (pShop->field_0x402c == NULL) { + fshop_class* i_this = (fshop_class*)actor; + + i_this->field_0x402c = new dBgW(); + if (i_this->field_0x402c == NULL) { return 0; } - cBgD_t* pcVar3 = (cBgD_t*)dComIfG_getObjectRes("Fshop", 37); - if (pShop->field_0x402c->Set(pcVar3, 1, &pShop->field_0x4030) == 1) { + + cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("Fshop", 37); + if (i_this->field_0x402c->Set(dzb, 1, &i_this->field_0x4030) == 1) { return 0; } - pShop->field_0x402c->SetCrrFunc(dBgS_MoveBGProc_Typical); - pShop->field_0x402c->SetRideCallback(ride_call_back); - pShop->mpA_crwaku_model = ArcIX_A_crwaku_model[0]; - int local_30 = 0; - int flag567 = pShop->field_0x567 & 8; + i_this->field_0x402c->SetCrrFunc(dBgS_MoveBGProc_Typical); + i_this->field_0x402c->SetRideCallback(ride_call_back); + i_this->mpA_crwaku_model = ArcIX_A_crwaku_model[0]; + + int part_no = 0; + int flag567 = actor->field_0x567 & 8; int r29 = 0; int r28 = 0; int r30 = 0; int r27 = 0; int r26 = 0; int r25 = 0; - s8* mapPtr = koro2_map_d[pShop->field_0x567 & 7]; - for (int local_5c = 0; local_5c < 9; local_5c++) { + s8* mapData = koro2_map_d[actor->field_0x567 & 7]; + + for (int i = 0; i < 9; i++) { for (int local_60 = 0; local_60 < 15; local_60++) { - int index = local_60 * 9 + local_5c; - if (mapPtr[index] != 0) { + int index = local_60 * 9 + i; + if (mapData[index] != 0) { if (flag567 != 0) { - pShop->mKoro2[local_30].field_0x34 = pande_d[mapPtr[index]]; - pShop->mKoro2[local_30].field_0x38.x = 2.5f * (8 - local_5c); + i_this->mKoro2[part_no].field_0x34 = pande_d[mapData[index]]; + i_this->mKoro2[part_no].field_0x38.x = 2.5f * (8 - i); } else { - pShop->mKoro2[local_30].field_0x34 = mapPtr[index]; - pShop->mKoro2[local_30].field_0x38.x = 2.5f * local_5c; + i_this->mKoro2[part_no].field_0x34 = mapData[index]; + i_this->mKoro2[part_no].field_0x38.x = 2.5f * i; } - pShop->mKoro2[local_30].field_0x38.y = 2.0f; - pShop->mKoro2[local_30].field_0x38.z = 2.5f * local_60; - if (pShop->mKoro2[local_30].field_0x34 == 6) { - pShop->mKoro2[local_30].field_0x38.z -= 2.5f; - } else if (pShop->mKoro2[local_30].field_0x34 == 8) { - pShop->mKoro2[local_30].field_0x38.z -= 2.5f; - pShop->mKoro2[local_30].field_0x38.x -= 2.5f; - } else if (pShop->mKoro2[local_30].field_0x34 == 11) { - pShop->mKoro2[local_30].field_0x38.z += 2.5f; - pShop->mKoro2[local_30].field_0x38.x += 2.5f; + + i_this->mKoro2[part_no].field_0x38.y = 2.0f; + i_this->mKoro2[part_no].field_0x38.z = 2.5f * local_60; + + if (i_this->mKoro2[part_no].field_0x34 == 6) { + i_this->mKoro2[part_no].field_0x38.z -= 2.5f; + } else if (i_this->mKoro2[part_no].field_0x34 == 8) { + i_this->mKoro2[part_no].field_0x38.z -= 2.5f; + i_this->mKoro2[part_no].field_0x38.x -= 2.5f; + } else if (i_this->mKoro2[part_no].field_0x34 == 11) { + i_this->mKoro2[part_no].field_0x38.z += 2.5f; + i_this->mKoro2[part_no].field_0x38.x += 2.5f; } - pShop->mKoro2[local_30].field_0x44.set(2.5f, 2.5f, 2.5f); - if (pShop->mKoro2[local_30].field_0x34 == 2 || - pShop->mKoro2[local_30].field_0x34 == 8) - { - pShop->mKoro2[local_30].field_0x50 = -16384; - } else if (pShop->mKoro2[local_30].field_0x34 == 4 || - pShop->mKoro2[local_30].field_0x34 == 10) - { - pShop->mKoro2[local_30].field_0x50 = -32768; - } else if (pShop->mKoro2[local_30].field_0x34 == 5 || - pShop->mKoro2[local_30].field_0x34 == 11) - { - pShop->mKoro2[local_30].field_0x50 = 16384; - } else if (pShop->mKoro2[local_30].field_0x34 == 12) { - pShop->mKoro2[local_30].field_0x50 = -32768; - } else if (pShop->mKoro2[local_30].field_0x34 == 14) { - pShop->mKoro2[local_30].field_0x50 = -16384; - } else if (pShop->mKoro2[local_30].field_0x34 == 15) { - pShop->mKoro2[local_30].field_0x50 = 16384; + + i_this->mKoro2[part_no].field_0x44.set(2.5f, 2.5f, 2.5f); + + if (i_this->mKoro2[part_no].field_0x34 == 2 || i_this->mKoro2[part_no].field_0x34 == 8) { + i_this->mKoro2[part_no].field_0x50 = -0x4000; + } else if (i_this->mKoro2[part_no].field_0x34 == 4 || i_this->mKoro2[part_no].field_0x34 == 10) { + i_this->mKoro2[part_no].field_0x50 = -0x8000; + } else if (i_this->mKoro2[part_no].field_0x34 == 5 || i_this->mKoro2[part_no].field_0x34 == 11) { + i_this->mKoro2[part_no].field_0x50 = 0x4000; + } else if (i_this->mKoro2[part_no].field_0x34 == 12) { + i_this->mKoro2[part_no].field_0x50 = -0x8000; + } else if (i_this->mKoro2[part_no].field_0x34 == 14) { + i_this->mKoro2[part_no].field_0x50 = -0x4000; + } else if (i_this->mKoro2[part_no].field_0x34 == 15) { + i_this->mKoro2[part_no].field_0x50 = 0x4000; } - if (koro2_bmd[pShop->mKoro2[local_30].field_0x34 - 1] == 10) { - pShop->mKoro2[local_30].mpModel = ArcIX_A_crbox_model[r30]; + if (koro2_bmd[i_this->mKoro2[part_no].field_0x34 - 1] == 10) { + i_this->mKoro2[part_no].mpModel = ArcIX_A_crbox_model[r30]; r30++; - } else if (koro2_bmd[pShop->mKoro2[local_30].field_0x34 - 1] == 15) { - pShop->mKoro2[local_30].mpModel = ArcIX_A_crstart_model[r29]; + } else if (koro2_bmd[i_this->mKoro2[part_no].field_0x34 - 1] == 15) { + i_this->mKoro2[part_no].mpModel = ArcIX_A_crstart_model[r29]; r29++; - } else if (koro2_bmd[pShop->mKoro2[local_30].field_0x34 - 1] == 13) { - pShop->mKoro2[local_30].mpModel = ArcIX_A_crgoal_model[r28]; + } else if (koro2_bmd[i_this->mKoro2[part_no].field_0x34 - 1] == 13) { + i_this->mKoro2[part_no].mpModel = ArcIX_A_crgoal_model[r28]; r28++; - } else if (koro2_bmd[pShop->mKoro2[local_30].field_0x34 - 1] == 11) { - pShop->mKoro2[local_30].mpModel = ArcIX_A_crcurve_a_model[r27]; + } else if (koro2_bmd[i_this->mKoro2[part_no].field_0x34 - 1] == 11) { + i_this->mKoro2[part_no].mpModel = ArcIX_A_crcurve_a_model[r27]; r27++; - } else if (koro2_bmd[pShop->mKoro2[local_30].field_0x34 - 1] == 12) { - pShop->mKoro2[local_30].mpModel = ArcIX_A_crcurve_b_model[r26]; + } else if (koro2_bmd[i_this->mKoro2[part_no].field_0x34 - 1] == 12) { + i_this->mKoro2[part_no].mpModel = ArcIX_A_crcurve_b_model[r26]; r26++; - } else if (koro2_bmd[pShop->mKoro2[local_30].field_0x34 - 1] == 14) { - pShop->mKoro2[local_30].mpModel = ArcIX_A_crsaka_model[r25]; + } else if (koro2_bmd[i_this->mKoro2[part_no].field_0x34 - 1] == 14) { + i_this->mKoro2[part_no].mpModel = ArcIX_A_crsaka_model[r25]; r25++; } - if (pShop->mKoro2[local_30].mpModel == NULL) { + if (i_this->mKoro2[part_no].mpModel == NULL) { return 0; } - pShop->mKoro2[local_30].mpBgW = new dBgW(); - if (pShop->mKoro2[local_30].mpBgW == NULL) { + i_this->mKoro2[part_no].mpBgW = new dBgW(); + if (i_this->mKoro2[part_no].mpBgW == NULL) { return 0; } - cBgD_t* pcVar3 = (cBgD_t*)dComIfG_getObjectRes("Fshop",koro2_dzb[pShop->mKoro2[local_30].field_0x34 - 1]); - if (pShop->mKoro2[local_30].mpBgW->Set(pcVar3, 1, &pShop->mKoro2[local_30].field_0x04) == 1) { + + cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("Fshop",koro2_dzb[i_this->mKoro2[part_no].field_0x34 - 1]); + if (i_this->mKoro2[part_no].mpBgW->Set(dzb, 1, &i_this->mKoro2[part_no].field_0x04) == 1) { return 0; } - pShop->mKoro2[local_30].mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical); - local_30++; - if (local_30 >= 100) { + + i_this->mKoro2[part_no].mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical); + + part_no++; + if (part_no >= 100) { + OS_REPORT("//////////////KORO2 PART MAX OVER !!\n"); return 0; } } } } + return 1; } -/* ############################################################################################## */ -/* 808701D4-808701D8 000140 0004+00 0/1 0/0 0/0 .rodata @5206 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5206 = -370.0f; -COMPILER_STRIP_GATE(0x808701D4, &lit_5206); -#pragma pop - -/* 808701D8-808701DC 000144 0004+00 0/1 0/0 0/0 .rodata @5207 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5207 = 16.0f; -COMPILER_STRIP_GATE(0x808701D8, &lit_5207); -#pragma pop - -/* 808701DC-808701E0 000148 0004+00 0/2 0/0 0/0 .rodata @5208 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5208 = 215.0f; -COMPILER_STRIP_GATE(0x808701DC, &lit_5208); -#pragma pop - -/* 808701E0-808701E4 00014C 0004+00 0/1 0/0 0/0 .rodata @5209 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5209 = 43.0f; -COMPILER_STRIP_GATE(0x808701E0, &lit_5209); -#pragma pop - -/* 808701E4-808701E8 000150 0004+00 0/1 0/0 0/0 .rodata @5210 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5210 = 593.0f; -COMPILER_STRIP_GATE(0x808701E4, &lit_5210); -#pragma pop - -/* 808701E8-808701EC 000154 0004+00 0/1 0/0 0/0 .rodata @5211 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5211 = 32768.0f; -COMPILER_STRIP_GATE(0x808701E8, &lit_5211); -#pragma pop - -/* 808701EC-808701F0 000158 0004+00 0/1 0/0 0/0 .rodata @5212 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5212 = 3.0f / 10.0f; -COMPILER_STRIP_GATE(0x808701EC, &lit_5212); -#pragma pop - -/* 808701F0-808701F4 00015C 0004+00 0/1 0/0 0/0 .rodata @5213 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5213 = 0x403F5C29; -COMPILER_STRIP_GATE(0x808701F0, &lit_5213); -#pragma pop - -/* 808701F4-808701F8 000160 0004+00 0/1 0/0 0/0 .rodata @5214 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5214 = 0x3F3851EB; -COMPILER_STRIP_GATE(0x808701F4, &lit_5214); -#pragma pop - -/* 808701F8-808701FC 000164 0004+00 0/1 0/0 0/0 .rodata @5215 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5215 = 0x3FFEB852; -COMPILER_STRIP_GATE(0x808701F8, &lit_5215); -#pragma pop - -/* 808701FC-80870200 000168 0004+00 0/1 0/0 0/0 .rodata @5216 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5216 = -685.0f; -COMPILER_STRIP_GATE(0x808701FC, &lit_5216); -#pragma pop - -/* 80870200-80870204 00016C 0004+00 0/1 0/0 0/0 .rodata @5217 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5217 = 18.0f; -COMPILER_STRIP_GATE(0x80870200, &lit_5217); -#pragma pop - -/* 80870204-80870208 000170 0004+00 0/1 0/0 0/0 .rodata @5218 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5218 = 565.0f; -COMPILER_STRIP_GATE(0x80870204, &lit_5218); -#pragma pop - -/* 80870208-8087020C 000174 0004+00 0/1 0/0 0/0 .rodata @5219 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5219 = 177.0f; -COMPILER_STRIP_GATE(0x80870208, &lit_5219); -#pragma pop - -/* 8087020C-80870210 000178 0004+00 0/1 0/0 0/0 .rodata @5220 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5220 = 290.0f; -COMPILER_STRIP_GATE(0x8087020C, &lit_5220); -#pragma pop - -/* 80870210-80870214 00017C 0004+00 0/1 0/0 0/0 .rodata @5221 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5221 = 550.0f; -COMPILER_STRIP_GATE(0x80870210, &lit_5221); -#pragma pop - -/* 80870214-80870218 000180 0004+00 0/1 0/0 0/0 .rodata @5222 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5222 = 560.0f; -COMPILER_STRIP_GATE(0x80870214, &lit_5222); -#pragma pop - -/* 80870218-8087021C 000184 0004+00 0/1 0/0 0/0 .rodata @5223 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5223 = -16384.0f; -COMPILER_STRIP_GATE(0x80870218, &lit_5223); -#pragma pop - -/* 8087021C-80870220 000188 0004+00 0/2 0/0 0/0 .rodata @5224 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5224 = 2000.0f; -COMPILER_STRIP_GATE(0x8087021C, &lit_5224); -#pragma pop - -/* 8087084C-8087085C 0005C8 0010+00 0/1 0/0 0/0 .data lure_d$5019 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lure_d[16] = { - 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x14, -}; -#pragma pop +/* 8086ECC8-8086F5C8 002D48 0900+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* actor) { + fshop_class* i_this = (fshop_class*)actor; + cM_initRnd2(JREG_S(8) + 37, 123, 70); + + void* modelData; + for (int i = 0; i < 48; i++) { + i_this->mLure[i].field_0x00.x = -370.0f + VREG_F(6) + (-(i & 15) * (16.0f + VREG_F(8))) + cM_rndFX(2.5f); + i_this->mLure[i].field_0x00.y = (215.0f + VREG_F(7)) - (((i >> 4) & 3) * (43.0f + VREG_F(9))); + i_this->mLure[i].field_0x00.z = 593.0f + JREG_F(1); + + if (i >= 32 && i <= 33) { + i_this->mLure[i].field_0x24 = 3; + i_this->mLure[i].field_0x0c = JREG_S(4) - 0x4000; + i_this->mLure[i].field_0x0e = cM_rndFX2(32768.0f); + i_this->mLure[i].field_0x28 = 1.2f + JREG_F(0); + i_this->mLure[i].field_0x2c = 1.2f + JREG_F(0); + i_this->mLure[i].field_0x00.y += 13.0f; + } else { + if (cM_rndF2(1.0f) < 0.3f) { + i_this->mLure[i].field_0x24 = cM_rndF2(2.99f); + } else { + i_this->mLure[i].field_0x24 = i + (i >> 4); + i_this->mLure[i].field_0x24 &= 3; + if (i_this->mLure[i].field_0x24 == 3) { + i_this->mLure[i].field_0x24 = cM_rndF2(2.99f); + } + } -/* 8087085C-80870864 0005D8 0008+00 0/1 0/0 0/0 .data rod_d$5056 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 rod_d[8] = { - 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, -}; -#pragma pop - -/* 80870864-80870884 0005E0 0020+00 0/1 0/0 0/0 .data rod_w$5087 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 rod_w[32] = { - 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x33, 0x33, 0x33, - 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3E, 0x99, 0x99, 0x9A, -}; -#pragma pop - -/* 80870884-8087089C 000600 0018+00 0/1 0/0 0/0 .data koro2_union_bmd$5117 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 koro2_union_bmd[24] = { - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0E, -}; -#pragma pop - -/* 8087089C-808708B4 000618 0018+00 0/1 0/0 0/0 .data koro2_union_no$5118 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 koro2_union_no[24] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1F, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, -}; -#pragma pop + i_this->mLure[i].field_0x0c = JREG_S(3) + 0x4000; + i_this->mLure[i].field_0x0e = cM_rndFX2(65536.0f); + i_this->mLure[i].field_0x28 = 0.8f + JREG_F(0) + cM_rndFX2(0.1f); -/* 8086ECC8-8086F5C8 002D48 0900+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING + if (i_this->mLure[i].field_0x24 == 2) { + i_this->mLure[i].field_0x2c = (0.71999997f + JREG_F(0)) - cM_rndF2(0.15f); + } else { + i_this->mLure[i].field_0x2c = 0.8f + JREG_F(0) + cM_rndFX2(0.1f); + } + } + + static int lure_d[] = {0x16, 0x17, 0x1C, 0x14}; + modelData = dComIfG_getObjectRes("Fshop", lure_d[i_this->mLure[i].field_0x24]); + JUT_ASSERT(2832, modelData != NULL); + + i_this->mLure[i].field_0x14 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (i_this->mLure[i].field_0x14 == NULL) { + return 0; + } + + if (i_this->mLure[i].field_0x24 == 3) { + i_this->mLure[i].field_0x14->setUserArea((uintptr_t)&i_this->mLure[i]); + + for (u16 j = 0; j < ((J3DModelData*)modelData)->getJointNum(); j++) { + if (j == 1) { + ((J3DModelData*)modelData)->getJointNodePointer(j)->setCallBack(frog_CallBack); + } + } + } else { + modelData = dComIfG_getObjectRes("Fshop", 5); + JUT_ASSERT(2852, modelData != NULL); + + for (int j = 0; j < 2; j++) { + i_this->mLure[i].field_0x18[j] = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x20000, 0x11000084); + if (i_this->mLure[i].field_0x18[j] == NULL) { + return 0; + } + } + } + } + + cM_initRnd2(JREG_S(9) + 79, JREG_S(8) + 133, 70); + + for (int i = 0; i < 3; i++) { + i_this->mRod[i].field_0x4c = cM_rndF2(1.99f); + i_this->mRod[i].field_0x00.x = -685.0f + YREG_F(2); + i_this->mRod[i].field_0x00.y = 18.0f + YREG_F(3); + i_this->mRod[i].field_0x00.z = 565.0f + YREG_F(4); + + if (i == 1) { + i_this->mRod[i].field_0x00.x -= 15.0f; + } else if (i == 2) { + i_this->mRod[i].field_0x00.z += 15.0f; + } + + if (i_this->mRod[i].field_0x4c == 0) { + i_this->mRod[i].field_0x54 = 30.0f * (1.2f + cM_rndF2(0.15f)); + } else { + i_this->mRod[i].field_0x54 = 30.0f * (1.0f + cM_rndF2(0.15f)); + } + + static int rod_d[] = {0x19, 0x18,}; + modelData = dComIfG_getObjectRes("Fshop", rod_d[i_this->mRod[i].field_0x4c]); + JUT_ASSERT(2903, modelData != NULL); + i_this->mRod[i].field_0x14 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (i_this->mRod[i].field_0x14 == NULL) { + return 0; + } + + i_this->mRod[i].field_0x14->setUserArea((uintptr_t)&i_this->mRod[i]); + i_this->mRod[i].field_0x58 = cM_rndF2(65536.0f); + + for (u16 j = 0; j < ((J3DModelData*)modelData)->getJointNum(); j++) { + if (j == 1) { + ((J3DModelData*)modelData)->getJointNodePointer(j)->setCallBack(Reel_CallBack); + } + } + + modelData = dComIfG_getObjectRes("Fshop", 6); + JUT_ASSERT(2923, modelData != NULL); + + for (int j = 0; j < 6; j++) { + i_this->mRod[i].field_0x18[j] = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x20000, 0x11000084); + if (i_this->mRod[i].field_0x18[j] == NULL) { + return 0; + } + } + + if (!i_this->mRod[i].line_mat.init(1, 8, 1)) { + return 0; + } + + f32* sp1C = i_this->mRod[i].line_mat.getSize(0); + for (int j = 0; j < 8; j++, sp1C++) { + static f32 rod_w[8] = { + 1.0f, + 0.89999998f, + 0.8f, + 0.69999999f, + 0.6f, + 0.5f, + 0.4f, + 0.3f, + }; + + *sp1C = rod_w[j]; + } + } + + for (int i = 0; i < 2; i++) { + if (i == 0) { + i_this->mTsubo[i].field_0x00.set(177.0f, 290.0f, 550.0f); + modelData = dComIfG_getObjectRes("Fshop", 0x1A); + } else { + i_this->mTsubo[i].field_0x00.set(40.0f, 290.0f, 560.0f); + modelData = dComIfG_getObjectRes("Fshop", 0x1B); + } + + JUT_ASSERT(2969, modelData != NULL); + + i_this->mTsubo[i].field_0x14 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (i_this->mTsubo[i].field_0x14 == NULL) { + return 0; + } + } + + if (!i_this->field_0x3f88.init(60, 15, 0)) { + return 0; + } + + modelData = dComIfG_getObjectRes("Fshop", 0x12); + JUT_ASSERT(3035, modelData != NULL); + i_this->field_0x6b30 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (i_this->field_0x6b30 == NULL) { + return 0; + } + + i_this->field_0x6b68 = new dBgW(); + if (i_this->field_0x6b68 == NULL) { + return 0; + } + + if (i_this->field_0x6b68->Set((cBgD_t*)dComIfG_getObjectRes("Fshop", 0x26), 1, &i_this->field_0x6b38) == 1) { + return 0; + } + + i_this->field_0x6b68->SetCrrFunc(dBgS_MoveBGProc_Typical); + + modelData = dComIfG_getObjectRes("Fshop", 0x15); + JUT_ASSERT(3069, modelData != NULL); + i_this->field_0x3ff4 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (i_this->field_0x3ff4 == 0) { + return 0; + } + + #if !PLATFORM_SHIELD + i_this->field_0x4020.y = cM_rndFX(2000.0f) + -16384.0f; + + modelData = dComIfG_getObjectRes("Fshop", 16); + JUT_ASSERT(3069, modelData != NULL); + ArcIX_A_crwaku_model[0] = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (ArcIX_A_crwaku_model[0] == NULL) { + return 0; + } + + J3DModel** var_r24; + for (int i = 0; i < 6; i++) { + static int koro2_union_bmd[] = { + 0xF, + 0xD, + 0xA, + 0xB, + 0xC, + 0xE, + }; + + modelData = dComIfG_getObjectRes("Fshop", koro2_union_bmd[i]); + + static int koro2_union_no[] = { + 1, + 1, + 31, + 16, + 4, + 8, + }; + + var_r24 = koro2_union_model[i]; + for (int j = 0; j < koro2_union_no[i]; j++, var_r24++) { + *var_r24 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (*var_r24 == NULL) { + return 0; + } + } + } + #endif + + #if PLATFORM_SHIELD + if (!koro2_heapinit(actor)) { + return 0; + } + #endif + + if ((int)dComIfGs_getEventReg(0xF47F) >= 10) { + modelData = dComIfG_getObjectRes("Fshop", 0x11); + JUT_ASSERT(3137, modelData != NULL); + i_this->field_0x4004 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (i_this->field_0x4004 == 0) { + return 0; + } + } + + return 1; } /* 8086F5C8-8086F634 003648 006C+00 1/1 0/0 0/0 .text BalluseHeapInit__FP10fopAc_ac_c */ -static void BalluseHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING -} +static int BalluseHeapInit(fopAc_ac_c* actor) { + fshop_class* i_this = (fshop_class*)actor; -/* ############################################################################################## */ -/* 80870220-80870240 00018C 0020+00 0/0 0/0 0/0 .rodata @5249 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5249[32] = { - 0x00, 0x00, 0x84, 0xA0, 0x00, 0x00, 0x9A, 0xC0, 0x00, 0x00, 0xB4, 0x40, 0x00, 0x00, 0xE1, 0x00, - 0x00, 0x00, 0x82, 0x20, 0x00, 0x00, 0x9A, 0x40, 0x00, 0x00, 0x64, 0xE0, 0x00, 0x00, 0xA9, 0xE0, -}; -COMPILER_STRIP_GATE(0x80870220, &lit_5249); -#pragma pop - -/* 80870240-80870244 0001AC 0004+00 0/1 0/0 0/0 .rodata @5476 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5476 = 9.0f; -COMPILER_STRIP_GATE(0x80870240, &lit_5476); -#pragma pop - -/* 80870244-80870248 0001B0 0004+00 0/1 0/0 0/0 .rodata @5477 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5477 = 11.0f; -COMPILER_STRIP_GATE(0x80870244, &lit_5477); -#pragma pop - -/* 80870248-8087024C 0001B4 0004+00 0/1 0/0 0/0 .rodata @5478 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5478 = 20.0f; -COMPILER_STRIP_GATE(0x80870248, &lit_5478); -#pragma pop - -/* 8087024C-80870250 0001B8 0004+00 0/1 0/0 0/0 .rodata @5479 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5479 = 67.0f; -COMPILER_STRIP_GATE(0x8087024C, &lit_5479); -#pragma pop - -/* 80870250-80870254 0001BC 0004+00 0/1 0/0 0/0 .rodata @5480 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5480 = 9.0f / 10.0f; -COMPILER_STRIP_GATE(0x80870250, &lit_5480); -#pragma pop - -/* 80870254-80870258 0001C0 0004+00 0/1 0/0 0/0 .rodata @5481 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5481 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x80870254, &lit_5481); -#pragma pop - -/* 80870258-8087025C 0001C4 0004+00 0/1 0/0 0/0 .rodata @5482 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5482 = 127.0f / 50.0f; -COMPILER_STRIP_GATE(0x80870258, &lit_5482); -#pragma pop - -/* 8087025C-80870260 0001C8 0004+00 0/1 0/0 0/0 .rodata @5483 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5483 = -648.0f; -COMPILER_STRIP_GATE(0x8087025C, &lit_5483); -#pragma pop - -/* 80870260-80870264 0001CC 0004+00 0/1 0/0 0/0 .rodata @5484 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5484 = 380.0f; -COMPILER_STRIP_GATE(0x80870260, &lit_5484); -#pragma pop - -/* 80870264-80870268 0001D0 0004+00 0/1 0/0 0/0 .rodata @5485 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5485 = -131.0f; -COMPILER_STRIP_GATE(0x80870264, &lit_5485); -#pragma pop - -/* 80870268-8087026C 0001D4 0004+00 0/1 0/0 0/0 .rodata @5486 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5486 = 3000.0f; -COMPILER_STRIP_GATE(0x80870268, &lit_5486); -#pragma pop - -/* 8087026C-80870270 0001D8 0004+00 0/1 0/0 0/0 .rodata @5487 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5487 = -4500.0f; -COMPILER_STRIP_GATE(0x8087026C, &lit_5487); -#pragma pop - -/* 80870270-80870274 0001DC 0004+00 0/1 0/0 0/0 .rodata @5488 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5488 = -878.0f; -COMPILER_STRIP_GATE(0x80870270, &lit_5488); -#pragma pop - -/* 80870274-8087027C 0001E0 0008+00 0/1 0/0 0/0 .rodata @5490 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5490[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80870274, &lit_5490); -#pragma pop + void* modelData = dComIfG_getObjectRes("Fshop", 9); + JUT_ASSERT(3157, modelData != NULL); + i_this->field_0x4070 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + if (i_this->field_0x4070 == 0) { + return 0; + } -/* 808708B4-808708BC 000630 0008+00 1/1 0/0 0/0 .data check_kind$5285 */ -SECTION_DATA static u8 check_kind[8] = { - 0xF5, 0x7F, 0xF4, 0x7F, 0xF3, 0x7F, 0xF2, 0x7F, -}; + return 1; +} /* 8086F634-8086FD78 0036B4 0744+00 1/0 0/0 0/0 .text daFshop_Create__FP10fopAc_ac_c */ -static void daFshop_Create(fopAc_ac_c* param_0) { - // NONMATCHING - fopAcM_ct(param_0, fshop_class); +static int daFshop_Create(fopAc_ac_c* actor) { + fshop_class* i_this = (fshop_class*)actor; + fopAcM_ct(actor, fshop_class); + + int sp3C = dComIfG_resLoad(&i_this->mPhase, "Fshop"); + if (sp3C == cPhs_COMPLEATE_e) { + OS_REPORT("FSHOP PARAM %x\n", fopAcM_GetParam(actor)); + if ((fopAcM_GetParam(actor) & 0xFF) == 0x23) { + if (!fopAcM_entrySolidHeap(actor, BalluseHeapInit, 0x800)) { + OS_REPORT("//////////////FSHOP BALL SET NON !!\n"); + return 5; + } + + i_this->field_0x40b4.Set(fopAcM_GetPosition_p(actor), fopAcM_GetOldPosition_p(actor), actor, 1, &i_this->field_0x4074, fopAcM_GetSpeed_p(actor), NULL, NULL); + i_this->field_0x4074.SetWall(9.0f, 11.0f); + i_this->field_0x40b4.OnWallSort(); + return sp3C; + } + + if ((s8)(fopAcM_GetParam(actor) & 0xFF) >= 100) { + i_this->field_0x400e = (fopAcM_GetParam(actor) & 0xFF) - 100; + actor->field_0x567 = ((i_this->field_0x400e - 1) | (dComIfGs_getEventReg(0xF63F) & 8)); + + u32 sp58[] = { + 0x84A0, + 0x9AC0, + 0xB440, + 0xE100, + 0x8220, + 0x9A40, + 0x64E0, + 0xA9E0, + }; + + if (!fopAcM_entrySolidHeap(actor, koro2_heapinit, sp58[i_this->field_0x400e - 1])) { + OS_REPORT("//////////////FSHOP KORO222 SET NON !!\n"); + return 5; + } + + if (i_this->field_0x402c != NULL && dComIfG_Bgsp().Regist(i_this->field_0x402c, actor)) { + return 5; + } + + for (int i = 0; i < 100; i++) { + if (i_this->mKoro2[i].mpBgW != NULL && dComIfG_Bgsp().Regist(i_this->mKoro2[i].mpBgW, actor)) { + return 5; + } + } + + i_this->field_0x428d = 30; + i_this->field_0x400d = 1; + return sp3C; + } + + fopAcM_SetParam(actor, 0); + i_this->field_0x400c = dComIfGs_getEventReg(0xF63F) & 0xFF; + + OS_REPORT("FSHOP//////////////FSHOP SET 1 !!\n"); + + if (!fopAcM_entrySolidHeap(actor, useHeapInit, 0x5B000)) { + OS_REPORT("//////////////FSHOP SET NON !!\n"); + return 5; + } + + OS_REPORT("//////////////FSHOP SET 2 !!\n"); + + if (i_this->field_0x6b68 != NULL && dComIfG_Bgsp().Regist(i_this->field_0x6b68, actor)) { + return 5; + } + + for (int i = 0; i < 60; i++) { + if (i < 30) { + i_this->mWeed[i].field_0x00[0].z = -30.0f + cM_rndFX2(20.0f); + i_this->mWeed[i].field_0x00[0].y = 67.0f; + i_this->mWeed[i].field_0xb4 = 0.9f + cM_rndF2(0.6f); + } else { + i_this->mWeed[i].field_0x00[0].z = 220.0f + cM_rndFX2(20.0f); + i_this->mWeed[i].field_0x00[0].y = 67.0f; + i_this->mWeed[i].field_0xb4 = 0.9f + cM_rndF2(0.6f); + } + + i_this->mWeed[i].field_0x00[0].x = -720.0f + cM_rndFX2(20.0f); + i_this->mWeed[i].field_0xbc = cM_rndF2(65536.0f); + } + + daFshop_Execute(i_this); + + void* modelData = dComIfG_getObjectRes("Fshop", 5); + JUT_ASSERT(3354, modelData != NULL); + if (dComIfGp_addSimpleModel((J3DModelData*)modelData, fopAcM_GetRoomNo(actor), 0) == -1) { + OS_REPORT("\x1B[43;30m針のシンプルモデル登録失敗しました。\n\x1B[m"); + } + + modelData = dComIfG_getObjectRes("Fshop", 6); + JUT_ASSERT(3362, modelData != NULL); + if (dComIfGp_addSimpleModel((J3DModelData*)modelData, fopAcM_GetRoomNo(actor), 0) == -1) { + OS_REPORT("\x1B[43;30mリングのシンプルモデル登録失敗しました。\n\x1B[m"); + } + + i_this->field_0x6b7c = 1; + + for (int i = 0; i < 8; i++) { + fopAcM_createChild(PROC_FSHOP, fopAcM_GetID(actor), i - 155, &actor->current.pos, fopAcM_GetRoomNo(actor), NULL, NULL, -1, NULL); + } + + fopAcM_createChild(PROC_FSHOP, fopAcM_GetID(actor), 0xFFFFFF23, &actor->current.pos, fopAcM_GetRoomNo(actor), NULL, NULL, -1, NULL); + + u8 sp10 = 1; + #if VERSION == VERSION_GCN_PAL || VERSION == VERSION_WII_PAL || PLATFORM_SHIELD + if (dComIfGs_getPalLanguage() == 1) { + sp10 = 2; + } else { + sp10 = 0; + } + #endif + + for (int i = 0; i <= 3; i++) { + static u16 check_kind[] = { + 0xF57F, + 0xF47F, + 0xF37F, + 0xF27F, + }; + + int sp24; + if (sp10 == 1) { + sp24 = 2.54f * dComIfGs_getEventReg(check_kind[i]); + } else { + sp24 = dComIfGs_getEventReg(check_kind[i]); + } + + if (sp24 >= 0xA) { + u32 sp28 = (sp24 << 8) | 0xFFFF0000 | i; + fopAcM_create(PROC_MG_FISH, sp28, &actor->current.pos, fopAcM_GetRoomNo(actor), NULL, NULL, -1); + } + } + + cXyz sp48(-648.0f + YREG_F(7), 215.0f + YREG_F(8), 380.0f + YREG_F(9)); + csXyz sp40(0, 0, 0); + fopAcM_create(PROC_OBJ_KAGE, 0xFFFFFF01, &sp48, fopAcM_GetRoomNo(actor), &sp40, NULL, -1); + + for (int i = 0; i < 8; i++) { + fopAcM_create(PROC_MG_FISH, 0xFFFF2005, &actor->current.pos, fopAcM_GetRoomNo(actor), NULL, NULL, -1); + } + + sp48.set(-131.0f, 3000.0f + nREG_F(7), -4500.0f); + fopAcM_create(PROC_NPC_TK, -1, &sp48, fopAcM_GetRoomNo(actor), NULL, NULL, -1); + + for (int i = 0; i < 5; i++) { + sp48.set(-450.0f, 0.0f, -878.0f); + fopAcM_create(PROC_BD, 0xFFFFFFFF, &sp48, fopAcM_GetRoomNo(actor), NULL, NULL, -1); + } + } + + return sp3C; } /* 808708BC-808708DC -00001 0020+00 1/0 0/0 0/0 .data l_daFshop_Method */ diff --git a/src/d/actor/d_a_mirror.cpp b/src/d/actor/d_a_mirror.cpp index 06812298a1..792f1e7fe9 100644 --- a/src/d/actor/d_a_mirror.cpp +++ b/src/d/actor/d_a_mirror.cpp @@ -342,16 +342,16 @@ void dMirror_packet_c::mainDraw() { f32 var_f5; f32 var_f6; if (view_port->x_orig != 0.0f) { - var_f3 = (((view_port->x_orig * 2.0f) + view_port->width) * 0.5f) - (608.0f / 2); - var_f5 = 608.0f; + var_f3 = (((view_port->x_orig * 2.0f) + view_port->width) * 0.5f) - (FB_WIDTH / 2); + var_f5 = FB_WIDTH; } else { var_f3 = view_port->x_orig; var_f5 = view_port->width; } if (view_port->y_orig != 0.0f) { - var_f4 = (((view_port->y_orig * 2.0f) + view_port->height) * 0.5f) - (448.0f / 2); - var_f6 = 448.0f; + var_f4 = (((view_port->y_orig * 2.0f) + view_port->height) * 0.5f) - (FB_HEIGHT / 2); + var_f6 = FB_HEIGHT; } else { var_f4 = view_port->y_orig; var_f6 = view_port->height; diff --git a/src/d/actor/d_a_movie_player.cpp b/src/d/actor/d_a_movie_player.cpp index 97976d4e39..0a0b1ff8d3 100644 --- a/src/d/actor/d_a_movie_player.cpp +++ b/src/d/actor/d_a_movie_player.cpp @@ -2977,9 +2977,9 @@ static void daMP_THPGXYuv2RgbSetup(GXRenderModeObj const* param_0) { int height = param_0->efbHeight; f32 var_f31 = 0.0f; - #if PLATFORM_WII || PLATFORM_SHIELD + #if WIDESCREEN_SUPPORT if (!mDoGph_gInf_c::isWide()) { - var_f31 = ((u16)height - (width * 808.0f) / 608.0f) * 0.5f; + var_f31 = ((u16)height - (width * 808.0f) / FB_WIDTH) * 0.5f; } #endif diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index 3e0835750c..5bbea1652e 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -2646,7 +2646,7 @@ BOOL daNpcT_chkActorInScreen(fopAc_ac_c* i_ActorP, f32 param_1, f32 param_2, f32 for (int i = 0; i < 8; i++) { mDoLib_project(&pos_array[i], &proj); - if (0.0f < proj.x && proj.x < 608.0f && 0.0f < proj.y && proj.y < 448.0f) { + if (0.0f < proj.x && proj.x < FB_WIDTH && 0.0f < proj.y && proj.y < FB_HEIGHT) { continue; } return false; diff --git a/src/d/actor/d_a_npc_henna.cpp b/src/d/actor/d_a_npc_henna.cpp index 5f123d08c7..ca7879f6f3 100644 --- a/src/d/actor/d_a_npc_henna.cpp +++ b/src/d/actor/d_a_npc_henna.cpp @@ -1868,14 +1868,14 @@ static void demo_camera_shop(npc_henna_class* i_this) { } case 73: { koro_shop = (fshop_class*)fpcM_Search(s_koro2ball_sub, i_this); - unkXyz_54 = koro_shop->current.pos; + unkXyz_54 = koro_shop->actor.current.pos; fshop = (fshop_class*)fpcM_Search(s_shop_sub, i_this); cMtx_YrotS(*calc_mtx, fshop->field_0x4060); unkXyz_78.x = -500.0f; unkXyz_78.y = 600.0f; unkXyz_78.z = 0.0f; MtxPosition(&unkXyz_78, &unkXyz_60); - unkXyz_60 += koro_shop->current.pos; + unkXyz_60 += koro_shop->actor.current.pos; if (koro2_reset != 0) { koro2_reset = 0; i_this->field_0x76c = unkXyz_54; diff --git a/src/d/actor/d_a_obj_ari.cpp b/src/d/actor/d_a_obj_ari.cpp index e8e614956b..0a5a9044f7 100644 --- a/src/d/actor/d_a_obj_ari.cpp +++ b/src/d/actor/d_a_obj_ari.cpp @@ -531,7 +531,7 @@ void daObjARI_c::Z_BufferChk() { } else { trim_height = 0.0f; } - if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { + if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) { dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); } diff --git a/src/d/actor/d_a_obj_cho.cpp b/src/d/actor/d_a_obj_cho.cpp index 3425ccf1ac..e41241cb7e 100644 --- a/src/d/actor/d_a_obj_cho.cpp +++ b/src/d/actor/d_a_obj_cho.cpp @@ -316,7 +316,7 @@ void daObjCHO_c::Z_BufferChk() { } else { trim_height = 0.0f; } - if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { + if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) { dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); } diff --git a/src/d/actor/d_a_obj_crvfence.cpp b/src/d/actor/d_a_obj_crvfence.cpp index 4803d1ddaa..2c80397efe 100644 --- a/src/d/actor/d_a_obj_crvfence.cpp +++ b/src/d/actor/d_a_obj_crvfence.cpp @@ -242,7 +242,7 @@ bool daObjCRVFENCE_c::checkViewArea(cXyz* param_1) { #ifdef DEBUG if (sp24.x >= 0.0f) { - if (sp24.y <= 640.0f) { + if (sp24.y <= FB_WIDTH) { bVar1 = true; } } @@ -251,7 +251,7 @@ bool daObjCRVFENCE_c::checkViewArea(cXyz* param_1) { bVar1 = false; if (sp24.y >= 0.0f) { - if (sp24.y <= 456.0f) { + if (sp24.y <= FB_HEIGHT) { bVar1 = true; } } @@ -261,7 +261,7 @@ bool daObjCRVFENCE_c::checkViewArea(cXyz* param_1) { } } #else - if (sp24.x >= 0.0f && sp24.x <= 608.0f && sp24.y >= 0.0f && sp24.y <= 448.0f) { + if (sp24.x >= 0.0f && sp24.x <= FB_WIDTH && sp24.y >= 0.0f && sp24.y <= FB_HEIGHT) { rv = true; } #endif diff --git a/src/d/actor/d_a_obj_crvhahen.cpp b/src/d/actor/d_a_obj_crvhahen.cpp index 20a6163d9a..f0e40a0b18 100644 --- a/src/d/actor/d_a_obj_crvhahen.cpp +++ b/src/d/actor/d_a_obj_crvhahen.cpp @@ -151,7 +151,7 @@ bool daObjCRVHAHEN_c::checkViewArea(cXyz* i_this) { bool ret = false; - if (proj.x >= 0.0f && proj.x <= 608.0f && proj.y >= 0.0f && proj.y <= 448.0f) { + if (proj.x >= 0.0f && proj.x <= FB_WIDTH && proj.y >= 0.0f && proj.y <= FB_HEIGHT) { ret = true; } diff --git a/src/d/actor/d_a_obj_dan.cpp b/src/d/actor/d_a_obj_dan.cpp index 01fdcdee3a..33af5795ea 100644 --- a/src/d/actor/d_a_obj_dan.cpp +++ b/src/d/actor/d_a_obj_dan.cpp @@ -292,7 +292,7 @@ void daObjDAN_c::Z_BufferChk() { } else { trim_height = 0.0f; } - if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { + if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) { dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); } diff --git a/src/d/actor/d_a_obj_gomikabe.cpp b/src/d/actor/d_a_obj_gomikabe.cpp index ea19451152..590ae92c7e 100644 --- a/src/d/actor/d_a_obj_gomikabe.cpp +++ b/src/d/actor/d_a_obj_gomikabe.cpp @@ -219,7 +219,7 @@ bool daObjGOMIKABE_c::checkViewArea(cXyz param_1) { Vec local_24; mDoLib_project(¶m_1, &local_24); bool rv = false; - if (local_24.x >= 0.0f && local_24.x <= 608.0f && local_24.y >= 0.0f && local_24.y <= 448.0f) { + if (local_24.x >= 0.0f && local_24.x <= FB_WIDTH && local_24.y >= 0.0f && local_24.y <= FB_HEIGHT) { rv = true; } diff --git a/src/d/actor/d_a_obj_groundwater.cpp b/src/d/actor/d_a_obj_groundwater.cpp index 1bc17a6c36..8ca9c0c65a 100644 --- a/src/d/actor/d_a_obj_groundwater.cpp +++ b/src/d/actor/d_a_obj_groundwater.cpp @@ -324,7 +324,9 @@ int daGrdWater_c::Draw() { Mtx afStack_50; C_MTXLightPerspective(afStack_50, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0.0f); + #if WIDESCREEN_SUPPORT mDoGph_gInf_c::setWideZoomLightProjection(afStack_50); + #endif mtxInfo->setEffectMtx(afStack_50); modelData2->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); } diff --git a/src/d/actor/d_a_obj_hhashi.cpp b/src/d/actor/d_a_obj_hhashi.cpp index 1f30fa0e73..0b2dbd0d7e 100644 --- a/src/d/actor/d_a_obj_hhashi.cpp +++ b/src/d/actor/d_a_obj_hhashi.cpp @@ -229,7 +229,7 @@ bool daObjHHASHI_c::checkViewArea(int param_1) { Vec local_20; mDoLib_project(&field_0x5b0[param_1], &local_20); bool rv = false; - if (local_20.x >= 0.0f && local_20.x <= 608.0f && local_20.y >= 0.0f && local_20.y <= 448.0f) { + if (local_20.x >= 0.0f && local_20.x <= FB_WIDTH && local_20.y >= 0.0f && local_20.y <= FB_HEIGHT) { rv = true; } return rv; diff --git a/src/d/actor/d_a_obj_kabuto.cpp b/src/d/actor/d_a_obj_kabuto.cpp index a19eca796c..0d387d56d2 100644 --- a/src/d/actor/d_a_obj_kabuto.cpp +++ b/src/d/actor/d_a_obj_kabuto.cpp @@ -457,7 +457,7 @@ void daObjKABUTO_c::Z_BufferChk() { } else { trim_height = 0.0f; } - if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { + if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) { dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); } diff --git a/src/d/actor/d_a_obj_kamakiri.cpp b/src/d/actor/d_a_obj_kamakiri.cpp index 86e48c13fa..51ed44d686 100644 --- a/src/d/actor/d_a_obj_kamakiri.cpp +++ b/src/d/actor/d_a_obj_kamakiri.cpp @@ -543,11 +543,11 @@ void daObjKAM_c::Z_BufferChk() { cameraHeight = 0.0f; } #ifdef DEBUG -#define Z_BUFFERCHK_X_MAX 640.0f -#define Z_BUFFERCHK_Y_MAX 456.0f +#define Z_BUFFERCHK_X_MAX FB_WIDTH +#define Z_BUFFERCHK_Y_MAX FB_HEIGHT #else -#define Z_BUFFERCHK_X_MAX 608.0f -#define Z_BUFFERCHK_Y_MAX 448.0f +#define Z_BUFFERCHK_X_MAX FB_WIDTH +#define Z_BUFFERCHK_Y_MAX FB_HEIGHT #endif if (currentProj.x > 0.0f && currentProj.x < Z_BUFFERCHK_X_MAX && currentProj.y > cameraHeight && currentProj.y < Z_BUFFERCHK_Y_MAX - cameraHeight) diff --git a/src/d/actor/d_a_obj_katatsumuri.cpp b/src/d/actor/d_a_obj_katatsumuri.cpp index f65c412676..8493976d02 100644 --- a/src/d/actor/d_a_obj_katatsumuri.cpp +++ b/src/d/actor/d_a_obj_katatsumuri.cpp @@ -622,10 +622,10 @@ void daObjKAT_c::Z_BufferChk() { #if DEBUG #define KAT_Z_BUFFERCHK_MAX_X 640.0f -#define KAT_Z_BUFFERCHK_MAX_Y 456.0f +#define KAT_Z_BUFFERCHK_MAX_Y FB_HEIGHT #else -#define KAT_Z_BUFFERCHK_MAX_X 608.0f -#define KAT_Z_BUFFERCHK_MAX_Y 448.0f +#define KAT_Z_BUFFERCHK_MAX_X FB_WIDTH +#define KAT_Z_BUFFERCHK_MAX_Y FB_HEIGHT #endif if (projected.x > 0.0f && projected.x < KAT_Z_BUFFERCHK_MAX_X && projected.y > unkFloat1 && projected.y < KAT_Z_BUFFERCHK_MAX_Y - unkFloat1) diff --git a/src/d/actor/d_a_obj_kuwagata.cpp b/src/d/actor/d_a_obj_kuwagata.cpp index 69354bbd35..484e3400c1 100644 --- a/src/d/actor/d_a_obj_kuwagata.cpp +++ b/src/d/actor/d_a_obj_kuwagata.cpp @@ -558,8 +558,8 @@ void daObjKUW_c::Z_BufferChk() { trimHeight = 0.0f; } - if (local_5c.x > 0.0f && local_5c.x < 608.0f && - local_5c.y > trimHeight && local_5c.y < 448.0f - trimHeight) { + if (local_5c.x > 0.0f && local_5c.x < FB_WIDTH && + local_5c.y > trimHeight && local_5c.y < FB_HEIGHT - trimHeight) { dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x9bc); } diff --git a/src/d/actor/d_a_obj_lv3Water2.cpp b/src/d/actor/d_a_obj_lv3Water2.cpp index db18100211..c6ce4fab6f 100644 --- a/src/d/actor/d_a_obj_lv3Water2.cpp +++ b/src/d/actor/d_a_obj_lv3Water2.cpp @@ -236,7 +236,7 @@ int daLv3Water2_c::Draw() { Mtx lightProjMtx; C_MTXLightPerspective(lightProjMtx, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0); - #ifdef DEBUG + #if WIDESCREEN_SUPPORT mDoGph_gInf_c::setWideZoomLightProjection(lightProjMtx); /* TODO: Handle screen capture perspective calculations */ #endif diff --git a/src/d/actor/d_a_obj_mhole.cpp b/src/d/actor/d_a_obj_mhole.cpp index 53074c05ca..c7229120dd 100644 --- a/src/d/actor/d_a_obj_mhole.cpp +++ b/src/d/actor/d_a_obj_mhole.cpp @@ -342,7 +342,9 @@ int daObjMHole_c::draw() { Mtx effect_mtx; MTXLightPerspective(effect_mtx, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0.0f); + #if WIDESCREEN_SUPPORT mDoGph_gInf_c::setWideZoomLightProjection(effect_mtx); + #endif tex_mtx_info->setEffectMtx(effect_mtx); modelData->simpleCalcMaterial((MtxP)j3dDefaultMtx); } diff --git a/src/d/actor/d_a_obj_mirror_chain.cpp b/src/d/actor/d_a_obj_mirror_chain.cpp index 3436a0d3b0..63368abb13 100644 --- a/src/d/actor/d_a_obj_mirror_chain.cpp +++ b/src/d/actor/d_a_obj_mirror_chain.cpp @@ -7,186 +7,280 @@ #include "d/actor/d_a_obj_mirror_chain.h" #include "d/d_com_inf_game.h" -#include "dol2asm.h" /* 80C98080-80C98084 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ static char const* l_arcName = "MR-Chain"; -/* ############################################################################################## */ -/* 80C98028-80C9802C 000000 0004+00 2/2 0/0 0/0 .rodata @3915 */ -SECTION_RODATA static u32 const lit_3915 = 0x3C8EFA35; -COMPILER_STRIP_GATE(0x80C98028, &lit_3915); - -/* 80C9802C-80C98030 000004 0004+00 0/1 0/0 0/0 .rodata @3916 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3916 = 0.5f; -COMPILER_STRIP_GATE(0x80C9802C, &lit_3916); -#pragma pop - -/* 80C98034-80C98038 00000C 0004+00 0/1 0/0 0/0 .rodata @3918 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3918 = 2.0f; -COMPILER_STRIP_GATE(0x80C98034, &lit_3918); -#pragma pop - -/* 80C98038-80C9803C 000010 0004+00 0/1 0/0 0/0 .rodata @3919 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3919 = 304.0f; -COMPILER_STRIP_GATE(0x80C98038, &lit_3919); -#pragma pop - -/* 80C9803C-80C98040 000014 0004+00 0/1 0/0 0/0 .rodata @3920 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3920 = 608.0f; -COMPILER_STRIP_GATE(0x80C9803C, &lit_3920); -#pragma pop - -/* 80C98040-80C98044 000018 0004+00 0/1 0/0 0/0 .rodata @3921 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3921 = 224.0f; -COMPILER_STRIP_GATE(0x80C98040, &lit_3921); -#pragma pop - -/* 80C98044-80C98048 00001C 0004+00 0/1 0/0 0/0 .rodata @3922 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3922 = 448.0f; -COMPILER_STRIP_GATE(0x80C98044, &lit_3922); -#pragma pop - -/* 80C98048-80C98050 000020 0004+04 1/3 0/0 0/0 .rodata @3923 */ -SECTION_RODATA static f32 const lit_3923[1 + 1 /* padding */] = { - 1.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80C98048, &lit_3923); - -/* 80C98050-80C98058 000028 0008+00 0/1 0/0 0/0 .rodata @3925 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3925[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C98050, &lit_3925); -#pragma pop - /* 80C98138-80C98148 000000 0010+00 2/2 0/0 0/0 .bss l_scissor */ static u32 l_scissor[4]; +#if DEBUG +static u8 l_begin; +#endif + /* 80C96698-80C96DAC 000078 0714+00 1/0 0/0 0/0 .text draw__22dScissorBegin_packet_cFv */ +// NONMATCHING - slight stack order issue void dScissorBegin_packet_c::draw() { - // NONMATCHING -} + GXGetScissor(&l_scissor[0], &l_scissor[1], &l_scissor[2], &l_scissor[3]); + + #if DEBUG + JUT_ASSERT(76, !l_begin); + l_begin = TRUE; + #endif + + f32 var_f31 = FLT_MAX; + f32 var_f30 = FLT_MAX; + f32 sp7C = -FLT_MAX; + f32 sp78 = -FLT_MAX; + f32 sp74 = -FLT_MAX; + + f32 sp70 = l_scissor[0]; + f32 sp6C = sp70 + l_scissor[2]; + f32 sp68 = l_scissor[1]; + f32 sp64 = sp68 + l_scissor[3]; + + cXyz spEC[4]; + cXyz sp11C; + int sp60 = 4; + view_class* view_p = dComIfGd_getView(); + f32 sp58 = -view_p->near; + + cXyz* sp54 = mQuad; + cXyz* var_r30 = spEC; + + int sp50 = 0; + int sp4C = 0; + + for (int i = 0; i < 4; i++) { + cMtx_multVec(view_p->viewMtx, sp54, var_r30); + if (var_r30->z >= sp58) { + sp50++; + } else { + sp4C = i; + } + + sp54++; + var_r30++; + } + + if (sp50 >= 4) { + GXSetScissor(FB_WIDTH + 1, FB_HEIGHT + 1, 0, 0); + return; + } + + if (sp50 != 0) { + int sp44 = -1; + + for (int i = 0; i < 4; i++) { + int sp3C = (sp4C + 1) % 4; + if (sp44 < 0) { + if (spEC[sp3C].z >= sp58) { + sp44 = sp3C; + } + } else if (spEC[sp3C].z < sp58) { + int sp38 = (sp44 + 3) % 4; + cXyz spE0 = spEC[sp44] - spEC[sp38]; + f32 sp34 = (sp58 - spEC[sp38].z) / spE0.z; + spE0 *= sp34; + spEC[sp60] = spEC[sp38] + spE0; + + sp60++; + + spE0 = spEC[sp4C] - spEC[sp3C]; + sp34 = (sp58 - spEC[sp3C].z) / spE0.z; + spE0 *= sp34; + spEC[sp4C] = spEC[sp3C] + spE0; + + for (int sp30 = sp44; sp30 != sp4C; sp30 = (sp30 + 1) % 4) { + spEC[sp30] = spEC[sp4C]; + } + break; + } + + sp4C = (sp4C + 1) % 4; + } + } + + f32 sp2C = view_p->fovy; + f32 sp28 = view_p->aspect; + f32 sp24 = std::tan(0.017453292f * (0.5f * sp2C)); + + f32 sp20, sp1C, sp18, sp14; + view_port_class* viewport_p = dComIfGd_getViewport(); + if (0.0f != viewport_p->x_orig) { + sp20 = (0.5f * ((2.0f * viewport_p->x_orig) + viewport_p->width)) - (FB_WIDTH / 2); + sp18 = FB_WIDTH; + } else { + sp20 = viewport_p->x_orig; + sp18 = viewport_p->width; + } + + if (0.0f != viewport_p->y_orig) { + sp1C = (0.5f * ((2.0f * viewport_p->y_orig) + viewport_p->height)) - (FB_HEIGHT / 2); + sp14 = FB_HEIGHT; + } else { + sp1C = viewport_p->y_orig; + sp14 = viewport_p->height; + } + + var_r30 = spEC; + for (int i = 0; i < sp60; i++) { + var_r30->y = var_r30->y / (var_r30->z * sp24); + var_r30->x = var_r30->x / (sp28 * (-var_r30->z * sp24)); -// Temporary fake function to make the cXyz destructor appear here -// delete once dScissorBegin_packet_c::draw() is matched -static void fake() { - cXyz vec; - vec.normalize(); + #if WIDESCREEN_SUPPORT + if (mDoGph_gInf_c::isWideZoom()) { + var_r30->x *= mDoGph_gInf_c::getScale(); + var_r30->y *= mDoGph_gInf_c::getScale(); + } + #endif + + var_r30->x = sp20 + ((1.0f + var_r30->x) * (0.5f * sp18)); + var_r30->y = sp1C + ((1.0f + var_r30->y) * (0.5f * sp14)); + + if (var_r30->x < var_f31) { + var_f31 = var_r30->x; + } + if (var_r30->x > sp7C) { + sp7C = var_r30->x; + } + if (var_r30->y < var_f30) { + var_f30 = var_r30->y; + } + if (var_r30->y > sp78) { + sp78 = var_r30->y; + } + if (var_r30->z > sp74) { + sp74 = var_r30->z; + } + + var_r30++; + } + + var_r30 = spEC; + cXyz spD4 = var_r30[1] - var_r30[0]; + cXyz spC8; + cXyz spBC(0.0f, 0.0f, 1.0f); + for (int i = 0; i < 2; i++) { + var_r30++; + spC8 = var_r30[1] - var_r30[0]; + if (!spD4.isZero()) { + spBC = spD4.outprod(spC8); + if (spBC.z < 0.0f) { + break; + } + } + + spD4 = spC8; + } + + if (spBC.z < 0.0f || var_f31 > sp6C || sp7C < sp70 || var_f30 > sp64 || sp78 < sp68) { + GXSetScissor(FB_WIDTH + 1, FB_HEIGHT + 1, 0, 0); + } else { + var_f31 = cLib_minLimit<f32>(var_f31, sp70); + sp7C = cLib_maxLimit<f32>(sp7C, sp6C); + var_f30 = cLib_minLimit<f32>(var_f30, sp68); + sp78 = cLib_maxLimit<f32>(sp78, sp64); + GXSetScissor((u32)var_f31, (u32)var_f30, (u32)(sp7C - var_f31), (u32)(sp78 - var_f30)); + } } /* 80C96DE8-80C96E20 0007C8 0038+00 1/0 0/0 0/0 .text draw__20dScissorEnd_packet_cFv */ void dScissorEnd_packet_c::draw() { + #if DEBUG + JUT_ASSERT(246, l_begin); + l_begin = FALSE; + #endif + GXSetScissor(l_scissor[0], l_scissor[1], l_scissor[2], l_scissor[3]); } /* 80C96E20-80C96E40 000800 0020+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */ static int createSolidHeap(fopAc_ac_c* i_this) { - return static_cast<daObjMirrorChain_c*>(i_this)->createHeap(); + return ((daObjMirrorChain_c*)i_this)->createHeap(); } -/* ############################################################################################## */ -/* 80C98058-80C98060 000030 0008+00 1/1 0/0 0/0 .rodata @4164 */ -SECTION_RODATA static u8 const lit_4164[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C98058, &lit_4164); - -extern void* __vt__12J3DFrameCtrl[3]; - /* 80C96E40-80C975A4 000820 0764+00 1/1 0/0 0/0 .text createHeap__18daObjMirrorChain_cFv */ int daObjMirrorChain_c::createHeap() { - J3DModelData* model_data; + J3DModelData* modelData; + /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { - model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 16); - mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000284); + modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 16); + JUT_ASSERT(306, modelData != NULL); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); - J3DAnmTevRegKey* brk_anm = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 21); + J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 21); + JUT_ASSERT(316, brk != NULL); mpBrkAnm = new mDoExt_brkAnm(); - if (mpBrkAnm == NULL || !mpBrkAnm->init(model_data, brk_anm, 1, 2, 1.0f, 0, -1)) { + if (mpBrkAnm == NULL || !mpBrkAnm->init(modelData, brk, 1, 2, 1.0f, 0, -1)) { return 0; } } else { - model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 15); - mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084); + modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 15); + JUT_ASSERT(323, modelData != NULL); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); mpBrkAnm = NULL; } + if (mpModel == NULL) { return 0; } /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { - J3DModelData* portal_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 12); - mpPortalModel = mDoExt_J3DModel__create(portal_model_data, 0, 0x11000084); + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 12); + JUT_ASSERT(336, modelData != NULL); + mpPortalModel = mDoExt_J3DModel__create(modelData, 0, 0x11000084); if (mpPortalModel == NULL) { return 0; } - J3DAnmTransform* bck_anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 9); + J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 9); + JUT_ASSERT(344, bck != NULL); mpBckAnm = new mDoExt_bckAnm(); - if (mpBckAnm == NULL - || !mpBckAnm->init(bck_anm, 1, 2, 1.0f, 0, -1, false)) - { + if (mpBckAnm == NULL || !mpBckAnm->init(bck, 1, 2, 1.0f, 0, -1, false)) { return 0; } mpBckAnm->setEndFrame(300); - J3DAnmTevRegKey* portal_brk_anm = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 20); + J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 20); + JUT_ASSERT(353, brk != NULL); mpPortalBrkAnm = new mDoExt_brkAnm(); - if (mpPortalBrkAnm == NULL - || !mpPortalBrkAnm->init(portal_model_data, portal_brk_anm, 1, 2, 1.0f, 0, -1)) + if (mpPortalBrkAnm == NULL || !mpPortalBrkAnm->init(modelData, brk, 1, 0, 1.0f, 0, -1)) { return 0; } - mpPortalBrkAnm->setFrame(portal_brk_anm->getFrameMax()); + mpPortalBrkAnm->setFrame(brk->getFrameMax()); cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(l_arcName, 26); if (mBgW[1].Set(dzb, 1, &mMtx)) { return 0; } + mBgW[0] = mBgW[1]; } else { - J3DAnmTransform* bck_anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 8); + J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 8); + JUT_ASSERT(367, bck != NULL); mpBckAnm = new mDoExt_bckAnm(); - bool b = fopAcM_isSwitch(this, getSwitchNo()) - /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ - || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]); - f32 rate = b ? 1.0f : 0.0f; - if (mpBckAnm == NULL - || !mpBckAnm->init(bck_anm, 1, 0, rate, 0, -1, false)) + + /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ + f32 rate = (fopAcM_isSwitch(this, getSwitchNo()) || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) ? 1.0f : 0.0f; + if (mpBckAnm == NULL || !mpBckAnm->init(bck, 1, 0, rate, 0, -1, false)) { return 0; } - if (fopAcM_isSwitch(this, getSwitchNo()) - /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ - || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) - { - mpBckAnm->setFrame(bck_anm->getFrameMax()); + + /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ + if (fopAcM_isSwitch(this, getSwitchNo()) || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) { + mpBckAnm->setFrame(bck->getFrameMax()); } - J3DAnmTevRegKey* brk_anm = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 19); + J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 19); + JUT_ASSERT(381, brk != NULL); mpBrkAnm = new mDoExt_brkAnm(); - if (mpBrkAnm == NULL - || !mpBrkAnm->init(model_data, brk_anm, 1, 0, 1.0f, 0, -1)) + if (mpBrkAnm == NULL || !mpBrkAnm->init(modelData, brk, 1, 0, 0.0f, 0, -1)) { return 0; } @@ -208,13 +302,6 @@ int daObjMirrorChain_c::createHeap() { return 1; } - -/* 80C975A4-80C975EC 000F84 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - /* 80C975EC-80C97618 000FCC 002C+00 1/1 0/0 0/0 .text initBaseMtx__18daObjMirrorChain_cFv */ void daObjMirrorChain_c::initBaseMtx() { @@ -228,9 +315,11 @@ void daObjMirrorChain_c::setBaseMtx() { mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::ZXYrotM(shape_angle); mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + if (mpPortalModel != NULL) { mpPortalModel->setBaseTRMtx(mDoMtx_stack_c::get()); } + MTXCopy(mDoMtx_stack_c::get(), mMtx); mpActiveBgW->Move(); } @@ -243,32 +332,40 @@ static int daObjMirrorChain_Draw(daObjMirrorChain_c* i_this) { /* 80C976B8-80C97968 001098 02B0+00 1/1 0/0 0/0 .text draw__18daObjMirrorChain_cFv */ int daObjMirrorChain_c::draw() { - static f32 const SCISSOR_CENTER_X = 1799.2f; - static f32 const SCISSOR_CENTER_Y = 4779.58f; - static f32 const SCISSOR_CENTER_Z = -23024.53f; - static f32 const SCISSOR_SIZE = 984.0f; + static const f32 SCISSOR_CENTER_X = 1799.2f; + static const f32 SCISSOR_CENTER_Y = 4779.58f; + static const f32 SCISSOR_CENTER_Z = -23024.53f; + static const f32 SCISSOR_SIZE = 984.0f; + g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr); g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { g_env_light.setLightTevColorType_MAJI(mpPortalModel, &tevStr); + if (mpBckAnm != NULL) { mpBckAnm->entry(mpPortalModel->getModelData()); } + if (mpBrkAnm != NULL) { mpBrkAnm->entry(mpModel->getModelData()); } + if (mpPortalBrkAnm != NULL) { mpPortalBrkAnm->entry(mpPortalModel->getModelData()); } + dComIfGd_setListBG(); mDoExt_modelUpdateDL(mpModel); + static Vec l_offsetScissor[4] = { {SCISSOR_CENTER_X - SCISSOR_SIZE / 2, SCISSOR_CENTER_Y + SCISSOR_SIZE, SCISSOR_CENTER_Z}, {SCISSOR_CENTER_X + SCISSOR_SIZE / 2, SCISSOR_CENTER_Y + SCISSOR_SIZE, SCISSOR_CENTER_Z}, {SCISSOR_CENTER_X + SCISSOR_SIZE / 2, SCISSOR_CENTER_Y, SCISSOR_CENTER_Z}, {SCISSOR_CENTER_X - SCISSOR_SIZE / 2, SCISSOR_CENTER_Y, SCISSOR_CENTER_Z}, }; + cXyz* quad = mScissorBegin.getQuad(); PSMTXMultVecArray(mpModel->getBaseTRMtx(), l_offsetScissor, quad, 4); j3dSys.setDrawBuffer(dComIfGd_getXluListBG(), 0); @@ -276,12 +373,15 @@ int daObjMirrorChain_c::draw() { mDoExt_modelUpdateDL(mpPortalModel); mScissorBegin.entryPacket(); dComIfGd_setList(); + if (mpBckAnm != NULL) { mpBckAnm->remove(mpPortalModel->getModelData()); } + if (mpBrkAnm != NULL) { mpBrkAnm->remove(mpModel->getModelData()); } + if (mpPortalBrkAnm != NULL) { mpPortalBrkAnm->remove(mpPortalModel->getModelData()); } @@ -289,19 +389,24 @@ int daObjMirrorChain_c::draw() { if (mpBckAnm != NULL) { mpBckAnm->entry(mpModel->getModelData()); } + if (mpBrkAnm != NULL) { mpBrkAnm->entry(mpModel->getModelData()); } + dComIfGd_setListBG(); mDoExt_modelUpdateDL(mpModel); dComIfGd_setList(); + if (mpBckAnm != NULL) { mpBckAnm->remove(mpModel->getModelData()); } + if (mpBrkAnm != NULL) { mpBrkAnm->remove(mpModel->getModelData()); } } + return 1; } @@ -311,83 +416,22 @@ static int daObjMirrorChain_Execute(daObjMirrorChain_c* i_this) { return i_this->execute(); } -// this should come automatically from the static data in draw() but it does not - -/* ############################################################################################## */ -/* 80C98060-80C98064 000038 0004+00 0/0 0/0 0/0 .rodata - * SCISSOR_CENTER_X$localstatic3$draw__18daObjMirrorChain_cFv */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const data_80C98060[4] = { - 0x44, - 0xE0, - 0xE6, - 0x66, -}; -COMPILER_STRIP_GATE(0x80C98060, &data_80C98060); -#pragma pop - -/* 80C98064-80C98068 00003C 0004+00 0/0 0/0 0/0 .rodata - * SCISSOR_CENTER_Y$localstatic4$draw__18daObjMirrorChain_cFv */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const data_80C98064[4] = { - 0x45, - 0x95, - 0x5C, - 0xA4, -}; -COMPILER_STRIP_GATE(0x80C98064, &data_80C98064); -#pragma pop - -/* 80C98068-80C9806C 000040 0004+00 0/0 0/0 0/0 .rodata - * SCISSOR_CENTER_Z$localstatic5$draw__18daObjMirrorChain_cFv */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const data_80C98068[4] = { - 0xC6, - 0xB3, - 0xE1, - 0x0F, -}; -COMPILER_STRIP_GATE(0x80C98068, &data_80C98068); -#pragma pop - -/* 80C9806C-80C98070 000044 0004+00 0/0 0/0 0/0 .rodata - * SCISSOR_SIZE$localstatic6$draw__18daObjMirrorChain_cFv */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const data_80C9806C[4] = { - 0x44, - 0x76, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C9806C, &data_80C9806C); -#pragma pop - -/* 80C98070-80C98074 000048 0004+00 0/1 0/0 0/0 .rodata @4494 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4494 = -1.0f; -COMPILER_STRIP_GATE(0x80C98070, &lit_4494); -#pragma pop - /* 80C97988-80C97BA4 001368 021C+00 1/1 0/0 0/0 .text execute__18daObjMirrorChain_cFv */ int daObjMirrorChain_c::execute() { if (mpBckAnm != NULL) { mpBckAnm->play(); } + if (mpBrkAnm != NULL) { mpBrkAnm->play(); } + if (mpPortalBrkAnm != NULL) { mpPortalBrkAnm->play(); } - /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ - if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]) - && mpBckAnm != NULL && mpBckAnm->getPlaySpeed() > 0.0f) { + /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]) && mpBckAnm != NULL && mpBckAnm->getPlaySpeed() > 0.0f) { if (mpActiveBgW == &mBgW[0]) { dComIfG_Bgsp().Release(&mBgW[0]); dComIfG_Bgsp().Regist(&mBgW[1], this); @@ -396,7 +440,7 @@ int daObjMirrorChain_c::execute() { } if (mpEmitter == NULL) { - mpEmitter = dComIfGp_particle_set(0x8acc, ¤t.pos, &shape_angle, NULL); + mpEmitter = dComIfGp_particle_set(dPa_RM(ID_ZF_S_D32_01_MONO02SAND), ¤t.pos, &shape_angle, NULL); cXyz pos; mDoMtx_stack_c::copy(mpModel->getAnmMtx(1)); mDoMtx_stack_c::multVecZero(&pos); @@ -412,7 +456,6 @@ int daObjMirrorChain_c::execute() { return 1; } - /* 80C97BA4-80C97BAC 001584 0008+00 1/0 0/0 0/0 .text * daObjMirrorChain_IsDelete__FP18daObjMirrorChain_c */ static int daObjMirrorChain_IsDelete(daObjMirrorChain_c* i_this) { @@ -423,9 +466,11 @@ daObjMirrorChain_c::~daObjMirrorChain_c() { if (mBgW[0].ChkUsed()) { dComIfG_Bgsp().Release(&mBgW[0]); } + if (mBgW[1].ChkUsed()) { dComIfG_Bgsp().Release(&mBgW[1]); } + dComIfG_resDelete(&mPhaseReq, l_arcName); } @@ -438,40 +483,41 @@ static int daObjMirrorChain_Delete(daObjMirrorChain_c* i_this) { } void daObjMirrorChain_c::create_init() { - if (mpBckAnm != NULL - /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ - && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { + /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ + if (mpBckAnm != NULL && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { mpBckAnm->setPlaySpeed(0.0f); } + mpEmitter = NULL; mBgW[0].SetCrrFunc(NULL); mBgW[0].SetRoomId(fopAcM_GetRoomNo(this)); mBgW[1].SetCrrFunc(NULL); mBgW[1].SetRoomId(fopAcM_GetRoomNo(this)); - bool b = fopAcM_isSwitch(this, getSwitchNo()) - /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ - || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]); - mpActiveBgW = b ? &mBgW[1] : &mBgW[0]; + + /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ + mpActiveBgW = (fopAcM_isSwitch(this, getSwitchNo()) || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) ? &mBgW[1] : &mBgW[0]; dComIfG_Bgsp().Regist(mpActiveBgW, this); initBaseMtx(); } cPhs__Step daObjMirrorChain_c::create() { fopAcM_ct(this, daObjMirrorChain_c); - cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName); - if (step == cPhs_COMPLEATE_e) { + + cPhs__Step phase_state = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName); + if (phase_state == cPhs_COMPLEATE_e) { if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x71b0)) { return cPhs_ERROR_e; } create_init(); } - return step; + + return phase_state; } /* 80C97D24-80C97F3C 001704 0218+00 1/0 0/0 0/0 .text daObjMirrorChain_Create__FP10fopAc_ac_c */ static cPhs__Step daObjMirrorChain_Create(fopAc_ac_c* i_this) { fopAcM_GetID(i_this); - return static_cast<daObjMirrorChain_c*>(i_this)->create(); + return ((daObjMirrorChain_c*)i_this)->create(); } /* 80C980B4-80C980D4 -00001 0020+00 1/0 0/0 0/0 .data l_daObjMirrorChain_Method */ @@ -500,10 +546,3 @@ extern actor_process_profile_definition g_profile_Obj_MirrorChain = { fopAc_ACTOR_e, fopAc_CULLBOX_CUSTOM_e, }; - -/* 80C98104-80C98110 000084 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; diff --git a/src/d/actor/d_a_obj_octhashi.cpp b/src/d/actor/d_a_obj_octhashi.cpp index b291664040..013ab862e4 100644 --- a/src/d/actor/d_a_obj_octhashi.cpp +++ b/src/d/actor/d_a_obj_octhashi.cpp @@ -187,8 +187,8 @@ void daObjOCTHASHI_c::SphAction() { f32 fvals_3888[2] = {2.125f, 0.0f}; f32 fvals_3889[2] = {0.0f, 0.0f}; f32 fval_3890[1] = {2000.0f}; - f32 fval_3903[1] = {608.0f}; - f32 fval_3904[1] = {448.0f}; + f32 fval_3903[1] = {FB_WIDTH}; + f32 fval_3904[1] = {FB_HEIGHT}; for (int idx = 0; idx < mPieceNum; ++idx) { if (mColliders[idx].ChkCoHit()) { fopAc_ac_c* hit_actor = dCc_GetAc(mColliders[idx].GetCoHitObj()->GetAc()); diff --git a/src/d/actor/d_a_obj_rstair.cpp b/src/d/actor/d_a_obj_rstair.cpp index c5f90996f3..5b4d6c90da 100644 --- a/src/d/actor/d_a_obj_rstair.cpp +++ b/src/d/actor/d_a_obj_rstair.cpp @@ -346,7 +346,9 @@ int daObjRotStair_c::Draw() { Mtx lightMtx; C_MTXLightPerspective(lightMtx, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0); + #if WIDESCREEN_SUPPORT mDoGph_gInf_c::setWideZoomLightProjection(lightMtx); + #endif texMtxInfo->setEffectMtx(lightMtx); modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); } diff --git a/src/d/actor/d_a_obj_ten.cpp b/src/d/actor/d_a_obj_ten.cpp index a6433d378d..ce6e576b2a 100644 --- a/src/d/actor/d_a_obj_ten.cpp +++ b/src/d/actor/d_a_obj_ten.cpp @@ -624,8 +624,8 @@ void daObjTEN_c::Z_BufferChk() { } else { trimHeight = 0.0f; } - if (local_5c.x > 0.0f && local_5c.x < 608.0f && local_5c.y > trimHeight && - local_5c.y < 448.0f - trimHeight) + if (local_5c.x > 0.0f && local_5c.x < FB_WIDTH && local_5c.y > trimHeight && + local_5c.y < FB_HEIGHT - trimHeight) { dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x61c); } diff --git a/src/d/actor/d_a_obj_thashi.cpp b/src/d/actor/d_a_obj_thashi.cpp index a66b59c8c8..a01da21a5d 100644 --- a/src/d/actor/d_a_obj_thashi.cpp +++ b/src/d/actor/d_a_obj_thashi.cpp @@ -90,8 +90,8 @@ static void dataStripping2() { stripFloat(3.0f); stripFloat(2000.0f); - stripFloat(608.0f); - stripFloat(448.0f); + stripFloat(FB_WIDTH); + stripFloat(FB_HEIGHT); } /* 80D0C298-80D0C2B8 0000D8 0020+00 1/0 0/0 0/0 .text daObjTHASHI_Create__FP10fopAc_ac_c diff --git a/src/d/actor/d_a_obj_tombo.cpp b/src/d/actor/d_a_obj_tombo.cpp index 22c837165a..fea30f10c7 100644 --- a/src/d/actor/d_a_obj_tombo.cpp +++ b/src/d/actor/d_a_obj_tombo.cpp @@ -543,8 +543,8 @@ void daObjTOMBO_c::Z_BufferChk() { } else { trimHeight = 0.0f; } - if (local_5c.x > 0.0f && local_5c.x < 608.0f && local_5c.y > trimHeight && - local_5c.y < 448.0f - trimHeight) + if (local_5c.x > 0.0f && local_5c.x < FB_WIDTH && local_5c.y > trimHeight && + local_5c.y < FB_HEIGHT - trimHeight) { dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x754); } diff --git a/src/d/actor/d_a_obj_tp.cpp b/src/d/actor/d_a_obj_tp.cpp index 7d1d3a4b1e..15beae19a7 100644 --- a/src/d/actor/d_a_obj_tp.cpp +++ b/src/d/actor/d_a_obj_tp.cpp @@ -39,7 +39,9 @@ static int daObj_Tp_Draw(obj_tp_class* i_this) { Mtx lightProjMtx; C_MTXLightPerspective(lightProjMtx, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0); + #if WIDESCREEN_SUPPORT mDoGph_gInf_c::setWideZoomLightProjection(lightProjMtx); + #endif texMtxInfo->setEffectMtx(lightProjMtx); modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); } diff --git a/src/d/actor/d_a_obj_zra_freeze.cpp b/src/d/actor/d_a_obj_zra_freeze.cpp index 24b1cff7d0..250bcf5d6e 100644 --- a/src/d/actor/d_a_obj_zra_freeze.cpp +++ b/src/d/actor/d_a_obj_zra_freeze.cpp @@ -44,7 +44,7 @@ BOOL daZraFreeze_c::chkActorInScreen() { PSMTXMultVecArray(mDoMtx_stack_c::get(), vec, vec, 8); for (int i = 0; i < 8; i++) { mDoLib_project(&vec[i], &proj); - if (0.0f < proj.x && proj.x < 608.0f && 0.0f < proj.y && proj.y < 448.0f) { + if (0.0f < proj.x && proj.x < FB_WIDTH && 0.0f < proj.y && proj.y < FB_HEIGHT) { continue; } return false; diff --git a/src/d/actor/d_a_tag_attack_item.cpp b/src/d/actor/d_a_tag_attack_item.cpp index 5a7f51b3c0..23e42f479f 100644 --- a/src/d/actor/d_a_tag_attack_item.cpp +++ b/src/d/actor/d_a_tag_attack_item.cpp @@ -1,114 +1,8 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_attack_item -// - #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_tag_attack_item.h" #include "SSystem/SComponent/c_math.h" #include "d/actor/d_a_player.h" -#include "d/d_com_inf_game.h" -#include "d/d_event_lib.h" -#include "dol2asm.h" - - -// need to figure out how to use dEvLib_callback_c properly -class daTagAtkItem_c : public fopAc_ac_c , public dEvLib_callback_c { -public: - /* 805A2958 */ void setBaseMtx(); - /* 805A2990 */ int Create(); - /* 805A2A34 */ int create(); - /* 805A2C48 */ int execute(); - /* 805A2CA8 */ void action(); - /* 805A2D58 */ BOOL checkHit(); - /* 805A2F54 */ void createItem(); - /* 805A3038 */ int _delete(); - - /* 805A3118 */ ~daTagAtkItem_c(); - /* 805A2D10 */ bool eventStart(); - /* 805A2D34 */ bool eventEnd(); - - u8 getEvId() { return fopAcM_GetParamBit(this, 0x18, 8); } - u8 getNum() { return fopAcM_GetParamBit(this, 8, 8); } - u8 getItemBit() { return fopAcM_GetParamBit(this, 0x10, 8); } - u8 getItemNo() { return fopAcM_GetParamBit(this, 0, 8); } - - /* 0x568 */ u8 temp[0x57C - 0x568]; // remove when dEvLib_callback_c setup - /* 0x57C */ u8 field_0x57C[0x584 - 0x57C]; - /* 0x584 */ dCcD_Stts mCcStts; - /* 0x5C0 */ dCcD_Cyl mCyl; -}; - -// -// Forward References: -// - -extern "C" void setBaseMtx__14daTagAtkItem_cFv(); -extern "C" void Create__14daTagAtkItem_cFv(); -extern "C" void create__14daTagAtkItem_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void execute__14daTagAtkItem_cFv(); -extern "C" void action__14daTagAtkItem_cFv(); -extern "C" void eventStart__14daTagAtkItem_cFv(); -extern "C" void eventEnd__14daTagAtkItem_cFv(); -extern "C" void checkHit__14daTagAtkItem_cFv(); -extern "C" void createItem__14daTagAtkItem_cFv(); -extern "C" bool _delete__14daTagAtkItem_cFv(); -extern "C" static void daTagAtkItem_Execute__FP14daTagAtkItem_c(); -extern "C" static void daTagAtkItem_Delete__FP14daTagAtkItem_c(); -extern "C" static void daTagAtkItem_Create__FP14daTagAtkItem_c(); -extern "C" void __dt__17dEvLib_callback_cFv(); -extern "C" bool eventRun__17dEvLib_callback_cFv(); -extern "C" bool eventStart__17dEvLib_callback_cFv(); -extern "C" bool eventEnd__17dEvLib_callback_cFv(); -extern "C" static void func_805A3100(); -extern "C" static void func_805A3108(); -extern "C" static void func_805A3110(); -extern "C" void __dt__14daTagAtkItem_cFv(); -extern "C" void __dt__10cCcD_GSttsFv(); - -// -// External References: -// - -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_createItemFromTable__FPC4cXyziiiPC5csXyziPC4cXyzPfPfb(); -extern "C" void eventUpdate__17dEvLib_callback_cFv(); -extern "C" void orderEvent__17dEvLib_callback_cFiii(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void cM_rndFX__Ff(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; - -// -// Declarations: -// /* 805A2958-805A2990 000078 0038+00 1/1 0/0 0/0 .text setBaseMtx__14daTagAtkItem_cFv */ void daTagAtkItem_c::setBaseMtx() { @@ -143,103 +37,16 @@ int daTagAtkItem_c::Create() { return 1; } -/* ############################################################################################## */ -/* 805A3338-805A3358 -00001 0020+00 1/0 0/0 0/0 .data l_daTagAtkItem_Method */ -SECTION_DATA static void* l_daTagAtkItem_Method[8] = { - (void*)daTagAtkItem_Create__FP14daTagAtkItem_c, - (void*)daTagAtkItem_Delete__FP14daTagAtkItem_c, - (void*)daTagAtkItem_Execute__FP14daTagAtkItem_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 805A3358-805A3388 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_AttackItem */ -SECTION_DATA extern void* g_profile_Tag_AttackItem[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01AA0000, (void*)&g_fpcLf_Method, - (void*)0x000006FC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02490000, (void*)&l_daTagAtkItem_Method, - (void*)0x00040000, (void*)0x000E0000, -}; - -/* 805A3388-805A33B4 000094 002C+00 2/2 0/0 0/0 .data __vt__14daTagAtkItem_c */ -SECTION_DATA extern void* __vt__14daTagAtkItem_c[11] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)func_805A3110, - (void*)func_805A3108, - (void*)eventRun__17dEvLib_callback_cFv, - (void*)func_805A3100, - (void*)__dt__14daTagAtkItem_cFv, - (void*)eventStart__14daTagAtkItem_cFv, - (void*)eventEnd__14daTagAtkItem_cFv, -}; - -/* 805A33B4-805A33C0 0000C0 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 805A33C0-805A33CC 0000CC 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 805A33CC-805A33D8 0000D8 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 805A33D8-805A33E4 0000E4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 805A33E4-805A33FC 0000F0 0018+00 3/3 0/0 0/0 .data __vt__17dEvLib_callback_c */ -SECTION_DATA extern void* __vt__17dEvLib_callback_c[6] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17dEvLib_callback_cFv, - (void*)eventStart__17dEvLib_callback_cFv, - (void*)eventRun__17dEvLib_callback_cFv, - (void*)eventEnd__17dEvLib_callback_cFv, -}; - /* 805A2A34-805A2B5C 000154 0128+00 1/1 0/0 0/0 .text create__14daTagAtkItem_cFv */ int daTagAtkItem_c::create() { - // NONMATCHING -} - -/* 805A2B5C-805A2BA4 00027C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} + fopAcM_ct(this, daTagAtkItem_c); -/* 805A2BA4-805A2BEC 0002C4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} + if (!Create()) { + return cPhs_ERROR_e; + } -/* 805A2BEC-805A2C48 00030C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING + OS_REPORT("攻撃反応アイテム:<%x>\n", fopAcM_GetParam(this)); + return cPhs_COMPLEATE_e; } /* 805A2C48-805A2CA8 000368 0060+00 1/1 0/0 0/0 .text execute__14daTagAtkItem_cFv */ @@ -285,10 +92,8 @@ BOOL daTagAtkItem_c::checkHit() { if (hitobj_p != NULL && (hitobj_p->ChkAtType(AT_TYPE_IRON_BALL) || hitobj_p->ChkAtType(AT_TYPE_BOMB))) { -#ifdef DEBUG // "Attack Reaction Item: Rotate attack hit!\n" - OSReport("攻撃反応アイテム:回転アタックヒット!\n"); -#endif + OS_REPORT("攻撃反応アイテム:回転アタックヒット!\n"); return true; } } @@ -297,12 +102,10 @@ BOOL daTagAtkItem_c::checkHit() { if ((player_p->checkFrontRollCrash() || player_p->checkWolfAttackReverse()) && player_p->current.pos.absXZ(current.pos) < scale.x * 50.0f && - fabsf(player_p->current.pos.y - current.pos.y) < scale.y * 100.0f) + std::fabs(player_p->current.pos.y - current.pos.y) < scale.y * 100.0f) { -#ifdef DEBUG // "Attack Reaction Item: Rotate attack hit!\n" - OSReport("攻撃反応アイテム:回転アタックヒット!\n"); -#endif + OS_REPORT("攻撃反応アイテム:回転アタックヒット!\n"); return true; } @@ -353,54 +156,29 @@ static int daTagAtkItem_Create(daTagAtkItem_c* i_this) { return i_this->create(); } -/* 805A30A0-805A30E8 0007C0 0048+00 1/0 0/0 0/0 .text __dt__17dEvLib_callback_cFv */ -// dEvLib_callback_c::~dEvLib_callback_c() { -extern "C" void __dt__17dEvLib_callback_cFv() { - // NONMATCHING -} - -/* 805A30E8-805A30F0 000808 0008+00 2/0 0/0 0/0 .text eventRun__17dEvLib_callback_cFv */ -// bool dEvLib_callback_c::eventRun() { -extern "C" bool eventRun__17dEvLib_callback_cFv() { - return true; -} - -/* 805A30F0-805A30F8 000810 0008+00 1/0 0/0 0/0 .text eventStart__17dEvLib_callback_cFv - */ -// bool dEvLib_callback_c::eventStart()() { -extern "C" bool eventStart__17dEvLib_callback_cFv() { - return true; -} - -/* 805A30F8-805A3100 000818 0008+00 1/0 0/0 0/0 .text eventEnd__17dEvLib_callback_cFv */ -// bool dEvLib_callback_c::eventEnd() { -extern "C" bool eventEnd__17dEvLib_callback_cFv() { - return true; -} - -/* 805A3100-805A3108 000820 0008+00 1/0 0/0 0/0 .text @1384@eventEnd__14daTagAtkItem_cFv - */ -static void func_805A3100() { - // NONMATCHING -} - -/* 805A3108-805A3110 000828 0008+00 1/0 0/0 0/0 .text @1384@eventStart__14daTagAtkItem_cFv */ -static void func_805A3108() { - // NONMATCHING -} - -/* 805A3110-805A3118 000830 0008+00 1/0 0/0 0/0 .text @1384@__dt__14daTagAtkItem_cFv */ -static void func_805A3110() { - // NONMATCHING -} - -/* 805A3118-805A3278 000838 0160+00 2/1 0/0 0/0 .text __dt__14daTagAtkItem_cFv */ -daTagAtkItem_c::~daTagAtkItem_c() { - // NONMATCHING -} +/* 805A3338-805A3358 -00001 0020+00 1/0 0/0 0/0 .data l_daTagAtkItem_Method */ +static actor_method_class l_daTagAtkItem_Method = { + (process_method_func)daTagAtkItem_Create, + (process_method_func)daTagAtkItem_Delete, + (process_method_func)daTagAtkItem_Execute, + (process_method_func)NULL, + (process_method_func)NULL, +}; -/* 805A3278-805A32C0 000998 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} +/* 805A3358-805A3388 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_AttackItem */ +extern actor_process_profile_definition g_profile_Tag_AttackItem = { + fpcLy_CURRENT_e, + 7, + fpcPi_CURRENT_e, + PROC_Tag_AttackItem, + &g_fpcLf_Method.base, + sizeof(daTagAtkItem_c), + 0, + 0, + &g_fopAc_Method.base, + 585, + &l_daTagAtkItem_Method, + 0x40000, + fopAc_ACTOR_e, + fopAc_CULLBOX_CUSTOM_e, +}; diff --git a/src/d/actor/d_a_title.cpp b/src/d/actor/d_a_title.cpp index a3c49be95a..98b7c1e9c0 100644 --- a/src/d/actor/d_a_title.cpp +++ b/src/d/actor/d_a_title.cpp @@ -68,7 +68,7 @@ daTit_HIO_c::daTit_HIO_c() { mPSPosX = 303.0f; break; case OS_LANGUAGE_FRENCH: - mPSPosX = 304.0f; + mPSPosX = FB_WIDTH / 2; break; } #else |
