mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-09 20:10:37 -04:00
e_th equivalent (#2357)
This commit is contained in:
+1
-1
@@ -1673,7 +1673,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_e_st"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_st_line"),
|
||||
ActorRel(NonMatching, "d_a_e_sw"),
|
||||
ActorRel(NonMatching, "d_a_e_th"),
|
||||
ActorRel(Equivalent, "d_a_e_th"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_th_ball"),
|
||||
ActorRel(NonMatching, "d_a_e_tk"),
|
||||
ActorRel(NonMatching, "d_a_e_tk2"),
|
||||
|
||||
+26
-25
@@ -7,10 +7,7 @@
|
||||
#include "d/d_bg_s_acch.h"
|
||||
|
||||
struct th_ke_s {
|
||||
/* 807B3B58 */ ~th_ke_s();
|
||||
/* 807B3BD4 */ th_ke_s();
|
||||
|
||||
/* 0x000 */ cXyz field_0x0[15];
|
||||
/* 0x000 */ cXyz pos[15];
|
||||
/* 0x0B4 */ cXyz field_0xb4[15];
|
||||
/* 0x168 */ s16 field_0x168;
|
||||
/* 0x16A */ s16 field_0x16a;
|
||||
@@ -37,31 +34,28 @@ public:
|
||||
/* 0x05CC */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x05D0 */ int mAnm;
|
||||
/* 0x05D4 */ u8 field_0x5D4[0x05D8 - 0x05D4];
|
||||
/* 0x05D8 */ f32 field_0x5d8;
|
||||
/* 0x05D8 */ f32 mSpinAnmSpeed;
|
||||
/* 0x05DC */ s16 field_0x5dc;
|
||||
/* 0x05DE */ u8 field_0x5DE[0x05E0 - 0x05DE];
|
||||
/* 0x05E0 */ Z2CreatureEnemy mSound;
|
||||
/* 0x0684 */ s16 field_0x684;
|
||||
/* 0x0684 */ s16 mCounter;
|
||||
/* 0x0686 */ s16 mAction;
|
||||
/* 0x0688 */ u8 field_0x688[0x068A - 0x0688];
|
||||
/* 0x068A */ s8 field_0x68a;
|
||||
/* 0x068B */ u8 field_0x68B[0x068C - 0x068B];
|
||||
/* 0x068C */ f32 mPlayerDist;
|
||||
/* 0x0690 */ s16 mPlayerAngleY;
|
||||
/* 0x0692 */ u8 field_0x692[0x0698 - 0x0692];
|
||||
/* 0x0698 */ u32 mShadowKey;
|
||||
/* 0x069C */ s16 field_0x69c[4];
|
||||
/* 0x069C */ s16 mTimers[4];
|
||||
/* 0x06A4 */ s16 field_0x6a4;
|
||||
/* 0x06A6 */ s16 field_0x6a6;
|
||||
/* 0x06A8 */ cXyz field_0x6a8;
|
||||
/* 0x06B4 */ cXyz field_0x6b4;
|
||||
/* 0x06C0 */ cXyz field_0x6c0;
|
||||
/* 0x06CC */ cXyz field_0x6cc;
|
||||
/* 0x06A8 */ cXyz mHandL_Pos1;
|
||||
/* 0x06B4 */ cXyz mHandL_Pos2;
|
||||
/* 0x06C0 */ cXyz mHandR_Pos1;
|
||||
/* 0x06CC */ cXyz mHandR_Pos2;
|
||||
/* 0x06D8 */ u8 field_0x6D8[0x06E4 - 0x06D8];
|
||||
/* 0x06E4 */ u8 field_0x6e4;
|
||||
/* 0x06E5 */ u8 field_0x6E5[0x06E6 - 0x06E5];
|
||||
/* 0x06E6 */ s16 field_0x6e6;
|
||||
/* 0x06E8 */ s16 field_0x6e8;
|
||||
/* 0x06E4 */ s8 field_0x6e4;
|
||||
/* 0x06E6 */ s16 mHeadRotY;
|
||||
/* 0x06E8 */ s16 mHeadRotZ;
|
||||
/* 0x06EA */ s8 field_0x6ea;
|
||||
/* 0x06EB */ u8 field_0x6EB[0x06F0 - 0x06EB];
|
||||
/* 0x06F0 */ fpc_ProcID mBallID;
|
||||
@@ -70,8 +64,8 @@ public:
|
||||
/* 0x090C */ dCcD_Stts mCcStts;
|
||||
/* 0x0948 */ dCcD_Sph mCcSph[3];
|
||||
/* 0x0CF0 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x0D14 */ cXyz field_0xd14;
|
||||
/* 0x0D20 */ cXyz field_0xd20;
|
||||
/* 0x0D14 */ cXyz mHeadPos;
|
||||
/* 0x0D20 */ cXyz mTailPos;
|
||||
/* 0x0D2C */ s16 mDemoCamMode;
|
||||
/* 0x0D2E */ s16 mDemoCamTimer;
|
||||
/* 0x0D30 */ cXyz mDemoCamEye;
|
||||
@@ -86,13 +80,13 @@ public:
|
||||
/* 0x0D84 */ u8 field_0xD84[0x0D88 - 0x0D84];
|
||||
/* 0x0D88 */ f32 field_0xd88;
|
||||
/* 0x0D8C */ u8 field_0xD8C[0x0D8E - 0x0D8C];
|
||||
/* 0x0D8E */ s8 field_0xd8e;
|
||||
/* 0x0D8F */ s8 field_0xd8f;
|
||||
/* 0x0D90 */ f32 field_0xd90;
|
||||
/* 0x0D8E */ s8 mNoDraw;
|
||||
/* 0x0D8F */ s8 mDoEndColorEff;
|
||||
/* 0x0D90 */ f32 mEndBodyColor;
|
||||
/* 0x0D94 */ u32 field_0xd94;
|
||||
/* 0x0D98 */ u32 field_0xd98;
|
||||
/* 0x0D9C */ th_ke_s field_0xd9c[3];
|
||||
/* 0x1210 */ mDoExt_3DlineMat0_c field_0x1210;
|
||||
/* 0x0D9C */ th_ke_s mKe_s[3];
|
||||
/* 0x1210 */ mDoExt_3DlineMat0_c mKeLineMat;
|
||||
/* 0x122C */ u8 field_0x122C[0x1238 - 0x122C];
|
||||
/* 0x1238 */ u8 mInitHIO;
|
||||
};
|
||||
@@ -100,8 +94,15 @@ public:
|
||||
STATIC_ASSERT(sizeof(e_th_class) == 0x123c);
|
||||
|
||||
class daE_TH_HIO_c {
|
||||
public:
|
||||
/* 807B038C */ daE_TH_HIO_c();
|
||||
/* 807B3FA4 */ ~daE_TH_HIO_c();
|
||||
/* 807B3FA4 */ virtual ~daE_TH_HIO_c() {}
|
||||
|
||||
/* 0x04 */ s8 no;
|
||||
/* 0x08 */ f32 base_size;
|
||||
/* 0x0C */ u8 unk_0xC[0x10 - 0xC];
|
||||
/* 0x10 */ f32 move_range;
|
||||
/* 0x14 */ f32 middle_move_range;
|
||||
};
|
||||
|
||||
#endif /* D_A_E_TH_H */
|
||||
|
||||
+1305
-1253
File diff suppressed because it is too large
Load Diff
@@ -48,7 +48,7 @@ static void chain_draw(e_th_ball_class* i_this) {
|
||||
var_r28++;
|
||||
}
|
||||
|
||||
if (master == NULL || master->field_0xd8e == 0) {
|
||||
if (master == NULL || !master->mNoDraw) {
|
||||
var_r28 = 0;
|
||||
for (int i = i_this->field_0xde8; i < 19; i++) {
|
||||
MtxTrans(i_this->field_0xdec.m_pos[i].x, i_this->field_0xdec.m_pos[i].y, i_this->field_0xdec.m_pos[i].z, 0);
|
||||
@@ -116,8 +116,8 @@ static void chain_control_01(e_th_ball_class* i_this) {
|
||||
dBgS_GndChk gndchk;
|
||||
|
||||
th_chain_s* chain_s = &i_this->field_0x65c;
|
||||
if (master != NULL && fopAcM_GetName(master) == PROC_E_TH && master->field_0xd8e == 0) {
|
||||
chain_s->m_pos[0] = master->field_0x6c0;
|
||||
if (master != NULL && fopAcM_GetName(master) == PROC_E_TH && master->mNoDraw == 0) {
|
||||
chain_s->m_pos[0] = master->mHandR_Pos1;
|
||||
}
|
||||
|
||||
cXyz* pos_p = &chain_s->m_pos[1];
|
||||
@@ -200,7 +200,7 @@ static void chain_control_02(e_th_ball_class* i_this) {
|
||||
cXyz sp3C;
|
||||
|
||||
s8 sp8 = 0;
|
||||
if (master != NULL && master->field_0xd8e != 0) {
|
||||
if (master != NULL && master->mNoDraw != 0) {
|
||||
sp8 = 1;
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ static void chain_control_11(e_th_ball_class* i_this) {
|
||||
dBgS_GndChk gndchk;
|
||||
|
||||
th_chain_2s* chain_s = &i_this->field_0xdec;
|
||||
chain_s->m_pos[0] = master->field_0x6cc;
|
||||
chain_s->m_pos[0] = master->mHandR_Pos2;
|
||||
|
||||
cXyz* pos_p = &chain_s->m_pos[1];
|
||||
csXyz* rot_p = &chain_s->m_rot[1];
|
||||
@@ -340,7 +340,7 @@ static void chain_control_12(e_th_ball_class* i_this) {
|
||||
th_chain_2s* chain_s = &i_this->field_0xdec;
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
|
||||
chain_s->m_pos[19] = master->field_0x6a8;
|
||||
chain_s->m_pos[19] = master->mHandL_Pos1;
|
||||
cXyz* pos_p = &chain_s->m_pos[18];
|
||||
csXyz* rot_p = &chain_s->m_rot[18];
|
||||
|
||||
@@ -395,7 +395,7 @@ static void chain_control_21(e_th_ball_class* i_this) {
|
||||
dBgS_GndChk gndchk;
|
||||
|
||||
th_chain_2s* chain_s = &i_this->field_0x11d8;
|
||||
chain_s->m_pos[0] = master->field_0x6b4;
|
||||
chain_s->m_pos[0] = master->mHandL_Pos2;
|
||||
|
||||
cXyz* pos_p = &chain_s->m_pos[1];
|
||||
cXyz* var_r29 = &chain_s->field_0x230[1];
|
||||
@@ -537,7 +537,7 @@ static void e_th_ball_spin(e_th_ball_class* i_this) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
sp34 = i_this->current.pos - master->field_0x6c0;
|
||||
sp34 = i_this->current.pos - master->mHandR_Pos1;
|
||||
|
||||
if (i_this->mTimers[0] != 0) {
|
||||
cLib_addCalcAngleS2(&i_this->shape_angle.y, cM_atan2s(sp34.x, sp34.z), 1, 0xC00);
|
||||
@@ -566,7 +566,7 @@ static void e_th_ball_spin(e_th_ball_class* i_this) {
|
||||
if (i_this->mMode == 2) {
|
||||
i_this->field_0x15c0 = master->mpModelMorf->getFrame();
|
||||
} else {
|
||||
i_this->field_0x15c0 += master->field_0x5d8;
|
||||
i_this->field_0x15c0 += master->mSpinAnmSpeed;
|
||||
if (i_this->field_0x15c0 >= 29.0f) {
|
||||
i_this->field_0x15c0 -= 29.0f;
|
||||
}
|
||||
@@ -580,9 +580,9 @@ static void e_th_ball_spin(e_th_ball_class* i_this) {
|
||||
MtxPosition(&sp34, &sp28);
|
||||
|
||||
cLib_addCalc2(&i_this->speedF, 1000.0f, 1.0f, 1.0f + YREG_F(15));
|
||||
cLib_addCalc2(&i_this->current.pos.x, master->field_0x6c0.x + sp28.x, 0.5f, i_this->speedF);
|
||||
cLib_addCalc2(&i_this->current.pos.y, master->field_0x6c0.y + sp28.y, 0.1f, 0.02f * i_this->speedF * master->field_0x5d8);
|
||||
cLib_addCalc2(&i_this->current.pos.z, master->field_0x6c0.z + sp28.z, 0.5f, i_this->speedF);
|
||||
cLib_addCalc2(&i_this->current.pos.x, master->mHandR_Pos1.x + sp28.x, 0.5f, i_this->speedF);
|
||||
cLib_addCalc2(&i_this->current.pos.y, master->mHandR_Pos1.y + sp28.y, 0.1f, 0.02f * i_this->speedF * master->mSpinAnmSpeed);
|
||||
cLib_addCalc2(&i_this->current.pos.z, master->mHandR_Pos1.z + sp28.z, 0.5f, i_this->speedF);
|
||||
|
||||
if (master->field_0x68a & 2) {
|
||||
master->field_0x68a &= ~2;
|
||||
@@ -668,7 +668,7 @@ static void e_th_ball_shot(e_th_ball_class* i_this) {
|
||||
if (i_this->speedF > 0.0f) {
|
||||
cLib_addCalc2(&i_this->field_0xde4, 100.0f + JREG_F(0), 1.0f, 30.0f + JREG_F(1));
|
||||
|
||||
sp28 = i_this->current.pos - master->field_0x6c0;
|
||||
sp28 = i_this->current.pos - master->mHandR_Pos1;
|
||||
s16 spE = cM_atan2s(sp28.x, sp28.z);
|
||||
cLib_addCalcAngleS2(&i_this->shape_angle.y, spE, 1, 0x4000);
|
||||
cLib_addCalcAngleS2(&i_this->shape_angle.x, 0, 1, 0x4000);
|
||||
@@ -877,7 +877,7 @@ static void action(e_th_ball_class* i_this) {
|
||||
cLib_addCalc0(&i_this->field_0xde4, 1.0f, 10.0f + JREG_F(1));
|
||||
|
||||
if (i_this->field_0x15c6 == 0) {
|
||||
cXyz sp2C = i_this->current.pos - master->field_0x6c0;
|
||||
cXyz sp2C = i_this->current.pos - master->mHandR_Pos1;
|
||||
|
||||
s16 var_r27 = i_this->field_0xdc8 * (50.0f - ((0.035f + XREG_F(3)) * sp2C.abs()));
|
||||
if (var_r27 < 0) {
|
||||
@@ -928,7 +928,7 @@ static void action(e_th_ball_class* i_this) {
|
||||
|
||||
master->mAction = ACTION_RETURN;
|
||||
master->mMode = 2;
|
||||
master->field_0x69c[0] = JREG_S(4) + 30;
|
||||
master->mTimers[0] = JREG_S(4) + 30;
|
||||
master->mpModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_th", 0x1B), 2, 10.0f, 1.0f, 0.0f, -1.0f);
|
||||
master->mAnm = 0x1B;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user