d_a_e_yk 23/26 matched (#301)

* setup TU

* daE_YK_HIO_c::daE_YK_HIO_c

* anm_init

* daE_YK_Draw

* pl_check

* damage_check

* action

* daE_YK_Delete

* fly_move

* e_yk_roof

* useHeapInit

* e_yk_wind

* e_yk_chance

* e_yk_return

* e_yk_fly

* e_yk_wolfbite

* e_yk_fight

* e_yk_attack

* e_yk_path_fly

* daE_YK_Execute and daE_YK_Create and float literal prep

* pr cleanup

* rm padding
This commit is contained in:
Pheenoh 2023-02-25 21:25:55 -07:00 committed by GitHub
parent bf663a0e3d
commit c54f0816ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 1325 additions and 504 deletions

View File

@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472 .init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96 .extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96
.text | 24.818381% | 892604 | 3596544 .text | 24.821940% | 892732 | 3596544
.ctors | 100.000000% | 448 | 448 .ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32 .dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856 .rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632 .data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408 .sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832 .sdata2 | 100.000000% | 20832 | 20832
Total | 32.744278% | 1316540 | 4020672 Total | 32.747461% | 1316668 | 4020672
## Total ## Total
Section | Percentage | Decompiled (bytes) | Total (bytes) Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|--- ---|---|---|---
main.dol | 32.744278% | 1316540 | 4020672 main.dol | 32.747461% | 1316668 | 4020672
RELs | 33.371790% | 3837864 | 11500324 RELs | 33.375199% | 3838256 | 11500324
Total | 33.209235% | 5154404 | 15520996 Total | 33.212585% | 5154924 | 15520996
## RELs ## RELs
@ -172,7 +172,7 @@ d_a_e_yd | 27.879315% | 7688 | 27576
d_a_e_yd_leaf | 54.022989% | 1128 | 2088 d_a_e_yd_leaf | 54.022989% | 1128 | 2088
d_a_e_yg | 28.386013% | 7436 | 26196 d_a_e_yg | 28.386013% | 7436 | 26196
d_a_e_yh | 26.277603% | 9996 | 38040 d_a_e_yh | 26.277603% | 9996 | 38040
d_a_e_yk | 29.001484% | 5472 | 18868 d_a_e_yk | 31.079076% | 5864 | 18868
d_a_e_ym | 20.062370% | 13896 | 69264 d_a_e_ym | 20.062370% | 13896 | 69264
d_a_e_ym_tag | 100.000000% | 1088 | 1088 d_a_e_ym_tag | 100.000000% | 1088 | 1088
d_a_e_ymb | 23.798093% | 14672 | 61652 d_a_e_ymb | 23.798093% | 14672 | 61652
@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244
d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_warp_bug | 54.940711% | 1112 | 2024
d_a_ykgr | 44.400631% | 2252 | 5072 d_a_ykgr | 44.400631% | 2252 | 5072
f_pc_profile_lst | 100.000000% | 28156 | 28156 f_pc_profile_lst | 100.000000% | 28156 | 28156
Total | 33.371790% | 3837864 | 11500324 Total | 33.375199% | 3838256 | 11500324

View File

@ -1,36 +0,0 @@
lbl_800182A8:
/* 800182A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800182AC 7C 08 02 A6 */ mflr r0
/* 800182B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 800182B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 800182B8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 800182BC 88 03 4F AD */ lbz r0, 0x4fad(r3)
/* 800182C0 28 00 00 00 */ cmplwi r0, 0
/* 800182C4 41 82 00 50 */ beq lbl_80018314
/* 800182C8 80 63 5D B4 */ lwz r3, 0x5db4(r3)
/* 800182CC 48 00 38 49 */ bl fopAcM_getTalkEventPartner__FPC10fopAc_ac_c
/* 800182D0 28 03 00 00 */ cmplwi r3, 0
/* 800182D4 41 82 00 40 */ beq lbl_80018314
/* 800182D8 A8 03 00 08 */ lha r0, 8(r3)
/* 800182DC 2C 00 00 FF */ cmpwi r0, 0xff
/* 800182E0 41 82 00 2C */ beq lbl_8001830C
/* 800182E4 2C 00 02 C1 */ cmpwi r0, 0x2c1
/* 800182E8 41 82 00 24 */ beq lbl_8001830C
/* 800182EC 2C 00 02 C4 */ cmpwi r0, 0x2c4
/* 800182F0 41 82 00 1C */ beq lbl_8001830C
/* 800182F4 2C 00 00 EC */ cmpwi r0, 0xec
/* 800182F8 41 82 00 14 */ beq lbl_8001830C
/* 800182FC 2C 00 02 C3 */ cmpwi r0, 0x2c3
/* 80018300 41 82 00 0C */ beq lbl_8001830C
/* 80018304 2C 00 02 C7 */ cmpwi r0, 0x2c7
/* 80018308 40 82 00 0C */ bne lbl_80018314
lbl_8001830C:
/* 8001830C 38 60 00 01 */ li r3, 1
/* 80018310 48 00 00 08 */ b lbl_80018318
lbl_80018314:
/* 80018314 38 60 00 00 */ li r3, 0
lbl_80018318:
/* 80018318 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001831C 7C 08 03 A6 */ mtlr r0
/* 80018320 38 21 00 10 */ addi r1, r1, 0x10
/* 80018324 4E 80 00 20 */ blr

View File

@ -1,29 +0,0 @@
lbl_80807094:
/* 80807094 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80807098 7C 08 02 A6 */ mflr r0
/* 8080709C 90 01 00 14 */ stw r0, 0x14(r1)
/* 808070A0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 808070A4 7C 7F 1B 78 */ mr r31, r3
/* 808070A8 38 7F 05 AC */ addi r3, r31, 0x5ac
/* 808070AC 3C 80 80 80 */ lis r4, d_a_e_yk__stringBase0@ha /* 0x80807D64@ha */
/* 808070B0 38 84 7D 64 */ addi r4, r4, d_a_e_yk__stringBase0@l /* 0x80807D64@l */
/* 808070B4 4B 82 5F 55 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc
/* 808070B8 88 1F 0A 8C */ lbz r0, 0xa8c(r31)
/* 808070BC 28 00 00 00 */ cmplwi r0, 0
/* 808070C0 41 82 00 10 */ beq lbl_808070D0
/* 808070C4 38 00 00 00 */ li r0, 0
/* 808070C8 3C 60 80 80 */ lis r3, data_80807EF8@ha /* 0x80807EF8@ha */
/* 808070CC 98 03 7E F8 */ stb r0, data_80807EF8@l(r3) /* 0x80807EF8@l */
lbl_808070D0:
/* 808070D0 80 1F 00 F0 */ lwz r0, 0xf0(r31)
/* 808070D4 28 00 00 00 */ cmplwi r0, 0
/* 808070D8 41 82 00 0C */ beq lbl_808070E4
/* 808070DC 80 7F 05 C0 */ lwz r3, 0x5c0(r31)
/* 808070E0 4B 80 A2 31 */ bl stopZelAnime__16mDoExt_McaMorfSOFv
lbl_808070E4:
/* 808070E4 38 60 00 01 */ li r3, 1
/* 808070E8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 808070EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 808070F0 7C 08 03 A6 */ mtlr r0
/* 808070F4 38 21 00 10 */ addi r1, r1, 0x10
/* 808070F8 4E 80 00 20 */ blr

View File

@ -1,43 +0,0 @@
lbl_80804A90:
/* 80804A90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80804A94 7C 08 02 A6 */ mflr r0
/* 80804A98 90 01 00 14 */ stw r0, 0x14(r1)
/* 80804A9C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80804AA0 93 C1 00 08 */ stw r30, 8(r1)
/* 80804AA4 7C 7E 1B 78 */ mr r30, r3
/* 80804AA8 80 63 05 C0 */ lwz r3, 0x5c0(r3)
/* 80804AAC 83 E3 00 04 */ lwz r31, 4(r3)
/* 80804AB0 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
/* 80804AB4 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
/* 80804AB8 38 80 00 02 */ li r4, 2
/* 80804ABC 38 BE 04 D0 */ addi r5, r30, 0x4d0
/* 80804AC0 38 DE 01 0C */ addi r6, r30, 0x10c
/* 80804AC4 4B 99 ED 01 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c
/* 80804AC8 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
/* 80804ACC 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
/* 80804AD0 80 9F 00 04 */ lwz r4, 4(r31)
/* 80804AD4 38 BE 01 0C */ addi r5, r30, 0x10c
/* 80804AD8 4B 9A 02 C9 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c
/* 80804ADC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80804AE0 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80804AE4 80 04 5F 88 */ lwz r0, 0x5f88(r4)
/* 80804AE8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80804AEC 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
/* 80804AF0 90 1F 00 48 */ stw r0, 0x48(r31)
/* 80804AF4 80 04 5F 8C */ lwz r0, 0x5f8c(r4)
/* 80804AF8 90 1F 00 4C */ stw r0, 0x4c(r31)
/* 80804AFC 80 7E 05 C0 */ lwz r3, 0x5c0(r30)
/* 80804B00 4B 80 C6 C1 */ bl entryDL__16mDoExt_McaMorfSOFv
/* 80804B04 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80804B08 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80804B0C 80 03 5F 80 */ lwz r0, 0x5f80(r3)
/* 80804B10 90 1F 00 48 */ stw r0, 0x48(r31)
/* 80804B14 80 03 5F 84 */ lwz r0, 0x5f84(r3)
/* 80804B18 90 1F 00 4C */ stw r0, 0x4c(r31)
/* 80804B1C 38 60 00 01 */ li r3, 1
/* 80804B20 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80804B24 83 C1 00 08 */ lwz r30, 8(r1)
/* 80804B28 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80804B2C 7C 08 03 A6 */ mtlr r0
/* 80804B30 38 21 00 10 */ addi r1, r1, 0x10
/* 80804B34 4E 80 00 20 */ blr

View File

@ -1,33 +0,0 @@
lbl_80804B38:
/* 80804B38 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80804B3C 7C 08 02 A6 */ mflr r0
/* 80804B40 90 01 00 14 */ stw r0, 0x14(r1)
/* 80804B44 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80804B48 7C 7F 1B 78 */ mr r31, r3
/* 80804B4C 4B 81 41 95 */ bl fopAc_IsActor__FPv
/* 80804B50 2C 03 00 00 */ cmpwi r3, 0
/* 80804B54 41 82 00 44 */ beq lbl_80804B98
/* 80804B58 A8 1F 00 08 */ lha r0, 8(r31)
/* 80804B5C 2C 00 00 FE */ cmpwi r0, 0xfe
/* 80804B60 40 82 00 38 */ bne lbl_80804B98
/* 80804B64 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80804B68 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80804B6C 80 03 5F 18 */ lwz r0, 0x5f18(r3)
/* 80804B70 54 00 03 19 */ rlwinm. r0, r0, 0, 0xc, 0xc
/* 80804B74 40 82 00 24 */ bne lbl_80804B98
/* 80804B78 4B 95 AD 25 */ bl checkBoomerangCharge__9daPy_py_cFv
/* 80804B7C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80804B80 41 82 00 18 */ beq lbl_80804B98
/* 80804B84 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 80804B88 28 00 00 01 */ cmplwi r0, 1
/* 80804B8C 40 82 00 0C */ bne lbl_80804B98
/* 80804B90 7F E3 FB 78 */ mr r3, r31
/* 80804B94 48 00 00 08 */ b lbl_80804B9C
lbl_80804B98:
/* 80804B98 38 60 00 00 */ li r3, 0
lbl_80804B9C:
/* 80804B9C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80804BA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80804BA4 7C 08 03 A6 */ mtlr r0
/* 80804BA8 38 21 00 10 */ addi r1, r1, 0x10
/* 80804BAC 4E 80 00 20 */ blr

View File

@ -48,6 +48,7 @@ enum cCcD_ObjAtType {
/* 0x10000000 */ AT_TYPE_10000000 = (1 << 28), /* 0x10000000 */ AT_TYPE_10000000 = (1 << 28),
/* 0x40000000 */ AT_TYPE_WOLF_CUT_TURN = (1 << 30), /* 0x40000000 */ AT_TYPE_WOLF_CUT_TURN = (1 << 30),
/* 0x80000000 */ AT_TYPE_WOLF_ATTACK = (1 << 31), /* 0x80000000 */ AT_TYPE_WOLF_ATTACK = (1 << 31),
/* 0xD8000000 */ AT_TYPE_UNK = 0xD8000000
}; };
class cCcD_ShapeAttr { class cCcD_ShapeAttr {
@ -454,6 +455,8 @@ public:
void OnTgSetBit() { mObjTg.OnSPrmBit(1); } void OnTgSetBit() { mObjTg.OnSPrmBit(1); }
void OffTgSetBit() { mObjTg.ClrSet(); } void OffTgSetBit() { mObjTg.ClrSet(); }
void OnCoSetBit() { mObjCo.OnSPrmBit(1); } void OnCoSetBit() { mObjCo.OnSPrmBit(1); }
void OffAtVsPlayerBit() { mObjAt.OffSPrmBit(0xC); }
void OnAtVsPlayerBit() { mObjAt.OnSPrmBit(0xC); }
}; // Size = 0x40 }; // Size = 0x40

View File

@ -2400,14 +2400,14 @@ enum Z2SoundID {
Z2SE_EN_BA_V_FURA = 0x701C5, Z2SE_EN_BA_V_FURA = 0x701C5,
Z2SE_EN_BA_FIRE = 0x701C6, Z2SE_EN_BA_FIRE = 0x701C6,
Z2SE_EN_YK_WING = 0x701C7, Z2SE_EN_YK_WING = 0x701C7,
Z2SE_EN_YK_V_NAKU = 0x701C8, Z2SE_EN_YK_V_NAKU = 0x701C8, // shadow keese - cry/screech
Z2SE_EN_YK_V_ATTACK = 0x701C9, Z2SE_EN_YK_V_ATTACK = 0x701C9, // shadow keese - attack
Z2SE_EN_YK_V_DEATH = 0x701CA, Z2SE_EN_YK_V_DEATH = 0x701CA, // shadow keese - death
Z2SE_EN_YK_V_BITE = 0x701CB, Z2SE_EN_YK_V_BITE = 0x701CB, // shadow keese - bite
Z2SE_EN_YK_V_DEATH2 = 0x701CC, Z2SE_EN_YK_V_DEATH2 = 0x701CC, // shadow keese - death2
Z2SE_EN_YK_V_FURA = 0x701CD, Z2SE_EN_YK_V_FURA = 0x701CD, // shadow keese - unsteady
Z2SE_EN_BA_V_SPIN = 0x701CE, Z2SE_EN_BA_V_SPIN = 0x701CE,
Z2SE_EN_YK_V_SPIN = 0x701CF, Z2SE_EN_YK_V_SPIN = 0x701CF, // shadow keese - spinning in gale boomerang wind
Z2SE_EN_YG_V_NAKU = 0x701D0, Z2SE_EN_YG_V_NAKU = 0x701D0,
Z2SE_EN_YG_V_FIND = 0x701D1, Z2SE_EN_YG_V_FIND = 0x701D1,
Z2SE_EN_YG_V_DEATH = 0x701D2, Z2SE_EN_YG_V_DEATH = 0x701D2,
@ -2463,7 +2463,7 @@ enum Z2SoundID {
Z2SE_EN_GOB_HELMET_MELT = 0x70204, Z2SE_EN_GOB_HELMET_MELT = 0x70204,
Z2SE_EN_GOB_KNUCKLES_FRICTION = 0x70205, Z2SE_EN_GOB_KNUCKLES_FRICTION = 0x70205,
Z2SE_EN_BA_V_FAINT = 0x70206, Z2SE_EN_BA_V_FAINT = 0x70206,
Z2SE_EN_YK_V_FAINT = 0x70207, Z2SE_EN_YK_V_FAINT = 0x70207, // shadow keese - bouncing on ground during chance
Z2SE_EN_HZ_V_WALK = 0x70208, Z2SE_EN_HZ_V_WALK = 0x70208,
Z2SE_EN_HZ_WALK = 0x70209, Z2SE_EN_HZ_WALK = 0x70209,
Z2SE_EN_HZ_V_WIND_NAKU = 0x7020A, Z2SE_EN_HZ_V_WIND_NAKU = 0x7020A,

View File

@ -274,6 +274,7 @@ public:
FLG2_UNK_200 = 0x200, FLG2_UNK_200 = 0x200,
FLG2_UNK_80 = 0x80, FLG2_UNK_80 = 0x80,
FLG2_UNK_40 = 0x40, FLG2_UNK_40 = 0x40,
FLG2_WOLF_ENEMY_LEFT_THROW = 0x20,
FLG2_UNK_10 = 0x10, FLG2_UNK_10 = 0x10,
FLG2_UNK_8 = 8, FLG2_UNK_8 = 8,
FLG2_UNK_2 = 2, FLG2_UNK_2 = 2,
@ -762,14 +763,18 @@ public:
inline BOOL i_checkSwordGet(); inline BOOL i_checkSwordGet();
inline bool i_checkShieldGet() const; inline bool i_checkShieldGet() const;
inline static BOOL checkNowWolf(); inline static BOOL checkNowWolf();
inline static BOOL i_checkNowWolf() { inline static BOOL i_checkNowWolf() { return dComIfGp_getLinkPlayer()->i_checkWolf(); }
return dComIfGp_getLinkPlayer()->i_checkWolf();
}
inline bool checkZoraWearFlg() const; inline bool checkZoraWearFlg() const;
inline bool checkMagicArmorWearFlg() const; inline bool checkMagicArmorWearFlg() const;
static daMidna_c* getMidnaActor() { return m_midnaActor; } static daMidna_c* getMidnaActor() { return m_midnaActor; }
// not sure how to define this properly
// static void onWolfEnemyCatch(fopAc_ac_c* i_actorP) { onWolfEnemyBiteAll(i_actorP,8);}
bool checkWolfEnemyCatchOwn(fopAc_ac_c* i_actorP) { return checkWolfEnemyBiteAllOwn(i_actorP); }
bool checkWolfEnemyLeftThrow() const { return i_checkNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW); }
static daMidna_c* m_midnaActor; static daMidna_c* m_midnaActor;
}; };

View File

@ -1,6 +1,11 @@
#ifndef D_CC_D_CC_D_H #ifndef D_CC_D_CC_D_H
#define D_CC_D_CC_D_H #define D_CC_D_CC_D_H
/**
* d_cc_d.h
* Actor Collision
*/
#include "SSystem/SComponent/c_cc_d.h" #include "SSystem/SComponent/c_cc_d.h"
#include "dolphin/types.h" #include "dolphin/types.h"
@ -134,6 +139,8 @@ public:
class dCcD_GObjInf; class dCcD_GObjInf;
typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
// Attack/Defense/Correction Collider Common Base
class dCcD_GAtTgCoCommonBase { class dCcD_GAtTgCoCommonBase {
public: public:
/* 0x00 */ u32 mGFlag; /* 0x00 */ u32 mGFlag;
@ -171,6 +178,8 @@ public:
dCcD_HitCallback GetHitCallback() { return mHitCallback; } dCcD_HitCallback GetHitCallback() { return mHitCallback; }
}; // Size = 0x1C }; // Size = 0x1C
// Attack (At) Collider
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase { class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
public: public:
/* 80083944 */ void Set(dCcD_SrcGObjAt const&); /* 80083944 */ void Set(dCcD_SrcGObjAt const&);
@ -199,6 +208,7 @@ public:
/* 0x38 */ cXyz mRVec; /* 0x38 */ cXyz mRVec;
}; // Size = 0x44 }; // Size = 0x44
// Defense (Tg) Collider
class dCcD_GObjTg : public dCcD_GAtTgCoCommonBase { class dCcD_GObjTg : public dCcD_GAtTgCoCommonBase {
public: public:
/* 800839A0 */ void Set(dCcD_SrcGObjTg const&); /* 800839A0 */ void Set(dCcD_SrcGObjTg const&);
@ -229,11 +239,13 @@ private:
/* 0x48 */ s16 mShieldRange; /* 0x48 */ s16 mShieldRange;
}; // Size = 0x4A ? }; // Size = 0x4A ?
// Correction (Co) Collider
class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase { class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase {
public: public:
/* 80083B8C */ virtual ~dCcD_GObjCo() {} /* 80083B8C */ virtual ~dCcD_GObjCo() {}
}; // Size = 0x1C ? }; // Size = 0x1C ?
// Object Info
class dCcD_GObjInf : public cCcD_GObjInf { class dCcD_GObjInf : public cCcD_GObjInf {
public: public:
/* 80083A28 */ dCcD_GObjInf(); /* 80083A28 */ dCcD_GObjInf();
@ -343,6 +355,7 @@ protected:
/* 0x0E8 */ dCcD_GObjCo mGObjCo; /* 0x0E8 */ dCcD_GObjCo mGObjCo;
}; // Size = 0x104 }; // Size = 0x104
// Cylinder
class dCcD_Cyl : public dCcD_GObjInf, public cCcD_CylAttr { class dCcD_Cyl : public dCcD_GObjInf, public cCcD_CylAttr {
public: public:
/* 800848B4 */ void Set(dCcD_SrcCyl const&); /* 800848B4 */ void Set(dCcD_SrcCyl const&);
@ -354,6 +367,7 @@ public:
dCcD_Cyl() {} dCcD_Cyl() {}
}; // Size = 0x13C }; // Size = 0x13C
// Sphere
class dCcD_Sph : public dCcD_GObjInf, public cCcD_SphAttr { class dCcD_Sph : public dCcD_GObjInf, public cCcD_SphAttr {
public: public:
dCcD_Sph() {} dCcD_Sph() {}
@ -364,6 +378,8 @@ public:
/* 80084BF4 */ virtual ~dCcD_Sph() {} /* 80084BF4 */ virtual ~dCcD_Sph() {}
}; // Size = 0x138 }; // Size = 0x138
// Capsule
class dCcD_Cps : public dCcD_GObjInf, public cCcD_CpsAttr { class dCcD_Cps : public dCcD_GObjInf, public cCcD_CpsAttr {
public: public:
/* 800847D0 */ void Set(dCcD_SrcCps const&); /* 800847D0 */ void Set(dCcD_SrcCps const&);
@ -374,6 +390,7 @@ public:
dCcD_Cps() {} dCcD_Cps() {}
}; // Size = 0x144 }; // Size = 0x144
// Triangle
class dCcD_Tri : public dCcD_GObjInf, public cCcD_TriAttr { class dCcD_Tri : public dCcD_GObjInf, public cCcD_TriAttr {
public: public:
/* 80084884 */ void Set(dCcD_SrcTri const&); /* 80084884 */ void Set(dCcD_SrcTri const&);

View File

@ -29,4 +29,6 @@ struct dCcU_AtInfo {
/* 0x20 */ u8 mHitType; /* 0x20 */ u8 mHitType;
}; };
fopAc_ac_c* cc_at_check(fopAc_ac_c*,dCcU_AtInfo*);
#endif /* D_CC_D_CC_UTY_H */ #endif /* D_CC_D_CC_UTY_H */

View File

@ -67,7 +67,7 @@ public:
/* 80259BFC */ void offReset(); /* 80259BFC */ void offReset();
static bool isPause() { return pauseTimer == 0; } static bool isPause() { return pauseTimer == 0; }
static void setPauseTimer(s8 time) { nextPauseTimer = time; } static void setPauseTimer(s8 time) { pauseTimer = time; }
static s8 pauseTimer; static s8 pauseTimer;
static s8 nextPauseTimer; static s8 nextPauseTimer;

View File

@ -137,7 +137,7 @@ public:
/* 0x538 */ cXyz mEyePos; /* 0x538 */ cXyz mEyePos;
/* 0x544 */ actor_attention_types mAttentionInfo; /* 0x544 */ actor_attention_types mAttentionInfo;
/* 0x560 */ s16 field_0x560; /* 0x560 */ s16 field_0x560;
/* 0x562 */ s16 field_0x562; /* 0x562 */ s16 mHealth;
/* 0x564 */ u8 field_0x564[0x4]; /* 0x564 */ u8 field_0x564[0x4];
fopAc_ac_c(); fopAc_ac_c();

View File

@ -306,6 +306,10 @@ inline bool i_fopAcM_isSwitch(const fopAc_ac_c* item, int sw) {
return dComIfGs_isSwitch(sw, fopAcM_GetHomeRoomNo(item)); return dComIfGs_isSwitch(sw, fopAcM_GetHomeRoomNo(item));
} }
inline fopAc_ac_c* i_fopAcM_SearchByName(s16 proc_id) {
return (fopAc_ac_c*)fopAcIt_Judge(fpcSch_JudgeForPName, &proc_id);
}
inline void dComIfGs_onItem(int bitNo, int roomNo); inline void dComIfGs_onItem(int bitNo, int roomNo);
inline void fopAcM_onItem(const fopAc_ac_c* item, int bitNo) { inline void fopAcM_onItem(const fopAc_ac_c* item, int bitNo) {
dComIfGs_onItem(bitNo, fopAcM_GetHomeRoomNo(item)); dComIfGs_onItem(bitNo, fopAcM_GetHomeRoomNo(item));

View File

@ -261,6 +261,7 @@ public:
u8 getPlayMode() { return mFrameCtrl.getAttribute(); } u8 getPlayMode() { return mFrameCtrl.getAttribute(); }
bool isLoop() { return mFrameCtrl.checkState(2); } bool isLoop() { return mFrameCtrl.checkState(2); }
f32 getEndFrame() { return mFrameCtrl.getEnd(); } f32 getEndFrame() { return mFrameCtrl.getEnd(); }
BOOL checkFrame(f32 frame) { return mFrameCtrl.checkPass(frame); }
bool isStop() { bool isStop() {
bool stopped = true; bool stopped = true;

View File

@ -2,5 +2,95 @@
#define D_A_E_YK_H #define D_A_E_YK_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
#include "d/cc/d_cc_uty.h"
#include "d/d_path.h"
enum daE_YK_Action {
ACT_ROOF, // keese is on roof
ACT_FIGHT_FLY, // keese is transitioning from flying to aggro
ACT_FIGHT, // keese is aggroed
ACT_ATTACK, // keese is attacking
ACT_RETURN, // keese is returning to roof
ACT_FLY, // keese is flying around
ACT_PATH_FLY, // Unconfirmed: keese is flying along its path?
ACT_CHANCE = 10, // keese is stunned/fell down
ACT_WOLFBITE = 13, // keese is being bitten by wolf
ACT_WIND // keese is in the gale boomerang
};
// tmp struct to get HIO to match
struct daE_YK_HIO_c_tmp {
void* vtable;
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
};
class daE_YK_HIO_c {
public:
/* 8080482C */ daE_YK_HIO_c();
/* 808077E0 */ virtual ~daE_YK_HIO_c();
/* 0x00 */ // vtable
/* 0x04 */ s8 field_0x04; // padding after this
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
};
class e_yk_class : public fopEn_enemy_c {
public:
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 mParam1; // paramter - used to determine default action?
/* 0x5B5 */ u8 mPlayerTriggerBase; // parameter - base value used to determine mPlayerTrigger below
/* 0x5B6 */ u8 field_0x5b6;
/* 0x5B7 */ u8 mPathIdx; // parameter - used to lookup/set mpPath based on the room
/* 0x5B8 */ u8 field_0x5b8;
/* 0x5B9 */ s8 mPathPntIdx; // tracks the index of the points along the keese's path
/* 0x5BA */ s8 field_0x5ba;
/* 0x5BB */ u8 field_0x5bb;
/* 0x5BC */ dPath* mpPath; // flight path for keese to follow?
/* 0x5C0 */ mDoExt_McaMorfSO* mpMorfSO; // last res loaded
/* 0x5C4 */ Z2CreatureEnemy mCreature; // used for playing keese noises
/* 0x668 */ int mResIdx; // index number of last res loaded
/* 0x66C */ s16 field_0x66c;
/* 0x66E */ s16 mAction; // current action (see daE_YK_Action above)
/* 0x670 */ s16 mActionPhase; // current phase of current action
/* 0x674 */ cXyz mPathPntPos; // tracks the position of the point the keese is along a path
/* 0x680 */ s16 mAngleFromPlayer; // current keese angle from player
/* 0x684 */ f32 mDistanceXZFromPlayer; // current keese distance from player
/* 0x688 */ f32 mPlayerTrigger; // how close to the keese the player has to be before aggro
/* 0x68C */ f32 field_0x68c;
/* 0x690 */ f32 field_0x690;
/* 0x694 */ f32 field_0x694;
/* 0x698 */ s16 field_0x698;
/* 0x69A */ csXyz field_0x69a;
/* 0x6A0 */ s8 field_0x6a0;
/* 0x6A1 */ u8 field_0x6a1;
/* 0x6A2 */ s16 field_0x6a2[4];
/* 0x6AA */ s16 field_0x6aa;
/* 0x6AC */ s16 field_0x6ac[6];
/* 0x6B8 */ cXyz mBoomrangPosOffset; // offset position when keese caught in rang
/* 0x6C4 */ s16 mBoomrangXRotOffset; // offset x rotation when keese caught in rang
/* 0x6C8 */ dBgS_AcchCir field_0x6c8;
/* 0x708 */ dBgS_ObjAcch field_0x708;
/* 0x8E0 */ dCcD_Stts mCollisionStatus; // collision status
/* 0x91C */ dCcD_Sph mCollisionSphere; // collision sphere
/* 0xA54 */ dCcU_AtInfo mAtColliderInfo; // attack collider info (used when keese gets hit)
/* 0xA78 */ u32 field_0xa78;
/* 0xA7C */ u32 field_0xa7c;
/* 0xA80 */ u32 field_0xa80;
/* 0xA84 */ u32 mParticleEmitterIds[2];
/* 0xA8C */ u8 field_0xa8c;
};
// size: 0xA90
#endif /* D_A_E_YK_H */ #endif /* D_A_E_YK_H */

File diff suppressed because it is too large Load Diff

View File

@ -411,7 +411,7 @@ static int daObj_Web0_Create(fopAc_ac_c* i_this) {
fopAcM_SetMtx(_this, _this->mpModel->getBaseTRMtx()); fopAcM_SetMtx(_this, _this->mpModel->getBaseTRMtx());
fopAcM_SetMin(_this, -1000.0f, -1000.0f, -1000.0f); fopAcM_SetMin(_this, -1000.0f, -1000.0f, -1000.0f);
fopAcM_SetMax(_this, 1000.0f, 1000.0f, 1000.0f); fopAcM_SetMax(_this, 1000.0f, 1000.0f, 1000.0f);
_this->field_0x562 = 30; _this->mHealth = 30;
_this->field_0x560 = 30; _this->field_0x560 = 30;
_this->mStts.Init(250, 0, _this); _this->mStts.Init(250, 0, _this);

View File

@ -6,29 +6,17 @@
#include "c/c_damagereaction.h" #include "c/c_damagereaction.h"
#include "dol2asm.h" #include "dol2asm.h"
#include "dolphin/types.h" #include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
// //
// Types: // Types:
// //
struct fopAc_ac_c {};
struct JPABaseParticle {};
struct JPABaseEmitter {};
struct JPTraceParticleCallBack4 { struct JPTraceParticleCallBack4 {
/* 8001817C */ void execute(JPABaseEmitter*, JPABaseParticle*); /* 8001817C */ void execute(JPABaseEmitter*, JPABaseParticle*);
/* 800182A4 */ void draw(JPABaseEmitter*, JPABaseParticle*); /* 800182A4 */ void draw(JPABaseEmitter*, JPABaseParticle*);
/* 80018328 */ ~JPTraceParticleCallBack4(); /* 80018328 */ ~JPTraceParticleCallBack4();
}; };
struct JPAParticleCallBack {
/* 800183D4 */ void execute(JPABaseEmitter*, JPABaseParticle*);
/* 800183D8 */ void draw(JPABaseEmitter*, JPABaseParticle*);
/* 8027EFA4 */ ~JPAParticleCallBack();
};
// //
// Forward References: // Forward References:
// //
@ -49,7 +37,7 @@ extern "C" void fopAcM_getTalkEventPartner__FPC10fopAc_ac_c();
extern "C" void __dt__19JPAParticleCallBackFv(); extern "C" void __dt__19JPAParticleCallBackFv();
extern "C" void __dl__FPv(); extern "C" void __dl__FPv();
extern "C" void __register_global_object(); extern "C" void __register_global_object();
extern "C" extern u8 g_dComIfG_gameInfo[122384]; // extern "C" extern u8 g_dComIfG_gameInfo[122384];
// //
// Declarations: // Declarations:
@ -105,14 +93,20 @@ void JPTraceParticleCallBack4::draw(JPABaseEmitter* param_0, JPABaseParticle* pa
} }
/* 800182A8-80018328 012BE8 0080+00 0/0 0/0 22/22 .text cDmrNowMidnaTalk__Fv */ /* 800182A8-80018328 012BE8 0080+00 0/0 0/0 22/22 .text cDmrNowMidnaTalk__Fv */
#pragma push BOOL cDmrNowMidnaTalk() {
#pragma optimization_level 0 if (i_dComIfGp_event_runCheck()) {
#pragma optimizewithasm off fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_getTalkEventPartner(daPy_getLinkPlayerActorClass());
asm BOOL cDmrNowMidnaTalk() { if (actor) {
nofralloc if (fopAcM_GetName(actor) == PROC_MIDNA || fopAcM_GetName(actor) == PROC_Tag_Mhint ||
#include "asm/c/c_damagereaction/cDmrNowMidnaTalk__Fv.s" fopAcM_GetName(actor) == PROC_Tag_Mstop || fopAcM_GetName(actor) == PROC_Tag_Hstop ||
fopAcM_GetName(actor) == PROC_Tag_Mwait || fopAcM_GetName(actor) == PROC_Tag_Wljump) {
return 1;
}
}
}
return 0;
} }
#pragma pop
/* ############################################################################################## */ /* ############################################################################################## */
/* 803A3568-803A357C 000688 0014+00 2/2 0/0 0/0 .data __vt__24JPTraceParticleCallBack4 */ /* 803A3568-803A357C 000688 0014+00 2/2 0/0 0/0 .data __vt__24JPTraceParticleCallBack4 */