/** * @file d_a_npc_worm.cpp * */ #include "d/actor/d_a_npc_worm.h" #include "dol2asm.h" // // Forward References: // extern "C" static void nodeCallBack__FP8J3DJointi(); extern "C" static void daNPC_WORM_Draw__FP14npc_worm_class(); extern "C" static void npc_worm_ground__FP14npc_worm_class(); extern "C" static void npc_worm_normal__FP14npc_worm_class(); extern "C" static void npc_worm_dive__FP14npc_worm_class(); extern "C" static void npc_worm_binwait__FP14npc_worm_class(); extern "C" static void action__FP14npc_worm_class(); extern "C" static void daNPC_WORM_Execute__FP14npc_worm_class(); extern "C" static bool daNPC_WORM_IsDelete__FP14npc_worm_class(); extern "C" static void daNPC_WORM_Delete__FP14npc_worm_class(); extern "C" static void useHeapInit__FP10fopAc_ac_c(); extern "C" static void daNPC_WORM_Create__FP10fopAc_ac_c(); extern "C" void getLeftHandPos__9daPy_py_cCFv(); extern "C" void Insect_Release__9dInsect_cFv(); extern "C" extern char const* const d_a_npc_worm__stringBase0; // // External References: // extern "C" void mDoMtx_XrotS__FPA4_fs(); extern "C" void mDoMtx_XrotM__FPA4_fs(); extern "C" void mDoMtx_YrotS__FPA4_fs(); extern "C" void mDoMtx_YrotM__FPA4_fs(); extern "C" void mDoMtx_ZrotM__FPA4_fs(); extern "C" void transM__14mDoMtx_stack_cFfff(); extern "C" void scaleM__14mDoMtx_stack_cFfff(); extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); extern "C" void fopAcM_delete__FP10fopAc_ac_c(); extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); extern "C" void fopAcM_searchActorDistance__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 getRes__14dRes_control_cFPCclP11dRes_info_ci(); extern "C" void request__11dAttCatch_cFP10fopAc_ac_cUcfffsi(); extern "C" void LineCross__4cBgSFP11cBgS_LinChk(); extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); extern "C" void __ct__11dBgS_GndChkFv(); extern "C" void __dt__11dBgS_GndChkFv(); extern "C" void __ct__11dBgS_LinChkFv(); extern "C" void __dt__11dBgS_LinChkFv(); extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c(); extern "C" void __ct__9dInsect_cFv(); extern "C" void setLookPos__9daPy_py_cFP4cXyz(); extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); extern "C" void __mi__4cXyzCFRC3Vec(); extern "C" void cM_atan2s__Fff(); extern "C" void cM_rndF__Ff(); extern "C" void cM_rndFX__Ff(); extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); extern "C" void cLib_addCalc2__FPffff(); extern "C" void cLib_addCalc0__FPfff(); extern "C" void cLib_addCalcAngleS2__FPssss(); extern "C" void MtxPosition__FP4cXyzP4cXyz(); extern "C" void _savegpr_24(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_24(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mCurrentMtx__6J3DSys[48]; extern "C" u8 sincosTable___5JMath[65536]; // // Declarations: // /* 80B2DE78-80B2DF4C 000078 00D4+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ static void nodeCallBack(J3DJoint* param_0, int param_1) { // NONMATCHING } /* ############################################################################################## */ /* 80B2F080-80B2F084 000000 0004+00 7/7 0/0 0/0 .rodata @3717 */ SECTION_RODATA static f32 const lit_3717 = 1.0f / 100.0f; COMPILER_STRIP_GATE(0x80B2F080, &lit_3717); /* 80B2DF4C-80B2E044 00014C 00F8+00 1/0 0/0 0/0 .text daNPC_WORM_Draw__FP14npc_worm_class */ static void daNPC_WORM_Draw(npc_worm_class* param_0) { // NONMATCHING } /* ############################################################################################## */ /* 80B2F084-80B2F088 000004 0004+00 0/5 0/0 0/0 .rodata @3774 */ #pragma push #pragma force_active on SECTION_RODATA static u8 const lit_3774[4] = { 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x80B2F084, &lit_3774); #pragma pop /* 80B2F088-80B2F090 000008 0008+00 0/1 0/0 0/0 .rodata @3775 */ #pragma push #pragma force_active on SECTION_RODATA static u8 const lit_3775[8] = { 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x80B2F088, &lit_3775); #pragma pop /* 80B2F090-80B2F098 000010 0008+00 0/1 0/0 0/0 .rodata @3776 */ #pragma push #pragma force_active on SECTION_RODATA static u8 const lit_3776[8] = { 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x80B2F090, &lit_3776); #pragma pop /* 80B2F098-80B2F0A0 000018 0008+00 0/1 0/0 0/0 .rodata @3777 */ #pragma push #pragma force_active on SECTION_RODATA static u8 const lit_3777[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x80B2F098, &lit_3777); #pragma pop /* 80B2F0A0-80B2F0A4 000020 0004+00 0/1 0/0 0/0 .rodata @3778 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3778 = 35.0f; COMPILER_STRIP_GATE(0x80B2F0A0, &lit_3778); #pragma pop /* 80B2F0A4-80B2F0A8 000024 0004+00 0/3 0/0 0/0 .rodata @3779 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3779 = 10.0f; COMPILER_STRIP_GATE(0x80B2F0A4, &lit_3779); #pragma pop /* 80B2F0A8-80B2F0AC 000028 0004+00 0/3 0/0 0/0 .rodata @3780 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3780 = 5.0f; COMPILER_STRIP_GATE(0x80B2F0A8, &lit_3780); #pragma pop /* 80B2F0AC-80B2F0B0 00002C 0004+00 0/1 0/0 0/0 .rodata @3781 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3781 = 20.0f; COMPILER_STRIP_GATE(0x80B2F0AC, &lit_3781); #pragma pop /* 80B2E044-80B2E2C4 000244 0280+00 1/1 0/0 0/0 .text npc_worm_ground__FP14npc_worm_class */ static void npc_worm_ground(npc_worm_class* param_0) { // NONMATCHING } /* ############################################################################################## */ /* 80B2F0B0-80B2F0B4 000030 0004+00 0/1 0/0 0/0 .rodata @3812 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3812 = 65536.0f; COMPILER_STRIP_GATE(0x80B2F0B0, &lit_3812); #pragma pop /* 80B2F0B4-80B2F0B8 000034 0004+00 0/1 0/0 0/0 .rodata @3813 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3813 = 16000.0f; COMPILER_STRIP_GATE(0x80B2F0B4, &lit_3813); #pragma pop /* 80B2F0B8-80B2F0BC 000038 0004+00 0/1 0/0 0/0 .rodata @3814 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3814 = 130.0f; COMPILER_STRIP_GATE(0x80B2F0B8, &lit_3814); #pragma pop /* 80B2F0BC-80B2F0C0 00003C 0004+00 0/2 0/0 0/0 .rodata @3815 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3815 = 60.0f; COMPILER_STRIP_GATE(0x80B2F0BC, &lit_3815); #pragma pop /* 80B2F0C0-80B2F0C4 000040 0004+00 0/3 0/0 0/0 .rodata @3816 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3816 = 3.0f; COMPILER_STRIP_GATE(0x80B2F0C0, &lit_3816); #pragma pop /* 80B2F0C4-80B2F0C8 000044 0004+00 0/1 0/0 0/0 .rodata @3817 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3817 = 15.0f; COMPILER_STRIP_GATE(0x80B2F0C4, &lit_3817); #pragma pop /* 80B2F0C8-80B2F0CC 000048 0004+00 0/1 0/0 0/0 .rodata @3818 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3818 = 4.0f; COMPILER_STRIP_GATE(0x80B2F0C8, &lit_3818); #pragma pop /* 80B2F0CC-80B2F0D0 00004C 0004+00 0/1 0/0 0/0 .rodata @3819 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3819 = 2.0f; COMPILER_STRIP_GATE(0x80B2F0CC, &lit_3819); #pragma pop /* 80B2F0D0-80B2F0D4 000050 0004+00 0/1 0/0 0/0 .rodata @3820 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3820 = 20000.0f; COMPILER_STRIP_GATE(0x80B2F0D0, &lit_3820); #pragma pop /* 80B2F0D4-80B2F0D8 000054 0004+00 0/1 0/0 0/0 .rodata @3821 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3821 = 0.5f; COMPILER_STRIP_GATE(0x80B2F0D4, &lit_3821); #pragma pop /* 80B2F0D8-80B2F0DC 000058 0004+00 0/1 0/0 0/0 .rodata @3822 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3822 = 0.75f; COMPILER_STRIP_GATE(0x80B2F0D8, &lit_3822); #pragma pop /* 80B2F0DC-80B2F0E0 00005C 0004+00 0/2 0/0 0/0 .rodata @3823 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3823 = 200.0f; COMPILER_STRIP_GATE(0x80B2F0DC, &lit_3823); #pragma pop /* 80B2F0E0-80B2F0E4 000060 0004+00 0/2 0/0 0/0 .rodata @3824 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3824 = 100.0f; COMPILER_STRIP_GATE(0x80B2F0E0, &lit_3824); #pragma pop /* 80B2F0E4-80B2F0E8 000064 0004+00 0/1 0/0 0/0 .rodata @3825 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3825 = -150.0f; COMPILER_STRIP_GATE(0x80B2F0E4, &lit_3825); #pragma pop /* 80B2E2C4-80B2E544 0004C4 0280+00 1/1 0/0 0/0 .text npc_worm_normal__FP14npc_worm_class */ static void npc_worm_normal(npc_worm_class* param_0) { // NONMATCHING } /* ############################################################################################## */ /* 80B2F0E8-80B2F0EC 000068 0004+00 0/1 0/0 0/0 .rodata @3850 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3850 = -1.0f; COMPILER_STRIP_GATE(0x80B2F0E8, &lit_3850); #pragma pop /* 80B2F0EC-80B2F0F0 00006C 0004+00 0/3 0/0 0/0 .rodata @3851 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3851 = 1.0f; COMPILER_STRIP_GATE(0x80B2F0EC, &lit_3851); #pragma pop /* 80B2F0F0-80B2F0F4 000070 0004+00 0/2 0/0 0/0 .rodata @3852 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3852 = 1.0f / 10.0f; COMPILER_STRIP_GATE(0x80B2F0F0, &lit_3852); #pragma pop /* 80B2F0F4-80B2F0F8 000074 0004+00 0/1 0/0 0/0 .rodata @3853 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3853 = 1.0f / 50.0f; COMPILER_STRIP_GATE(0x80B2F0F4, &lit_3853); #pragma pop /* 80B2E544-80B2E678 000744 0134+00 1/1 0/0 0/0 .text npc_worm_dive__FP14npc_worm_class */ static void npc_worm_dive(npc_worm_class* param_0) { // NONMATCHING } /* 80B2E678-80B2E6C4 000878 004C+00 1/1 0/0 0/0 .text npc_worm_binwait__FP14npc_worm_class */ static void npc_worm_binwait(npc_worm_class* param_0) { // NONMATCHING } /* ############################################################################################## */ /* 80B2F0F8-80B2F0FC 000078 0004+00 0/1 0/0 0/0 .rodata @3990 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3990 = 8000.0f; COMPILER_STRIP_GATE(0x80B2F0F8, &lit_3990); #pragma pop /* 80B2F0FC-80B2F100 00007C 0004+00 0/1 0/0 0/0 .rodata @3991 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3991 = 4000.0f; COMPILER_STRIP_GATE(0x80B2F0FC, &lit_3991); #pragma pop /* 80B2F100-80B2F104 000080 0004+00 0/1 0/0 0/0 .rodata @3992 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3992 = 2000.0f; COMPILER_STRIP_GATE(0x80B2F100, &lit_3992); #pragma pop /* 80B2F104-80B2F108 000084 0004+00 0/1 0/0 0/0 .rodata @3993 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3993 = 17.0f / 100.0f; COMPILER_STRIP_GATE(0x80B2F104, &lit_3993); #pragma pop /* 80B2F108-80B2F10C 000088 0004+00 0/1 0/0 0/0 .rodata @3994 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3994 = -50.0f; COMPILER_STRIP_GATE(0x80B2F108, &lit_3994); #pragma pop /* 80B2F10C-80B2F110 00008C 0004+00 0/1 0/0 0/0 .rodata @3995 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3995 = 50.0f; COMPILER_STRIP_GATE(0x80B2F10C, &lit_3995); #pragma pop /* 80B2F110-80B2F114 000090 0004+00 0/1 0/0 0/0 .rodata @3996 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_3996 = -10.0f; COMPILER_STRIP_GATE(0x80B2F110, &lit_3996); #pragma pop /* 80B2E6C4-80B2EBF4 0008C4 0530+00 1/1 0/0 0/0 .text action__FP14npc_worm_class */ static void action(npc_worm_class* param_0) { // NONMATCHING } /* ############################################################################################## */ /* 80B2F114-80B2F118 000094 0004+00 0/1 0/0 0/0 .rodata @4054 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_4054 = 2.5f; COMPILER_STRIP_GATE(0x80B2F114, &lit_4054); #pragma pop /* 80B2F118-80B2F11C 000098 0004+00 0/1 0/0 0/0 .rodata @4055 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_4055 = 2.0f / 25.0f; COMPILER_STRIP_GATE(0x80B2F118, &lit_4055); #pragma pop /* 80B2F11C-80B2F120 00009C 0004+00 0/1 0/0 0/0 .rodata @4056 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_4056 = 11.0f / 10.0f; COMPILER_STRIP_GATE(0x80B2F11C, &lit_4056); #pragma pop /* 80B2EBF4-80B2EDD0 000DF4 01DC+00 2/1 0/0 0/0 .text daNPC_WORM_Execute__FP14npc_worm_class */ static void daNPC_WORM_Execute(npc_worm_class* param_0) { // NONMATCHING } /* 80B2EDD0-80B2EDD8 000FD0 0008+00 1/0 0/0 0/0 .text daNPC_WORM_IsDelete__FP14npc_worm_class */ static bool daNPC_WORM_IsDelete(npc_worm_class* param_0) { return true; } /* ############################################################################################## */ /* 80B2F124-80B2F124 0000A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80B2F124 = "Alink"; #pragma pop /* 80B2EDD8-80B2EE08 000FD8 0030+00 1/0 0/0 0/0 .text daNPC_WORM_Delete__FP14npc_worm_class */ static void daNPC_WORM_Delete(npc_worm_class* param_0) { // NONMATCHING } /* 80B2EE08-80B2EEC0 001008 00B8+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ static void useHeapInit(fopAc_ac_c* param_0) { // NONMATCHING } /* ############################################################################################## */ /* 80B2F120-80B2F124 0000A0 0004+00 0/1 0/0 0/0 .rodata @4126 */ #pragma push #pragma force_active on SECTION_RODATA static f32 const lit_4126 = 65535.0f; COMPILER_STRIP_GATE(0x80B2F120, &lit_4126); #pragma pop /* 80B2F12C-80B2F14C -00001 0020+00 1/0 0/0 0/0 .data l_daNPC_WORM_Method */ static actor_method_class l_daNPC_WORM_Method = { (process_method_func)daNPC_WORM_Create__FP10fopAc_ac_c, (process_method_func)daNPC_WORM_Delete__FP14npc_worm_class, (process_method_func)daNPC_WORM_Execute__FP14npc_worm_class, (process_method_func)daNPC_WORM_IsDelete__FP14npc_worm_class, (process_method_func)daNPC_WORM_Draw__FP14npc_worm_class, }; /* 80B2F14C-80B2F17C -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_WORM */ extern actor_process_profile_definition g_profile_NPC_WORM = { fpcLy_CURRENT_e, // mLayerID 7, // mListID fpcPi_CURRENT_e, // mListPrio PROC_NPC_WORM, // mProcName &g_fpcLf_Method.base, // sub_method sizeof(npc_worm_class), // mSize 0, // mSizeOther 0, // mParameters &g_fopAc_Method.base, // sub_method 429, // mPriority &l_daNPC_WORM_Method, // sub_method 0x00040100, // mStatus fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_0_e, // cullType }; /* 80B2F17C-80B2F188 000050 000C+00 1/1 0/0 0/0 .data __vt__14npc_worm_class */ SECTION_DATA extern void* __vt__14npc_worm_class[3] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)Insect_Release__9dInsect_cFv, }; /* 80B2EEC0-80B2F050 0010C0 0190+00 1/0 0/0 0/0 .text daNPC_WORM_Create__FP10fopAc_ac_c */ static void daNPC_WORM_Create(fopAc_ac_c* param_0) { // NONMATCHING } /* 80B2F050-80B2F06C 001250 001C+00 1/1 0/0 0/0 .text getLeftHandPos__9daPy_py_cCFv */ // void daPy_py_c::getLeftHandPos() const { extern "C" void getLeftHandPos__9daPy_py_cCFv() { // NONMATCHING } /* 80B2F06C-80B2F078 00126C 000C+00 1/0 0/0 0/0 .text Insect_Release__9dInsect_cFv */ // void dInsect_c::Insect_Release() { extern "C" void Insect_Release__9dInsect_cFv() { // NONMATCHING } /* 80B2F124-80B2F124 0000A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */