d_a_e_yd equivalent (func order) (#2455)

This commit is contained in:
Max Roncace 2025-05-25 16:23:41 -04:00 committed by GitHub
parent cad890035e
commit de30e871af
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 1531 additions and 1043 deletions

View File

@ -1,26 +1,98 @@
#ifndef D_A_E_YD_H
#define D_A_E_YD_H
#include "SSystem/SComponent/c_cc_d.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_yd_class
* @brief Twilight Deku Baba
*
* @details
*
*
* @details
*
*/
class e_yd_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x126c - 0x5ac];
class e_yd_class {
public:
/* 0x0 */ fopEn_enemy_c actor;
/* 0x5AC */ request_of_phase_process_class field_0x5ac;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 field_0x5b6;
/* 0x5B7 */ u8 field_0x5b7;
/* 0x5B8 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5BC */ Z2CreatureEnemy mCreatureSound;
/* 0x660 */ mDoExt_brkAnm* mBrkAnm;
/* 0x664 */ s32 field_0x664;
/* 0x668 */ u32 mShadowKey;
/* 0x66C */ s16 field_0x66c;
/* 0x66E */ s16 field_0x66e;
/* 0x670 */ s16 field_0x670;
/* 0x674 */ f32 field_0x674;
/* 0x678 */ cXyz field_0x678;
/* 0x684 */ s16 field_0x684;
/* 0x686 */ u8 field_0x686[0x688 - 0x686];
/* 0x688 */ s16 mAngleToPlayer;
/* 0x68C */ f32 mHomeDistFromPlayer;
/* 0x690 */ s16 field_0x690;
/* 0x694 */ f32 field_0x694;
/* 0x698 */ f32 field_0x698;
/* 0x69C */ s16 field_0x69c[4];
/* 0x6A4 */ cXyz mJointPositions[12];
/* 0x734 */ csXyz mJointRotations[12];
/* 0x77C */ J3DModel* field_0x77c[11];
/* 0x7A8 */ u8 field_0x7a8[0x7dc - 0x7a8];
/* 0x7DC */ f32 field_0x7dc[11];
/* 0x802 */ u8 field_0x808[0x80c - 0x808];
/* 0x80C */ mDoExt_3DlineMat1_c mLineMat;
/* 0x848 */ f32 field_0x848;
/* 0x84C */ f32 field_0x84c;
/* 0x850 */ f32 field_0x850;
/* 0x854 */ u8 field_0x854[0x855 - 0x854];
/* 0x855 */ s8 mLeafRoomNo;
/* 0x856 */ s8 field_0x856;
/* 0x858 */ f32 field_0x858;
/* 0x85C */ u8 field_0x85c[0x864 - 0x85C];
/* 0x864 */ dCcD_Stts mStts;
/* 0x8A0 */ dCcD_Sph field_0x8a0;
/* 0x9D8 */ dCcD_Sph field_0x9d8;
/* 0xB10 */ s8 field_0xb10;
/* 0xB11 */ s8 field_0xb11;
/* 0xB14 */ dCcD_Sph field_0xb14[4];
/* 0xFF4 */ dCcU_AtInfo field_0xff4;
/* 0x1018 */ dBgS_AcchCir field_0x1018;
/* 0x1058 */ dBgS_ObjAcch field_0x1058;
/* 0x1230 */ fpc_ProcID mLeafId;
/* 0x1234 */ s8 field_0x1234;
/* 0x1235 */ s8 field_0x1235;
/* 0x1238 */ u32 field_0x1238[3];
/* 0x1244 */ s32 field_0x1244;
/* 0x1248 */ s32 field_0x1248;
/* 0x124C */ s32 field_0x124c;
/* 0x1250 */ f32 field_0x1250;
/* 0x1254 */ u8 field_0x1254[0x1268 - 0x1254];
/* 0x1268 */ u8 field_0x1268;
};
STATIC_ASSERT(sizeof(e_yd_class) == 0x126c);
class daE_YD_HIO_c {
/* 807F2C2C */ daE_YD_HIO_c();
/* 807F74CC */ ~daE_YD_HIO_c();
public:
daE_YD_HIO_c();
virtual ~daE_YD_HIO_c() {}
/* 0x4 */ s8 field_0x4;
/* 0x8 */ f32 field_0x8;
/* 0xC */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ s16 field_0x14;
/* 0x16 */ s16 field_0x16;
/* 0x18 */ u8 field_0x18;
};
STATIC_ASSERT(sizeof(daE_YD_HIO_c) == 0x1c);
#endif /* D_A_E_YD_H */

View File

@ -330,7 +330,7 @@ public:
FLG0_UNK_100000 = 0x100000,
FLG0_UNK_80000 = 0x80000,
FLG0_UNK_40000 = 0x40000,
FLG0_UNK_20000 = 0x20000,
FLG0_DK_CAUGHT = 0x20000,
FLG0_UNK_10000 = 0x10000,
FLG0_UNK_8000 = 0x8000,
FLG0_UNK_4000 = 0x4000,
@ -347,13 +347,14 @@ public:
FLG0_MIDNA_RIDE = 4,
FLG0_UNK_2 = 2,
FLG0_HVY_STATE = FLG0_UNK_40000000 | FLG0_EQUIP_HVY_BOOTS | FLG0_UNK_20000,
FLG0_HVY_STATE = FLG0_UNK_40000000 | FLG0_EQUIP_HVY_BOOTS | FLG0_DK_CAUGHT,
FLG0_UNK_14000 = 0x14000,
FLG0_UNK_10400 = 0x10400,
FLG0_UNK_18 = FLG0_UNK_10 | FLG0_UNK_8,
};
enum daPy_FLG1 {
FLG1_UNK_80000000 = 0x80000000,
FLG1_ICE_FREEZE = 0x40000000,
FLG1_UNK_20000000 = 0x20000000,
FLG1_UNK_10000000 = 0x10000000,
@ -382,7 +383,7 @@ public:
FLG1_UNK_8 = 8,
FLG1_UNK_4 = 4,
FLG1_UNK_2 = 2,
FLG1_UNK_1 = 1,
FLG1_DK_CAUGHT = 1,
FLG1_UNK_1800 = 0x1800,
FLG1_UNK_10100000 = FLG1_UNK_10000000 | FLG1_UNK_100000,
@ -703,6 +704,8 @@ public:
cXyz getRightHandPos() const { return mRightHandPos; }
const cXyz getLeftHandPos() const { return mLeftHandPos; }
const cXyz getItemPos() const { return mItemPos; }
bool getDkCaught() const { return checkNoResetFlg1(FLG1_DK_CAUGHT); }
bool getStCaught() const { return checkNoResetFlg1(FLG1_UNK_80000000); }
virtual cXyz* getMidnaAtnPos() const { return NULL; }
virtual void setMidnaMsgNum(fopAc_ac_c*, u16) {}
@ -1047,7 +1050,8 @@ public:
void offPressedDamage() { offNoResetFlg2(FLG2_PRESSED_DAMAGE); }
void onForceSubjectCancel() { onEndResetFlg0(ERFLG0_FORCE_SUBJECT_CANCEL); }
void onEnemyDead() { onEndResetFlg0(ERFLG0_ENEMY_DEAD); }
void offDkCaught2() { offNoResetFlg0(FLG0_UNK_20000); }
void offDkCaught() { offNoResetFlg1(FLG1_DK_CAUGHT); }
void offDkCaught2() { offNoResetFlg0(FLG0_DK_CAUGHT); }
void onWaterFallFrontHit() { onEndResetFlg1(ERFLG1_UNK_800); }
void onCanoeItemCancel() { onEndResetFlg1(ERFLG1_UNK_20000000); }

View File

@ -7060,7 +7060,7 @@ int daAlink_c::setUpperAnime(u16 i_anmResID, daAlink_c::daAlink_UPPER param_1, f
}
if (checkDkCaught2Anime()) {
offNoResetFlg0(FLG0_UNK_20000);
offNoResetFlg0(FLG0_DK_CAUGHT);
}
J3DAnmTransform* var_r30 = getAnimeResource(&mUpperAnmHeap[param_1], i_anmResID, 0x2C00);
@ -7131,7 +7131,7 @@ int daAlink_c::resetUpperAnime(daAlink_c::daAlink_UPPER param_0, f32 param_1) {
}
if (checkDkCaught2Anime()) {
offNoResetFlg0(FLG0_UNK_20000);
offNoResetFlg0(FLG0_DK_CAUGHT);
} else if (checkWolfEnemyThrowAnime()) {
resetWolfEnemyBiteAll();
}
@ -11097,7 +11097,7 @@ BOOL daAlink_c::checkUpperItemAction() {
field_0x30f6 -= daAlinkHIO_damCaught_c0::m.field_0x16;
}
if (field_0x30f6 < 0 || !checkNoResetFlg0(FLG0_UNK_20000)) {
if (field_0x30f6 < 0 || !checkNoResetFlg0(FLG0_DK_CAUGHT)) {
voiceStart(Z2SE_AL_V_ZENTEN_FAIL_2);
if (mLinkAcch.ChkGroundHit()) {

View File

@ -31,8 +31,8 @@ bool daAlink_c::checkMiddleBossGoronRoom() {
/* 800D6DF0-800D6E24 0D1730 0034+00 1/0 0/0 0/0 .text setDkCaught__9daAlink_cFP10fopAc_ac_c */
void daAlink_c::setDkCaught(fopAc_ac_c* param_0) {
if (!checkNoResetFlg1(FLG1_UNK_1)) {
onNoResetFlg1(FLG1_UNK_1);
if (!checkNoResetFlg1(FLG1_DK_CAUGHT)) {
onNoResetFlg1(FLG1_DK_CAUGHT);
field_0x28f8 = fopAcM_GetID(param_0);
}
}
@ -363,12 +363,12 @@ void daAlink_c::damageTimerCount() {
}
mDamageTimer--;
if (mProcID != PROC_DK_CAUGHT && checkNoResetFlg1(FLG1_UNK_1)) {
offNoResetFlg1(FLG1_UNK_1);
if (mProcID != PROC_DK_CAUGHT && checkNoResetFlg1(FLG1_DK_CAUGHT)) {
offNoResetFlg1(FLG1_DK_CAUGHT);
}
if (!checkDkCaught2Anime() && checkNoResetFlg0(FLG0_UNK_20000)) {
offNoResetFlg0(FLG0_UNK_20000);
if (!checkDkCaught2Anime() && checkNoResetFlg0(FLG0_DK_CAUGHT)) {
offNoResetFlg0(FLG0_DK_CAUGHT);
}
} else if (mDamageColorTime != 0) {
mDamageColorTime--;
@ -431,22 +431,22 @@ BOOL daAlink_c::checkDamageAction() {
}
if (checkEventRun()) {
offNoResetFlg1(FLG1_UNK_1);
offNoResetFlg0(FLG0_UNK_20000);
offNoResetFlg1(FLG1_DK_CAUGHT);
offNoResetFlg0(FLG0_DK_CAUGHT);
return 0;
}
if (checkNoResetFlg1(FLG1_UNK_1)) {
if (checkNoResetFlg1(FLG1_DK_CAUGHT)) {
if (!checkModeFlg(0x70C52) && !checkWolf() && procDkCaughtInit(field_0x28f8)) {
return 1;
}
if (mProcID != PROC_DK_CAUGHT) {
offNoResetFlg1(FLG1_UNK_1);
offNoResetFlg1(FLG1_DK_CAUGHT);
}
}
if (checkNoResetFlg0(FLG0_UNK_20000)) {
if (checkNoResetFlg0(FLG0_DK_CAUGHT)) {
if ((!checkModeFlg(0x70C52)) && (!checkWolf()) && (!checkDkCaught2Anime())) {
setUpperAnimeBase(getMainBckData(ANM_HORSE_WAIT_D_B)->m_underID);
setFacePriAnime(ANM_HORSE_WAIT_D_B);
@ -458,7 +458,7 @@ BOOL daAlink_c::checkDamageAction() {
}
if (!checkDkCaught2Anime()) {
offNoResetFlg0(FLG0_UNK_20000);
offNoResetFlg0(FLG0_DK_CAUGHT);
}
}
@ -1805,7 +1805,7 @@ int daAlink_c::procDkCaughtInit(fpc_ProcID param_0) {
}
setSingleAnimeBase(ANM_WAIT_D_B);
onNoResetFlg1(FLG1_UNK_1);
onNoResetFlg1(FLG1_DK_CAUGHT);
field_0x28f8 = param_0;
mNormalSpeed = 0.0f;
@ -1823,7 +1823,7 @@ int daAlink_c::procDkCaughtInit(fpc_ProcID param_0) {
/* 800DB860-800DBC98 0D61A0 0438+00 1/0 0/0 0/0 .text procDkCaught__9daAlink_cFv */
int daAlink_c::procDkCaught() {
fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x28f8);
if (temp_r3 == NULL || !checkNoResetFlg1(FLG1_UNK_1)) {
if (temp_r3 == NULL || !checkNoResetFlg1(FLG1_DK_CAUGHT)) {
voiceStart(Z2SE_AL_V_ZENTEN_FAIL_2);
return procFrontRollSuccessInit();
}

View File

@ -829,7 +829,7 @@ static int daE_RB_Create(fopAc_ac_c* i_this) {
if (!l_HIOInit) {
a_this->HIOInit = TRUE;
l_HIOInit = TRUE;
l_HIO.id = mDoHIO_CREATE_CHILD("リーバ", &l_HIO);
//l_HIO.id = mDoHIO_CREATE_CHILD("リーバ", &l_HIO);
}
i_this->attention_info.flags = 4;

File diff suppressed because it is too large Load Diff