From eddbe739280043241a2b9362be02d388cf92174d Mon Sep 17 00:00:00 2001 From: YunataSavior <58997725+YunataSavior@users.noreply.github.com> Date: Wed, 7 May 2025 10:06:19 -0700 Subject: [PATCH] d_a_b_ds and d_a_e_vt equivalent (#2424) --- configure.py | 4 +- include/JSystem/JParticle/JPAEmitter.h | 9 +-- include/d/d_bg_s.h | 2 +- src/d/actor/d_a_b_ds.cpp | 92 +++----------------------- src/d/actor/d_a_b_mgn.cpp | 27 +++++--- src/d/actor/d_a_e_vt.cpp | 30 ++------- 6 files changed, 38 insertions(+), 126 deletions(-) diff --git a/configure.py b/configure.py index b3abc9d0eee..8a822f562ee 100755 --- a/configure.py +++ b/configure.py @@ -1605,7 +1605,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_b_bq"), ActorRel(Equivalent, "d_a_b_dr"), # weak func order ActorRel(Equivalent, "d_a_b_dre"), # weak func order - ActorRel(NonMatching, "d_a_b_ds"), + ActorRel(Equivalent, "d_a_b_ds"), ActorRel(NonMatching, "d_a_b_gg"), ActorRel(NonMatching, "d_a_b_gm"), ActorRel(NonMatching, "d_a_b_gnd"), @@ -1705,7 +1705,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_e_tk2"), ActorRel(MatchingFor("GZ2E01"), "d_a_e_tk_ball"), ActorRel(NonMatching, "d_a_e_tt"), - ActorRel(NonMatching, "d_a_e_vt"), + ActorRel(Equivalent, "d_a_e_vt"), ActorRel(NonMatching, "d_a_e_warpappear"), ActorRel(NonMatching, "d_a_e_wb"), ActorRel(NonMatching, "d_a_e_ws"), diff --git a/include/JSystem/JParticle/JPAEmitter.h b/include/JSystem/JParticle/JPAEmitter.h index 063b7c1fbcb..f7a3f85f854 100644 --- a/include/JSystem/JParticle/JPAEmitter.h +++ b/include/JSystem/JParticle/JPAEmitter.h @@ -127,10 +127,7 @@ public: void setGlobalRTMatrix(const Mtx m) { JPASetRMtxTVecfromMtx(m, mGlobalRot, &mGlobalTrs); } void setGlobalSRTMatrix(const Mtx m) { JPASetRMtxSTVecfromMtx(m, mGlobalRot, &mGlobalScl, &mGlobalTrs); - - // set is actually used here in debug - mGlobalPScl.x = mGlobalScl.x; - mGlobalPScl.y = mGlobalScl.y; + mGlobalPScl.set(mGlobalScl.x, mGlobalScl.y); } void setGlobalTranslation(f32 x, f32 y, f32 z) { mGlobalTrs.set(x, y, z); } void setGlobalTranslation(const JGeometry::TVec3& trs) { mGlobalTrs.set(trs); } @@ -170,10 +167,6 @@ public: mGlobalScl.set(scale); mGlobalPScl.set(scale.x ,scale.y); } - void setGlobalSRTMatrix(const MtxP matrix) { - JPASetRMtxSTVecfromMtx(matrix, mGlobalRot, &mGlobalScl, &mGlobalTrs); - mGlobalPScl.set(mGlobalScl.x, mGlobalScl.y); - } void setDirection(const JGeometry::TVec3& direction) { mLocalDir.set(direction); } diff --git a/include/d/d_bg_s.h b/include/d/d_bg_s.h index 6cbed515484..f13c0a2b804 100644 --- a/include/d/d_bg_s.h +++ b/include/d/d_bg_s.h @@ -138,7 +138,7 @@ public: bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); } u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(¶m_0); } void DebugDrawPoly(dBgW_Base *param_1) {} - fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) { return cBgS::GetActorPointer(param_0); } + fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) const { return cBgS::GetActorPointer(param_0); } #ifdef DEBUG /* 0x1404 */ u8 field_0x1404[0x1408 - 0x1404]; diff --git a/src/d/actor/d_a_b_ds.cpp b/src/d/actor/d_a_b_ds.cpp index 99373f2b736..34e98953a77 100644 --- a/src/d/actor/d_a_b_ds.cpp +++ b/src/d/actor/d_a_b_ds.cpp @@ -14,6 +14,8 @@ #include "JSystem/J3DGraphBase/J3DMaterial.h" #include "SSystem/SComponent/c_math.h" #include "c/c_damagereaction.h" +UNK_REL_DATA; +#include "f_op/f_op_actor_enemy.h" enum daB_DS_Joint { DS_JNT_BACKBONE1, @@ -76,56 +78,6 @@ enum daB_DS_head_Joint { DS_HEAD_JNT_JAW, }; -/* 805DD248-805DD254 000000 000C+00 4/4 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 805DD254-805DD268 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop - -/* 805DD268-805DD270 000020 0008+00 0/0 0/0 0/0 .data e_prim$3811 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 e_prim[8] = { - 0xFF, 0x78, 0x00, 0x00, 0xFF, 0x64, 0x78, 0x00, -}; -#pragma pop - -/* 805DD270-805DD278 000028 0008+00 0/0 0/0 0/0 .data e_env$3812 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 e_env[8] = { - 0x5A, 0x2D, 0x2D, 0x00, 0x3C, 0x1E, 0x1E, 0x00, -}; -#pragma pop - -/* 805DD278-805DD280 000030 0006+02 0/0 0/0 0/0 .data eff_id$3820 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 eff_id[6 + 2 /* padding */] = { - 0x02, - 0x9D, - 0x02, - 0x9E, - 0x02, - 0x9F, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - namespace { /* 805DD280-805DD2C0 000038 0040+00 0/1 0/0 0/0 .data cc_ds_week_src__22@unnamed@d_a_b_ds_cpp@ */ static dCcD_SrcSph cc_ds_week_src = { @@ -223,31 +175,6 @@ static dCcD_SrcSph cc_ds_breath_at_src = { }; }; // namespace -f32 dummyLiteral0() { - f32 temp = 100.0f; - - f32 temp_0 = 0.0f; - temp += temp_0; - temp += 1.0f; - return temp; -} - -f64 dummyLiteral1() { - return 0.5; -} - -f64 dummyLiteral2() { - return 3.0; -} - -f64 dummyLiteral3() { - return 0.0; -} - -f32 dummyLiteral4() { - return 0.01f; -} - /* 805CB22C-805CB314 0000EC 00E8+00 1/1 0/0 0/0 .text __ct__12daB_DS_HIO_cFv */ daB_DS_HIO_c::daB_DS_HIO_c() { field_0x04 = -1; @@ -1360,7 +1287,6 @@ bool daB_DS_c::doYoMessage() { } /* 805CDAC0-805CFA08 002980 1F48+00 2/1 0/0 0/0 .text executeOpeningDemo__8daB_DS_cFv */ -// r25 / r25 swap void daB_DS_c::executeOpeningDemo() { camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); daPy_py_c* pla = daPy_getPlayerActorClass(); @@ -2476,7 +2402,7 @@ void daB_DS_c::executeDamage() { mCameraCenter = down_center_dt[3]; mCameraEye = down_eye_dt[3]; camera->mCamera.Set(mCameraCenter, mCameraEye); - dComIfGp_getVibration().StartShock(5, 0x1f, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartQuake(5, 0x1f, cXyz(0.0f, 1.0f, 0.0f)); mModeTimer = 30; mMode++; @@ -5367,7 +5293,6 @@ void daB_DS_c::mBattle2_cc_set() { } /* 805DADC4-805DB184 00FC84 03C0+00 1/1 0/0 0/0 .text execute__8daB_DS_cFv */ -// extra extsh int daB_DS_c::execute() { if (arg0 == TYPE_BULLET_A || arg0 == TYPE_BULLET_B || arg0 == TYPE_BULLET_C) { mBulletAction(); @@ -5386,20 +5311,23 @@ int daB_DS_c::execute() { return 1; } - handR_ang = -4000; - handL_ang = -4000; + handR_ang = -(4000.0f + BREG_F(15)); + handL_ang = -(4000.0f + BREG_F(15)); mtx_set(); + u8 unused_bool = 0; + cXyz jnt_pos; dBgS_GndChk gnd_chk; - cXyz jnt_pos, chk_pos; + cXyz unused_0, chk_pos, unused_1; J3DModel* model = mpMorf->getModel(); s8 var_r25; int i = 0; if (!mIsOpeningDemo) { - s16 hand_x_ang_target = (s16)(mBackboneLevel * 1000) - 6000; + s16 hand_x_ang_target = -6000; + hand_x_ang_target += (s16)(mBackboneLevel * 1000); if (handX_ang > -4000) { handX_ang = -4000; } diff --git a/src/d/actor/d_a_b_mgn.cpp b/src/d/actor/d_a_b_mgn.cpp index 953b33d8875..a97d5393163 100644 --- a/src/d/actor/d_a_b_mgn.cpp +++ b/src/d/actor/d_a_b_mgn.cpp @@ -1164,7 +1164,7 @@ void daB_MGN_c::executeDash() { switch (mMoveMode) { case 10: - case 11: + case 11: { cXyz gate_offset(0.0f, 0.0f, -800.0f); cXyz player_pos(player->current.pos); @@ -1218,6 +1218,7 @@ void daB_MGN_c::executeDash() { } } break; + } case 12: if (field_0xa9c == 0) { if (field_0xaff >= 5) { @@ -1246,9 +1247,7 @@ void daB_MGN_c::executeDash() { field_0xaac = 20; field_0xa9c = 21; mJewelColorMode = 1; - gravity = 0.0f; - speed.y = 0.0f; - speedF = 0.0f; + speedF = speed.y = gravity = 0.0f; if (field_0xb10 != -1) { current.angle.y = shape_angle.y = mGdgateAngle[field_0xb10]; @@ -1393,9 +1392,9 @@ void daB_MGN_c::executeDash() { } if ((s16)(mAcchCir.GetWallAngleY() - shape_angle.y) < 0) { - shape_angle.y += 0x100; + shape_angle.y += (s16) 0x100; } else { - shape_angle.y += -0x100; + shape_angle.y += (s16) -0x100; } current.angle.y = shape_angle.y; @@ -1406,6 +1405,7 @@ void daB_MGN_c::executeDash() { field_0x20f4[0].OffTgSetBit(); mAtSph.OffAtSetBit(); setActionMode(ACTION_CIRCLE_e, field_0xb03); + break; } } } @@ -1417,7 +1417,7 @@ void daB_MGN_c::executeDash() { cXyz sp30; mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::YrotM(shape_angle.y); - mDoMtx_stack_c::transM(0.0f, 0.0f, 1000.0f); + mDoMtx_stack_c::transM(0.0f, 0.0f, 1000.0f + nREG_F(10)); mDoMtx_stack_c::multVecZero(&sp30); dComIfGp_particle_set(0x8c1c, &sp30, &tevStr, &shape_angle, 0); @@ -1445,7 +1445,7 @@ void daB_MGN_c::executeDash() { mAtSph.SetAtAtp(2); current.angle.y = shape_angle.y; speedF = l_HIO.dash_speed; - case 6: + case 6: { if (mpMgnBtk->isStop()) { setBloodEffect(); } @@ -1468,6 +1468,17 @@ void daB_MGN_c::executeDash() { } break; } + case 8: + case 9: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 7: + break; + } } /* 80609D70-8060A670 004730 0900+00 2/1 0/0 0/0 .text executeThrown__9daB_MGN_cFv */ diff --git a/src/d/actor/d_a_e_vt.cpp b/src/d/actor/d_a_e_vt.cpp index cc14dbbe73a..2bdfd66d9c1 100644 --- a/src/d/actor/d_a_e_vt.cpp +++ b/src/d/actor/d_a_e_vt.cpp @@ -12,6 +12,7 @@ #include "d/d_com_inf_game.h" #include "d/d_s_play.h" #include "d/d_camera.h" +UNK_REL_DATA; #include "f_op/f_op_actor_enemy.h" #define WL_CUT_TYPE_SMALL 1 @@ -74,21 +75,6 @@ enum daE_VA_JOINT { JNT_TAIL_CLOTH_04, }; -/* 807CEF08-807CEF14 000000 000C+00 3/3 0/0 0/0 .data cNullVec__6Z2Calc */ -static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 807CEF14-807CEF28 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; - namespace { @@ -1900,7 +1886,6 @@ void daE_VA_c::executeClearWait() { } /* 807C7640-807C783C 005140 01FC+00 1/1 0/0 0/0 .text executeClearChase__8daE_VA_cFv */ -// NONMATCHING load order void daE_VA_c::executeClearChase() { cLib_addCalc(¤t.pos.y, 0.0f, 0.1f, 10.0f, 1.0f); @@ -1926,7 +1911,7 @@ void daE_VA_c::executeClearChase() { } } - if (speedF != 0.0f) { + if (speedF) { if (!checkBck(ANM_INVI_WALK_e)) { setBck(ANM_INVI_WALK_e, J3DFrameCtrl::EMode_LOOP, 10.0f, 1.0f); } @@ -3817,7 +3802,6 @@ static int daE_VA_Delete(daE_VA_c* i_this) { } /* 807CD048-807CD600 00AB48 05B8+00 1/1 0/0 0/0 .text CreateHeap__8daE_VA_cFv */ -// NONMATCHING weird data issue / reg alloc (probably related) int daE_VA_c::CreateHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x33); JUT_ASSERT(0, modelData != 0); @@ -3898,9 +3882,8 @@ int daE_VA_c::CreateHeap() { } f32* size_p = field_0x139c.getSize(0); - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 5; i++, size_p++) { *size_p = 5.0f; - size_p++; } if (!mRope.init(11, 10, (ResTIMG*)dComIfG_getObjectRes("E_VA", 0x3E), 1)) { @@ -3910,15 +3893,12 @@ int daE_VA_c::CreateHeap() { for (int i = 0; i < 11; i++) { f32* size_p = mRope.getSize(i); - for (int j = 0; j < 10; j++) { - *size_p = 5.0f; - size_p++; + for (int j = 0; j < 10; ++j, size_p++) { + *size_p = 2.0f; } } for (int i = 0; i < 40; i++) { - J3DModelData* modelData; - switch (va_tag_set_size[i]) { case 0: modelData = (J3DModelData*)dComIfG_getObjectRes("E_VA", 0x34);