mirror of https://github.com/zeldaret/tp.git
d_a_e_yd equivalent (func order) (#2455)
This commit is contained in:
parent
cad890035e
commit
de30e871af
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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); }
|
||||
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in New Issue