Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 48 additions & 40 deletions include/d/actor/d_a_b_gnd.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,6 @@
#include "d/d_cc_uty.h"
#include "d/d_bg_s_acch.h"

struct g_himo_s {
/* 80601D40 */ ~g_himo_s();
/* 80601DA0 */ g_himo_s();

/* 0x0 */ cXyz field_0x0[16];
};

/**
* @ingroup actors-enemies
* @class b_gnd_class
Expand All @@ -23,13 +16,20 @@ struct g_himo_s {
* @details Hyrule Castle dungeon boss.
*
*/

struct g_himo_s {
/* 80601D40 */ ~g_himo_s();
/* 80601DA0 */ g_himo_s();

/* 0x0 */ cXyz field_0x0[16];
};

class b_gnd_class : public fopEn_enemy_c {
public:
/* 80601960 */ b_gnd_class();

bool checkAttackChance() { return field_0x2740 != 0; }

private:
/* 0x05AC */ request_of_phase_process_class mPhaseReq;
/* 0x05B4 */ request_of_phase_process_class mHorsePhaseReq;
/* 0x05BC */ s16 field_0x05bc;
Expand All @@ -38,7 +38,7 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x05C0 */ cXyz field_0x05c0;
/* 0x05CC */ s16 field_0x05cc;
/* 0x05CE */ u8 field_0x05CE[0x05D0 - 0x05CE];
/* 0x05D0 */ mDoExt_McaMorfSO* mpMorf;
/* 0x05D0 */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x05D4 */ mDoExt_McaMorfSO* mpHorseMorf;
/* 0x05D8 */ mDoExt_McaMorf* field_0x05d8;
/* 0x05DC */ Z2CreatureEnemy mZ2Creature;
Expand All @@ -50,14 +50,16 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x0748 */ int field_0x0748;
/* 0x074C */ mDoExt_btpAnm* field_0x074c;
/* 0x0750 */ mDoExt_btkAnm* field_0x0750;
/* 0x0754 */ u8 field_0x0754[0x0758 - 0x0754];
/* 0x0754 */ u8 field_0x0754;
/* 0x0755 */ u8 field_0x0755[0x0758 - 0x0755];
/* 0x0758 */ int mAnmID;
/* 0x075C */ int mHorseAnmID;
/* 0x0760 */ f32 field_0x0760;
/* 0x0760 */ f32 mPlaySpeed;
/* 0x0764 */ u8 field_0x0764[0x0768 - 0x0764];
/* 0x0768 */ J3DModel* field_0x0768;
/* 0x076C */ J3DModel* field_0x076c;
/* 0x0770 */ u8 field_0x0770[0x0772 - 0x0770];
/* 0x0770 */ u8 field_0x0770;
/* 0x0771 */ u8 field_0x0771;
/* 0x0772 */ s16 field_0x0772;
/* 0x0774 */ dKy_tevstr_c field_0x0774;
/* 0x0AFC */ s16 field_0x0afc;
Expand All @@ -74,11 +76,12 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x0C38 */ f32 field_0x0c38;
/* 0x0C3C */ s16 field_0x0c3c;
/* 0x0C3E */ u8 field_0x0C3E[0x0C40 - 0x0C3E];
/* 0x0C40 */ u32 field_0x0c40;
/* 0x0C40 */ u32 mShadowID;
/* 0x0C44 */ s16 field_0x0c44[10];
/* 0x0C58 */ s16 field_0x0c58;
/* 0x0C5A */ s16 field_0x0c5a;
/* 0x0C5C */ u8 field_0x0C5C[0x0C60 - 0x0C5C];
/* 0x0C5C */ s16 field_0x0c5c;
/* 0x0C5D */ u8 field_0x0C5E[0x0C60 - 0x0C5E];
/* 0x0C60 */ int field_0x0c60;
/* 0x0C64 */ int field_0x0c64;
/* 0x0C68 */ s16 field_0x0c68;
Expand All @@ -87,15 +90,21 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x0C70 */ s16 field_0x0c70;
/* 0x0C72 */ s16 field_0x0c72;
/* 0x0C74 */ s16 field_0x0c74;
/* 0x0C76 */ u8 field_0x0C76[0x0C7D - 0x0C76];
/* 0x0C76 */ u8 field_0x0c76;
/* 0x0C77 */ u8 field_0x0c77;
/* 0x0C78 */ u8 field_0x0c78;
/* 0x0C79 */ u8 field_0x0c79;
/* 0x0C7A */ u8 field_0x0c7a;
/* 0x0C7B */ u8 field_0x0c7b;
/* 0x0C7C */ u8 field_0x0c7c;
/* 0x0C7D */ u8 field_0x0c7d;
/* 0x0C7E */ u8 field_0x0C7E[0x0C80 - 0x0C7E];
/* 0x0C80 */ cXyz field_0x0c80;
/* 0x0C8C */ s16 field_0x0c8c;
/* 0x0C8E */ s16 field_0x0c8e;
/* 0x0C90 */ s16 field_0x0c90;
/* 0x0C92 */ s16 field_0x0c92;
/* 0x0C94 */ dBgS_AcchCir field_0x0c94;
/* 0x0C94 */ dBgS_AcchCir mWall;
/* 0x0CD4 */ dBgS_ObjAcch field_0x0cd4;
/* 0x0EAC */ s16 field_0x0eac;
/* 0x0EAE */ u8 field_0x0EAE[0x0EB0 - 0x0EAE];
Expand All @@ -104,18 +113,19 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x0EC0 */ csXyz field_0x0ec0;
/* 0x0EC6 */ u8 field_0x0EC6[0x0EC8 - 0x0EC6];
/* 0x0EC8 */ dCcD_Stts field_0x0ec8;
/* 0x0F04 */ dCcD_Sph field_0x0f04[2];
/* 0x1174 */ dCcD_Sph field_0x1174[4];
/* 0x0F04 */ dCcD_Sph mHorseSpheres1[2];
/* 0x1174 */ dCcD_Sph mHorseSpheres2[4];
/* 0x1654 */ dCcD_Stts field_0x1654;
/* 0x1690 */ dCcD_Sph field_0x1690[3];
/* 0x1A38 */ dCcD_Sph field_0x1a38;
/* 0x1B70 */ dCcD_Sph field_0x1b70;
/* 0x1CA8 */ dCcD_Cyl field_0x1ca8;
/* 0x1DE4 */ dCcU_AtInfo mAtInfo;
/* 0x1E08 */ u8 field_0x1E08[0x1E0A - 0x1E08];
/* 0x1E08 */ u8 field_0x1e08;
/* 0x1E09 */ u8 field_0x1e09;
/* 0x1E0A */ u16 field_0x1e0a;
/* 0x1E0C */ u16 field_0x1e0c;
/* 0x1E0E */ u8 field_0x1E0E[0x1E0F - 0x1E0E];
/* 0x1E0E */ u8 field_0x1e0e;
/* 0x1E0F */ s8 field_0x1e0f;
/* 0x1E10 */ f32 field_0x1e10;
/* 0x1E14 */ cXyz field_0x1e14;
Expand All @@ -129,8 +139,9 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x1E98 */ cXyz field_0x1e98[5];
/* 0x1ED4 */ cXyz field_0x1ed4[5];
/* 0x1F10 */ Z2SoundObjSimple field_0x1f10[5];
/* 0x1FB0 */ u8 field_0x1FB0[0x1FB4 - 0x1FB0];
/* 0x1FB4 */ fopAc_ac_c* mMantChild;
/* 0x1FB0 */ u8 mInitHIO;
/* 0x1FB0 */ u8 field_0x1FB1[0x1FB4 - 0x1FB1];
/* 0x1FB4 */ fpc_ProcID mMantChildID;
/* 0x1FB8 */ cXyz field_0x1fb8;
/* 0x1FC4 */ int field_0x1fc4;
/* 0x1FC8 */ s16 field_0x1fc8;
Expand All @@ -145,25 +156,12 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x2170 */ mDoExt_3DlineMat1_c field_0x2170[2];
/* 0x21E8 */ mDoExt_3DlineMat1_c field_0x21e8;
/* 0x2224 */ dKy_tevstr_c field_0x2224;
/* 0x25AC */ u32 field_0x25ac;
/* 0x25B0 */ u32 field_0x25b0;
/* 0x25B4 */ u32 field_0x25b4;
/* 0x25B8 */ u32 field_0x25b8;
/* 0x25BC */ u32 field_0x25bc;
/* 0x25C0 */ u32 field_0x25c0;
/* 0x25C4 */ u32 field_0x25c4;
/* 0x25C8 */ u32 field_0x25c8;
/* 0x25CC */ u32 field_0x25cc;
/* 0x25D0 */ u32 field_0x25d0;
/* 0x25D4 */ u8 field_0x25D4[0x25D8 - 0x25D4];
/* 0x25D8 */ u32 field_0x25d8;
/* 0x25DC */ u32 field_0x25dc;
/* 0x25E0 */ u32 field_0x25e0;
/* 0x25E4 */ u32 field_0x25e4[3];
/* 0x25AC */ u32 field_0x25ac[17];
/* 0x25F0 */ u8 field_0x25F0[0x2688 - 0x25F0];
/* 0x2688 */ u32 field_0x2688;
/* 0x268C */ u32 field_0x268c[3];
/* 0x2698 */ u8 field_0x2698[0x269C - 0x2698];
/* 0x2698 */ u8 field_0x2698;
/* 0x2699 */ u8 field_0x2699;
/* 0x269C */ cXyz field_0x269c;
/* 0x26A8 */ cXyz field_0x26a8[2];
/* 0x26C0 */ s16 field_0x26c0;
Expand All @@ -178,13 +176,15 @@ class b_gnd_class : public fopEn_enemy_c {
/* 0x2704 */ cXyz field_0x2704;
/* 0x2710 */ cXyz field_0x2710;
/* 0x271C */ s16 field_0x271c;
/* 0x271E */ u8 field_0x271E[0x272C - 0x271E];
/* 0x271E */ u8 field_0x271E[0x2720 - 0x271E];
/* ox2720 */ cXyz field_0x2720;
/* 0x272C */ s16 field_0x272c;
/* 0x272E */ u8 field_0x272E[0x2730 - 0x272E];
/* 0x2730 */ f32 field_0x2730;
/* 0x2734 */ f32 field_0x2734;
/* 0x2738 */ u8 field_0x2738;
/* 0x2739 */ u8 field_0x2739[0x273C - 0x2739];
/* 0x2739 */ u8 field_0x2739;
/* 0x273A */ u8 field_0x273A[0x273C - 0x273A];
/* 0x273C */ f32 field_0x273c;
/* 0x2740 */ u8 field_0x2740;
/* 0x2741 */ u8 field_0x2741[0x2744 - 0x2741];
Expand All @@ -197,6 +197,14 @@ class daB_GND_HIO_c {
public:
/* 805F4A4C */ daB_GND_HIO_c();
/* 80602230 */ ~daB_GND_HIO_c();

/* 0x00 */ f32 field_0x0;
/* 0x04 */ s8 field_0x4;
/* 0x08 */ f32 model_size;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
};

#endif /* D_A_B_GND_H */
14 changes: 12 additions & 2 deletions include/d/actor/d_a_mant.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,18 @@
*
*/
class mant_class : public fopAc_ac_c {
private:
/* 0x568 */ u8 field_0x568[0x39a4 - 0x568];
public:
/* 0x0568 */ u8 field_0x568[0x395c - 0x568];
/* 0x395C */ f32 field_0x395c;
/* 0x3960 */ f32 field_0x3960;
/* 0x3964 */ u8 field_0x3964;
/* 0x3965 */ u8 field_0x3965;
/* 0x3966 */ u8 field_0x3966;
/* 0x3967 */ u8 field_0x3967;
/* 0x3968 */ u8 field_0x3968;
/* 0x3969 */ u8 field_0x3969;
/* 0x396A */ u8 field_0x396A[0x39a4 - 0x396A];

};

STATIC_ASSERT(sizeof(mant_class) == 0x39a4);
Expand Down
2 changes: 1 addition & 1 deletion include/d/actor/d_a_mg_rod.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class dmg_rod_class : public fopAc_ac_c {
/* 0x0F80 */ u8 field_0xf80[0xFAC - 0xF80];
/* 0x0FAC */ mg_hook_s field_0xfac[2];
/* 0x0FEC */ u8 field_0xfec[0x1060 - 0xFEC];
/* 0x1060 */ cXyz field_0x1060;
/* 0x1060 */ cXyz mHookPosition;
/* 0x106C */ cXyz field_0x106c;
/* 0x1078 */ cXyz field_0x1078;
/* 0x1084 */ csXyz field_0x1084;
Expand Down
102 changes: 77 additions & 25 deletions include/d/actor/d_a_npc_gnd.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,53 +11,64 @@
* @details
*
*/
class daNpc_Gnd_c : public fopAc_ac_c {
class daNpc_Gnd_c : public daNpcT_c {
public:
typedef int (daNpc_Gnd_c::*cutFunc)(int);

enum Type {
TYPE_0,
TYPE_1,
};

/* 809BB60C */ ~daNpc_Gnd_c();
/* 809BB730 */ void create();
/* 809BB9D4 */ void CreateHeap();
/* 809BBE2C */ void Delete();
/* 809BBE60 */ void Execute();
/* 809BBE80 */ void Draw();
/* 809BBF44 */ void createHeapCallBack(fopAc_ac_c*);
/* 809BBF64 */ void ctrlJointCallBack(J3DJoint*, int);
/* 809BBFBC */ void getType();
/* 809BBFDC */ void getFlowNodeNo();
/* 809BBFF8 */ void isDelete();
/* 809BB730 */ int create();
/* 809BB9D4 */ int CreateHeap();
/* 809BBE2C */ int Delete();
/* 809BBE60 */ int Execute();
/* 809BBE80 */ int Draw();
/* 809BBF44 */ static int createHeapCallBack(fopAc_ac_c*);
/* 809BBF64 */ int ctrlJointCallBack(J3DJoint*, int);
/* 809BBFBC */ u8 getType();
/* 809BBFDC */ int getFlowNodeNo();
/* 809BBFF8 */ int isDelete();
/* 809BC028 */ void reset();
/* 809BC168 */ void afterJntAnm(int);
/* 809BC1F4 */ void ctrlBtk();
/* 809BC1F4 */ BOOL ctrlBtk();
/* 809BC328 */ void setParam();
/* 809BC448 */ void setAfterTalkMotion();
/* 809BC4A8 */ void srchActors();
/* 809BC4AC */ void evtTalk();
/* 809BC5AC */ void evtCutProc();
/* 809BC4AC */ BOOL evtTalk();
/* 809BC5AC */ BOOL evtCutProc();
/* 809BC674 */ void action();
/* 809BC760 */ void beforeMove();
/* 809BC7D8 */ void setAttnPos();
/* 809BCA14 */ void setCollision();
/* 809BCB48 */ bool drawDbgInfo();
/* 809BCB50 */ void afterSetMotionAnm(int, int, f32, int);
/* 809BCB48 */ int drawDbgInfo();
/* 809BCB50 */ bool afterSetMotionAnm(int, int, f32, int);
/* 809BCCE8 */ void selectAction();
/* 809BCD30 */ void chkAction(int (daNpc_Gnd_c::*)(void*));
/* 809BCD5C */ void setAction(int (daNpc_Gnd_c::*)(void*));
/* 809BCE04 */ void wait(void*);
/* 809BD050 */ void talk(void*);
/* 809BE2D0 */ daNpc_Gnd_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_evtData_c const*, char**);
/* 809BE2D0 */ daNpc_Gnd_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
/* 809BE40C */ s32 getEyeballRMaterialNo();
/* 809BE414 */ s32 getEyeballLMaterialNo();
/* 809BE41C */ s32 getHeadJointNo();
/* 809BE424 */ s32 getNeckJointNo();
/* 809BE42C */ bool getBackboneJointNo();
/* 809BE42C */ s32 getBackboneJointNo();

static void* mCutNameList;
static u8 mCutList[12];
static char* mCutNameList;
static cutFunc mCutList[1];

private:
/* 0x568 */ u8 field_0x568[0xfa0 - 0x568];
/* 0xE40 */ u8 field_0xe40[0xf80 - 0xe40];
/* 0xF80 */ u8 mType;
/* 0xF81 */ u8 field_0xf81[0xfa0 - 0xf81];
};

STATIC_ASSERT(sizeof(daNpc_Gnd_c) == 0xfa0);
Expand All @@ -66,7 +77,48 @@ class daNpc_Gnd_Param_c {
public:
/* 809BE434 */ ~daNpc_Gnd_Param_c();

static u8 const m[140];
struct Data {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 0x64 */ f32 field_0x64;
/* 0x68 */ f32 field_0x68;
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ f32 field_0x70;
/* 0x74 */ f32 field_0x74;
/* 0x78 */ f32 field_0x78;
/* 0x7C */ f32 field_0x7c;
/* 0x80 */ f32 field_0x80;
/* 0x84 */ f32 field_0x84;
/* 0x88 */ f32 field_0x88;
};

static const Data m;
};


Expand Down
4 changes: 4 additions & 0 deletions include/d/actor/d_a_player.h
Original file line number Diff line number Diff line change
Expand Up @@ -1108,6 +1108,10 @@ class daPy_py_c : public fopAc_ac_c {

BOOL checkClimbEndHang() { return checkResetFlg0(RFLG0_UNK_40000); }

void onForceHorseGetOff() {
onEndResetFlg2(ERFLG2_UNK_2);
}

static daMidna_c* m_midnaActor;
};

Expand Down
Loading