From 577747e228290cd4018135a454f4ae7caf694e90 Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Mon, 27 Oct 2025 22:25:42 -0400 Subject: [PATCH] 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 --- configure.py | 4 +- include/d/actor/d_a_obj_itamato.h | 127 ++-- include/d/actor/d_a_obj_kaisou.h | 44 +- src/d/actor/d_a_obj_itamato.cpp | 1100 +++++++++++++---------------- src/d/actor/d_a_obj_kaisou.cpp | 630 +++++++---------- 5 files changed, 864 insertions(+), 1041 deletions(-) diff --git a/configure.py b/configure.py index 75ccdb0ab20..02107c3ee28 100755 --- a/configure.py +++ b/configure.py @@ -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"), diff --git a/include/d/actor/d_a_obj_itamato.h b/include/d/actor/d_a_obj_itamato.h index e1ca42e6dd3..23d6204617f 100644 --- a/include/d/actor/d_a_obj_itamato.h +++ b/include/d/actor/d_a_obj_itamato.h @@ -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 */ diff --git a/include/d/actor/d_a_obj_kaisou.h b/include/d/actor/d_a_obj_kaisou.h index 52f1a677f68..b0e73fe0ebc 100644 --- a/include/d/actor/d_a_obj_kaisou.h +++ b/include/d/actor/d_a_obj_kaisou.h @@ -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); diff --git a/src/d/actor/d_a_obj_itamato.cpp b/src/d/actor/d_a_obj_itamato.cpp index 4b0b0633d47..f228280f990 100644 --- a/src/d/actor/d_a_obj_itamato.cpp +++ b/src/d/actor/d_a_obj_itamato.cpp @@ -7,171 +7,524 @@ #include "d/actor/d_a_obj_itamato.h" #include "d/d_cc_d.h" -#include "dol2asm.h" +#include "d/actor/d_a_npc.h" +#include "JSystem/JHostIO/JORFile.h" +struct daObj_ItaMato_HIOParam { + /* 0x00 */ f32 attn_offset; + /* 0x04 */ f32 gravity; + /* 0x08 */ f32 scale; + /* 0x0C */ f32 real_shadow_size; + /* 0x10 */ f32 shake_pow; +}; +class daObj_ItaMato_Param_c { +public: + /* 80C2AB04 */ virtual ~daObj_ItaMato_Param_c() {} -// -// Forward References: -// + static daObj_ItaMato_HIOParam const m; +}; -extern "C" void __dt__15daObj_ItaMato_cFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void create__15daObj_ItaMato_cFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__8cM3dGLinFv(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void CreateHeap__15daObj_ItaMato_cFv(); -extern "C" void Delete__15daObj_ItaMato_cFv(); -extern "C" void Execute__15daObj_ItaMato_cFv(); -extern "C" void Draw__15daObj_ItaMato_cFv(); -extern "C" void createHeapCallBack__15daObj_ItaMato_cFP10fopAc_ac_c(); -extern "C" void -tgHitCallBack__15daObj_ItaMato_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void getResName__15daObj_ItaMato_cFv(); -extern "C" void setSwayParam__15daObj_ItaMato_cFP10fopAc_ac_c(); -extern "C" void setPrtcls__15daObj_ItaMato_cFv(); -extern "C" void setEnvTevColor__15daObj_ItaMato_cFv(); -extern "C" void setRoomNo__15daObj_ItaMato_cFv(); -extern "C" void setMtx__15daObj_ItaMato_cFv(); -extern "C" static void daObj_ItaMato_Create__FPv(); -extern "C" static void daObj_ItaMato_Delete__FPv(); -extern "C" static void daObj_ItaMato_Execute__FPv(); -extern "C" static void daObj_ItaMato_Draw__FPv(); -extern "C" static bool daObj_ItaMato_IsDelete__FPv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __sinit_d_a_obj_itamato_cpp(); -extern "C" void __dt__21daObj_ItaMato_Param_cFv(); -extern "C" static void func_80C2AB4C(); -extern "C" static void func_80C2AB54(); -extern "C" u8 const m__21daObj_ItaMato_Param_c[20]; -extern "C" extern char const* const d_a_obj_itamato__stringBase0; +#if DEBUG +#define PARAM mHIO->mAttr +#define PARAM_CLASS daObj_ItaMato_HIO_c -// -// External References: -// +class daObj_ItaMato_HIO_c : public mDoHIO_entry_c { +public: + daObj_ItaMato_HIO_c(); + void genMessage(JORMContext* ctx); + void listenPropertyEvent(const JORPropertyEvent*); -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void setEventReg__11dSv_event_cFUsUc(); -extern "C" void getEventReg__11dSv_event_cCFUs(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void forceOnEventMove__Q213dPa_control_c7level_cFUl(); -extern "C" void -set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void GetLockonList__12dAttention_cFl(); -extern "C" void LockonTruth__12dAttention_cFv(); -extern "C" void getActor__10dAttList_cFv(); -extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo(); -extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Move__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -extern "C" void daNpcT_offTmpBit__FUl(); -extern "C" void daNpcT_chkTmpBit__FUl(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGSphFRC4cXyz(); -extern "C" void SetR__8cM3dGSphFf(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__8dCcD_Sph[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_SphAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); + /* 0x8 */ daObj_ItaMato_HIOParam mAttr; +}; +#else +#define PARAM daObj_ItaMato_Param_c::m +#define PARAM_CLASS daObj_ItaMato_Param_c +#endif -// -// Declarations: -// +/* 80C2AB70-80C2AB84 000000 0014+00 4/4 0/0 0/0 .rodata m__21daObj_ItaMato_Param_c */ +daObj_ItaMato_HIOParam const daObj_ItaMato_Param_c::m = { + 110.0f, + -3.0f, + 1.0f, + 400.0f, + 20.0f, +}; -/* ############################################################################################## */ -/* 80C2AC20-80C2AC20 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C2AC20 = "H_ItaMato"; -#pragma pop +#ifdef DEBUG +daObj_ItaMato_HIO_c::daObj_ItaMato_HIO_c() { + mAttr = daObj_ItaMato_Param_c::m; +} + +void daObj_ItaMato_HIO_c::listenPropertyEvent(const JORPropertyEvent* i_event) { + char buffer[2000]; + size_t len; + JORReflexible::listenPropertyEvent(i_event); + JORFile jorFile; + + switch (reinterpret_cast(i_event->id)) { + case 0x40000002: + if (jorFile.open(6, "すべてのファイル(*.*)", NULL, NULL, NULL)) { + memset(buffer, 0, sizeof(buffer)); + len = 0; + sprintf(buffer + len, "%.3ff,\t// 注目オフセット\n", mAttr.attn_offset); + len = strlen(buffer); + sprintf(buffer + len, "%.3ff,\t// 重力\n", mAttr.gravity); + len = strlen(buffer); + sprintf(buffer + len, "%.3ff,\t// スケ−ル\n", mAttr.scale); + len = strlen(buffer); + sprintf(buffer + len, "%.3ff,\t// リアル影サイズ\n", mAttr.real_shadow_size); + len = strlen(buffer); + sprintf(buffer + len, "%.3ff,\t// 揺れパワ−\n", mAttr.shake_pow); + len = strlen(buffer); + jorFile.writeData(buffer, len); + jorFile.close(); + OS_REPORT("write append success!::%6d\n", len); + } else { + OS_REPORT("write append failure!\n"); + } + break; + } +} + +void daObj_ItaMato_HIO_c::genMessage(JORMContext* ctx) { + ctx->genSlider("注目オフセット ", &mAttr.attn_offset, 0.0f, 1000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("重力      ", &mAttr.gravity, -100.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("スケ−ル    ", &mAttr.scale, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("リアル影サイズ ", &mAttr.real_shadow_size, 0.0f, 10000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("揺れパワ−   ", &mAttr.shake_pow, 0.0f, 90.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genButton("ファイル書き出し", 0x40000002, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); +} +#endif + +/* 80C2AB84-80C2ABB4 000014 0030+00 1/1 0/0 0/0 .rodata l_ccDObjData */ +static dCcD_SrcGObjInf const l_ccDObjData = { + {0x0, {{0x0, 0x0, 0x0}, {0xD8FBFDFF, 0x1F}, 0x79}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_STONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg + {0x0}, // mGObjCo +}; /* 80C2AC34-80C2AC74 000000 0040+00 2/2 0/0 0/0 .data l_ccDSph */ static dCcD_SrcSph l_ccDSph = { - { - {0x0, {{0x0, 0x0, 0x0}, {0x0, 0x0}, 0x0}}, // mObj - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf + l_ccDObjData, { {{0.0f, 0.0f, 0.0f}, 0.0f} // mSph } // mSphAttr }; +/* 80C2AD64-80C2AD68 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static PARAM_CLASS l_HIO; + /* 80C2AC74-80C2AC78 -00001 0004+00 1/1 0/0 0/0 .data l_resName */ -SECTION_DATA static void* l_resName = (void*)&d_a_obj_itamato__stringBase0; +static char* l_resName = "H_ItaMato"; + +/* 80C294EC-80C296E0 0000EC 01F4+00 1/0 0/0 0/0 .text __dt__15daObj_ItaMato_cFv */ +daObj_ItaMato_c::~daObj_ItaMato_c() { + OS_REPORT("|%06d:%x|daObj_ItaMato_c -> デストラクト\n", g_Counter.mCounter0, this); + + #ifdef DEBUG + if (mHIO != NULL) { + mHIO->removeHIO(); + } + #endif + + dComIfG_resDelete(&mPhase, getResName()); +} + +/* 80C2971C-80C29AC0 00031C 03A4+00 1/1 0/0 0/0 .text create__15daObj_ItaMato_cFv */ +cPhs__Step daObj_ItaMato_c::create() { + fopAcM_ct(this, daObj_ItaMato_c); + + mType = getType(); + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhase, getResName()); + if (phase == cPhs_COMPLEATE_e) { + OS_REPORT("\t(%s:%d) no:%d, SWBit:%02x, SWBit2:%02x<%08x> -> roomNo.%d", fopAcM_getProcNameString(this), getType(), getNo(), + getBitSW(), getBitSW2(), fopAcM_GetParam(this), fopAcM_GetRoomNo(this)); + if (getBitSW() != 0xFF) { + if (dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))) { + OS_REPORT("===>isDelete:TRUE\n"); + return cPhs_ERROR_e; + } + } + + OS_REPORT("\n"); + + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x16B0)) { + return cPhs_ERROR_e; + } + + health = 1; + J3DModelData* modelData = mpModels[health]->getModelData(); + fopAcM_SetMtx(this, mpModels[health]->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -200.0f, -50.0f, -200.0f, 200.0f, 200.0f, 200.0f); + + #ifdef DEBUG + mHIO = &l_HIO; + mHIO->entryHIO("板的"); + #endif + + mBgc.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + mStts.Init(0xFF, 0, this); + mSph.Set(l_ccDSph); + mSph.SetStts(&mStts); + mSph.SetTgHitCallback(tgHitCallBack); + mBgc.CrrPos(dComIfG_Bgsp()); + mGndChk = mBgc.m_gnd; + mGroundH = mBgc.GetGroundH(); + if (mGroundH != -1e9f) { + setEnvTevColor(); + setRoomNo(); + } + + daNpcT_offTmpBit(60); // dSv_event_tmp_flag_c::T_0060 - Kakariko Village - During bow and arrow game + daNpcT_offTmpBit(63); // dSv_event_tmp_flag_c::T_0063 - Kakariko Village - [Bow and arrow game] Missed the final target! + daNpcT_offTmpBit(64); // dSv_event_tmp_flag_c::T_0064 - Kakariko Village - [Bow and arrow game] Attempting to hit target... + daNpcT_offTmpBit(65); // dSv_event_tmp_flag_c::T_0065 - Kakariko Village - [Bow and arrow game] Destroy first one with Clawshot + daNpcT_offTmpBit(66); // dSv_event_tmp_flag_c::T_0066 - Kakariko Village - [Bow and arrow game] Restart from the middle + + if (strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0 && dComIfGp_roomControl_getStayNo() == 1) { + field_0xa18 = 1; + } + + Execute(); + } + + return phase; +} + +/* 80C29CD8-80C29DAC 0008D8 00D4+00 1/1 0/0 0/0 .text CreateHeap__15daObj_ItaMato_cFv */ +int daObj_ItaMato_c::CreateHeap() { + J3DModelData* modelData = NULL; + modelData = (J3DModelData*)dComIfG_getObjectRes(getResName(), 5); + if (modelData == NULL) { + return 0; + } + + mpModels[0] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModels[0] == NULL) { + return 0; + } + + modelData = (J3DModelData*)dComIfG_getObjectRes(getResName(), 4); + if (modelData == NULL) { + return 0; + } + + mpModels[1] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModels[1] == NULL) { + return 0; + } + + return 1; +} + +/* 80C29DAC-80C29DE0 0009AC 0034+00 1/1 0/0 0/0 .text Delete__15daObj_ItaMato_cFv */ +int daObj_ItaMato_c::Delete() { + OS_REPORT("|%06d:%x|daObj_ItaMato_c -> Delete\n", g_Counter.mCounter0, this); + this->~daObj_ItaMato_c(); + return 1; +} + +/* 80C29DE0-80C2A44C 0009E0 066C+00 2/2 0/0 0/0 .text Execute__15daObj_ItaMato_cFv */ +int daObj_ItaMato_c::Execute() { + cXyz sp38, sp44, sp50; + + mStts.Move(); + field_0xa16 = 1; + + if (field_0xa18 != 0) { + field_0xa16 = 0; + } else if (getBitSW2() == 0xFF || (getBitSW2() != 0xFF && dComIfGs_isSwitch(getBitSW2(), fopAcM_GetRoomNo(this)))) { + field_0xa16 = daNpcT_chkTmpBit(60) == FALSE; + } + + attention_info.flags = 0; + field_0xa15 = 0; + + if (field_0x9e8 != 0) { + field_0x9e8--; + } + + if (field_0x9e8 == 0 && mSph.ChkTgHit()) { + setSwayParam(mSph.GetTgHitAc()); + + if (!mSph.GetTgHitObj()->ChkAtType(AT_TYPE_BOOMERANG)) { + field_0xa15 = 1; + if (health != 0) { + health--; + + if (health < 1) { + u8 i_no = 4; + + if (field_0xa18 != 0) { + if (getBitSW2() != 0xFF) { + if (!dComIfGs_isSwitch(getBitSW2(), fopAcM_GetRoomNo(this))) { + dComIfGs_onSwitch(getBitSW2(), fopAcM_GetRoomNo(this)); + } + } + + dComIfGs_setTmpReg(0xF4FF, dComIfGs_getTmpReg(0xF4FF) + 1); + if (dComIfGp_getAttention()->GetLockonList(0) != NULL) { + if (dComIfGp_getAttention()->LockonTruth()) { + if (this == dComIfGp_getAttention()->GetLockonList(0)->getActor()) { + i_no |= 0x80; + } + } + } + + dComIfGs_setTmpReg(0xF3FF, i_no); + } else if (getBitSW() != 0xFF) { + if (!dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))) { + dComIfGs_onSwitch(getBitSW(), fopAcM_GetRoomNo(this)); + } + } + } + + fopAcM_seStartCurrent(this, Z2SE_OBJ_ARW_TRGT_BRK, 0); + setPrtcls(); + mFake = 0; + } + } + } + + fopAcM_posMoveF(this, mStts.GetCCMoveP()); + mBgc.CrrPos(dComIfG_Bgsp()); + mGndChk = mBgc.m_gnd; + mGroundH = mBgc.GetGroundH(); + if (mGroundH != -1e9f) { + setEnvTevColor(); + setRoomNo(); + } + + for (int i = 0; i < 3; i++) { + if (field_0xa17 != 0) { + mDoMtx_stack_c::YrotS(field_0x9fc[i]); + sp44.set(0.0f, 0.0f, field_0x9f0[i]); + mDoMtx_stack_c::multVec(&sp44, &sp50); + field_0x9d0[i].x = sp50.z; + field_0x9d0[i].z = -sp50.x; + field_0x9fc[i] -= cM_deg2s(45.0f); + } else { + mDoMtx_stack_c::YrotS(field_0xa02); + sp44.set(0.0f, 0.0f, field_0x9f0[i] * cM_ssin(field_0x9fc[i])); + mDoMtx_stack_c::multVec(&sp44, &sp50); + field_0x9d0[i].x = sp50.z; + field_0x9d0[i].z = -sp50.x; + field_0x9fc[i] += cM_deg2s(45.0f); + } + } + + cLib_addCalc2(&field_0x9f0[0], 0.0f, 0.075f, 50.0f); + cLib_addCalc2(&field_0x9f0[1], 0.0f, 0.1f, 100.0f); + cLib_addCalc2(&field_0x9f0[2], 0.0f, 0.125f, 125.0f); + setMtx(); + attention_info.position = current.pos; + attention_info.position.y += PARAM.attn_offset; + eyePos = attention_info.position; + + if (field_0xa16 == 0) { + u32 tgType = 0xD8FBFDFF; + sp38 = current.pos; + + if (health == 0) { + mSph.OffTgSetBit(); + sp38.y += 10.0f; + mSph.SetC(sp38); + mSph.SetR(10.0f); + } else { + if (daNpcT_chkTmpBit(60) && !mFake) { + tgType = 0xD8FBDDFF; + } + + mSph.SetTgType(tgType); + + if (mFake) { + mSph.SetR(100.0f); + } else { + mSph.SetR(60.0f); + } + + sp38.y += 110.0f; + mSph.SetC(sp38); + } + + dComIfG_Ccsp()->Set(&mSph); + } + + mSph.ClrCoHit(); + mSph.ClrTgHit(); + + return 1; +} + +/* 80C2A44C-80C2A5D0 00104C 0184+00 1/1 0/0 0/0 .text Draw__15daObj_ItaMato_cFv */ +int daObj_ItaMato_c::Draw() { + if (field_0xa16 == 0 && (field_0xa18 == 0 || health != 0)) { + g_env_light.settingTevStruct(0, ¤t.pos, &tevStr); + + if (field_0xa18 != 0) { + g_env_light.setLightTevColorType_MAJI(mpModels[1], &tevStr); + mpModels[1]->getModelData()->getMaterialNodePointer(0)->getShape()->hide(); + mDoExt_modelUpdateDL(mpModels[1]); + mpModels[1]->getModelData()->getMaterialNodePointer(0)->getShape()->show(); + } else { + g_env_light.setLightTevColorType_MAJI(mpModels[health], &tevStr); + mDoExt_modelUpdateDL(mpModels[health]); + } + + if (field_0xa18 == 0 && mGroundH != -1e9f) { + mShadowKey = dComIfGd_setShadow(mShadowKey, 1, mpModels[health], ¤t.pos, 400.0f, 20.0f, + current.pos.y, mGroundH, mGndChk, &tevStr, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); + } + } + + return 1; +} + +/* 80C2A5D0-80C2A5F0 0011D0 0020+00 1/1 0/0 0/0 .text createHeapCallBack__15daObj_ItaMato_cFP10fopAc_ac_c */ +int daObj_ItaMato_c::createHeapCallBack(fopAc_ac_c* a_this) { + daObj_ItaMato_c* i_this = (daObj_ItaMato_c*)a_this; + return i_this->CreateHeap(); +} + +/* 80C2A5F0-80C2A620 0011F0 0030+00 1/1 0/0 0/0 .text tgHitCallBack__15daObj_ItaMato_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */ +void daObj_ItaMato_c::tgHitCallBack(fopAc_ac_c* param_1, dCcD_GObjInf* param_2, fopAc_ac_c* param_3, dCcD_GObjInf* param_4) { + daObj_ItaMato_c* i_this = (daObj_ItaMato_c*)param_1; + u8 cutType = 0; + + if (param_3 != NULL) { + if (fopAcM_GetProfName(param_3) == PROC_ALINK) { + cutType = ((daPy_py_c*)param_3)->getCutType(); + } else { + cutType = daPy_py_c::CUT_TYPE_NM_VERTICAL; + } + } + + i_this->setCutType(cutType); +} + +/* 80C2A620-80C2A630 001220 0010+00 3/3 0/0 0/0 .text getResName__15daObj_ItaMato_cFv */ +const char* daObj_ItaMato_c::getResName() { + return l_resName; +} + +/* 80C2A630-80C2A7C4 001230 0194+00 1/1 0/0 0/0 .text setSwayParam__15daObj_ItaMato_cFP10fopAc_ac_c */ +void daObj_ItaMato_c::setSwayParam(fopAc_ac_c* i_actor) { + f32 fVar1 = 1.0f; + f32 fVar2[3] = {0.0f, 0.0f, PARAM.shake_pow}; + + field_0xa02 = fopAcM_searchActorAngleY(this, i_actor) - shape_angle.y + 0x8000; + field_0x9e8 = 8; + field_0xa17 = 0; + + if (fopAcM_GetProfName(i_actor) == PROC_ALINK) { + switch (mCutType) { + case 3: + case 4: + case 6: + case 7: + if (mCutType == 3) { + field_0xa02 -= (s16)0x4000; + } + + if (mCutType == 4) { + field_0xa02 += (s16)0x4000; + } + + fVar1 = 0.6f; + break; + + case 8: + field_0x9e8 = 20; + field_0xa17 = 1; + break; + + case 5: + default: + fVar1 = 0.6f; + break; + } + } else { + fVar1 = 0.6f; + } + + for (int i = 0; i < 3; i++) { + field_0x9f0[i] = fVar1 * cM_deg2s(fVar2[i]); + field_0x9fc[i] = 0x4000; + } +} + +/* 80C2A7C4-80C2A890 0013C4 00CC+00 1/1 0/0 0/0 .text setPrtcls__15daObj_ItaMato_cFv */ +void daObj_ItaMato_c::setPrtcls() { + static u16 const id[3] = { + dPa_RM(ID_ZF_S_ITAMATO_BOAD00), + dPa_RM(ID_ZF_S_ITAMATO_BOAD01), + dPa_RM(ID_ZF_S_ITAMATO_SMK), + }; + + for (int i = 0; i < 3; i++) { + mPrtcls[i] = dComIfGp_particle_set(mPrtcls[i], id[i], ¤t.pos, &shape_angle, NULL); + dComIfGp_particle_levelEmitterOnEventMove(mPrtcls[i]); + } +} + +/* 80C2A890-80C2A8EC 001490 005C+00 2/2 0/0 0/0 .text setEnvTevColor__15daObj_ItaMato_cFv */ +void daObj_ItaMato_c::setEnvTevColor() { + tevStr.YukaCol = dComIfG_Bgsp().GetPolyColor(mGndChk); + tevStr.room_no = dComIfG_Bgsp().GetRoomId(mGndChk); +} + +/* 80C2A8EC-80C2A930 0014EC 0044+00 2/2 0/0 0/0 .text setRoomNo__15daObj_ItaMato_cFv */ +void daObj_ItaMato_c::setRoomNo() { + s8 id = dComIfG_Bgsp().GetRoomId(mGndChk); + fopAcM_SetRoomNo(this, id); + mStts.SetRoomId(id); +} + +/* 80C2A930-80C2A9C0 001530 0090+00 1/1 0/0 0/0 .text setMtx__15daObj_ItaMato_cFv */ +void daObj_ItaMato_c::setMtx() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::XrotM(field_0x9d0[2].x); + mDoMtx_stack_c::ZrotM(field_0x9d0[2].z); + mDoMtx_stack_c::scaleM(scale); + mpModels[health]->setBaseTRMtx(mDoMtx_stack_c::get()); +} + +/* 80C2A9C0-80C2A9E0 0015C0 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Create__FPv */ +static int daObj_ItaMato_Create(void* a_this) { + return static_cast(a_this)->create(); +} + +/* 80C2A9E0-80C2AA00 0015E0 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Delete__FPv */ +static int daObj_ItaMato_Delete(void* a_this) { + return static_cast(a_this)->Delete(); +} + +/* 80C2AA00-80C2AA20 001600 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Execute__FPv */ +static int daObj_ItaMato_Execute(void* a_this) { + return static_cast(a_this)->Execute(); +} + +/* 80C2AA20-80C2AA40 001620 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Draw__FPv */ +static int daObj_ItaMato_Draw(void* a_this) { + return static_cast(a_this)->Draw(); +} + +/* 80C2AA40-80C2AA48 001640 0008+00 1/0 0/0 0/0 .text daObj_ItaMato_IsDelete__FPv */ +static int daObj_ItaMato_IsDelete(void* a_this) { + return 1; +} /* 80C2AC78-80C2AC98 -00001 0020+00 1/0 0/0 0/0 .data daObj_ItaMato_MethodTable */ static actor_method_class daObj_ItaMato_MethodTable = { - (process_method_func)daObj_ItaMato_Create__FPv, - (process_method_func)daObj_ItaMato_Delete__FPv, - (process_method_func)daObj_ItaMato_Execute__FPv, - (process_method_func)daObj_ItaMato_IsDelete__FPv, - (process_method_func)daObj_ItaMato_Draw__FPv, + (process_method_func)daObj_ItaMato_Create, + (process_method_func)daObj_ItaMato_Delete, + (process_method_func)daObj_ItaMato_Execute, + (process_method_func)daObj_ItaMato_IsDelete, + (process_method_func)daObj_ItaMato_Draw, }; /* 80C2AC98-80C2ACC8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_ITAMATO */ @@ -191,460 +544,3 @@ extern actor_process_profile_definition g_profile_OBJ_ITAMATO = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80C2ACC8-80C2ACEC 000094 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80C2AB54, - (void*)NULL, - (void*)NULL, - (void*)func_80C2AB4C, -}; - -/* 80C2ACEC-80C2ACF8 0000B8 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80C2ACF8-80C2AD04 0000C4 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80C2AD04-80C2AD10 0000D0 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 80C2AD10-80C2AD1C 0000DC 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80C2AD1C-80C2AD28 0000E8 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGSph */ -SECTION_DATA extern void* __vt__8cM3dGSph[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGSphFv, -}; - -/* 80C2AD28-80C2AD34 0000F4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGLin */ -SECTION_DATA extern void* __vt__8cM3dGLin[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGLinFv, -}; - -/* 80C2AD34-80C2AD40 000100 000C+00 2/2 0/0 0/0 .data __vt__15daObj_ItaMato_c */ -SECTION_DATA extern void* __vt__15daObj_ItaMato_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daObj_ItaMato_cFv, -}; - -/* 80C294EC-80C296E0 0000EC 01F4+00 1/0 0/0 0/0 .text __dt__15daObj_ItaMato_cFv */ -daObj_ItaMato_c::~daObj_ItaMato_c() { - // NONMATCHING -} - -/* 80C296E0-80C2971C 0002E0 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C2AB70-80C2AB84 000000 0014+00 4/4 0/0 0/0 .rodata m__21daObj_ItaMato_Param_c */ -SECTION_RODATA u8 const daObj_ItaMato_Param_c::m[20] = { - 0x42, 0xDC, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C2AB70, &daObj_ItaMato_Param_c::m); - -/* 80C2AB84-80C2ABB4 000014 0030+00 1/1 0/0 0/0 .rodata l_ccDObjData */ -SECTION_RODATA static u8 const l_ccDObjData[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xD8, 0xFB, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C2AB84, &l_ccDObjData); - -/* 80C2ABB4-80C2ABB8 000044 0004+00 0/1 0/0 0/0 .rodata @3982 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3982 = -200.0f; -COMPILER_STRIP_GATE(0x80C2ABB4, &lit_3982); -#pragma pop - -/* 80C2ABB8-80C2ABBC 000048 0004+00 0/1 0/0 0/0 .rodata @3983 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3983 = -50.0f; -COMPILER_STRIP_GATE(0x80C2ABB8, &lit_3983); -#pragma pop - -/* 80C2ABBC-80C2ABC0 00004C 0004+00 0/1 0/0 0/0 .rodata @3984 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3984 = 200.0f; -COMPILER_STRIP_GATE(0x80C2ABBC, &lit_3984); -#pragma pop - -/* 80C2ABC0-80C2ABC4 000050 0004+00 0/3 0/0 0/0 .rodata @3985 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3985 = -G_CM3D_F_INF; -COMPILER_STRIP_GATE(0x80C2ABC0, &lit_3985); -#pragma pop - -/* 80C2AC20-80C2AC20 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C2AC2A = "F_SP103"; -#pragma pop - -/* 80C2971C-80C29AC0 00031C 03A4+00 1/1 0/0 0/0 .text create__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::create() { - // NONMATCHING -} - -/* 80C29AC0-80C29AC4 0006C0 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80C29AC4-80C29B0C 0006C4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGLinFv */ -// cM3dGLin::~cM3dGLin() { -extern "C" void __dt__8cM3dGLinFv() { - // NONMATCHING -} - -/* 80C29B0C-80C29B54 00070C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ -// cM3dGSph::~cM3dGSph() { -extern "C" void __dt__8cM3dGSphFv() { - // NONMATCHING -} - -/* 80C29B54-80C29B9C 000754 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80C29B9C-80C29C0C 00079C 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80C29C0C-80C29C68 00080C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80C29C68-80C29CD8 000868 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80C29CD8-80C29DAC 0008D8 00D4+00 1/1 0/0 0/0 .text CreateHeap__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::CreateHeap() { - // NONMATCHING -} - -/* 80C29DAC-80C29DE0 0009AC 0034+00 1/1 0/0 0/0 .text Delete__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::Delete() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C2ABC4-80C2ABC8 000054 0004+00 1/4 0/0 0/0 .rodata @4317 */ -SECTION_RODATA static f32 const lit_4317 = 1.0f; -COMPILER_STRIP_GATE(0x80C2ABC4, &lit_4317); - -/* 80C2ABC8-80C2ABCC 000058 0004+00 0/1 0/0 0/0 .rodata @4318 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4318 = -1.0f; -COMPILER_STRIP_GATE(0x80C2ABC8, &lit_4318); -#pragma pop - -/* 80C2ABCC-80C2ABD0 00005C 0004+00 0/1 0/0 0/0 .rodata @4319 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4319[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C2ABCC, &lit_4319); -#pragma pop - -/* 80C2ABD0-80C2ABD4 000060 0004+00 0/1 0/0 0/0 .rodata @4320 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4320 = 3.0f / 40.0f; -COMPILER_STRIP_GATE(0x80C2ABD0, &lit_4320); -#pragma pop - -/* 80C2ABD4-80C2ABD8 000064 0004+00 0/1 0/0 0/0 .rodata @4321 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4321 = 50.0f; -COMPILER_STRIP_GATE(0x80C2ABD4, &lit_4321); -#pragma pop - -/* 80C2ABD8-80C2ABDC 000068 0004+00 0/1 0/0 0/0 .rodata @4322 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4322 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80C2ABD8, &lit_4322); -#pragma pop - -/* 80C2ABDC-80C2ABE0 00006C 0004+00 0/1 0/0 0/0 .rodata @4323 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4323 = 100.0f; -COMPILER_STRIP_GATE(0x80C2ABDC, &lit_4323); -#pragma pop - -/* 80C2ABE0-80C2ABE4 000070 0004+00 0/1 0/0 0/0 .rodata @4324 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4324 = 0.125f; -COMPILER_STRIP_GATE(0x80C2ABE0, &lit_4324); -#pragma pop - -/* 80C2ABE4-80C2ABE8 000074 0004+00 0/1 0/0 0/0 .rodata @4325 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4325 = 125.0f; -COMPILER_STRIP_GATE(0x80C2ABE4, &lit_4325); -#pragma pop - -/* 80C2ABE8-80C2ABEC 000078 0004+00 0/1 0/0 0/0 .rodata @4326 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4326 = 10.0f; -COMPILER_STRIP_GATE(0x80C2ABE8, &lit_4326); -#pragma pop - -/* 80C2ABEC-80C2ABF0 00007C 0004+00 0/1 0/0 0/0 .rodata @4327 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4327 = 60.0f; -COMPILER_STRIP_GATE(0x80C2ABEC, &lit_4327); -#pragma pop - -/* 80C2ABF0-80C2ABF4 000080 0004+00 0/1 0/0 0/0 .rodata @4328 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4328 = 110.0f; -COMPILER_STRIP_GATE(0x80C2ABF0, &lit_4328); -#pragma pop - -/* 80C29DE0-80C2A44C 0009E0 066C+00 2/2 0/0 0/0 .text Execute__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::Execute() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C2ABF4-80C2ABF8 000084 0004+00 0/1 0/0 0/0 .rodata @4380 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4380 = 400.0f; -COMPILER_STRIP_GATE(0x80C2ABF4, &lit_4380); -#pragma pop - -/* 80C2ABF8-80C2ABFC 000088 0004+00 0/1 0/0 0/0 .rodata @4381 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4381 = 20.0f; -COMPILER_STRIP_GATE(0x80C2ABF8, &lit_4381); -#pragma pop - -/* 80C2A44C-80C2A5D0 00104C 0184+00 1/1 0/0 0/0 .text Draw__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::Draw() { - // NONMATCHING -} - -/* 80C2A5D0-80C2A5F0 0011D0 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__15daObj_ItaMato_cFP10fopAc_ac_c */ -void daObj_ItaMato_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80C2A5F0-80C2A620 0011F0 0030+00 1/1 0/0 0/0 .text - * tgHitCallBack__15daObj_ItaMato_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */ -void daObj_ItaMato_c::tgHitCallBack(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, - fopAc_ac_c* param_2, dCcD_GObjInf* param_3) { - // NONMATCHING -} - -/* 80C2A620-80C2A630 001220 0010+00 3/3 0/0 0/0 .text getResName__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::getResName() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C2ABFC-80C2AC08 00008C 000C+00 0/1 0/0 0/0 .rodata @4405 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4405[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C2ABFC, &lit_4405); -#pragma pop - -/* 80C2AC08-80C2AC0C 000098 0004+00 0/1 0/0 0/0 .rodata @4433 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4433 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x80C2AC08, &lit_4433); -#pragma pop - -/* 80C2AC0C-80C2AC10 00009C 0004+00 0/1 0/0 0/0 .rodata @4434 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4434 = 0x43360B61; -COMPILER_STRIP_GATE(0x80C2AC0C, &lit_4434); -#pragma pop - -/* 80C2AC10-80C2AC18 0000A0 0008+00 0/1 0/0 0/0 .rodata @4437 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4437[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C2AC10, &lit_4437); -#pragma pop - -/* 80C2A630-80C2A7C4 001230 0194+00 1/1 0/0 0/0 .text - * setSwayParam__15daObj_ItaMato_cFP10fopAc_ac_c */ -void daObj_ItaMato_c::setSwayParam(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C2AC18-80C2AC20 0000A8 0006+02 1/1 0/0 0/0 .rodata id$4441 */ -SECTION_RODATA static u8 const id[6 + 2 /* padding */] = { - 0x85, - 0xF1, - 0x85, - 0xF2, - 0x85, - 0xF3, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C2AC18, &id); - -/* 80C2A7C4-80C2A890 0013C4 00CC+00 1/1 0/0 0/0 .text setPrtcls__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::setPrtcls() { - // NONMATCHING -} - -/* 80C2A890-80C2A8EC 001490 005C+00 2/2 0/0 0/0 .text setEnvTevColor__15daObj_ItaMato_cFv - */ -void daObj_ItaMato_c::setEnvTevColor() { - // NONMATCHING -} - -/* 80C2A8EC-80C2A930 0014EC 0044+00 2/2 0/0 0/0 .text setRoomNo__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::setRoomNo() { - // NONMATCHING -} - -/* 80C2A930-80C2A9C0 001530 0090+00 1/1 0/0 0/0 .text setMtx__15daObj_ItaMato_cFv */ -void daObj_ItaMato_c::setMtx() { - // NONMATCHING -} - -/* 80C2A9C0-80C2A9E0 0015C0 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Create__FPv */ -static void daObj_ItaMato_Create(void* param_0) { - // NONMATCHING -} - -/* 80C2A9E0-80C2AA00 0015E0 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Delete__FPv */ -static void daObj_ItaMato_Delete(void* param_0) { - // NONMATCHING -} - -/* 80C2AA00-80C2AA20 001600 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Execute__FPv */ -static void daObj_ItaMato_Execute(void* param_0) { - // NONMATCHING -} - -/* 80C2AA20-80C2AA40 001620 0020+00 1/0 0/0 0/0 .text daObj_ItaMato_Draw__FPv */ -static void daObj_ItaMato_Draw(void* param_0) { - // NONMATCHING -} - -/* 80C2AA40-80C2AA48 001640 0008+00 1/0 0/0 0/0 .text daObj_ItaMato_IsDelete__FPv */ -static bool daObj_ItaMato_IsDelete(void* param_0) { - return true; -} - -/* 80C2AA48-80C2AA90 001648 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C2AD40-80C2AD4C 00010C 000C+00 2/2 0/0 0/0 .data __vt__21daObj_ItaMato_Param_c */ -SECTION_DATA extern void* __vt__21daObj_ItaMato_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__21daObj_ItaMato_Param_cFv, -}; - -/* 80C2AD58-80C2AD64 000008 000C+00 1/1 0/0 0/0 .bss @3836 */ -static u8 lit_3836[12]; - -/* 80C2AD64-80C2AD68 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80C2AA90-80C2AB04 001690 0074+00 0/0 1/0 0/0 .text __sinit_d_a_obj_itamato_cpp */ -void __sinit_d_a_obj_itamato_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C2AA90, __sinit_d_a_obj_itamato_cpp); -#pragma pop - -/* 80C2AB04-80C2AB4C 001704 0048+00 2/1 0/0 0/0 .text __dt__21daObj_ItaMato_Param_cFv */ -daObj_ItaMato_Param_c::~daObj_ItaMato_Param_c() { - // NONMATCHING -} - -/* 80C2AB4C-80C2AB54 00174C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80C2AB4C() { - // NONMATCHING -} - -/* 80C2AB54-80C2AB5C 001754 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80C2AB54() { - // NONMATCHING -} - -/* 80C2AC20-80C2AC20 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_kaisou.cpp b/src/d/actor/d_a_obj_kaisou.cpp index 6cc2f37f833..a075a01b5f7 100644 --- a/src/d/actor/d_a_obj_kaisou.cpp +++ b/src/d/actor/d_a_obj_kaisou.cpp @@ -7,394 +7,314 @@ #include "d/actor/d_a_obj_kaisou.h" #include "d/d_cc_d.h" -#include "dol2asm.h" +#include "d/actor/d_a_player.h" +#include "d/d_s_play.h" - -// -// Forward References: -// - -extern "C" void ctrlJoint__13daObjKaisou_cFP8J3DJointP8J3DModel(); -extern "C" static void JointCallBack__FP8J3DJointi(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daObjKaisou_Create__FP10fopAc_ac_c(); -extern "C" static void daObjKaisou_Delete__FP13daObjKaisou_c(); -extern "C" void initCcCylinder__13daObjKaisou_cFv(); -extern "C" void setCcCylinder__13daObjKaisou_cFv(); -extern "C" void ObjHit__13daObjKaisou_cFv(); -extern "C" void Execute__13daObjKaisou_cFv(); -extern "C" void Delete__13daObjKaisou_cFv(); -extern "C" void setBaseMtx__13daObjKaisou_cFv(); -extern "C" static void daObjKaisou_Draw__FP13daObjKaisou_c(); -extern "C" static void daObjKaisou_Execute__FP13daObjKaisou_c(); -extern "C" void create__13daObjKaisou_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" static bool daObjKaisou_IsDelete__FP13daObjKaisou_c(); -extern "C" extern char const* const d_a_obj_kaisou__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void isDungeonItem__12dSv_memBit_cCFi(); -extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void ChkCoHit__12dCcD_GObjInfFv(); -extern "C" void GetCoHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void cLib_addCalcAngleS__FPsssss(); -extern "C" void __ct__16Z2SoundObjSimpleFv(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" f32 mGroundY__11fopAcM_gc_c; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80C34EEC-80C34EF0 000000 0004+00 4/4 0/0 0/0 .rodata @3806 */ -SECTION_RODATA static f32 const lit_3806 = 7.0f / 10.0f; -COMPILER_STRIP_GATE(0x80C34EEC, &lit_3806); - -/* 80C34EF0-80C34EF4 000004 0004+00 1/1 0/0 0/0 .rodata @3807 */ -SECTION_RODATA static f32 const lit_3807 = 0.5f; -COMPILER_STRIP_GATE(0x80C34EF0, &lit_3807); - -/* 80C34EF4-80C34EFC 000008 0008+00 1/3 0/0 0/0 .rodata @3809 */ -SECTION_RODATA static u8 const lit_3809[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, +enum Joint { + /* 0x0 */ JNT_JOINT1, + /* 0x1 */ JNT_JOINT2, + /* 0x2 */ JNT_JOINT3, }; -COMPILER_STRIP_GATE(0x80C34EF4, &lit_3809); -/* 80C34058-80C34288 000078 0230+00 1/1 0/0 0/0 .text - * ctrlJoint__13daObjKaisou_cFP8J3DJointP8J3DModel */ -void daObjKaisou_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING +/* 80C34058-80C34288 000078 0230+00 1/1 0/0 0/0 .text ctrlJoint__13daObjKaisou_cFP8J3DJointP8J3DModel */ +int daObjKaisou_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + J3DJoint* joint = i_joint; + int jntNo = joint->getJntNo(); + mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); + + switch (jntNo) { + case JNT_JOINT1: + mDoMtx_stack_c::ZrotM((s16)mJoint1ZRot); + mDoMtx_stack_c::YrotM((s16)mJointYRot); + mDoMtx_stack_c::XrotM(mJoint1ZRot + field_0x578 * 0.7f); + mDoMtx_stack_c::YrotM(-mJointYRot); + break; + + case JNT_JOINT2: + mDoMtx_stack_c::ZrotM((s16)mJoint2ZRot); + mDoMtx_stack_c::YrotM((s16)mJointYRot); + mDoMtx_stack_c::XrotM(mJoint2ZRot + field_0x578 * 0.5f); + mDoMtx_stack_c::YrotM(-mJointYRot); + break; + + case JNT_JOINT3: + mDoMtx_stack_c::ZrotM((s16)mJoint3ZRot); + mDoMtx_stack_c::YrotM((s16)mJointYRot); + mDoMtx_stack_c::XrotM((s16)mJoint3ZRot); + mDoMtx_stack_c::YrotM(-mJointYRot); + break; + } + + i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + #if DEBUG + cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + #else + MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + #endif + return 1; } /* 80C34288-80C342D4 0002A8 004C+00 1/1 0/0 0/0 .text JointCallBack__FP8J3DJointi */ -static void JointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} +static int JointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daObjKaisou_c* i_this = (daObjKaisou_c*)model->getUserArea(); + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } -/* ############################################################################################## */ -/* 80C34FA0-80C34FA0 0000B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C34FA0 = "M_kaisou"; -SECTION_DEAD static char const* const stringBase_80C34FA9 = "M_kaisou.bmd"; -#pragma pop + return 1; +} /* 80C34FC0-80C34FC4 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_kaisou__stringBase0; +static char* l_arcName = "M_kaisou"; -/* 80C342D4-80C3434C 0002F4 0078+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING +int daObjKaisou_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_kaisou.bmd"); + JUT_ASSERT(174, modelData != NULL); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + + return 1; } -/* 80C3434C-80C3436C 00036C 0020+00 1/0 0/0 0/0 .text daObjKaisou_Create__FP10fopAc_ac_c - */ -static void daObjKaisou_Create(fopAc_ac_c* param_0) { - // NONMATCHING +/* 80C342D4-80C3434C 0002F4 0078+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* a_this) { + daObjKaisou_c* i_this = (daObjKaisou_c*)a_this; + return i_this->CreateHeap(); +} + +/* 80C3434C-80C3436C 00036C 0020+00 1/0 0/0 0/0 .text daObjKaisou_Create__FP10fopAc_ac_c */ +static int daObjKaisou_Create(fopAc_ac_c* a_this) { + daObjKaisou_c* i_this = (daObjKaisou_c*)a_this; + fpc_ProcID id = fopAcM_GetID(a_this); + return i_this->create(); } /* 80C3436C-80C34390 00038C 0024+00 1/0 0/0 0/0 .text daObjKaisou_Delete__FP13daObjKaisou_c */ -static void daObjKaisou_Delete(daObjKaisou_c* param_0) { - // NONMATCHING +static int daObjKaisou_Delete(daObjKaisou_c* i_this) { + fpc_ProcID id = fopAcM_GetID(i_this); + i_this->Delete(); + return 1; } -/* ############################################################################################## */ -/* 80C34EFC-80C34F40 000010 0044+00 1/1 0/0 0/0 .rodata ccCylSrc$3850 */ -const static dCcD_SrcCyl ccCylSrc = { - { - {0x0, {{0x0, 0x0, 0x0}, {0x2, 0x11}, 0x79}}, // mObj - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x4}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {0.0f, 0.0f, 0.0f}, // mCenter - 50.0f, // mRadius - 100.0f // mHeight - } // mCyl -}; - -/* 80C34390-80C343F0 0003B0 0060+00 1/1 0/0 0/0 .text initCcCylinder__13daObjKaisou_cFv - */ +/* 80C34390-80C343F0 0003B0 0060+00 1/1 0/0 0/0 .text initCcCylinder__13daObjKaisou_cFv */ void daObjKaisou_c::initCcCylinder() { - // NONMATCHING + mStts.Init(1, 0xFF, this); + + const static dCcD_SrcCyl ccCylSrc = { + { + {0x0, {{0x0, 0x0, 0x0}, {0x2, 0x11}, 0x79}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x4}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {0.0f, 0.0f, 0.0f}, // mCenter + 50.0f, // mRadius + 100.0f // mHeight + } // mCyl + }; + mCyl.Set(ccCylSrc); + mCyl.SetStts(&mStts); + mCyl.SetC(current.pos); } /* 80C343F0-80C34438 000410 0048+00 1/1 0/0 0/0 .text setCcCylinder__13daObjKaisou_cFv */ void daObjKaisou_c::setCcCylinder() { - // NONMATCHING + mCyl.SetC(current.pos); + dComIfG_Ccsp()->Set(&mCyl); } -/* ############################################################################################## */ -/* 80C34F40-80C34F44 000054 0004+00 0/1 0/0 0/0 .rodata @3963 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3963[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C34F40, &lit_3963); -#pragma pop - -/* 80C34F44-80C34F4C 000058 0008+00 0/1 0/0 0/0 .rodata @3964 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3964[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C34F44, &lit_3964); -#pragma pop - -/* 80C34F4C-80C34F54 000060 0008+00 0/1 0/0 0/0 .rodata @3965 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3965[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C34F4C, &lit_3965); -#pragma pop - -/* 80C34F54-80C34F5C 000068 0008+00 0/1 0/0 0/0 .rodata @3966 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3966[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C34F54, &lit_3966); -#pragma pop - -/* 80C34F5C-80C34F60 000070 0004+00 0/2 0/0 0/0 .rodata @3967 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3967 = 4.0f; -COMPILER_STRIP_GATE(0x80C34F5C, &lit_3967); -#pragma pop - -/* 80C34F60-80C34F64 000074 0004+00 0/1 0/0 0/0 .rodata @3968 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3968 = 6.0f / 5.0f; -COMPILER_STRIP_GATE(0x80C34F60, &lit_3968); -#pragma pop - -/* 80C34F64-80C34F68 000078 0004+00 0/1 0/0 0/0 .rodata @3969 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3969 = 120.0f; -COMPILER_STRIP_GATE(0x80C34F64, &lit_3969); -#pragma pop - -/* 80C34F68-80C34F6C 00007C 0004+00 0/1 0/0 0/0 .rodata @3970 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3970 = 4096.0f; -COMPILER_STRIP_GATE(0x80C34F68, &lit_3970); -#pragma pop - -/* 80C34FC4-80C35038 -00001 0074+00 1/1 0/0 0/0 .data @3975 */ -SECTION_DATA static void* lit_3975[29] = { - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x34C), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x360), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x360), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x34C), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x360), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x374), - (void*)(((char*)ObjHit__13daObjKaisou_cFv) + 0x34C), -}; - /* 80C34438-80C34824 000458 03EC+00 2/1 0/0 0/0 .text ObjHit__13daObjKaisou_cFv */ void daObjKaisou_c::ObjHit() { - // NONMATCHING + daPy_py_c* player = daPy_getPlayerActorClass(); + f32 playerSpeedF = fopAcM_GetSpeedF(player); + f32 absXZ = current.pos.absXZ(fopAcM_GetPosition(player)); + + if (mInvulnerabilityTimer > 0) { + mCyl.ClrTgHit(); + mCyl.OffTgSetBit(); + } else { + mCyl.OnTgSetBit(); + + if (mCyl.ChkCoHit()) { + if (mCyl.GetCoHitObj()->GetStts()->GetWeightUc() != 1) { + field_0x576 += playerSpeedF * (yREG_F(1) + 4.0f); + field_0x580 += playerSpeedF * (yREG_F(2) + 1.2f); + + if (field_0x580 > 0x135) { + field_0x580 = 0x135; + } + + field_0x57a = yREG_F(3) + 6144.0f; + cLib_addCalcAngleS(&field_0x582, (s16)(fopAcM_searchPlayerAngleY(this) + 0x8000), 0x50, 0x1000, 0); + } + } + + if (mCyl.ChkTgHit()) { + if (absXZ < 120.0f) { + field_0x568++; + } + + field_0x580 = 0x136; + field_0x57a += (aREG_F(2) + 4096.0f); + field_0x576 += (aREG_F(3) + 4096.0f); + mInvulnerabilityTimer = 20; + + daPy_getPlayerActorClass()->getCutType(); + + switch (daPy_getPlayerActorClass()->getCutType()) { + case daPy_py_c::CUT_TYPE_NM_RIGHT: + case daPy_py_c::CUT_TYPE_FINISH_RIGHT: + case daPy_py_c::CUT_TYPE_MORTAL_DRAW_B: + field_0x582 = fopAcM_searchPlayerAngleY(this) + 0x4000; + break; + + case daPy_py_c::CUT_TYPE_NM_LEFT: + case daPy_py_c::CUT_TYPE_FINISH_LEFT: + case daPy_py_c::CUT_TYPE_TURN_LEFT: + field_0x582 = fopAcM_searchPlayerAngleY(this) - 0x4000; + break; + + default: + field_0x582 = fopAcM_searchPlayerAngleY(this) + 0x8000; + break; + } + } + + if (field_0x57a == 0) { + field_0x569 = 0; + } + + if (field_0x57a > 0x2000) { + field_0x57a = 0x2000; + } + + if (field_0x576 > 0x1500) { + field_0x576 = 0x1500; + } + } } -/* ############################################################################################## */ -/* 80C34F6C-80C34F74 000080 0004+04 0/1 0/0 0/0 .rodata @3995 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3995[1 + 1 /* padding */] = { - 16384.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80C34F6C, &lit_3995); -#pragma pop - -/* 80C34F74-80C34F7C 000088 0008+00 0/1 0/0 0/0 .rodata @3996 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3996[8] = { - 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C34F74, &lit_3996); -#pragma pop - -/* 80C34F7C-80C34F80 000090 0004+00 0/1 0/0 0/0 .rodata @3997 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3997 = 32768.0f; -COMPILER_STRIP_GATE(0x80C34F7C, &lit_3997); -#pragma pop - -/* 80C34F80-80C34F84 000094 0004+00 0/1 0/0 0/0 .rodata @3998 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3998 = 9.0f / 5.0f; -COMPILER_STRIP_GATE(0x80C34F80, &lit_3998); -#pragma pop - /* 80C34824-80C34A98 000844 0274+00 1/1 0/0 0/0 .text Execute__13daObjKaisou_cFv */ -void daObjKaisou_c::Execute() { - // NONMATCHING +int daObjKaisou_c::Execute() { + mInvulnerabilityTimer--; + if (mInvulnerabilityTimer <= 0) { + mInvulnerabilityTimer = 0; + } + + ObjHit(); + + field_0x57c += field_0x57e; + mJoint1ZRot = field_0x574 * (HREG_F(0) + 1.0f) * cM_ssin(field_0x57c * 4.0f); + mJoint2ZRot = field_0x574 * (HREG_F(1) + 1.5) * cM_ssin(field_0x57c * 4.0f - 16384.0f); + mJoint3ZRot = field_0x574 * (HREG_F(2) + 1.8f) * cM_ssin(field_0x57c * 4.0f - 32768.0f); + + cLib_addCalcAngleS(&field_0x57e, field_0x580, 0x15, 0x1000, 0); + cLib_addCalcAngleS(&field_0x580, 0x80, 0x15, 0x1000, 0); + cLib_addCalcAngleS(&field_0x574, field_0x576, 0x15, 0x1000, 0); + cLib_addCalcAngleS(&field_0x578, field_0x57a, 0x15, 0x1000, 0); + cLib_addCalcAngleS(&field_0x57a, 0, 0x15, 0x1000, 0); + cLib_addCalcAngleS(&field_0x576, 0x500, 0x20, 0x1000, 0); + cLib_addCalcAngleS(&field_0x582, 0x1000, 0x20, 0x1000, 0); + + setCcCylinder(); + setBaseMtx(); + return 1; } /* 80C34A98-80C34ACC 000AB8 0034+00 1/1 0/0 0/0 .text Delete__13daObjKaisou_cFv */ -void daObjKaisou_c::Delete() { - // NONMATCHING +int daObjKaisou_c::Delete() { + dComIfG_resDelete(&mPhase, l_arcName); + return 1; } -/* ############################################################################################## */ -/* 80C34F84-80C34F88 000098 0004+00 1/1 0/0 0/0 .rodata @4022 */ -SECTION_RODATA static f32 const lit_4022 = 2.0f; -COMPILER_STRIP_GATE(0x80C34F84, &lit_4022); - /* 80C34ACC-80C34B34 000AEC 0068+00 1/1 0/0 0/0 .text setBaseMtx__13daObjKaisou_cFv */ void daObjKaisou_c::setBaseMtx() { - // NONMATCHING + cXyz scale(yREG_F(5) + 2.0f, yREG_F(5) + 2.0f, yREG_F(5) + 2.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::scaleM(scale); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); } -/* 80C34B34-80C34BB8 000B54 0084+00 1/0 0/0 0/0 .text daObjKaisou_Draw__FP13daObjKaisou_c - */ -static void daObjKaisou_Draw(daObjKaisou_c* param_0) { - // NONMATCHING +int daObjKaisou_c::Draw() { + g_env_light.settingTevStruct(0, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + return 1; +} + +/* 80C34B34-80C34BB8 000B54 0084+00 1/0 0/0 0/0 .text daObjKaisou_Draw__FP13daObjKaisou_c */ +static int daObjKaisou_Draw(daObjKaisou_c* i_this) { + return i_this->Draw(); } /* 80C34BB8-80C34BD8 000BD8 0020+00 2/1 0/0 0/0 .text daObjKaisou_Execute__FP13daObjKaisou_c */ -static void daObjKaisou_Execute(daObjKaisou_c* param_0) { - // NONMATCHING +static int daObjKaisou_Execute(daObjKaisou_c* i_this) { + return i_this->Execute(); } -/* ############################################################################################## */ -/* 80C34F88-80C34F8C 00009C 0004+00 0/1 0/0 0/0 .rodata @4157 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4157 = -9.0f; -COMPILER_STRIP_GATE(0x80C34F88, &lit_4157); -#pragma pop +/* 80C34BD8-80C34E4C 000BF8 0274+00 1/1 0/0 0/0 .text create__13daObjKaisou_cFv */ +cPhs__Step daObjKaisou_c::create() { + fopAcM_ct(this, daObjKaisou_c); -/* 80C34F8C-80C34F90 0000A0 0004+00 0/1 0/0 0/0 .rodata @4158 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4158 = 100.0f; -COMPILER_STRIP_GATE(0x80C34F8C, &lit_4158); -#pragma pop + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + if (dComIfGs_isStageBossEnemy() && dComIfGp_getStartStageRoomNo() == 50) { + if (strcmp("D_MN01A", dComIfGp_getStartStageName()) == 0) { + return cPhs_ERROR_e; + } + } -/* 80C34F90-80C34F94 0000A4 0004+00 0/1 0/0 0/0 .rodata @4159 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4159 = -1000.0f; -COMPILER_STRIP_GATE(0x80C34F90, &lit_4159); -#pragma pop + OS_REPORT("Kaisou PARAM %x\n", fopAcM_GetParam(this)); + if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x8D0)) { + return cPhs_ERROR_e; + } -/* 80C34F94-80C34F98 0000A8 0004+00 0/1 0/0 0/0 .rodata @4160 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4160 = -500.0f; -COMPILER_STRIP_GATE(0x80C34F94, &lit_4160); -#pragma pop + gravity = nREG_F(0) + -9.0f; -/* 80C34F98-80C34F9C 0000AC 0004+00 0/1 0/0 0/0 .rodata @4161 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4161 = 1000.0f; -COMPILER_STRIP_GATE(0x80C34F98, &lit_4161); -#pragma pop + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + + cXyz pos(current.pos.x, current.pos.y + 100.0f, current.pos.z); + if (fopAcM_gc_c::gndCheck(&pos)) { + current.pos.y = fopAcM_gc_c::getGroundY(); + } -/* 80C34F9C-80C34FA0 0000B0 0004+00 0/1 0/0 0/0 .rodata @4162 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4162 = 500.0f; -COMPILER_STRIP_GATE(0x80C34F9C, &lit_4162); -#pragma pop + mpModel->setUserArea((uintptr_t)this); + for (u16 i = 0; i < mpModel->getModelData()->getJointNum(); i++) { + mpModel->getModelData()->getJointNodePointer(i)->setCallBack(JointCallBack); + } -/* 80C34FA0-80C34FA0 0000B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C34FB6 = "D_MN01A"; -#pragma pop + field_0x57e = 0x80; + field_0x574 = 0x500; + field_0x576 = 0x500; + field_0x57a = 0; + initCcCylinder(); + fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0f, 1000.0f); + daObjKaisou_Execute(this); + } + + return phase; +} + +/* 80C34EDC-80C34EE4 000EFC 0008+00 1/0 0/0 0/0 .text daObjKaisou_IsDelete__FP13daObjKaisou_c */ +static int daObjKaisou_IsDelete(daObjKaisou_c* i_this) { + return 1; +} /* 80C35038-80C35058 -00001 0020+00 1/0 0/0 0/0 .data l_daObjKaisou_Method */ static actor_method_class l_daObjKaisou_Method = { - (process_method_func)daObjKaisou_Create__FP10fopAc_ac_c, - (process_method_func)daObjKaisou_Delete__FP13daObjKaisou_c, - (process_method_func)daObjKaisou_Execute__FP13daObjKaisou_c, - (process_method_func)daObjKaisou_IsDelete__FP13daObjKaisou_c, - (process_method_func)daObjKaisou_Draw__FP13daObjKaisou_c, + (process_method_func)daObjKaisou_Create, + (process_method_func)daObjKaisou_Delete, + (process_method_func)daObjKaisou_Execute, + (process_method_func)daObjKaisou_IsDelete, + (process_method_func)daObjKaisou_Draw, }; /* 80C35058-80C35088 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kaisou */ @@ -414,41 +334,3 @@ extern actor_process_profile_definition g_profile_Obj_Kaisou = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80C35088-80C35094 0000C8 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80C35094-80C350A0 0000D4 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80C34BD8-80C34E4C 000BF8 0274+00 1/1 0/0 0/0 .text create__13daObjKaisou_cFv */ -void daObjKaisou_c::create() { - // NONMATCHING -} - -/* 80C34E4C-80C34E94 000E6C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80C34E94-80C34EDC 000EB4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80C34EDC-80C34EE4 000EFC 0008+00 1/0 0/0 0/0 .text daObjKaisou_IsDelete__FP13daObjKaisou_c */ -static bool daObjKaisou_IsDelete(daObjKaisou_c* param_0) { - return true; -} - -/* 80C34FA0-80C34FA0 0000B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */