mirror of https://github.com/zeldaret/tp.git
d_a_e_mf equivalent and d_a_e_dn work (#2492)
* Tiny start on d_a_obj_gra2 * Initial work * Solid work done * More work * work on some rolling functions and deme camera * Almost all functions worked on * All functions worked on * Fixed some BaseNpc functions I broke * PR Cleanup * PR cleanup part 2 * Worked on create function * Worked up to search_bomb * Work on various action functions * Almost all functions worked on * d_a_e_mf equivalent * Started copying over to d_a_e_dn * d_a_e_dn almost equivalent, e_mf cleanup * somehow accidentally took out something from gra2 in a previous commit * Fixed data layout issue in d_a_e_dn * PR cleanup * Took out fopen_enemy_c inheritance
This commit is contained in:
parent
ac06966414
commit
7025de1c9c
|
@ -1673,7 +1673,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_e_kr"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_mb"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_md"),
|
||||
ActorRel(NonMatching, "d_a_e_mf"),
|
||||
ActorRel(Equivalent, "d_a_e_mf"),
|
||||
ActorRel(NonMatching, "d_a_e_mk"),
|
||||
ActorRel(NonMatching, "d_a_e_mk_bo"),
|
||||
ActorRel(NonMatching, "d_a_e_mm"),
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#ifndef D_A_E_DN_H
|
||||
#define D_A_E_DN_H
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_jnt_col.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
|
@ -10,17 +14,154 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class e_dn_class : public fopEn_enemy_c {
|
||||
class e_dn_class {
|
||||
public:
|
||||
/* 804EDE58 */ e_dn_class();
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0x110c - 0x5ac];
|
||||
|
||||
/* 0x0000 */ fopEn_enemy_c actor;
|
||||
/* 0x05AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x05B4 */ s16 mMode;
|
||||
/* 0x05B6 */ u8 field_0x5b6;
|
||||
/* 0x05B7 */ u8 field_0x5b7;
|
||||
/* 0x05B8 */ u8 field_0x5b8;
|
||||
/* 0x05B9 */ u8 field_0x5b9;
|
||||
/* 0x05BC */ cXyz field_0x5bc;
|
||||
/* 0x05C8 */ cXyz field_0x5c8;
|
||||
/* 0x05D4 */ s16 field_0x5d4;
|
||||
/* 0x05D6 */ s16 field_0x5d6;
|
||||
/* 0x05D8 */ s8 field_0x5d8;
|
||||
/* 0x05DC */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x05E0 */ int mAnmID;
|
||||
/* 0x05E4 */ J3DModel* mpKnifeModel;
|
||||
/* 0x05E8 */ Z2CreatureEnemy mSound;
|
||||
/* 0x068C */ J3DModel* mpShieldModel;
|
||||
/* 0x0690 */ J3DModel* mpSkullModel;
|
||||
/* 0x0694 */ s8 field_0x694;
|
||||
/* 0x0698 */ cXyz field_0x698;
|
||||
/* 0x06A4 */ cXyz field_0x6a4;
|
||||
/* 0x06B0 */ s16 field_0x6b0;
|
||||
/* 0x06B2 */ s16 field_0x6b2;
|
||||
/* 0x06B4 */ dJntCol_c mJntCol;
|
||||
/* 0x06C4 */ s8 field_0x6c4;
|
||||
/* 0x06C8 */ f32 field_0x6c8;
|
||||
/* 0x06CC */ s16 field_0x6cc;
|
||||
/* 0x06CE */ s16 mAction;
|
||||
/* 0x06D0 */ f32 mPlayerDistance;
|
||||
/* 0x06D4 */ s16 mYAngleToPlayer;
|
||||
/* 0x06D6 */ s16 mXAngleToPlayer;
|
||||
/* 0x06D8 */ f32 field_0x6d8;
|
||||
/* 0x06DC */ u32 mShadowKey;
|
||||
/* 0x06E0 */ s16 field_0x6e0[4];
|
||||
/* 0x06E8 */ s16 field_0x6e8;
|
||||
/* 0x06EA */ s16 field_0x6ea;
|
||||
/* 0x06EC */ s16 field_0x6ec;
|
||||
/* 0x06EE */ s8 field_0x6ee;
|
||||
/* 0x06EF */ s8 field_0x6ef;
|
||||
/* 0x06F0 */ s8 field_0x6f0;
|
||||
/* 0x06F1 */ s8 field_0x6f1;
|
||||
/* 0x06F2 */ s8 field_0x6f2;
|
||||
/* 0x06F3 */ s8 field_0x6f3;
|
||||
/* 0x06F4 */ s8 field_0x6f4;
|
||||
/* 0x06F5 */ u8 field_0x6f5;
|
||||
/* 0x06F6 */ s16 field_0x6f6;
|
||||
/* 0x06F8 */ s16 field_0x6f8;
|
||||
/* 0x06FA */ s16 field_0x6fa;
|
||||
/* 0x06FC */ s16 field_0x6fc;
|
||||
/* 0x06FE */ s16 field_0x6fe;
|
||||
/* 0x0700 */ s8 field_0x700;
|
||||
/* 0x0701 */ s8 field_0x701;
|
||||
/* 0x0704 */ f32 field_0x704;
|
||||
/* 0x0708 */ f32 field_0x708;
|
||||
/* 0x070C */ s16 field_0x70c;
|
||||
/* 0x070E */ s16 field_0x70e;
|
||||
/* 0x0710 */ s8 field_0x710;
|
||||
/* 0x0711 */ u8 field_0x711[15];
|
||||
/* 0x0720 */ f32 field_0x720;
|
||||
/* 0x0724 */ csXyz field_0x724;
|
||||
/* 0x072A */ csXyz field_0x72a;
|
||||
/* 0x0730 */ csXyz field_0x730;
|
||||
/* 0x0736 */ s8 field_0x736;
|
||||
/* 0x0737 */ s8 field_0x737;
|
||||
/* 0x0738 */ cXyz field_0x738;
|
||||
/* 0x0744 */ int field_0x744;
|
||||
/* 0x0748 */ u8 field_0x748[4];
|
||||
/* 0x074C */ f32 field_0x74c;
|
||||
/* 0x0750 */ s16 field_0x750;
|
||||
/* 0x0754 */ f32 field_0x754;
|
||||
/* 0x0758 */ s16 field_0x758;
|
||||
/* 0x075C */ f32 field_0x75c;
|
||||
/* 0x0760 */ s16 field_0x760;
|
||||
/* 0x0762 */ csXyz field_0x762[11];
|
||||
/* 0x07A4 */ csXyz field_0x7a4[11];
|
||||
/* 0x07E8 */ f32 field_0x7e8;
|
||||
/* 0x07EC */ s16 field_0x7ec[2];
|
||||
/* 0x07F0 */ s16 field_0x7f0;
|
||||
/* 0x07F2 */ s16 field_0x7f2;
|
||||
/* 0x07F4 */ s16 field_0x7f4;
|
||||
/* 0x07F6 */ s16 field_0x7f6;
|
||||
/* 0x07FA */ s16 field_0x7f8;
|
||||
/* 0x07FA */ s16 field_0x7fa;
|
||||
/* 0x07FC */ s16 field_0x7fc[3];
|
||||
/* 0x0802 */ s16 field_0x802[4];
|
||||
/* 0x080A */ s16 field_0x80a;
|
||||
/* 0x080C */ s16 field_0x80c;
|
||||
/* 0x080E */ csXyz field_0x80e[4];
|
||||
/* 0x0826 */ s16 field_0x826;
|
||||
/* 0x0828 */ s16 field_0x828;
|
||||
/* 0x082A */ s16 field_0x82a;
|
||||
/* 0x082C */ s16 field_0x82c;
|
||||
/* 0x082E */ s8 field_0x82e;
|
||||
/* 0x082F */ u8 field_0x82f;
|
||||
/* 0x0830 */ s16 field_0x830;
|
||||
/* 0x0832 */ s16 field_0x832;
|
||||
/* 0x0834 */ u8 field_0x834[2];
|
||||
/* 0x0836 */ csXyz field_0x836;
|
||||
/* 0x083C */ f32 field_0x83c;
|
||||
/* 0x0840 */ s16 field_0x840;
|
||||
/* 0x0842 */ s16 field_0x842;
|
||||
/* 0x0844 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x0884 */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x0A5C */ f32 field_0xa5c;
|
||||
/* 0x0A60 */ dCcD_Stts mStts;
|
||||
/* 0x0A9C */ dCcD_Sph field_0xa9c[3];
|
||||
/* 0x0E44 */ dCcD_Sph field_0xe44;
|
||||
/* 0x0F7C */ dCcD_Sph field_0xf7c;
|
||||
/* 0x10B4 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x10D8 */ u8 field_0x10d8;
|
||||
/* 0x10D9 */ u8 field_0x10d9;
|
||||
/* 0x10DA */ s8 field_0x10da;
|
||||
/* 0x10DB */ u8 field_0x10db;
|
||||
/* 0x10DC */ u32 field_0x10dc;
|
||||
/* 0x10E0 */ u32 field_0x10e0;
|
||||
/* 0x10E4 */ s8 field_0x10e4;
|
||||
/* 0x10E8 */ u32 field_0x10e8[2];
|
||||
/* 0x10F0 */ u32 field_0x10f0[2];
|
||||
/* 0x10F8 */ u32 field_0x10f8;
|
||||
/* 0x10FC */ u32 field_0x10fc;
|
||||
/* 0x1100 */ u8 field_0x1100[12];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_dn_class) == 0x110c);
|
||||
|
||||
class daE_DN_HIO_c {
|
||||
class daE_DN_HIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 804E51AC */ daE_DN_HIO_c();
|
||||
/* 804EE39C */ ~daE_DN_HIO_c();
|
||||
/* 804EE39C */ virtual ~daE_DN_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ s8 field_0x4;
|
||||
/* 0x08 */ f32 model_size; // 基本サイズ
|
||||
/* 0x0C */ f32 movement_speed; // 移動速度
|
||||
/* 0x10 */ f32 dash_speed; // 突進速度
|
||||
/* 0x14 */ f32 battle_init_range; // 戦闘開始範囲
|
||||
/* 0x18 */ f32 attack_init_range; // 攻撃開始範囲
|
||||
/* 0x1C */ s16 field_0x1c; // 防御静止間
|
||||
/* 0x1E */ s16 field_0x1e; // 魂抜間 弱
|
||||
/* 0x20 */ s16 field_0x20; // 魂抜間 強
|
||||
/* 0x22 */ u8 field_0x22;
|
||||
/* 0x23 */ u8 invulnerable; // 不死身
|
||||
/* 0x24 */ u8 field_0x24; // 学習なし
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#ifndef D_A_E_MF_H
|
||||
#define D_A_E_MF_H
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_jnt_col.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
|
@ -10,17 +14,147 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class e_mf_class : public fopEn_enemy_c {
|
||||
class e_mf_class {
|
||||
public:
|
||||
/* 80712F20 */ e_mf_class();
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0x10ec - 0x5ac];
|
||||
|
||||
/* 0x0000 */ fopEn_enemy_c actor;
|
||||
/* 0x05AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x05B4 */ s16 field_0x5b4;
|
||||
/* 0x05B6 */ u8 field_0x5b6;
|
||||
/* 0x05B7 */ u8 field_0x5b7;
|
||||
/* 0x05B8 */ u8 field_0x5b8;
|
||||
/* 0x05B9 */ u8 field_0x5b9;
|
||||
/* 0x05BC */ cXyz field_0x5bc;
|
||||
/* 0x05C8 */ cXyz field_0x5c8;
|
||||
/* 0x05D4 */ s16 field_0x5d4;
|
||||
/* 0x05D6 */ s16 field_0x5d6;
|
||||
/* 0x05D8 */ s8 field_0x5d8;
|
||||
/* 0x05DC */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x05E0 */ int mAnmID;
|
||||
/* 0x05E4 */ J3DModel* mpAxeModel;
|
||||
/* 0x05E8 */ Z2CreatureEnemy mSound;
|
||||
/* 0x068C */ J3DModel* mpShieldModel;
|
||||
/* 0x0690 */ u8 field_0x690[4];
|
||||
/* 0x0694 */ dJntCol_c mJntCol;
|
||||
/* 0x06A4 */ s8 field_0x6a4;
|
||||
/* 0x06A8 */ f32 field_0x6a8;
|
||||
/* 0x06AC */ s16 field_0x6ac;
|
||||
/* 0x06AE */ s16 mAction;
|
||||
/* 0x06B0 */ f32 mPlayerDistance;
|
||||
/* 0x06B4 */ s16 mYAngleToPlayer;
|
||||
/* 0x06B6 */ s16 mXAngleToPlayer;
|
||||
/* 0x06B8 */ f32 field_0x6b8;
|
||||
/* 0x06BC */ u32 mShadowKey;
|
||||
/* 0x06C0 */ s16 field_0x6c0[4];
|
||||
/* 0x06C8 */ s16 field_0x6c8;
|
||||
/* 0x06CA */ s16 field_0x6ca;
|
||||
/* 0x06CC */ s16 field_0x6cc;
|
||||
/* 0x06CE */ s8 field_0x6ce;
|
||||
/* 0x06CF */ s8 field_0x6cf;
|
||||
/* 0x06D0 */ s8 field_0x6d0;
|
||||
/* 0x06D1 */ s8 field_0x6d1;
|
||||
/* 0x06D2 */ s8 field_0x6d2;
|
||||
/* 0x06D3 */ s8 field_0x6d3;
|
||||
/* 0x06D4 */ s8 field_0x6d4;
|
||||
/* 0x06D5 */ u8 field_0x6d5;
|
||||
/* 0x06D6 */ s16 field_0x6d6;
|
||||
/* 0x06D8 */ s16 field_0x6d8;
|
||||
/* 0x06DA */ s16 field_0x6da;
|
||||
/* 0x06DC */ s16 field_0x6dc;
|
||||
/* 0x06DE */ s16 field_0x6de;
|
||||
/* 0x06E0 */ s8 field_0x6e0;
|
||||
/* 0x06E1 */ s8 field_0x6e1;
|
||||
/* 0x06E4 */ f32 field_0x6e4;
|
||||
/* 0x06E8 */ f32 field_0x6e8;
|
||||
/* 0x06EC */ s16 field_0x6ec;
|
||||
/* 0x06EE */ s16 field_0x6ee;
|
||||
/* 0x06F0 */ s8 field_0x6f0;
|
||||
/* 0x06F1 */ u8 field_0x6f1[0x700 - 0x6f1];
|
||||
/* 0x0700 */ f32 field_0x700;
|
||||
/* 0x0704 */ csXyz field_0x704;
|
||||
/* 0x070A */ csXyz field_0x70a;
|
||||
/* 0x0710 */ csXyz field_0x710;
|
||||
/* 0x0716 */ s8 field_0x716;
|
||||
/* 0x0717 */ s8 field_0x717;
|
||||
/* 0x0718 */ cXyz field_0x718;
|
||||
/* 0x0724 */ u32 field_0x724;
|
||||
/* 0x0728 */ u8 field_0x728;
|
||||
/* 0x072C */ f32 field_0x72c;
|
||||
/* 0x0730 */ s16 field_0x730;
|
||||
/* 0x0734 */ f32 field_0x734;
|
||||
/* 0x0738 */ s16 field_0x738;
|
||||
/* 0x073C */ f32 field_0x73c;
|
||||
/* 0x0740 */ s16 field_0x740;
|
||||
/* 0x0742 */ csXyz field_0x742[11];
|
||||
/* 0x0784 */ csXyz field_0x784[11];
|
||||
/* 0x07C8 */ f32 field_0x7c8;
|
||||
/* 0x07CC */ s16 field_0x7cc[2];
|
||||
/* 0x07D0 */ s16 field_0x7d0;
|
||||
/* 0x07D2 */ s16 field_0x7d2;
|
||||
/* 0x07D4 */ s16 field_0x7d4;
|
||||
/* 0x07D6 */ s16 field_0x7d6;
|
||||
/* 0x07D8 */ s16 field_0x7d8;
|
||||
/* 0x07DA */ s16 field_0x7da;
|
||||
/* 0x07DC */ s16 field_0x7dc[3];
|
||||
/* 0x07E2 */ s16 field_0x7e2[4];
|
||||
/* 0x07EA */ s16 field_0x7ea;
|
||||
/* 0x07EC */ s16 field_0x7ec;
|
||||
/* 0x07EE */ csXyz field_0x7ee[4];
|
||||
/* 0x0806 */ s16 field_0x806;
|
||||
/* 0x0808 */ s16 field_0x808;
|
||||
/* 0x080A */ s16 field_0x80a;
|
||||
/* 0x080C */ s16 field_0x80c;
|
||||
/* 0x080E */ s8 field_0x80e;
|
||||
/* 0x0810 */ s16 field_0x810;
|
||||
/* 0x0812 */ s16 field_0x812;
|
||||
/* 0x0814 */ u8 field_0x814[2];
|
||||
/* 0x0816 */ csXyz field_0x816;
|
||||
/* 0x081C */ f32 field_0x81c;
|
||||
/* 0x0820 */ s16 field_0x820;
|
||||
/* 0x0822 */ s16 field_0x822;
|
||||
/* 0x0824 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x0864 */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x0A3C */ f32 field_0xa3c;
|
||||
/* 0x0A40 */ dCcD_Stts mStts;
|
||||
/* 0x0A7C */ dCcD_Sph field_0xa7c[3];
|
||||
/* 0x0E24 */ dCcD_Sph field_0xe24;
|
||||
/* 0x0F5C */ dCcD_Sph field_0xf5c;
|
||||
/* 0x1094 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x10B8 */ u8 field_0x10b8;
|
||||
/* 0x10B9 */ u8 field_0x10b9;
|
||||
/* 0x10BA */ s8 field_0x10ba;
|
||||
/* 0x10BB */ u8 field_0x10bb;
|
||||
/* 0x10BC */ u32 field_0x10bc;
|
||||
/* 0x10C0 */ u32 field_0x10c0;
|
||||
/* 0x10C4 */ s8 field_0x10c4;
|
||||
/* 0x10C8 */ u32 field_0x10c8[2];
|
||||
/* 0x10D0 */ u32 field_0x10d0[2];
|
||||
/* 0x10D8 */ u8 field_0x10d8[0x10e4 - 0x10d8];
|
||||
/* 0x10E4 */ u32 field_0x10e4;
|
||||
/* 0x10E8 */ u32 field_0x10e8;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_mf_class) == 0x10ec);
|
||||
|
||||
class daE_MF_HIO_c {
|
||||
class daE_MF_HIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 8070A70C */ daE_MF_HIO_c();
|
||||
/* 80713464 */ ~daE_MF_HIO_c();
|
||||
/* 80713464 */ virtual ~daE_MF_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ s8 field_0x4;
|
||||
/* 0x08 */ f32 model_size; // 基本サイズ
|
||||
/* 0x0C */ f32 movement_speed; // 移動速度
|
||||
/* 0x10 */ f32 dash_speed; // 突進速度
|
||||
/* 0x14 */ f32 battle_init_range; // 戦闘開始範囲
|
||||
/* 0x18 */ f32 attack_init_range; // 攻撃開始範囲
|
||||
/* 0x1C */ s16 field_0x1c; // 防御静止間
|
||||
/* 0x1E */ s16 field_0x1e; // 魂抜間 弱
|
||||
/* 0x20 */ s16 field_0x20; // 魂抜間 強
|
||||
/* 0x22 */ u8 field_0x22;
|
||||
/* 0x23 */ u8 invulnerable; // 不死身
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -265,6 +265,7 @@ public:
|
|||
bool checkWolfDownPullFlg() const { return mFlags & 0x10; }
|
||||
bool checkDownFlg() const { return mFlags & 0x1; }
|
||||
bool checkCutDownHitFlg() const { return mFlags & 0x2; }
|
||||
bool checkWolfDownStartFlg() const { return mFlags & 0x4; }
|
||||
bool checkDeadFlg() const { return mFlags & 0x8; }
|
||||
bool checkThrowMode(u8 param_1) const { return mThrowMode & param_1; }
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ fpc_ProcID fopKyM_Create(s16 i_procName, fopKyM_CreateFunc i_createFunc, void* i
|
|||
base_process_class* fopKyM_fastCreate(s16 i_procName, int i_param, cXyz* i_pos, cXyz* i_scale,
|
||||
fopKyM_CreateFunc i_createFunc);
|
||||
fpc_ProcID fopKyM_createWpillar(cXyz const* i_pos, f32 scale, int i_param);
|
||||
fpc_ProcID fopKyM_createMpillar(cXyz const* i_pos, f32 i_size);
|
||||
|
||||
inline fopKyM_prm_class* fopKyM_GetAppend(void* i_process) {
|
||||
return (fopKyM_prm_class*)fpcM_GetAppend(i_process);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue