From c75634502699efffd5cf7b6a1ee22405f23624eb Mon Sep 17 00:00:00 2001 From: YunataSavior <58997725+YunataSavior@users.noreply.github.com> Date: Sun, 21 Sep 2025 17:30:25 -0700 Subject: [PATCH] d_a_e_zh OK (#2682) Closes #584 --- config/GZ2E01/rels/d_a_e_zh/symbols.txt | 26 ++++++++++++------------ configure.py | 2 +- include/d/actor/d_a_e_zh.h | 2 +- src/d/actor/d_a_e_zh.cpp | 27 ++++++++++++++++--------- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/config/GZ2E01/rels/d_a_e_zh/symbols.txt b/config/GZ2E01/rels/d_a_e_zh/symbols.txt index eff1eebd19e..057473dca49 100644 --- a/config/GZ2E01/rels/d_a_e_zh/symbols.txt +++ b/config/GZ2E01/rels/d_a_e_zh/symbols.txt @@ -6,11 +6,11 @@ __destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:glob __ct__12daE_ZH_HIO_cFv = .text:0x000000EC; // type:function size:0x50 scope:global draw__8daE_ZH_cFv = .text:0x0000013C; // type:function size:0x2D0 scope:global __dt__4cXyzFv = .text:0x0000040C; // type:function size:0x3C scope:global -daE_ZH_Draw__FP8daE_ZH_c = .text:0x00000448; // type:function size:0x20 scope:global +daE_ZH_Draw__FP8daE_ZH_c = .text:0x00000448; // type:function size:0x20 scope:local setBck__8daE_ZH_cFiUcff = .text:0x00000468; // type:function size:0xAC scope:global setActionMode__8daE_ZH_cFii = .text:0x00000514; // type:function size:0xC scope:global -s_BallSearch__FPvPv = .text:0x00000520; // type:function size:0xA0 scope:global -s_BallSearch_Tag__FPvPv = .text:0x000005C0; // type:function size:0x70 scope:global +s_BallSearch__FPvPv = .text:0x00000520; // type:function size:0xA0 scope:local +s_BallSearch_Tag__FPvPv = .text:0x000005C0; // type:function size:0x70 scope:local startDemoCheck__8daE_ZH_cFv = .text:0x00000630; // type:function size:0xE8 scope:global mBallBGCheck__8daE_ZH_cFv = .text:0x00000718; // type:function size:0x264 scope:global mGateOpen__8daE_ZH_cFv = .text:0x0000097C; // type:function size:0x13C scope:global @@ -39,13 +39,13 @@ action__8daE_ZH_cFv = .text:0x00004C44; // type:function size:0x294 scope:global mtx_set__8daE_ZH_cFv = .text:0x00004ED8; // type:function size:0x12C scope:global cc_set__8daE_ZH_cFv = .text:0x00005004; // type:function size:0x3B8 scope:global execute__8daE_ZH_cFv = .text:0x000053BC; // type:function size:0xC4 scope:global -daE_ZH_Execute__FP8daE_ZH_c = .text:0x00005480; // type:function size:0x20 scope:global -daE_ZH_IsDelete__FP8daE_ZH_c = .text:0x000054A0; // type:function size:0x8 scope:global +daE_ZH_Execute__FP8daE_ZH_c = .text:0x00005480; // type:function size:0x20 scope:local +daE_ZH_IsDelete__FP8daE_ZH_c = .text:0x000054A0; // type:function size:0x8 scope:local _delete__8daE_ZH_cFv = .text:0x000054A8; // type:function size:0xDC scope:global -daE_ZH_Delete__FP8daE_ZH_c = .text:0x00005584; // type:function size:0x20 scope:global +daE_ZH_Delete__FP8daE_ZH_c = .text:0x00005584; // type:function size:0x20 scope:local CreateHeap__8daE_ZH_cFv = .text:0x000055A4; // type:function size:0x1E4 scope:global __dt__12J3DFrameCtrlFv = .text:0x00005788; // type:function size:0x48 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x000057D0; // type:function size:0x20 scope:global +useHeapInit__FP10fopAc_ac_c = .text:0x000057D0; // type:function size:0x20 scope:local create__8daE_ZH_cFv = .text:0x000057F0; // type:function size:0x5BC scope:global __ct__8daE_ZH_cFv = .text:0x00005DAC; // type:function size:0x1F4 scope:global __dt__8cM3dGCylFv = .text:0x00005FA0; // type:function size:0x48 scope:global @@ -55,7 +55,7 @@ __dt__10dCcD_GSttsFv = .text:0x00006078; // type:function size:0x5C scope:global __dt__12dBgS_ObjAcchFv = .text:0x000060D4; // type:function size:0x70 scope:global __dt__12dBgS_AcchCirFv = .text:0x00006144; // type:function size:0x70 scope:global __ct__4cXyzFv = .text:0x000061B4; // type:function size:0x4 scope:global -daE_ZH_Create__FP8daE_ZH_c = .text:0x000061B8; // type:function size:0x20 scope:global +daE_ZH_Create__FP8daE_ZH_c = .text:0x000061B8; // type:function size:0x20 scope:local __dt__10cCcD_GSttsFv = .text:0x000061D8; // type:function size:0x48 scope:global __dt__12daE_ZH_HIO_cFv = .text:0x00006220; // type:function size:0x48 scope:global __sinit_d_a_e_zh_cpp = .text:0x00006268; // type:function size:0x3C scope:local @@ -170,7 +170,7 @@ START_EFF_DT$4324 = .rodata:0x00000080; // type:object size:0x58 scope:local @6227 = .rodata:0x00000200; // type:object size:0x8 scope:local @stringBase0 = .rodata:0x00000208; // type:object size:0xD scope:local data:string_table ...data.0 = .data:0x00000000; // type:label scope:local -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local lbl_257_data_10 = .data:0x00000010; // type:object size:0x10 cc_zhSph_src__22@unnamed@d_a_e_zh_cpp@ = .data:0x00000020; // type:object size:0x40 scope:global @@ -181,7 +181,7 @@ cc_zhCyl_at_src__22@unnamed@d_a_e_zh_cpp@ = .data:0x000000A4; // type:object siz effId$5059 = .data:0x00000180; // type:object size:0x8 scope:local data:2byte @5390 = .data:0x00000188; // type:object size:0x34 scope:local @5782 = .data:0x000001BC; // type:object size:0x30 scope:local -l_daE_ZH_Method = .data:0x000001EC; // type:object size:0x20 scope:global +l_daE_ZH_Method = .data:0x000001EC; // type:object size:0x20 scope:local g_profile_E_ZH = .data:0x0000020C; // type:object size:0x30 scope:global __vt__12dBgS_AcchCir = .data:0x0000023C; // type:object size:0xC scope:global __vt__10cCcD_GStts = .data:0x00000248; // type:object size:0xC scope:global @@ -210,10 +210,10 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @1012 = .bss:0x0000003C; // type:object size:0x1 scope:local @1010 = .bss:0x00000040; // type:object size:0x1 scope:local @1009 = .bss:0x00000044; // type:object size:0x1 scope:local -lbl_257_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte +lbl_257_bss_45 = .bss:0x00000045; // type:object size:0x1 scope:local data:byte @3773 = .bss:0x00000048; // type:object size:0xC scope:local -l_HIO = .bss:0x00000054; // type:object size:0x1C scope:global data:byte -mStartFlag = .bss:0x00000070; // type:object size:0x4 scope:global data:4byte +l_HIO = .bss:0x00000054; // type:object size:0x1C scope:local data:byte +mStartFlag = .bss:0x00000070; // type:object size:0x4 scope:local data:4byte @4079 = .bss:0x00000074; // type:object size:0xC scope:local @4082 = .bss:0x00000084; // type:object size:0xC scope:local @4083 = .bss:0x00000090; // type:object size:0xC scope:local diff --git a/configure.py b/configure.py index 414e6d84cca..cbba230fac4 100755 --- a/configure.py +++ b/configure.py @@ -1783,7 +1783,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_ym_tag"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_ymb"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_yr"), - ActorRel(NonMatching, "d_a_e_zh"), + ActorRel(MatchingFor("GZ2E01"), "d_a_e_zh"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_zm"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_zs"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_formation_mng"), diff --git a/include/d/actor/d_a_e_zh.h b/include/d/actor/d_a_e_zh.h index 9ddb99f3906..6fd346033a5 100644 --- a/include/d/actor/d_a_e_zh.h +++ b/include/d/actor/d_a_e_zh.h @@ -53,7 +53,7 @@ public: /* 8082E3E8 */ int _delete(); /* 8082E4E4 */ int CreateHeap(); /* 8082E730 */ cPhs__Step create(); - /* 8082ECEC */ daE_ZH_c() {} + /* 8082ECEC */ daE_ZH_c(); /* 0x5AC */ request_of_phase_process_class mPhase; /* 0x5B4 */ mDoExt_McaMorfSO* mpModelMorf; diff --git a/src/d/actor/d_a_e_zh.cpp b/src/d/actor/d_a_e_zh.cpp index e8b90ebfd44..1b09d1a1b56 100644 --- a/src/d/actor/d_a_e_zh.cpp +++ b/src/d/actor/d_a_e_zh.cpp @@ -342,10 +342,10 @@ bool daE_ZH_c::startDemoCheck() { /* 80829658-808298BC 000718 0264+00 2/2 0/0 0/0 .text mBallBGCheck__8daE_ZH_cFv */ void daE_ZH_c::mBallBGCheck() { - // NONMATCHING mBallHosei.zero(); if (mS_Ball != NULL) { + int i = 0; s16 sVar1 = 0; cXyz spa4, spb0, start; dBgS_LinChk lin_chk; @@ -353,7 +353,7 @@ void daE_ZH_c::mBallBGCheck() { start.set(mS_Ball->current.pos); start.y += 50.0f; - for (int i = 0; i < 8; i++) { + for (i = 0; i < 8; i++) { cMtx_YrotS(*calc_mtx, sVar1); spa4.x = 0.0f; spa4.y = 100.0f; @@ -387,7 +387,7 @@ void daE_ZH_c::mBallBGCheck() { if (mBallHosei.x || mBallHosei.z) { return; } - + sVar1 = 0x2000; } } @@ -396,7 +396,7 @@ void daE_ZH_c::mBallBGCheck() { /* 808298BC-808299F8 00097C 013C+00 3/3 0/0 0/0 .text mGateOpen__8daE_ZH_cFv */ void daE_ZH_c::mGateOpen() { - // NONMATCHING + f32 reg_f31 = 0.0f; switch (field_0x794[2]) { case 0: field_0x77c = 0.0f; @@ -409,7 +409,9 @@ void daE_ZH_c::mGateOpen() { case 2: field_0x7a4 += NREG_F(6) + 5.0f; - cLib_addCalc2(&field_0x77c, NREG_F(7) + 80.0f + (cM_ssin((s16)(field_0x7a4 << 8)) * 40.0f), NREG_F(4) + 0.5f, NREG_F(5) + 10.0f); + reg_f31 = NREG_F(7) + 80.0f; + reg_f31 += cM_ssin((s16)(field_0x7a4 << 8)) * 40.0f; + cLib_addCalc2(&field_0x77c, reg_f31, NREG_F(4) + 0.5f, NREG_F(5) + 10.0f); break; case 3: @@ -458,13 +460,15 @@ bool daE_ZH_c::mReturnLineMove() { cXyz(3950.0f, -725.0f, 352.0f), }; + u32 reg_r28; u32 uVar1 = 0; cXyz sp2c; - switch (fopAcM_GetRoomNo(this)) { + int room_no = fopAcM_GetRoomNo(this); + switch (room_no) { case 1: break; - + case 2: uVar1 = 1; break; @@ -484,7 +488,8 @@ bool daE_ZH_c::mReturnLineMove() { mRetrunStartLine.set(0.0f, 0.0f, -800.0f); } else { mRetrunEndLine.set(mRoomLine_dt[uVar1]); - mRetrunEndLine.z = mRoomLine_dt[uVar1 ^ 1].z; + reg_r28 = uVar1 ^ 1; + mRetrunEndLine.z = mRoomLine_dt[reg_r28].z; mRetrunStartLine.set(mRoomLine_dt[uVar1]); } @@ -493,8 +498,8 @@ bool daE_ZH_c::mReturnLineMove() { sp2c = mRetrunStartLine - current.pos; sp2c.z = 0.0f; cLib_addCalcAngleS2(&mRollAngle, 0x400, 8, 0x40); - cLib_addCalcAngleS2(¤t.angle.y, (s16)sp2c.atan2sX_Z(), 8, mRollAngle); - cLib_addCalcAngleS2(&shape_angle.y, current.angle.y, 8, mRollAngle); + cLib_addCalcAngleS2(¤t.angle.y, (s16) sp2c.atan2sX_Z(), 8, (s16) mRollAngle); + cLib_addCalcAngleS2(&shape_angle.y, (s16) current.angle.y, 8, (s16) mRollAngle); if (fabsf(current.pos.x - mRetrunStartLine.x) < 20.0f) { return true; @@ -2356,6 +2361,8 @@ cPhs__Step daE_ZH_c::create() { return phase; } +daE_ZH_c::daE_ZH_c() {} + /* 8082F0F8-8082F118 0061B8 0020+00 1/0 0/0 0/0 .text daE_ZH_Create__FP8daE_ZH_c */ static int daE_ZH_Create(daE_ZH_c* i_this) { return i_this->create();