mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-06 19:11:21 -04:00
daObjKazeNeko_c OK (#2209)
This commit is contained in:
@@ -8,12 +8,12 @@ initCcCylinder__15daObjKazeNeko_cFv = .text:0x0000022C; // type:function size:0x
|
||||
setCcCylinder__15daObjKazeNeko_cFv = .text:0x000002B0; // type:function size:0x6C scope:global
|
||||
swingHead__15daObjKazeNeko_cFv = .text:0x0000031C; // type:function size:0xC4 scope:global
|
||||
getFirstVec__15daObjKazeNeko_cFP4cXyzi = .text:0x000003E0; // type:function size:0x50 scope:global
|
||||
createSolidHeap__FP10fopAc_ac_c = .text:0x00000430; // type:function size:0x100 scope:global
|
||||
daObjKazeNeko_Draw__FP15daObjKazeNeko_c = .text:0x00000530; // type:function size:0x118 scope:global
|
||||
daObjKazeNeko_Execute__FP15daObjKazeNeko_c = .text:0x00000648; // type:function size:0x188 scope:global
|
||||
daObjKazeNeko_IsDelete__FP15daObjKazeNeko_c = .text:0x000007D0; // type:function size:0x8 scope:global
|
||||
daObjKazeNeko_Delete__FP15daObjKazeNeko_c = .text:0x000007D8; // type:function size:0x130 scope:global
|
||||
daObjKazeNeko_Create__FP10fopAc_ac_c = .text:0x00000908; // type:function size:0x138 scope:global
|
||||
createSolidHeap__FP10fopAc_ac_c = .text:0x00000430; // type:function size:0x100 scope:local
|
||||
daObjKazeNeko_Draw__FP15daObjKazeNeko_c = .text:0x00000530; // type:function size:0x118 scope:local
|
||||
daObjKazeNeko_Execute__FP15daObjKazeNeko_c = .text:0x00000648; // type:function size:0x188 scope:local
|
||||
daObjKazeNeko_IsDelete__FP15daObjKazeNeko_c = .text:0x000007D0; // type:function size:0x8 scope:local
|
||||
daObjKazeNeko_Delete__FP15daObjKazeNeko_c = .text:0x000007D8; // type:function size:0x130 scope:local
|
||||
daObjKazeNeko_Create__FP10fopAc_ac_c = .text:0x00000908; // type:function size:0x138 scope:local
|
||||
__dt__8cM3dGCylFv = .text:0x00000A40; // type:function size:0x48 scope:global
|
||||
__dt__8cM3dGAabFv = .text:0x00000A88; // type:function size:0x48 scope:global
|
||||
__dt__10dCcD_GSttsFv = .text:0x00000AD0; // type:function size:0x5C scope:global
|
||||
@@ -33,8 +33,8 @@ ccCylSrc$3894 = .rodata:0x00000040; // type:object size:0x44 scope:local
|
||||
@3962 = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float
|
||||
@4119 = .rodata:0x00000090; // type:object size:0x8 scope:local
|
||||
@stringBase0 = .rodata:0x00000098; // type:object size:0x1A scope:local data:string_table
|
||||
l_arcName = .data:0x00000000; // type:object size:0x4 scope:global
|
||||
l_daObjKazeNeko_Method = .data:0x00000004; // type:object size:0x20 scope:global
|
||||
l_arcName = .data:0x00000000; // type:object size:0x4 scope:local
|
||||
l_daObjKazeNeko_Method = .data:0x00000004; // type:object size:0x20 scope:local
|
||||
g_profile_Obj_KazeNeko = .data:0x00000024; // type:object size:0x30 scope:global
|
||||
__vt__10cCcD_GStts = .data:0x00000054; // type:object size:0xC scope:global
|
||||
__vt__10dCcD_GStts = .data:0x00000060; // type:object size:0xC scope:global
|
||||
|
||||
+1
-1
@@ -1844,7 +1844,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_obj_kamakiri"),
|
||||
ActorRel(NonMatching, "d_a_obj_kantera"),
|
||||
ActorRel(NonMatching, "d_a_obj_katatsumuri"),
|
||||
ActorRel(NonMatching, "d_a_obj_kazeneko"),
|
||||
ActorRel(Matching, "d_a_obj_kazeneko"),
|
||||
ActorRel(NonMatching, "d_a_obj_kbox"),
|
||||
ActorRel(NonMatching, "d_a_obj_key"),
|
||||
ActorRel(NonMatching, "d_a_obj_keyhole"),
|
||||
|
||||
@@ -1,7 +1,24 @@
|
||||
#ifndef D_A_OBJ_KAZENEKO_H
|
||||
#define D_A_OBJ_KAZENEKO_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
|
||||
struct KazoNekoAttr {
|
||||
f32 mCylRadius;
|
||||
f32 mCylHeight;
|
||||
f32 field_0x08;
|
||||
f32 field_0x0c;
|
||||
f32 field_0x10;
|
||||
f32 field_0x14;
|
||||
f32 field_0x18;
|
||||
f32 field_0x1c;
|
||||
f32 field_0x20;
|
||||
u8 field_0x24;
|
||||
u8 field_0x25;
|
||||
s16 field_0x26;
|
||||
int field_0x28;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
@@ -20,13 +37,36 @@ public:
|
||||
/* 80C3CB10 */ void setCcCylinder();
|
||||
/* 80C3CB7C */ void swingHead();
|
||||
/* 80C3CC40 */ void getFirstVec(cXyz*, int);
|
||||
inline int createHeap();
|
||||
inline int draw();
|
||||
inline int execute();
|
||||
inline int create();
|
||||
inline ~daObjKazeNeko_c();
|
||||
|
||||
static u8 const M_attr[44];
|
||||
const KazoNekoAttr& attr() { return M_attr; }
|
||||
|
||||
static KazoNekoAttr const M_attr;
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x754 - 0x568];
|
||||
/* 0x568 */ J3DModel* mModel;
|
||||
/* 0x56C */ J3DModel* mArmModels[4];
|
||||
/* 0x57C */ request_of_phase_process_class mPhase;
|
||||
/* 0x584 */ Mtx mMtx;
|
||||
/* 0x5B4 */ dCcD_Stts mStts;
|
||||
/* 0x5F0 */ dCcD_Cyl mCyl;
|
||||
/* 0x72c */ cXyz field_0x72c;
|
||||
/* 0x738 */ int field_0x738;
|
||||
/* 0x73C */ f32 field_0x73c;
|
||||
/* 0x740 */ f32 field_0x740;
|
||||
/* 0x744 */ f32 field_0x744;
|
||||
/* 0x748 */ s16 field_0x748;
|
||||
/* 0x74A */ s16 field_0x74a;
|
||||
/* 0x74C */ s16 field_0x74c;
|
||||
/* 0x74E */ s16 field_0x74e;
|
||||
/* 0x750 */ s16 field_0x750;
|
||||
/* 0x752 */ u8 field_0x752;
|
||||
/* 0x753 */ u8 field_0x753;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjKazeNeko_c) == 0x754);
|
||||
|
||||
|
||||
#endif /* D_A_OBJ_KAZENEKO_H */
|
||||
|
||||
+168
-249
@@ -4,153 +4,48 @@
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_obj_kazeneko.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/actor/d_a_npc_tk.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void create_init__15daObjKazeNeko_cFv();
|
||||
extern "C" void initBaseMtx__15daObjKazeNeko_cFv();
|
||||
extern "C" void setBaseMtx__15daObjKazeNeko_cFv();
|
||||
extern "C" void initCcCylinder__15daObjKazeNeko_cFv();
|
||||
extern "C" void setCcCylinder__15daObjKazeNeko_cFv();
|
||||
extern "C" void swingHead__15daObjKazeNeko_cFv();
|
||||
extern "C" void getFirstVec__15daObjKazeNeko_cFP4cXyzi();
|
||||
extern "C" static void createSolidHeap__FP10fopAc_ac_c();
|
||||
extern "C" static void daObjKazeNeko_Draw__FP15daObjKazeNeko_c();
|
||||
extern "C" static void daObjKazeNeko_Execute__FP15daObjKazeNeko_c();
|
||||
extern "C" static bool daObjKazeNeko_IsDelete__FP15daObjKazeNeko_c();
|
||||
extern "C" static void daObjKazeNeko_Delete__FP15daObjKazeNeko_c();
|
||||
extern "C" static void daObjKazeNeko_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__10dCcD_GSttsFv();
|
||||
extern "C" void __dt__10cCcD_GSttsFv();
|
||||
extern "C" u8 const M_attr__15daObjKazeNeko_c[44];
|
||||
extern "C" extern char const* const d_a_obj_kazeneko__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 transM__14mDoMtx_stack_cFfff();
|
||||
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 fopAcIt_Judge__FPFPvPv_PvPv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void fpcSch_JudgeForPName__FPvPv();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void dKyw_get_wind_pow__Fv();
|
||||
extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv();
|
||||
extern "C" void __ct__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 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 SetH__8cM3dGCylFf();
|
||||
extern "C" void SetR__8cM3dGCylFf();
|
||||
extern "C" void cLib_chaseF__FPfff();
|
||||
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
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" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void endHawkCamera__10daNPC_TK_cFv();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C3D3DC-80C3D408 000000 002C+00 7/7 0/0 0/0 .rodata M_attr__15daObjKazeNeko_c */
|
||||
SECTION_RODATA u8 const daObjKazeNeko_c::M_attr[44] = {
|
||||
0x41, 0xF0, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, 0x45, 0xDA, 0xC0,
|
||||
0x00, 0x42, 0xB4, 0x00, 0x00, 0x44, 0xE1, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x41, 0xD8,
|
||||
0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x01, 0x70, 0x64, 0x00, 0x00, 0x19, 0x00, 0x00,
|
||||
KazoNekoAttr const daObjKazeNeko_c::M_attr = {
|
||||
30.0f, 120.0f, 3000.0f, 7000.0f, 90.0f,
|
||||
1800.0f, 180.0f, 27.0f, 15.0f,
|
||||
1, 0x70, 0x6400, 0x190000,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C3D3DC, &daObjKazeNeko_c::M_attr);
|
||||
|
||||
/* 80C3D408-80C3D40C 00002C 0004+00 0/1 0/0 0/0 .rodata @3853 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3853 = -100.0f;
|
||||
COMPILER_STRIP_GATE(0x80C3D408, &lit_3853);
|
||||
#pragma pop
|
||||
|
||||
/* 80C3D40C-80C3D410 000030 0004+00 0/1 0/0 0/0 .rodata @3854 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3854 = -10.0f;
|
||||
COMPILER_STRIP_GATE(0x80C3D40C, &lit_3854);
|
||||
#pragma pop
|
||||
|
||||
/* 80C3D410-80C3D414 000034 0004+00 0/1 0/0 0/0 .rodata @3855 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3855 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x80C3D410, &lit_3855);
|
||||
#pragma pop
|
||||
|
||||
/* 80C3D414-80C3D418 000038 0004+00 0/1 0/0 0/0 .rodata @3856 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3856 = 200.0f;
|
||||
COMPILER_STRIP_GATE(0x80C3D414, &lit_3856);
|
||||
#pragma pop
|
||||
|
||||
/* 80C3C8D8-80C3C968 000078 0090+00 1/1 0/0 0/0 .text create_init__15daObjKazeNeko_cFv */
|
||||
void daObjKazeNeko_c::create_init() {
|
||||
// NONMATCHING
|
||||
fopAcM_setCullSizeBox(this, -100.0f, -10.0f, -100.0f, 100.0f, 200.0f, 100.0f);
|
||||
field_0x72c.set(current.pos.x, current.pos.y + attr().field_0x1c, current.pos.z);
|
||||
field_0x752 = 0;
|
||||
initBaseMtx();
|
||||
initCcCylinder();
|
||||
}
|
||||
|
||||
/* 80C3C968-80C3C988 000108 0020+00 1/1 0/0 0/0 .text initBaseMtx__15daObjKazeNeko_cFv */
|
||||
void daObjKazeNeko_c::initBaseMtx() {
|
||||
// NONMATCHING
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C3D418-80C3D41C 00003C 0004+00 2/3 0/0 0/0 .rodata @3890 */
|
||||
SECTION_RODATA static u8 const lit_3890[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C3D418, &lit_3890);
|
||||
|
||||
/* 80C3C988-80C3CA8C 000128 0104+00 2/2 0/0 0/0 .text setBaseMtx__15daObjKazeNeko_cFv */
|
||||
void daObjKazeNeko_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::XrotM(shape_angle.x);
|
||||
mDoMtx_stack_c::ZrotM(shape_angle.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
cMtx_copy(mDoMtx_stack_c::get(), mMtx);
|
||||
if (field_0x738 == 0) {
|
||||
mDoMtx_stack_c::transM(0.0f, attr().field_0x1c, 0.0f);
|
||||
mDoMtx_stack_c::YrotM(field_0x748);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mDoMtx_stack_c::YrotM(0x4000);
|
||||
mArmModels[i]->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -172,96 +67,182 @@ const static dCcD_SrcCyl ccCylSrc = {
|
||||
/* 80C3CA8C-80C3CB10 00022C 0084+00 1/1 0/0 0/0 .text initCcCylinder__15daObjKazeNeko_cFv
|
||||
*/
|
||||
void daObjKazeNeko_c::initCcCylinder() {
|
||||
// NONMATCHING
|
||||
mStts.Init(0xff, 0xff, this);
|
||||
mCyl.Set(ccCylSrc);
|
||||
mCyl.SetStts(&mStts);
|
||||
mCyl.SetC(current.pos);
|
||||
mCyl.SetR(attr().mCylRadius);
|
||||
mCyl.SetH(attr().mCylHeight);
|
||||
}
|
||||
|
||||
/* 80C3CB10-80C3CB7C 0002B0 006C+00 1/1 0/0 0/0 .text setCcCylinder__15daObjKazeNeko_cFv
|
||||
*/
|
||||
void daObjKazeNeko_c::setCcCylinder() {
|
||||
// NONMATCHING
|
||||
mCyl.SetC(current.pos);
|
||||
mCyl.SetR(attr().mCylRadius);
|
||||
mCyl.SetH(attr().mCylHeight);
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
}
|
||||
|
||||
/* 80C3CB7C-80C3CC40 00031C 00C4+00 1/1 0/0 0/0 .text swingHead__15daObjKazeNeko_cFv */
|
||||
void daObjKazeNeko_c::swingHead() {
|
||||
// NONMATCHING
|
||||
if (field_0x744 != 0.0f) {
|
||||
f32 dVar5 = field_0x744 * cM_ssin(field_0x74c);
|
||||
shape_angle.x = dVar5 * cM_ssin(field_0x74e);
|
||||
shape_angle.z = dVar5 * cM_scos(field_0x74e);
|
||||
cLib_chaseF(&field_0x744, 0.0f, attr().field_0x18);
|
||||
field_0x74c += attr().field_0x26;
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C3D460-80C3D464 000084 0004+00 0/1 0/0 0/0 .rodata @3947 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3947 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C3D460, &lit_3947);
|
||||
#pragma pop
|
||||
static f32 dummyFloat1() {
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
/* 80C3D464-80C3D468 000088 0004+00 0/1 0/0 0/0 .rodata @3948 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3948 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C3D464, &lit_3948);
|
||||
#pragma pop
|
||||
|
||||
/* 80C3D468-80C3D46C 00008C 0004+00 1/1 0/0 0/0 .rodata @3962 */
|
||||
SECTION_RODATA static f32 const lit_3962 = 30.0f;
|
||||
COMPILER_STRIP_GATE(0x80C3D468, &lit_3962);
|
||||
static f32 dummyFloat2() {
|
||||
return -1.0f;
|
||||
}
|
||||
|
||||
/* 80C3CC40-80C3CC90 0003E0 0050+00 0/0 0/0 1/1 .text getFirstVec__15daObjKazeNeko_cFP4cXyzi */
|
||||
void daObjKazeNeko_c::getFirstVec(cXyz* param_0, int param_1) {
|
||||
// NONMATCHING
|
||||
void daObjKazeNeko_c::getFirstVec(cXyz* param_1, int param_2) {
|
||||
s16 sVar4 = field_0x748 + (param_2 << 14);
|
||||
param_1->set((attr().field_0x20 * cM_ssin(sVar4)), 30.0f, attr().field_0x20 * cM_scos(sVar4));
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C3D474-80C3D474 000098 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80C3D474 = "J_Kazami";
|
||||
SECTION_DEAD static char const* const stringBase_80C3D47D = "pole.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80C3D486 = "arm.bmd";
|
||||
#pragma pop
|
||||
|
||||
/* 80C3D490-80C3D494 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_kazeneko__stringBase0;
|
||||
static char* l_arcName = "J_Kazami";
|
||||
|
||||
inline int daObjKazeNeko_c::createHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "pole.bmd");
|
||||
JUT_ASSERT(458, modelData != 0);
|
||||
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (mModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "arm.bmd");
|
||||
JUT_ASSERT(465, modelData != 0);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mArmModels[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (mArmModels[i] == NULL) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 80C3CC90-80C3CD90 000430 0100+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */
|
||||
static void createSolidHeap(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int createSolidHeap(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjKazeNeko_c*>(i_this)->createHeap();
|
||||
}
|
||||
|
||||
inline int daObjKazeNeko_c::draw() {
|
||||
g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mModel);
|
||||
dComIfGd_setList();
|
||||
if (field_0x738 == 1) {
|
||||
return 1;
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
g_env_light.setLightTevColorType_MAJI(
|
||||
|
||||
mArmModels[i], &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mArmModels[i]);
|
||||
dComIfGd_setList();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C3CD90-80C3CEA8 000530 0118+00 1/0 0/0 0/0 .text daObjKazeNeko_Draw__FP15daObjKazeNeko_c */
|
||||
static void daObjKazeNeko_Draw(daObjKazeNeko_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjKazeNeko_Draw(daObjKazeNeko_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C3D46C-80C3D474 000090 0008+00 0/1 0/0 0/0 .rodata @4119 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4119[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C3D46C, &lit_4119);
|
||||
#pragma pop
|
||||
inline int daObjKazeNeko_c::execute() {
|
||||
if (field_0x738 == 0) {
|
||||
field_0x73c = attr().field_0x08 * dKyw_get_wind_pow();
|
||||
field_0x748 = field_0x748 + field_0x73c + field_0x740;
|
||||
cLib_chaseF(&field_0x740, 0.0f, attr().field_0x10);
|
||||
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_CAT_VANE_ROLL, &field_0x72c, 0, 0, 1.0f, 1.0f, -1.0f,
|
||||
-1.0f, 0);
|
||||
}
|
||||
if (mCyl.ChkTgHit() != 0) {
|
||||
daNPC_TK_c* tk = (daNPC_TK_c*)mCyl.GetTgHitAc();
|
||||
if (fopAcM_GetName(tk) == PROC_NPC_TK) {
|
||||
field_0x740 = attr().field_0x0c;
|
||||
tk->setBump();
|
||||
}
|
||||
}
|
||||
swingHead();
|
||||
if (field_0x750 > 0) {
|
||||
if (--field_0x750 <= 0) {
|
||||
daNPC_TK_c* tk = (daNPC_TK_c*)fopAcM_SearchByName(PROC_NPC_TK);
|
||||
if (tk != NULL) {
|
||||
tk->endHawkCamera();
|
||||
field_0x752 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
setBaseMtx();
|
||||
setCcCylinder();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C3CEA8-80C3D030 000648 0188+00 1/0 0/0 0/0 .text daObjKazeNeko_Execute__FP15daObjKazeNeko_c
|
||||
*/
|
||||
static void daObjKazeNeko_Execute(daObjKazeNeko_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjKazeNeko_Execute(daObjKazeNeko_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* 80C3D030-80C3D038 0007D0 0008+00 1/0 0/0 0/0 .text daObjKazeNeko_IsDelete__FP15daObjKazeNeko_c
|
||||
*/
|
||||
static bool daObjKazeNeko_IsDelete(daObjKazeNeko_c* param_0) {
|
||||
return true;
|
||||
static int daObjKazeNeko_IsDelete(daObjKazeNeko_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
inline daObjKazeNeko_c::~daObjKazeNeko_c() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
}
|
||||
|
||||
/* 80C3D038-80C3D168 0007D8 0130+00 1/0 0/0 0/0 .text daObjKazeNeko_Delete__FP15daObjKazeNeko_c */
|
||||
static int daObjKazeNeko_Delete(daObjKazeNeko_c* i_this) {
|
||||
fopAcM_GetID(i_this);
|
||||
i_this->~daObjKazeNeko_c();
|
||||
return 1;
|
||||
}
|
||||
|
||||
inline int daObjKazeNeko_c::create() {
|
||||
fopAcM_SetupActor(this, daObjKazeNeko_c);
|
||||
int rv = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (rv == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this, createSolidHeap, 0x2800) == 0) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
create_init();
|
||||
fopAcM_SetMtx(this, mMtx);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* 80C3D168-80C3D2A0 000908 0138+00 1/0 0/0 0/0 .text daObjKazeNeko_Create__FP10fopAc_ac_c */
|
||||
static int daObjKazeNeko_Create(fopAc_ac_c* i_this) {
|
||||
fopAcM_GetID(i_this);
|
||||
return static_cast<daObjKazeNeko_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C3D494-80C3D4B4 -00001 0020+00 1/0 0/0 0/0 .data l_daObjKazeNeko_Method */
|
||||
static actor_method_class l_daObjKazeNeko_Method = {
|
||||
(process_method_func)daObjKazeNeko_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daObjKazeNeko_Delete__FP15daObjKazeNeko_c,
|
||||
(process_method_func)daObjKazeNeko_Execute__FP15daObjKazeNeko_c,
|
||||
(process_method_func)daObjKazeNeko_IsDelete__FP15daObjKazeNeko_c,
|
||||
(process_method_func)daObjKazeNeko_Draw__FP15daObjKazeNeko_c,
|
||||
(process_method_func)daObjKazeNeko_Create,
|
||||
(process_method_func)daObjKazeNeko_Delete,
|
||||
(process_method_func)daObjKazeNeko_Execute,
|
||||
(process_method_func)daObjKazeNeko_IsDelete,
|
||||
(process_method_func)daObjKazeNeko_Draw,
|
||||
};
|
||||
|
||||
/* 80C3D4B4-80C3D4E4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_KazeNeko */
|
||||
@@ -282,66 +263,4 @@ extern actor_process_profile_definition g_profile_Obj_KazeNeko = {
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80C3D4E4-80C3D4F0 000054 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,
|
||||
};
|
||||
|
||||
/* 80C3D4F0-80C3D4FC 000060 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,
|
||||
};
|
||||
|
||||
/* 80C3D4FC-80C3D508 00006C 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,
|
||||
};
|
||||
|
||||
/* 80C3D508-80C3D514 000078 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
|
||||
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGCylFv,
|
||||
};
|
||||
|
||||
/* 80C3D038-80C3D168 0007D8 0130+00 1/0 0/0 0/0 .text daObjKazeNeko_Delete__FP15daObjKazeNeko_c */
|
||||
static void daObjKazeNeko_Delete(daObjKazeNeko_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C3D168-80C3D2A0 000908 0138+00 1/0 0/0 0/0 .text daObjKazeNeko_Create__FP10fopAc_ac_c */
|
||||
static void daObjKazeNeko_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C3D2A0-80C3D2E8 000A40 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
// cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" void __dt__8cM3dGCylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C3D2E8-80C3D330 000A88 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// cM3dGAab::~cM3dGAab() {
|
||||
extern "C" void __dt__8cM3dGAabFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C3D330-80C3D38C 000AD0 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
|
||||
// dCcD_GStts::~dCcD_GStts() {
|
||||
extern "C" void __dt__10dCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C3D38C-80C3D3D4 000B2C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
||||
// cCcD_GStts::~cCcD_GStts() {
|
||||
extern "C" void __dt__10cCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C3D474-80C3D474 000098 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 80C3D474-80C3D474 000098 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
Reference in New Issue
Block a user