mirror of https://github.com/zeldaret/tp.git
d_a_bd Matching (#2560)
* Matching daPoFire * Adressed comments * Matching text * Some cleanup * Adressed review comments, added CUT_TYPE_NONE in cut type enum
This commit is contained in:
parent
ec9e4cf268
commit
c32789eb60
|
@ -131,7 +131,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
|
||||||
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
|
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
|
||||||
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
|
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
|
||||||
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
|
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
|
||||||
lbl_60_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
|
l_HIOInit = .bss:0x00000045; // type:object size:0x1 data:byte
|
||||||
@3937 = .bss:0x00000048; // type:object size:0xC scope:local
|
@3937 = .bss:0x00000048; // type:object size:0xC scope:local
|
||||||
l_HIO = .bss:0x00000054; // type:object size:0x20 scope:global data:byte
|
l_HIO = .bss:0x00000054; // type:object size:0x20 scope:global data:byte
|
||||||
@3946 = .bss:0x00000074; // type:object size:0xC scope:local
|
@3946 = .bss:0x00000074; // type:object size:0xC scope:local
|
||||||
|
|
|
@ -131,7 +131,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
|
||||||
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
|
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
|
||||||
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
|
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
|
||||||
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
|
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
|
||||||
lbl_60_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
|
l_HIOInit = .bss:0x00000045; // type:object size:0x1 data:byte
|
||||||
@3937 = .bss:0x00000048; // type:object size:0xC scope:local
|
@3937 = .bss:0x00000048; // type:object size:0xC scope:local
|
||||||
l_HIO = .bss:0x00000054; // type:object size:0x20 scope:global data:byte
|
l_HIO = .bss:0x00000054; // type:object size:0x20 scope:global data:byte
|
||||||
@3946 = .bss:0x00000074; // type:object size:0xC scope:local
|
@3946 = .bss:0x00000074; // type:object size:0xC scope:local
|
||||||
|
|
|
@ -147,7 +147,7 @@ lbl_58_data_4B0 = .data:0x000004B0; // type:object size:0x24
|
||||||
@122173 = .data:0x00000698; // type:object size:0xC scope:local
|
@122173 = .data:0x00000698; // type:object size:0xC scope:local
|
||||||
@122174 = .data:0x000006BC; // type:object size:0x11 scope:local data:string
|
@122174 = .data:0x000006BC; // type:object size:0x11 scope:local data:string
|
||||||
@122175 = .data:0x000006E4; // type:object size:0xD scope:local data:string
|
@122175 = .data:0x000006E4; // type:object size:0xD scope:local data:string
|
||||||
lbl_58_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
l_HIOInit = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||||
l_HIO = .bss:0x00000008; // type:object size:0x20 scope:global data:byte
|
l_HIO = .bss:0x00000008; // type:object size:0x20 scope:global data:byte
|
||||||
land_sp_pos = .bss:0x00000028; // type:object size:0x30 scope:global
|
land_sp_pos = .bss:0x00000028; // type:object size:0x30 scope:global
|
||||||
rope_pt = .bss:0x00000058; // type:object size:0x4 scope:global data:4byte
|
rope_pt = .bss:0x00000058; // type:object size:0x4 scope:global data:4byte
|
||||||
|
|
|
@ -1537,7 +1537,7 @@ config.libs = [
|
||||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_attention"),
|
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_attention"),
|
||||||
ActorRel(MatchingFor("GZ2E01"), "d_a_alldie"),
|
ActorRel(MatchingFor("GZ2E01"), "d_a_alldie"),
|
||||||
ActorRel(MatchingFor("GZ2E01"), "d_a_andsw2"),
|
ActorRel(MatchingFor("GZ2E01"), "d_a_andsw2"),
|
||||||
ActorRel(NonMatching, "d_a_bd"),
|
ActorRel(Equivalent, "d_a_bd"), # weak func order
|
||||||
ActorRel(MatchingFor("GZ2E01"), "d_a_canoe"),
|
ActorRel(MatchingFor("GZ2E01"), "d_a_canoe"),
|
||||||
ActorRel(MatchingFor("GZ2E01"), "d_a_cstaF"),
|
ActorRel(MatchingFor("GZ2E01"), "d_a_cstaF"),
|
||||||
ActorRel(MatchingFor("GZ2E01"), "d_a_demo_item"),
|
ActorRel(MatchingFor("GZ2E01"), "d_a_demo_item"),
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef D_A_BD_H
|
#ifndef D_A_BD_H
|
||||||
#define D_A_BD_H
|
#define D_A_BD_H
|
||||||
|
|
||||||
|
#include "d/d_bg_s_acch.h"
|
||||||
|
#include "d/d_cc_d.h"
|
||||||
#include "f_op/f_op_actor_mng.h"
|
#include "f_op/f_op_actor_mng.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,18 +13,95 @@
|
||||||
* @details Used by birds that sit on Coro's head.
|
* @details Used by birds that sit on Coro's head.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class bd_class : public fopEn_enemy_c {
|
|
||||||
private:
|
enum da_BD_ANM {
|
||||||
/* 0x5ac */ u8 field_0x5ac[0x9ec - 0x5ac];
|
ANM_FLY = 5,
|
||||||
|
ANM_KAKKU,
|
||||||
|
ANM_KAKKU1,
|
||||||
|
ANM_PITA_DOWN,
|
||||||
|
ANM_PITA_LEFTUP,
|
||||||
|
ANM_PITA_RIGHT,
|
||||||
|
ANM_PYON,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum Action_bd {
|
||||||
|
ACT_GROUND = 0,
|
||||||
|
ACT_FLY = 1,
|
||||||
|
ACT_DROP = 2,
|
||||||
|
ACT_LANDING = 3,
|
||||||
|
ACT_LANDING2 = 4,
|
||||||
|
ACT_LANDING3 = 5,
|
||||||
|
ACT_ROPE = 6,
|
||||||
|
ACT_KKRI = 7,
|
||||||
|
};
|
||||||
|
|
||||||
|
class bd_class {
|
||||||
|
public:
|
||||||
|
/* 0x000 */ fopEn_enemy_c enemy;
|
||||||
|
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||||
|
/* 0x5B4 */ u8 field_0x5B4;
|
||||||
|
/* 0x5B5 */ u8 field_0x5B5;
|
||||||
|
/* 0x5B6 */ u8 field_0x5B6;
|
||||||
|
/* 0x5B7 */ u8 field_0x5B7;
|
||||||
|
/* 0x5B8 */ u8 field_0x5B8;
|
||||||
|
/* 0x5B9 */ u8 field_0x5B9;
|
||||||
|
/* 0x5B8 */ char pad5B8[0x8]; // Padding
|
||||||
|
/* 0x5C2 */ s8 field_0x5C2;
|
||||||
|
/* 0x5C4 */ cXyz field_0x5C4;
|
||||||
|
/* 0x5D0 */ s16 mTargetAngleY;
|
||||||
|
/* 0x5D4 */ actor_place* field_0x5D4;
|
||||||
|
/* 0x5D8 */ s16 field_0x5D8;
|
||||||
|
/* 0x5DC */ f32 field_0x5DC;
|
||||||
|
/* 0x5E0 */ f32 field_0x5E0;
|
||||||
|
/* 0x5E4 */ mDoExt_McaMorf* mpMorf;
|
||||||
|
/* 0x5E8 */ mDoExt_btkAnm* mpBtk;
|
||||||
|
/* 0x5EC */ s8 field_0x5EC;
|
||||||
|
/* 0x5F0 */ s32 mAnmID;
|
||||||
|
/* 0x5F4 */ s16 mChirpDist;
|
||||||
|
/* 0x5F8 */ Z2SoundObjSimple mSound;
|
||||||
|
/* 0x618 */ s16 field_0x618;
|
||||||
|
/* 0x61A */ s16 mActionID;
|
||||||
|
/* 0x61C */ s16 field_0x61C;
|
||||||
|
/* 0x61E */ s16 field_0x61E;
|
||||||
|
/* 0x620 */ f32 field_0x620;
|
||||||
|
/* 0x624 */ f32 field_0x624;
|
||||||
|
/* 0x628 */ s16 field_0x628;
|
||||||
|
/* 0x62C */ cXyz* field_0x62C;
|
||||||
|
/* 0x630 */ int field_0x630;
|
||||||
|
/* 0x634 */ cXyz field_0x634;
|
||||||
|
/* 0x640 */ s16 field_0x640;
|
||||||
|
/* 0x642 */ s16 field_0x642;
|
||||||
|
/* 0x644 */ char pad644[1]; // Padding
|
||||||
|
/* 0x645 */ s8 field_0x645;
|
||||||
|
/* 0x646 */ char pad646[0x64C - 0x646]; // Padding
|
||||||
|
/* 0x64C */ s16 field_0x64C[4];
|
||||||
|
/* 0x654 */ s16 field_0x654;
|
||||||
|
/* 0x656 */ s8 field_0x656;
|
||||||
|
/* 0x658 */ s16 field_0x658;
|
||||||
|
/* 0x65C */ dBgS_AcchCir mAcchCir;
|
||||||
|
/* 0x69C */ dBgS_ObjAcch mBgc;
|
||||||
|
/* 0x874 */ dCcD_Stts mStts;
|
||||||
|
/* 0x8B0 */ dCcD_Sph mSphere;
|
||||||
|
/* 0x9E8 */ u8 field_0x9E8;
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC_ASSERT(sizeof(bd_class) == 0x9ec);
|
STATIC_ASSERT(sizeof(bd_class) == 0x9ec);
|
||||||
|
|
||||||
class daBd_HIO_c {
|
class daBd_HIO_c : public JORReflexible {
|
||||||
public:
|
public:
|
||||||
/* 804D6C4C */ daBd_HIO_c();
|
/* 804D6C4C */ daBd_HIO_c();
|
||||||
/* 804D9CB8 */ ~daBd_HIO_c();
|
/* 804D9CB8 */ virtual ~daBd_HIO_c() {}
|
||||||
|
|
||||||
|
void genMessage(JORMContext*);
|
||||||
|
|
||||||
|
/* 0x04 */ s8 id;
|
||||||
|
/* 0x08 */ f32 mBasicSize;
|
||||||
|
/* 0x0C */ f32 mFlightSpeed;
|
||||||
|
/* 0x10 */ f32 mGroundSpeed;
|
||||||
|
/* 0x14 */ s16 mFlightTime;
|
||||||
|
/* 0x18 */ f32 mLinkDetectRange;
|
||||||
|
/* 0x1C */ s16 mChirpDist;
|
||||||
|
/* 0x1E */ s8 field_0x1E;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif /* D_A_BD_H */
|
#endif /* D_A_BD_H */
|
||||||
|
|
|
@ -57,11 +57,23 @@ public:
|
||||||
/* 80553404 */ void checkChangeJoint(int);
|
/* 80553404 */ void checkChangeJoint(int);
|
||||||
/* 80553414 */ void checkRemoveJoint(int);
|
/* 80553414 */ void checkRemoveJoint(int);
|
||||||
|
|
||||||
|
MtxP getBd3Mtx() {
|
||||||
|
return mpMorf->getModel()->getAnmMtx(0x11);
|
||||||
|
}
|
||||||
|
MtxP getBd2Mtx() {
|
||||||
|
return mpMorf->getModel()->getAnmMtx(6);
|
||||||
|
}
|
||||||
|
MtxP getBd1Mtx() {
|
||||||
|
return mpMorf->getModel()->getAnmMtx(5);
|
||||||
|
}
|
||||||
|
|
||||||
static void* mCutNameList[3];
|
static void* mCutNameList[3];
|
||||||
static u8 mCutList[36];
|
static u8 mCutList[36];
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/* 0x568 */ u8 field_0x568[0xfdc - 0x568];
|
/* 0x568 */ u8 field_0x568[0x578 - 0x568];
|
||||||
|
/* 0x578 */ mDoExt_McaMorfSO* mpMorf;
|
||||||
|
/* 0x57C */ u8 field_0x57C[0xfdc - 0x57C];
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC_ASSERT(sizeof(daNpc_Kkri_c) == 0xfdc);
|
STATIC_ASSERT(sizeof(daNpc_Kkri_c) == 0xfdc);
|
||||||
|
|
|
@ -599,7 +599,8 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CutType {
|
enum CutType {
|
||||||
/* 0x01 */ CUT_TYPE_NM_VERTICAL = 1,
|
/* 0x00 */ CUT_TYPE_NONE,
|
||||||
|
/* 0x01 */ CUT_TYPE_NM_VERTICAL,
|
||||||
/* 0x02 */ CUT_TYPE_NM_STAB,
|
/* 0x02 */ CUT_TYPE_NM_STAB,
|
||||||
/* 0x03 */ CUT_TYPE_NM_RIGHT,
|
/* 0x03 */ CUT_TYPE_NM_RIGHT,
|
||||||
/* 0x04 */ CUT_TYPE_NM_LEFT,
|
/* 0x04 */ CUT_TYPE_NM_LEFT,
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1045,7 +1045,7 @@ static int daE_HZELDA_Execute(e_hzelda_class* i_this) {
|
||||||
BOOL on_player_at_sph = FALSE;
|
BOOL on_player_at_sph = FALSE;
|
||||||
|
|
||||||
if (daPy_py_c::checkMasterSwordEquip()) {
|
if (daPy_py_c::checkMasterSwordEquip()) {
|
||||||
if (daPy_getPlayerActorClass()->getCutType() != 0) {
|
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
|
||||||
i_this->mSwordAtTimer++;
|
i_this->mSwordAtTimer++;
|
||||||
if (i_this->mSwordAtTimer < 6) {
|
if (i_this->mSwordAtTimer < 6) {
|
||||||
on_player_at_sph = TRUE;
|
on_player_at_sph = TRUE;
|
||||||
|
|
|
@ -354,7 +354,7 @@ int daE_OC_c::searchPlayerShakeHead() {
|
||||||
int daE_OC_c::searchSound() {
|
int daE_OC_c::searchSound() {
|
||||||
if (field_0x6b4 == 2 && mpBridge && mpBridge->getPlayerRide())
|
if (field_0x6b4 == 2 && mpBridge && mpBridge->getPlayerRide())
|
||||||
return 0;
|
return 0;
|
||||||
if (daPy_getPlayerActorClass()->getCutType() != 0 && fopAcM_searchPlayerDistance(this) < mPlayerRange) {
|
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE && fopAcM_searchPlayerDistance(this) < mPlayerRange) {
|
||||||
field_0x67c = dComIfGp_getPlayer(0)->current.pos;
|
field_0x67c = dComIfGp_getPlayer(0)->current.pos;
|
||||||
setActionMode(8, 0);
|
setActionMode(8, 0);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -147,7 +147,7 @@ static void e_tk_ball_move(e_tk_ball_class* i_this) {
|
||||||
if (i_this->mTgSph.ChkTgHit() || i_this->mAtSph.ChkAtShieldHit()) {
|
if (i_this->mTgSph.ChkTgHit() || i_this->mAtSph.ChkAtShieldHit()) {
|
||||||
impact_eff_set(i_this);
|
impact_eff_set(i_this);
|
||||||
actor->current.angle.x *= -1;
|
actor->current.angle.x *= -1;
|
||||||
if (actor_lockon && daPy_getPlayerActorClass()->getCutType() != 0x00) {
|
if (actor_lockon && daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
|
||||||
i_this->mAction = ACT_TK_BALL_RETURN;
|
i_this->mAction = ACT_TK_BALL_RETURN;
|
||||||
i_this->mMode = MODE_TK_BALL_INIT;
|
i_this->mMode = MODE_TK_BALL_INIT;
|
||||||
actor->current.angle.y -= 0x8000;
|
actor->current.angle.y -= 0x8000;
|
||||||
|
@ -168,7 +168,7 @@ static void e_tk_ball_move(e_tk_ball_class* i_this) {
|
||||||
i_this->mInitalDistance = direction_vec.abs();
|
i_this->mInitalDistance = direction_vec.abs();
|
||||||
speed_vec.x = 0.0;
|
speed_vec.x = 0.0;
|
||||||
speed_vec.y = 0.0;
|
speed_vec.y = 0.0;
|
||||||
if (daPy_getPlayerActorClass()->getCutType() != 0x00) {
|
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
|
||||||
speed_vec.z = 60.0f;
|
speed_vec.z = 60.0f;
|
||||||
}
|
}
|
||||||
cMtx_YrotS(*calc_mtx, actor->current.angle.y);
|
cMtx_YrotS(*calc_mtx, actor->current.angle.y);
|
||||||
|
|
|
@ -134,7 +134,7 @@ static void damage_check(e_yd_class* i_this) {
|
||||||
j = i_this->field_0xff4.mpCollider->ChkAtType(AT_TYPE_BOMB | AT_TYPE_40);
|
j = i_this->field_0xff4.mpCollider->ChkAtType(AT_TYPE_BOMB | AT_TYPE_40);
|
||||||
if (j != 0 || i_this->field_0x66e == 6) {
|
if (j != 0 || i_this->field_0x66e == 6) {
|
||||||
at_power_check(&i_this->field_0xff4);
|
at_power_check(&i_this->field_0xff4);
|
||||||
if (daPy_getPlayerActorClass()->getCutType() != 0) {
|
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
|
||||||
cVar6 = 1;
|
cVar6 = 1;
|
||||||
} else {
|
} else {
|
||||||
cVar6 = 2;
|
cVar6 = 2;
|
||||||
|
|
|
@ -50,7 +50,7 @@ static void daKytag12_light_swprd_proc(kytag12_class* i_this) {
|
||||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||||
|
|
||||||
if (dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD) {
|
if (dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD) {
|
||||||
if (player->getCutType() != 0) {
|
if (player->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
|
||||||
if (i_this->field_0x576 == 0) {
|
if (i_this->field_0x576 == 0) {
|
||||||
cXyz sp28(player->current.pos);
|
cXyz sp28(player->current.pos);
|
||||||
sp28.y -= 100.0f;
|
sp28.y -= 100.0f;
|
||||||
|
@ -878,7 +878,7 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) {
|
||||||
sp80.y = player->current.pos.y;
|
sp80.y = player->current.pos.y;
|
||||||
|
|
||||||
if (player->current.pos.abs(sp80) < 600.0f &&
|
if (player->current.pos.abs(sp80) < 600.0f &&
|
||||||
dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD && player->getCutType() != 0 &&
|
dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD && player->getCutType() != daPy_py_c::CUT_TYPE_NONE &&
|
||||||
d_kytag12_cut_turn_check())
|
d_kytag12_cut_turn_check())
|
||||||
{
|
{
|
||||||
i_this->field_0x575 = 1;
|
i_this->field_0x575 = 1;
|
||||||
|
|
Loading…
Reference in New Issue