d_a_obj_itamato & d_a_obj_kaisou matching (#2756)

* initial work

* itamato matching

* obj_kaisou matching

* pr cleanup

* fixed error

* error should actually be fixed now
This commit is contained in:
Carco_21
2025-10-28 04:25:42 +02:00
committed by GitHub
parent 54f989f16e
commit 577747e228
5 changed files with 864 additions and 1041 deletions
+2 -2
View File
@@ -2042,12 +2042,12 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ikada"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_inobone"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ita"),
ActorRel(NonMatching, "d_a_obj_itamato"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_itamato"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kabuto"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kag"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kage"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kago"),
ActorRel(NonMatching, "d_a_obj_kaisou"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kaisou"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kamakiri"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kantera"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_katatsumuri"),
+71 -56
View File
@@ -1,6 +1,7 @@
#ifndef D_A_OBJ_ITAMATO_H
#define D_A_OBJ_ITAMATO_H
#include "JSystem/JHostIO/JORFile.h"
#include "f_op/f_op_actor_mng.h"
#include "d/actor/d_a_arrow.h"
#include "d/d_cc_d.h"
@@ -12,46 +13,58 @@
*
* @details
*
*/
*/
class daObj_ItaMato_HIO_c;
class daObj_ItaMato_c : public fopAc_ac_c {
private:
/* 0x568 */ daObj_ItaMato_HIO_c* mHIO;
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ J3DModel* mpModels[2];
/* 0x57C */ dBgS_ObjAcch mBgc;
/* 0x754 */ dCcD_Stts mStts;
/* 0x790 */ dBgS_AcchCir mAcchCir;
/* 0x7D0 */ cBgS_GndChk mGndChk;
/* 0x80C */ dCcD_Sph mSph;
/* 0x944 */ cM3dGLin mLin;
/* 0x960 */ dBgS_LinChk mLinChk;
/* 0x9D0 */ csXyz field_0x9d0[3];
/* 0x9E4 */ int mCutType;
/* 0x9E8 */ int field_0x9e8;
/* 0x9EC */ f32 mGroundH;
/* 0x9F0 */ f32 field_0x9f0[3];
/* 0x9FC */ s16 field_0x9fc[3];
/* 0xA02 */ s16 field_0xa02;
/* 0xA04 */ u32 mShadowKey;
/* 0xA08 */ u32 mPrtcls[3];
/* 0xA14 */ u8 mType;
/* 0xA15 */ u8 field_0xa15;
/* 0xA15 */ u8 field_0xa16;
/* 0xA17 */ u8 field_0xa17;
/* 0xA18 */ u8 field_0xa18;
/* 0xA19 */ u8 mFake;
public:
/* 80C294EC */ ~daObj_ItaMato_c();
/* 80C2971C */ void create();
/* 80C29CD8 */ void CreateHeap();
/* 80C29DAC */ void Delete();
/* 80C29DE0 */ void Execute();
/* 80C2A44C */ void Draw();
/* 80C2A5D0 */ void createHeapCallBack(fopAc_ac_c*);
/* 80C2A5F0 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80C2A620 */ void getResName();
daObj_ItaMato_c() {}
/* 80C294EC */ virtual ~daObj_ItaMato_c();
/* 80C2971C */ cPhs__Step create();
/* 80C29CD8 */ int CreateHeap();
/* 80C29DAC */ int Delete();
/* 80C29DE0 */ int Execute();
/* 80C2A44C */ int Draw();
/* 80C2A5D0 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80C2A5F0 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80C2A620 */ const char* getResName();
/* 80C2A630 */ void setSwayParam(fopAc_ac_c*);
/* 80C2A7C4 */ void setPrtcls();
/* 80C2A890 */ void setEnvTevColor();
/* 80C2A8EC */ void setRoomNo();
/* 80C2A930 */ void setMtx();
int checkCrs(fopAc_ac_c* param_0, cXyz param_1, cXyz param_2, f32 param_3) {
daArrow_c* arrow_p = (daArrow_c*)param_0;
cM3dGSph sp38;
cXyz sp2C;
cXyz sp20;
u8 getBitSW2() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
JUT_ASSERT(170, NULL != arrow_p);
if (field_0xa16 != 0 || health == 0) {
return 0;
}
sp38.Set(field_0x80c.GetShapeP()->GetC(), field_0x80c.GetShapeP()->GetR() + (arrow_p->getArrowAtR() * 2.0f));
if ((param_1 - current.pos).abs() < param_3) {
field_0x944.SetStartEnd(param_1, param_2);
if (cM3d_Cross_LinSph(&field_0x944, &sp38)) {
return 3;
}
}
return 0;
}
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
int getNo() {
u8 var_r31 = fopAcM_GetParam(this) & 0xFF;
@@ -66,6 +79,33 @@ public:
return no;
}
u8 getType() { return 0; }
void setCutType(u8 i_cutType) { mCutType = i_cutType; }
int checkCrs(fopAc_ac_c* param_0, cXyz param_1, cXyz param_2, f32 param_3) {
daArrow_c* arrow_p = (daArrow_c*)param_0;
cM3dGSph sp38;
cXyz sp2C;
cXyz sp20;
JUT_ASSERT(170, NULL != arrow_p);
if (field_0xa16 != 0 || health == 0) {
return 0;
}
sp38.Set(mSph.GetShapeP()->GetC(), mSph.GetShapeP()->GetR() + (arrow_p->getArrowAtR() * 2.0f));
if ((param_1 - current.pos).abs() < param_3) {
mLin.SetStartEnd(param_1, param_2);
if (cM3d_Cross_LinSph(&mLin, &sp38)) {
return 3;
}
}
return 0;
}
BOOL checkBrk() {
if (field_0xa15 != 0) {
return 4;
@@ -75,33 +115,8 @@ public:
}
void onFake() { mFake = true; }
private:
/* 0x568 */ u8 field_0x568[0x57C - 0x568];
/* 0x57C */ dBgS_ObjAcch field_0x57c;
/* 0x754 */ dCcD_Stts field_0x754;
/* 0x790 */ dBgS_AcchCir field_0x790;
/* 0x7D0 */ cBgS_GndChk field_0x7d0;
/* 0x80C */ dCcD_Sph field_0x80c;
/* 0x944 */ cM3dGLin field_0x944;
/* 0x960 */ dBgS_LinChk field_0x960;
/* 0x9D0 */ csXyz field_0x9d0[3];
/* 0x9e2 */ u8 field_0x9e2[0xA15 - 0x9E2];
/* 0xA15 */ u8 field_0xa15;
/* 0xA15 */ u8 field_0xa16;
/* 0xA17 */ u8 field_0xa17[0xA19 - 0xA17];
/* 0xA19 */ u8 mFake;
/* 0xA1A */ u8 field_0xa1a[0xA20 - 0xA1A];
};
STATIC_ASSERT(sizeof(daObj_ItaMato_c) == 0xa20);
class daObj_ItaMato_Param_c {
public:
/* 80C2AB04 */ ~daObj_ItaMato_Param_c();
static u8 const m[20];
};
#endif /* D_A_OBJ_ITAMATO_H */
+37 -7
View File
@@ -1,7 +1,10 @@
#ifndef D_A_OBJ_KAISOU_H
#define D_A_OBJ_KAISOU_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "f_op/f_op_actor.h"
/**
* @ingroup actors-objects
@@ -10,20 +13,47 @@
*
* @details
*
*/
*/
class daObjKaisou_c : public fopAc_ac_c {
public:
/* 80C34058 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80C34058 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 80C34390 */ void initCcCylinder();
/* 80C343F0 */ void setCcCylinder();
/* 80C34438 */ void ObjHit();
/* 80C34824 */ void Execute();
/* 80C34A98 */ void Delete();
/* 80C34824 */ int Execute();
/* 80C34A98 */ int Delete();
/* 80C34ACC */ void setBaseMtx();
/* 80C34BD8 */ void create();
/* 80C34BD8 */ cPhs__Step create();
inline int CreateHeap();
inline int Draw();
private:
/* 0x568 */ u8 field_0x568[0x79c - 0x568];
/* 0x568 */ u8 field_0x568;
/* 0x569 */ u8 field_0x569;
/* 0x56A */ u8 field_0x56a[0x56e - 0x56a];
/* 0x56E */ s16 mJoint1ZRot;
/* 0x570 */ s16 mJoint2ZRot;
/* 0x572 */ s16 mJoint3ZRot;
/* 0x574 */ s16 field_0x574;
/* 0x576 */ s16 field_0x576;
/* 0x578 */ s16 field_0x578;
/* 0x57A */ s16 field_0x57a;
/* 0x57C */ s16 field_0x57c;
/* 0x57E */ s16 field_0x57e;
/* 0x580 */ s16 field_0x580;
/* 0x582 */ s16 field_0x582;
/* 0x584 */ s16 mJointYRot;
/* 0x588 */ Z2SoundObjSimple mSound;
/* 0x5A8 */ s16 mInvulnerabilityTimer;
/* 0x5AA */ u8 field_0x5aa[0x5b0 - 0x5aa];
/* 0x5B0 */ J3DModel* mpModel;
/* 0x5B4 */ request_of_phase_process_class mPhase;
/* 0x5BC */ dBgS_AcchCir mAcchCir;
/* 0x5FC */ dCcD_Stts mStts;
/* 0x638 */ dCcD_Cyl mCyl;
/* 0x774 */ dCcU_AtInfo mAtInfo;
/* 0x798 */ u8 field_0x798[0x79c - 0x798];
};
STATIC_ASSERT(sizeof(daObjKaisou_c) == 0x79c);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff