d_a_b_ds and d_a_e_vt equivalent (#2424)

This commit is contained in:
YunataSavior 2025-05-07 10:06:19 -07:00 committed by GitHub
parent 38c42522d5
commit eddbe73928
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 38 additions and 126 deletions

View File

@ -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"),

View File

@ -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<f32>& 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<f32>& direction) {
mLocalDir.set(direction);
}

View File

@ -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(&param_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];

View File

@ -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;
}

View File

@ -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 */

View File

@ -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(&current.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);