d_a_obj_kag matching + some weak order fixes (#2631)

* obj_kag matching. Also fixed weak func order in e_ww and e_sm

* adding matching for JP
This commit is contained in:
Carco_21 2025-09-06 01:59:41 -07:00 committed by GitHub
parent c612bfbca8
commit cbe5aaca8f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 844 additions and 975 deletions

View File

@ -1744,7 +1744,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_e_sf"),
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_sg"),
ActorRel(NonMatching, "d_a_e_sh"),
ActorRel(Equivalent, "d_a_e_sm"), # weak func order (setMidnaBindEffect)
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_sm"),
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_sm2"),
ActorRel(NonMatching, "d_a_e_st"),
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_st_line"),
@ -1759,7 +1759,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_warpappear"),
ActorRel(NonMatching, "d_a_e_wb"),
ActorRel(NonMatching, "d_a_e_ws"),
ActorRel(Equivalent, "d_a_e_ww"), # weak func order
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_ww"),
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_yc"),
ActorRel(NonMatching, "d_a_e_yd"),
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_yd_leaf"),
@ -2002,7 +2002,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_ita"),
ActorRel(NonMatching, "d_a_obj_itamato"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kabuto"),
ActorRel(NonMatching, "d_a_obj_kag"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kag"),
ActorRel(NonMatching, "d_a_obj_kage"),
ActorRel(NonMatching, "d_a_obj_kago"),
ActorRel(NonMatching, "d_a_obj_kaisou"),

View File

@ -147,18 +147,4 @@ public:
STATIC_ASSERT(sizeof(daE_SM_c) == 0x1160);
class daE_Sm_HIO_c : public JORReflexible {
public:
/* 8079222C */ daE_Sm_HIO_c();
/* 807980E8 */ virtual ~daE_Sm_HIO_c() {}
void genMessage(JORMContext*);
/* スライム - Slime */
/* 0x04 */ s8 field_0x4;
/* 0x08 */ f32 basic_size; // 基本大きさ - Basic Size
/* 0x0C */ f32 pl_notice_dist; // PL認識距離 - PL Notice Distance
/* 0x10 */ f32 core_size; // コア大きさ - Core Size
};
#endif /* D_A_E_SM_H */

View File

@ -119,24 +119,4 @@ private:
STATIC_ASSERT(sizeof(daE_WW_c) == 0xec8);
class daE_WW_HIO_c : public JORReflexible {
public:
/* 807E76EC */ daE_WW_HIO_c();
/* 807EEEBC */ virtual ~daE_WW_HIO_c() {}
void genMessage(JORMContext*);
/* ホワイトウルフォス - White Werewolf */
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 model_size; // モデルサイズ - Model Size
/* 0x0C */ f32 attack_interval; // 攻撃間隔 - Attack Interval
/* 0x10 */ f32 run_anm; // 走りアニメーション - Run Animation
/* 0x14 */ f32 walk_anm; // 歩きアニメーション - Walk Animation
/* 0x18 */ f32 run_speed; // 走る速度 - Run Speed
/* 0x1C */ f32 wolf_escape_speed; // 狼から逃亡速度 - Wolf Escape Speed
/* 0x20 */ f32 link_escape_speed; // リンクから逃亡速度 - Link Escape Speed
/* 0x24 */ u8 move_range_debug_display; // 移動範囲デバック表示 - Move Range Debug Display
};
#endif /* D_A_E_WW_H */

View File

@ -1,6 +1,10 @@
#ifndef D_A_OBJ_KAG_H
#define D_A_OBJ_KAG_H
#include "SSystem/SComponent/c_phase.h"
#include "d/actor/d_a_player.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_cc_d.h"
#include "d/d_insect.h"
/**
@ -10,11 +14,14 @@
*
* @details
*
*/
*/
class daObjKAG_c : public dInsect_c {
public:
/* 80C2E434 */ void setAction(void (daObjKAG_c::*)());
/* 80C2E7A0 */ void Kag_Bgcheck(cXyz*, csXyz*, cXyz*);
typedef void (daObjKAG_c::*actionFunc)();
/* 80C2E434 */ void setAction(actionFunc);
/* 80C2E7A0 */ bool Kag_Bgcheck(cXyz*, csXyz*, cXyz*);
/* 80C2EA40 */ void fly();
/* 80C2F764 */ void wait();
/* 80C2F8C4 */ void walk();
@ -25,22 +32,48 @@ public:
/* 80C303C4 */ void action();
/* 80C30424 */ void checkGroundPos();
/* 80C30498 */ void hit_check();
/* 80C3054C */ void execute();
/* 80C306EC */ void _delete();
/* 80C3054C */ int execute();
/* 80C306EC */ int _delete();
/* 80C30754 */ void setBaseMtx();
/* 80C308F0 */ void create();
/* 80C308F0 */ cPhs__Step create();
/* 80C30E54 */ void kag_setParticle();
inline int CreateHeap();
inline int draw();
private:
/* 0x590 */ u8 field_0x568[0x860 - 0x590];
/* 0x590 */ request_of_phase_process_class mPhase;
/* 0x598 */ Z2Creature mSound;
/* 0x628 */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x62C */ mDoExt_brkAnm* mpBrkAnm;
/* 0x630 */ mDoExt_btkAnm* mpBtkAnm;
/* 0x634 */ dBgS_GndChk mGndChk;
/* 0x688 */ dCcD_Stts mStts;
/* 0x6C4 */ dCcD_Sph mSph;
/* 0x7FC */ daPy_boomerangMove_c mBoomerangMove;
/* 0x808 */ cXyz field_0x808;
/* 0x814 */ csXyz field_0x814;
/* 0x81C */ f32 field_0x81c;
/* 0x820 */ f32 field_0x820;
/* 0x824 */ actionFunc mAction;
/* 0x830 */ actionFunc mPrevAction;
/* 0x83C */ int field_0x83c;
/* 0x840 */ u8 field_0x840[0x844 - 0x840];
/* 0x844 */ f32 field_0x844;
/* 0x848 */ f32 field_0x848;
/* 0x84C */ s16 field_0x84c;
/* 0x84E */ s16 field_0x84e;
/* 0x850 */ u8 field_0x850[0x852 - 0x850];
/* 0x852 */ s16 field_0x852;
/* 0x854 */ s16 field_0x854;
/* 0x856 */ s16 field_0x856;
/* 0x858 */ u8 field_0x858[0x85a - 0x858];
/* 0x85A */ u8 field_0x85a;
/* 0x85B */ u8 field_0x85b;
/* 0x85C */ u8 field_0x85c;
/* 0x85D */ u8 field_0x85d;
/* 0x85E */ u8 field_0x85e;
/* 0x85F */ u8 field_0x85f;
};
STATIC_ASSERT(sizeof(daObjKAG_c) == 0x860);
class daObj_KagHIO_c {
public:
/* 80C2E40C */ daObj_KagHIO_c();
/* 80C31060 */ ~daObj_KagHIO_c();
};
#endif /* D_A_OBJ_KAG_H */

View File

@ -66,6 +66,20 @@ enum Core_Action {
/* 0x7 */ CORE_ACTION_DEMO = 0x7,
};
class daE_Sm_HIO_c : public JORReflexible {
public:
/* 8079222C */ daE_Sm_HIO_c();
/* 807980E8 */ virtual ~daE_Sm_HIO_c() {}
void genMessage(JORMContext*);
/* スライム - Slime */
/* 0x04 */ s8 field_0x4;
/* 0x08 */ f32 basic_size; // 基本大きさ - Basic Size
/* 0x0C */ f32 pl_notice_dist; // PL認識距離 - PL Notice Distance
/* 0x10 */ f32 core_size; // コア大きさ - Core Size
};
/* 8079222C-80792260 0000EC 0034+00 1/1 0/0 0/0 .text __ct__12daE_Sm_HIO_cFv */
daE_Sm_HIO_c::daE_Sm_HIO_c() {
field_0x4 = -1;

View File

@ -98,6 +98,25 @@ enum Action_Mode {
/* 0xC8 */ ACTION_MODE_200 = 0xC8,
};
class daE_WW_HIO_c : public JORReflexible {
public:
/* 807E76EC */ daE_WW_HIO_c();
/* 807EEEBC */ virtual ~daE_WW_HIO_c() {}
void genMessage(JORMContext*);
/* ホワイトウルフォス - White Werewolf */
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 model_size; // モデルサイズ - Model Size
/* 0x0C */ f32 attack_interval; // 攻撃間隔 - Attack Interval
/* 0x10 */ f32 run_anm; // 走りアニメーション - Run Animation
/* 0x14 */ f32 walk_anm; // 歩きアニメーション - Walk Animation
/* 0x18 */ f32 run_speed; // 走る速度 - Run Speed
/* 0x1C */ f32 wolf_escape_speed; // 狼から逃亡速度 - Wolf Escape Speed
/* 0x20 */ f32 link_escape_speed; // リンクから逃亡速度 - Link Escape Speed
/* 0x24 */ u8 move_range_debug_display; // 移動範囲デバック表示 - Move Range Debug Display
};
namespace {
/* 807EF904-807EF944 000038 0040+00 1/1 0/0 0/0 .data cc_ww_src__22@unnamed@d_a_e_ww_cpp@ */
dCcD_SrcSph cc_ww_src = {

File diff suppressed because it is too large Load Diff