From e0ea8495f78feb83aaba7700f668fc3d52405c1d Mon Sep 17 00:00:00 2001 From: hatal175 Date: Thu, 19 Dec 2024 22:10:53 +0200 Subject: [PATCH] d_a_obj_yel_bag OK (#2267) * d_a_obj_web0 cleanup * d_a_obj_yel_bag OK --- .../GZ2E01/rels/d_a_obj_yel_bag/symbols.txt | 24 +- configure.py | 2 +- include/d/actor/d_a_npc.h | 2 +- include/d/actor/d_a_obj_yel_bag.h | 71 +- include/d/d_bg_s_lin_chk.h | 2 +- src/d/actor/d_a_npc.cpp | 10 +- src/d/actor/d_a_obj_web0.cpp | 141 +- src/d/actor/d_a_obj_yel_bag.cpp | 1508 ++++++----------- 8 files changed, 619 insertions(+), 1141 deletions(-) diff --git a/config/GZ2E01/rels/d_a_obj_yel_bag/symbols.txt b/config/GZ2E01/rels/d_a_obj_yel_bag/symbols.txt index a198c651f7a..31f43255c26 100644 --- a/config/GZ2E01/rels/d_a_obj_yel_bag/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_yel_bag/symbols.txt @@ -28,11 +28,11 @@ getWallAngle__12daObj_YBag_cFsPs = .text:0x0000173C; // type:function size:0x190 setSmokePrtcl__12daObj_YBag_cFv = .text:0x000018CC; // type:function size:0x7C scope:global setWaterPrtcl__12daObj_YBag_cFv = .text:0x00001948; // type:function size:0x128 scope:global setHamonPrtcl__12daObj_YBag_cFv = .text:0x00001A70; // type:function size:0x50 scope:global -daObj_YBag_Create__FPv = .text:0x00001AC0; // type:function size:0x20 scope:global -daObj_YBag_Delete__FPv = .text:0x00001AE0; // type:function size:0x20 scope:global -daObj_YBag_Execute__FPv = .text:0x00001B00; // type:function size:0x20 scope:global -daObj_YBag_Draw__FPv = .text:0x00001B20; // type:function size:0x20 scope:global -daObj_YBag_IsDelete__FPv = .text:0x00001B40; // type:function size:0x8 scope:global +daObj_YBag_Create__FPv = .text:0x00001AC0; // type:function size:0x20 scope:local +daObj_YBag_Delete__FPv = .text:0x00001AE0; // type:function size:0x20 scope:local +daObj_YBag_Execute__FPv = .text:0x00001B00; // type:function size:0x20 scope:local +daObj_YBag_Draw__FPv = .text:0x00001B20; // type:function size:0x20 scope:local +daObj_YBag_IsDelete__FPv = .text:0x00001B40; // type:function size:0x8 scope:local __dt__10cCcD_GSttsFv = .text:0x00001B48; // type:function size:0x48 scope:global cLib_calcTimer__FPi = .text:0x00001B90; // type:function size:0x1C scope:global __sinit_d_a_obj_yel_bag_cpp = .text:0x00001BAC; // type:function size:0x74 scope:local @@ -79,15 +79,15 @@ m__18daObj_YBag_Param_c = .rodata:0x00000030; // type:object size:0x2C scope:glo @4550 = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float @stringBase0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:string_table ...data.0 = .data:0x00000000; // type:label scope:local -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local -l_bmdGetParamList = .data:0x00000020; // type:object size:0x8 scope:global data:4byte -l_loadRes_YBAG0 = .data:0x00000028; // type:object size:0xC scope:global -l_loadRes_list = .data:0x00000034; // type:object size:0x8 scope:global -l_resNames = .data:0x0000003C; // type:object size:0x4 scope:global data:4byte +l_bmdGetParamList = .data:0x00000020; // type:object size:0x8 scope:local data:4byte +l_loadRes_YBAG0 = .data:0x00000028; // type:object size:0xC scope:local +l_loadRes_list = .data:0x00000034; // type:object size:0x8 scope:local +l_resNames = .data:0x0000003C; // type:object size:0x4 scope:local data:4byte mCcDCyl__12daObj_YBag_c = .data:0x00000040; // type:object size:0x44 scope:global emttrId$4511 = .data:0x00000084; // type:object size:0x8 scope:local -daObj_YBag_MethodTable = .data:0x0000008C; // type:object size:0x20 scope:global +daObj_YBag_MethodTable = .data:0x0000008C; // type:object size:0x20 scope:local g_profile_OBJ_YBAG = .data:0x000000AC; // type:object size:0x30 scope:global __vt__12daObj_YBag_c = .data:0x000000DC; // type:object size:0xC scope:global __vt__10cCcD_GStts = .data:0x000000E8; // type:object size:0xC scope:global @@ -116,7 +116,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @1010 = .bss:0x00000040; // type:object size:0x1 scope:local @1009 = .bss:0x00000044; // type:object size:0x1 scope:local @3802 = .bss:0x00000048; // type:object size:0xC scope:local -l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte +l_HIO = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte @4508 = .bss:0x00000058; // type:object size:0xC scope:local scl$4507 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global diff --git a/configure.py b/configure.py index 33e7a6c7de5..4299e6d8b35 100644 --- a/configure.py +++ b/configure.py @@ -2058,7 +2058,7 @@ config.libs = [ ActorRel(Matching, "d_a_obj_wood_pendulum"), ActorRel(NonMatching, "d_a_obj_wood_statue"), ActorRel(Matching, "d_a_obj_wsword"), - ActorRel(NonMatching, "d_a_obj_yel_bag"), + ActorRel(Matching, "d_a_obj_yel_bag"), ActorRel(Matching, "d_a_obj_ystone"), ActorRel(Matching, "d_a_obj_zcloth"), ActorRel(NonMatching, "d_a_obj_zdoor"), diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 631beb377a2..2abe7e6e109 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -571,7 +571,7 @@ public: field_0xde4 = 0.2f; } - static u8 const mCcDObjData[48]; + static dCcD_SrcGObjInf const mCcDObjData; static dCcD_SrcCyl mCcDCyl; static dCcD_SrcSph mCcDSph; static fopAc_ac_c* mFindActorPtrs[50]; diff --git a/include/d/actor/d_a_obj_yel_bag.h b/include/d/actor/d_a_obj_yel_bag.h index a862cb4f7ee..795280debbb 100644 --- a/include/d/actor/d_a_obj_yel_bag.h +++ b/include/d/actor/d_a_obj_yel_bag.h @@ -1,6 +1,9 @@ #ifndef D_A_OBJ_YEL_BAG_H #define D_A_OBJ_YEL_BAG_H +#include "SSystem/SComponent/c_cc_d.h" +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" /** @@ -12,41 +15,73 @@ * */ class daObj_YBag_c : public fopAc_ac_c { +private: + /* 0x568 */ request_of_phase_process_class mPhases[3]; + /* 0x580 */ J3DModel* mModel; + /* 0x584 */ int field_0x584; + /* 0x588 */ dBgS_ObjAcch mAcch; + /* 0x760 */ dCcD_Stts mStts; + /* 0x79C */ dBgS_AcchCir mAcchCir; + /* 0x7DC */ dCcD_Cyl mCyl; + /* 0x918 */ cBgS_GndChk mGndChk; + /* 0x954 */ dBgS_LinChk mLinChk; + /* 0x9C4 */ cXyz field_0x9c4; + /* 0x9C4 */ cXyz field_0x9d0; + /* 0x9DC */ csXyz field_0x9dc; + /* 0x9E4 */ int field_0x9e4; + /* 0x9E8 */ int field_0x9e8; + /* 0x9EC */ f32 field_0x9ec; + /* 0x9F0 */ f32 field_0x9f0; + /* 0x9F4 */ f32 field_0x9f4; + /* 0x9F8 */ f32 field_0x9f8; + /* 0x9FC */ f32 field_0x9fc; + /* 0xA00 */ s16 field_0xa00; + /* 0xA02 */ s16 field_0xa02; + /* 0xA04 */ s16 field_0xa04; + /* 0xA06 */ s16 field_0xa06; + /* 0xA08 */ s16 field_0xa08; + /* 0xA0C */ int mShadowId; + /* 0xA10 */ u32 field_0xa10; + /* 0xA14 */ u32 field_0xa14; + /* 0xA14 */ int mWaterParticles[4]; + /* 0xA14 */ u32 field_0xa28[2]; + /* 0xA30 */ u8 mType; + /* 0xA31 */ u8 field_0xa31; + /* 0xA32 */ u8 field_0xa32; + /* 0xA33 */ u8 field_0xa33; + /* 0xA34 */ u8 field_0xa34; public: /* 80D3C0EC */ daObj_YBag_c(); - /* 80D3C408 */ ~daObj_YBag_c(); - /* 80D3C610 */ void create(); - /* 80D3C898 */ void CreateHeap(); - /* 80D3C93C */ void Delete(); - /* 80D3C970 */ void Execute(); - /* 80D3D32C */ void Draw(); - /* 80D3D438 */ void createHeapCallBack(fopAc_ac_c*); - /* 80D3D458 */ bool getTypeFromParam(); - /* 80D3D460 */ bool isDelete(); + /* 80D3C408 */ virtual ~daObj_YBag_c(); + /* 80D3C610 */ int create(); + /* 80D3C898 */ int CreateHeap(); + /* 80D3C93C */ int Delete(); + /* 80D3C970 */ int Execute(); + /* 80D3D32C */ int Draw(); + /* 80D3D438 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80D3D458 */ int getTypeFromParam(); + /* 80D3D460 */ int isDelete(); /* 80D3D468 */ void setEnvTevColor(); /* 80D3D4C4 */ void setRoomNo(); /* 80D3D508 */ void reset(); /* 80D3D5C8 */ void setMtx(); - /* 80D3D69C */ void calcRollAngle(s16, int); - /* 80D3D73C */ void getWallAngle(s16, s16*); + /* 80D3D69C */ s16 calcRollAngle(s16, int); + /* 80D3D73C */ int getWallAngle(s16, s16*); /* 80D3D8CC */ void setSmokePrtcl(); /* 80D3D948 */ void setWaterPrtcl(); /* 80D3DA70 */ void setHamonPrtcl(); - static u8 const mCcDObjInfo[48]; - static u8 mCcDCyl[68]; - -private: - /* 0x568 */ u8 field_0x568[0xa3c - 0x568]; + static dCcD_SrcGObjInf const mCcDObjInfo; + static dCcD_SrcCyl mCcDCyl; }; STATIC_ASSERT(sizeof(daObj_YBag_c) == 0xa3c); class daObj_YBag_Param_c { public: - /* 80D3DC20 */ ~daObj_YBag_Param_c(); + /* 80D3DC20 */ virtual ~daObj_YBag_Param_c() {} - static u8 const m[44]; + static f32 const m[11]; }; diff --git a/include/d/d_bg_s_lin_chk.h b/include/d/d_bg_s_lin_chk.h index ae847d46c41..06642282860 100644 --- a/include/d/d_bg_s_lin_chk.h +++ b/include/d/d_bg_s_lin_chk.h @@ -15,7 +15,7 @@ public: /* 0x00 cBgS_LinChk */; /* 0x58 dBgS_Chk */; -}; +}; // Size = 0x70 class dBgS_LinkLinChk : public dBgS_LinChk { public: diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index 1a0b5834245..413a3bac9b2 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -2507,12 +2507,12 @@ extern "C" int func_8014D364(int param_0, int param_1) { /* ############################################################################################## */ /* 80392680-803926B0 01ECE0 0030+00 1/1 0/0 4/4 .rodata mCcDObjData__8daNpcT_c */ -SECTION_RODATA u8 const daNpcT_c::mCcDObjData[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +const dCcD_SrcGObjInf daNpcT_c::mCcDObjData = { + {0, {{0, 0, 0}, {0, 0x00}, {0x79}}}, + {dCcD_SE_NONE, 0, 0, 0, 0}, + {dCcD_SE_NONE, 0, 0, 0, 0}, + {0}, }; -COMPILER_STRIP_GATE(0x80392680, &daNpcT_c::mCcDObjData); /* 8014D3D8-8014D538 147D18 0160+00 0/0 1/0 0/0 .text __sinit_d_a_npc_cpp */ void __sinit_d_a_npc_cpp(){// NONMATCHING diff --git a/src/d/actor/d_a_obj_web0.cpp b/src/d/actor/d_a_obj_web0.cpp index c52768eaeb1..3f3a77cfb30 100644 --- a/src/d/actor/d_a_obj_web0.cpp +++ b/src/d/actor/d_a_obj_web0.cpp @@ -4,74 +4,13 @@ */ #include "d/actor/d_a_obj_web0.h" +#include "SSystem/SComponent/c_math.h" #include "d/actor/d_a_player.h" #include "d/d_bg_w.h" #include "dol2asm.h" #include "f_op/f_op_actor_mng.h" #include "global.h" -extern "C" static void damage_check__FP14obj_web0_class(); - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__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 onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f(); -extern "C" void __ct__4dBgWFv(); -extern "C" void Move__4dBgWFv(); -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 ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void GetTgHitGObj__12dCcD_GObjInfFv(); -extern "C" void ChkCoHit__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -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__8cM3dGSphFRC4cXyz(); -extern "C" void SetR__8cM3dGSphFf(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - /* 80D3452C-80D34544 0000EC 0018+00 1/1 0/0 0/0 .text __ct__16daObj_Web0_HIO_cFv */ daObj_Web0_HIO_c::daObj_Web0_HIO_c() { field_0x4 = -1; @@ -88,25 +27,6 @@ static int daObj_Web0_Draw(obj_web0_class* i_this) { return 1; } -/* ############################################################################################## */ -/* 80D3517C-80D35180 000000 0004+00 3/3 0/0 0/0 .rodata @3724 */ -SECTION_RODATA static f32 const lit_3724 = 1.0f; -COMPILER_STRIP_GATE(0x80D3517C, &lit_3724); - -/* 80D35180-80D35184 000004 0004+00 0/2 0/0 0/0 .rodata @3725 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3725 = -1.0f; -COMPILER_STRIP_GATE(0x80D35180, &lit_3725); -#pragma pop - -/* 80D35184-80D35188 000008 0004+00 0/1 0/0 0/0 .rodata @3726 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3726 = 260.0f; -COMPILER_STRIP_GATE(0x80D35184, &lit_3726); -#pragma pop - /* 80D345C0-80D34794 000180 01D4+00 1/1 0/0 0/0 .text damage_check__FP14obj_web0_class */ static void damage_check(obj_web0_class* i_this) { i_this->mStts.Move(); @@ -124,12 +44,12 @@ static void damage_check(obj_web0_class* i_this) { } if (i_this->mSphCc.GetTgHitObj()->ChkAtType(AT_TYPE_LANTERN_SWING) && - static_cast(i_this->mSphCc.GetTgHitObj())->GetAtMtrl() != dCcD_MTRL_FIRE) { + i_this->mSphCc.GetTgHitGObj()->GetAtMtrl() != dCcD_MTRL_FIRE) { return; } if (i_this->mSphCc.GetTgHitObj()->ChkAtType(AT_TYPE_BOMB) || - static_cast(i_this->mSphCc.GetTgHitObj())->GetAtMtrl() == dCcD_MTRL_FIRE) { + i_this->mSphCc.GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_FIRE) { i_this->mDeleteTimer = 1; return; } @@ -149,52 +69,8 @@ static void damage_check(obj_web0_class* i_this) { } } - -/* ############################################################################################## */ -/* 80D35188-80D3518C 00000C 0004+00 0/1 0/0 0/0 .rodata @3850 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3850 = 3.0f / 40.0f; -COMPILER_STRIP_GATE(0x80D35188, &lit_3850); -#pragma pop - -/* 80D3518C-80D35190 000010 0004+00 0/1 0/0 0/0 .rodata @3851 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3851 = 70.0f; -COMPILER_STRIP_GATE(0x80D3518C, &lit_3851); -#pragma pop - -/* 80D35190-80D35194 000014 0004+00 0/1 0/0 0/0 .rodata @3852 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3852 = 20000.0f; -COMPILER_STRIP_GATE(0x80D35190, &lit_3852); -#pragma pop - -/* 80D35194-80D3519C 000018 0004+04 0/1 0/0 0/0 .rodata @3853 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3853[1 + 1 /* padding */] = { - 150.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80D35194, &lit_3853); -#pragma pop - -/* 80D3519C-80D351A4 000020 0008+00 0/1 0/0 0/0 .rodata @3855 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3855[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D3519C, &lit_3855); -#pragma pop - /* 80D34794-80D34B24 000354 0390+00 2/1 0/0 0/0 .text daObj_Web0_Execute__FP14obj_web0_class */ -// reg alloc -#ifdef NONMATCHING +// NONMATCHING - reg alloc static int daObj_Web0_Execute(obj_web0_class* i_this) { fopAc_ac_c* player = dComIfGp_getPlayer(0); @@ -262,7 +138,7 @@ static int daObj_Web0_Execute(obj_web0_class* i_this) { s16 svar9 = i_this->shape_angle.y; if (tmp < 0) { - svar9 += (s16)-0x8000; + svar9 += -0x8000; } svar9 -= player->shape_angle.y; @@ -276,11 +152,6 @@ static int daObj_Web0_Execute(obj_web0_class* i_this) { dComIfG_Ccsp()->Set(&i_this->mSphCc); return 1; } -#else -static int daObj_Web0_Execute(obj_web0_class* i_this) { - // NONMATCHING -} -#endif /* 80D34B24-80D34B2C 0006E4 0008+00 1/0 0/0 0/0 .text daObj_Web0_IsDelete__FP14obj_web0_class */ static int daObj_Web0_IsDelete(obj_web0_class* i_this) { @@ -319,7 +190,7 @@ static int useHeapInit(fopAc_ac_c* i_this) { } J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Obj_web0", 8); - if (!_this->mpBrk->init(_this->mpModel->getModelData(), brk, TRUE, 0, FLOAT_LABEL(lit_3724), 0, + if (!_this->mpBrk->init(_this->mpModel->getModelData(), brk, TRUE, 0, 1.0f, 0, -1)) { return 0; } diff --git a/src/d/actor/d_a_obj_yel_bag.cpp b/src/d/actor/d_a_obj_yel_bag.cpp index 7539fa4c835..84c94fd1d45 100644 --- a/src/d/actor/d_a_obj_yel_bag.cpp +++ b/src/d/actor/d_a_obj_yel_bag.cpp @@ -4,217 +4,566 @@ */ #include "d/actor/d_a_obj_yel_bag.h" -#include "dol2asm.h" +#include "d/actor/d_a_npc.h" +#include "d/d_com_inf_game.h" +#include "Z2AudioLib/Z2Instances.h" +#include "SSystem/SComponent/c_lib.h" - - -// -// Forward References: -// - -extern "C" void __ct__12daObj_YBag_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12daObj_YBag_cFv(); -extern "C" void create__12daObj_YBag_cFv(); -extern "C" void CreateHeap__12daObj_YBag_cFv(); -extern "C" void Delete__12daObj_YBag_cFv(); -extern "C" void Execute__12daObj_YBag_cFv(); -extern "C" void Draw__12daObj_YBag_cFv(); -extern "C" void createHeapCallBack__12daObj_YBag_cFP10fopAc_ac_c(); -extern "C" bool getTypeFromParam__12daObj_YBag_cFv(); -extern "C" bool isDelete__12daObj_YBag_cFv(); -extern "C" void setEnvTevColor__12daObj_YBag_cFv(); -extern "C" void setRoomNo__12daObj_YBag_cFv(); -extern "C" void reset__12daObj_YBag_cFv(); -extern "C" void setMtx__12daObj_YBag_cFv(); -extern "C" void calcRollAngle__12daObj_YBag_cFsi(); -extern "C" void getWallAngle__12daObj_YBag_cFsPs(); -extern "C" void setSmokePrtcl__12daObj_YBag_cFv(); -extern "C" void setWaterPrtcl__12daObj_YBag_cFv(); -extern "C" void setHamonPrtcl__12daObj_YBag_cFv(); -extern "C" static void daObj_YBag_Create__FPv(); -extern "C" static void daObj_YBag_Delete__FPv(); -extern "C" static void daObj_YBag_Execute__FPv(); -extern "C" static void daObj_YBag_Draw__FPv(); -extern "C" static bool daObj_YBag_IsDelete__FPv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void func_80D3DB90(void* _this, int*); -extern "C" void __sinit_d_a_obj_yel_bag_cpp(); -extern "C" void __dt__18daObj_YBag_Param_cFv(); -extern "C" static void func_80D3DC68(); -extern "C" static void func_80D3DC70(); -extern "C" u8 const mCcDObjInfo__12daObj_YBag_c[48]; -extern "C" u8 const m__18daObj_YBag_Param_c[44]; -extern "C" extern char const* const d_a_obj_yel_bag__stringBase0; -extern "C" u8 mCcDCyl__12daObj_YBag_c[68]; - -// -// External References: -// - -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__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_SearchByID__FUiPP10fopAc_ac_c(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_calcSpeed__FP10fopAc_ac_c(); -extern "C" void fopAcM_posMove__FP10fopAc_ac_cPC4cXyz(); -extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci(); -extern "C" void fopAcM_effHamonSet__FPUlPC4cXyzff(); -extern "C" bool fopAcM_riverStream__FP4cXyzPsPff(); -extern "C" void fopAcM_carryOffRevise__FP10fopAc_ac_c(); -extern "C" void fopAcM_getWaterY__FPC4cXyzPf(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -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 dPath_GetPolyRoomPathVec__FRC13cBgS_PolyInfoP4cXyzPi(); -extern "C" void LineCross__4cBgSFP11cBgS_LinChk(); -extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo(); -extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -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 Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -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 Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void daNpcF_getGroundAngle__FP13cBgS_PolyInfos(); -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 __mi__4cXyzCFRC3Vec(); -extern "C" void normalizeZP__4cXyzFv(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndFX__Ff(); -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__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void cLib_chaseAngleS__FPsss(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" u8 const mCcDObjData__8daNpcT_c[48]; -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 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D3DD6C-80D3DD6C 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D3DD6C = "yel_bag"; -#pragma pop - -/* 80D3DD74-80D3DD80 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80D3DD80-80D3DD94 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop +UNK_REL_DATA /* 80D3DD94-80D3DD9C 000020 0008+00 1/1 0/0 0/0 .data l_bmdGetParamList */ -SECTION_DATA static u8 l_bmdGetParamList[8] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +static int l_bmdGetParamList[2] = { + 3, 0, }; /* 80D3DD9C-80D3DDA8 000028 000C+00 1/0 0/0 0/0 .data l_loadRes_YBAG0 */ -SECTION_DATA static u8 l_loadRes_YBAG0[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_YBAG0[3] = { + 0, -1, -1, }; /* 80D3DDA8-80D3DDB0 -00001 0008+00 1/2 0/0 0/0 .data l_loadRes_list */ -SECTION_DATA static void* l_loadRes_list[2] = { - (void*)&l_loadRes_YBAG0, - (void*)&l_loadRes_YBAG0, +static int* l_loadRes_list[2] = { + l_loadRes_YBAG0, + l_loadRes_YBAG0, }; /* 80D3DDB0-80D3DDB4 -00001 0004+00 2/4 0/0 0/0 .data l_resNames */ -SECTION_DATA static void* l_resNames = (void*)&d_a_obj_yel_bag__stringBase0; +static char* l_resNames[] = {"yel_bag"}; /* 80D3DDB4-80D3DDF8 000040 0044+00 1/2 0/0 0/0 .data mCcDCyl__12daObj_YBag_c */ -SECTION_DATA u8 daObj_YBag_c::mCcDCyl[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +dCcD_SrcCyl daObj_YBag_c::mCcDCyl = { + daNpcT_c::mCcDObjData, + {{0.0f, 0.0f, 0.0f}, 0.0f, 0.0f} }; /* 80D3DDF8-80D3DE00 000084 0008+00 1/1 0/0 0/0 .data emttrId$4511 */ -SECTION_DATA static u8 emttrId[8] = { - 0x01, 0xB8, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0xBB, +static u16 emttrId[4] = { + 0x01B8, 0x01B9, 0x01BA, 0x01BB, }; +/* 80D3C0EC-80D3C200 0000EC 0114+00 1/1 0/0 0/0 .text __ct__12daObj_YBag_cFv */ +daObj_YBag_c::daObj_YBag_c() { +} + +/* 80D3C408-80D3C610 000408 0208+00 1/0 0/0 0/0 .text __dt__12daObj_YBag_cFv */ +daObj_YBag_c::~daObj_YBag_c() { + for (int i = 0; l_loadRes_list[mType][i] >= 0; i++) { + dComIfG_resDelete(&mPhases[i], l_resNames[l_loadRes_list[mType][i]]); + } +} + +/* 80D3DC8C-80D3DCBC 000000 0030+00 4/4 0/0 0/0 .rodata mCcDObjInfo__12daObj_YBag_c */ +const dCcD_SrcGObjInf daObj_YBag_c::mCcDObjInfo = { + {0, {{0, 0, 0}, {0, 0x00}, {0x79}}}, + {dCcD_SE_NONE, 0, 0, 0, 0}, + {dCcD_SE_NONE, 0, 0, 0, 0}, + {0}, +}; + +/* 80D3DCBC-80D3DCE8 000030 002C+00 0/3 0/0 0/0 .rodata m__18daObj_YBag_Param_c */ +f32 const daObj_YBag_Param_c::m[11] = { + 0.0f, -4.0f, 1.0f, 400.0f, 255.0f, 10.0f, 4.0f, 10.0f, + 41.0f, 32.0f, 3.0f, +}; + +/* 80D3C610-80D3C898 000610 0288+00 1/1 0/0 0/0 .text create__12daObj_YBag_cFv */ +int daObj_YBag_c::create() { + fopAcM_SetupActor(this, daObj_YBag_c); + mType = getTypeFromParam(); + int successfulLoads = 0; + int i = 0; + for (; l_loadRes_list[mType][i] >= 0; i++) { + int rv = dComIfG_resLoad(&mPhases[i], l_resNames[l_loadRes_list[mType][i]]); + if (rv == cPhs_ERROR_e || rv == cPhs_UNK3_e) { + return cPhs_ERROR_e; + } + if (rv == cPhs_COMPLEATE_e) { + successfulLoads++; + } + } + if (successfulLoads == i) { + if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0) == 0) { + return cPhs_ERROR_e; + } + if (isDelete()) { + return cPhs_ERROR_e; + } + fopAcM_SetMtx(this, mModel->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -300.0, -50.0f, -300.0, 300.0f, 450.0f, 300.0f); + mAcchCir.SetWall(daObj_YBag_Param_c::m[7], daObj_YBag_Param_c::m[6]); + mAcch.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(daObj_YBag_Param_c::m[4], 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mStts); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + field_0x9f0 = mAcch.GetGroundH(); + setEnvTevColor(); + setRoomNo(); + reset(); + Execute(); + return cPhs_COMPLEATE_e; + } + return cPhs_INIT_e; +} + +/* 80D3C898-80D3C93C 000898 00A4+00 1/1 0/0 0/0 .text CreateHeap__12daObj_YBag_cFv */ +int daObj_YBag_c::CreateHeap() { + J3DModelData* modelData = NULL; + if (l_bmdGetParamList[0] >= 0) { + modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNames[l_bmdGetParamList[1]], + l_bmdGetParamList[0]); + } + if (modelData != NULL) { + mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + } else { + mModel = NULL; + } + return mModel != NULL; +} + +/* 80D3C93C-80D3C970 00093C 0034+00 1/1 0/0 0/0 .text Delete__12daObj_YBag_cFv */ +int daObj_YBag_c::Delete() { + fopAcM_GetID(this); + this->~daObj_YBag_c(); + return 1; +} + +/* 80D3C970-80D3D32C 000970 09BC+00 2/2 0/0 0/0 .text Execute__12daObj_YBag_cFv */ +int daObj_YBag_c::Execute() { + int local_8c = fopAcM_checkCarryNow(this) != 0; + scale.set(daObj_YBag_Param_c::m[2], daObj_YBag_Param_c::m[2], daObj_YBag_Param_c::m[2]); + attention_info.flags = 0; + attention_info.distances[4] = 6; + mAcchCir.SetWallR(daObj_YBag_Param_c::m[7]); + mAcchCir.SetWallH(daObj_YBag_Param_c::m[6]); + gravity = daObj_YBag_Param_c::m[1]; + if (local_8c != 0) { + mAcch.ClrWallHit(); + mAcch.i_ClrGroundHit(); + mAcch.SetWallNone(); + mAcch.SetGrndNone(); + speed.setall(0.0f); + speedF = 0.0f; + gravity = 0.0f; + field_0x9dc.setall(0); + field_0xa31 = 0; + field_0xa32 = 0; + field_0xa33 = 0; + } else { + mAcch.ClrWallNone(); + mAcch.ClrGrndNone(); + if (field_0xa34 != 0 && cM3d_IsZero(speedF) == false) { + fopAcM_carryOffRevise(this); + s16 sVar11 = cM_deg2s(daObj_YBag_Param_c::m[9]); + speed.setall(0.0f); + speed.y = + daObj_YBag_Param_c::m[8] * cM_ssin(sVar11); + speedF = + daObj_YBag_Param_c::m[8] * cM_scos(sVar11); + field_0xa04 = 0x4000; + field_0xa33 = 1; + } else { + fopAcM_getWaterY(¤t.pos, &field_0x9f4); + if (field_0x9f4 != -1e9f && daObj_YBag_Param_c::m[10] < field_0x9f4 - field_0x9f0 && + current.pos.y <= field_0x9f4 && field_0xa32 == 0) + { + if (field_0xa33 != 0) { + if (speed.y < 0.0f) { + field_0x9fc = 3000.0f; + } + field_0xa33 = 0; + setWaterPrtcl(); + } + speed.y = 0.0f; + speedF *= 0.3f; + field_0xa31 = 0; + field_0xa32 = 1; + } + if (field_0xa32 != 0 && field_0xa31 == 0) { + if (speed.y < 0.0f) { + cLib_addCalc(&speed.y, 2.0f, 0.5f, 5.5f, 0.5f); + } else { + cLib_addCalc(&speed.y, 2.0f, 0.5f, 0.5f, 0.5f); + } + if (field_0x9f4 < + current.pos.y + daObj_YBag_Param_c::m[10]) + { + field_0x9dc.y = 0x100; + mAcch.i_ClrGroundHit(); + field_0xa31 = 1; + } + } + s16 local_96; + if (field_0xa31 != 0) { + if (mAcch.ChkGroundHit()) { + field_0xa31 = 0; + field_0xa32 = 0; + field_0x9dc.setall(0); + speedF = 0; + speed.setall(0.0f); + } else { + cXyz local_7c; + int local_90; + if (dPath_GetPolyRoomPathVec(mGndChk, &local_7c, &local_90) != 0) { + local_7c.normalizeZP(); + cLib_addCalcAngleS2(¤t.angle.y, cM_atan2s(local_7c.x, local_7c.z), 8, 0x400); + cLib_chaseAngleS(&field_0x9dc.y, (field_0x9dc.y < 0) ? -0x80 : 0x80, 0x10); + cLib_addCalc2(&speedF, + local_90 * 0.75f, + 0.25f, 1.0f); + } else { + cLib_chaseF(&speedF, 0.0f, 0.1f); + } + cLib_addCalc2(¤t.pos.y, field_0x9f4 - daObj_YBag_Param_c::m[10], 0.5f, + 2.0f); + speed.y = 0.0f; + setHamonPrtcl(); + gravity = 0; + if (field_0x9e4 == 0 && + mAcch.ChkWallHit() && + getWallAngle(current.angle.y, &local_96) != 0) + { + field_0x9e4 = 10; + s16 temp = current.angle.y - local_96; + current.angle.y += + (s16)(0x8000 - ((temp) << 1) + (s16)cM_rndFX(2000.0f)); + field_0x9dc.y = -field_0x9dc.y / 2; + speedF *= 0.3f; + } + } + } else { + if (field_0xa32 != 0) { + cLib_chaseF(&speedF, 0.0f, 0.3f); + gravity = 0; + } else { + if (mAcch.ChkWallHit() && + getWallAngle(current.angle.y, &local_96) != 0) + { + s16 temp = current.angle.y - local_96; + current.angle.y += + (s16)(0x8000 - ((temp) << 1) + (s16)cM_rndFX(1000.0f)); + speedF *= 0.5f; + } + if (mAcch.ChkGroundLanding()) { + if (field_0x9c4.y < -30.0f) { + if (field_0x9f4 != -1e9f && current.pos.y <= field_0x9f4) { + setWaterPrtcl(); + } else { + setSmokePrtcl(); + } + } + if (field_0xa33 != 0) { + field_0xa33 = 0; + } + speedF = 0; + speed.setall(0.0f); + } + } + } + if (field_0xa33 == 0) { + cLib_onBit(attention_info.flags, 0x10UL); + fopAcM_OnCarryType(this, fopAcM_CARRY_ITEM); + } + + } + } + field_0x9c4 = speed; + if (field_0xa32 != 0) { + f32 fVar1; + if (mStts.GetCCMoveP() != 0) { + fVar1 = 1200.0f; + } else { + fVar1 = 900.0f; + } + cLib_addCalc2(&field_0x9fc, fVar1, 0.05f, 100.0f); + } else { + cLib_addCalc2(&field_0x9fc, 0.0f, 0.25f, 100.0f); + } + shape_angle.x = field_0x9fc * cM_ssin(field_0xa00 * 1000); + shape_angle.z = field_0x9fc * cM_scos(field_0xa00 * 1000); + cLib_chaseAngleS(&field_0x9dc.y, 0, 10); + shape_angle.y += field_0x9dc.y; + field_0xa00++; + cLib_chaseF(&field_0x9ec, 0.0, 0.1f); + if (field_0xa31 != 0) { + if (field_0x9e8 == 0) { + f32 dVar15 = JMAFastSqrt( + mStts.GetCCMoveP()->x * mStts.GetCCMoveP()->x + mStts.GetCCMoveP()->z * mStts.GetCCMoveP()->z); + if (1.0f < dVar15) { + field_0xa08 = cM_atan2s(mStts.GetCCMoveP()->x, mStts.GetCCMoveP()->z); + field_0x9ec += dVar15 * 0.45f; + if (4.0f < field_0x9ec) { + field_0x9ec = 4.0f; + } + field_0x9dc.y = 0x200; + field_0x9e8 = 10; + } + } + } else { + field_0x9ec = 0; + } + field_0x9d0.x = (field_0x9ec * cM_ssin(field_0xa08)); + field_0x9d0.z = (field_0x9ec * cM_scos(field_0xa08)); + field_0x9d0.y = 0.0f; + if (local_8c == 0) { + fopAcM_calcSpeed(this); + speed += field_0x9d0; + fopAcM_posMove(this, mStts.GetCCMoveP()); + } + if (field_0xa31 != 0) { + fopAcM_riverStream(¤t.pos, &field_0xa06, &field_0x9f8, 0.5f); + } + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + field_0x9f0 = mAcch.GetGroundH(); + if (field_0x9f0 != -1e9f) { + field_0xa02 = daNpcF_getGroundAngle(&mGndChk, shape_angle.y); + setEnvTevColor(); + setRoomNo(); + } + attention_info.position = current.pos; + attention_info.position.y += daObj_YBag_Param_c::m[0]; + eyePos = current.pos; + setMtx(); + field_0xa04 = calcRollAngle(field_0xa04, 0x10000); + mCyl.ClrCoHit(); + mCyl.SetR(daObj_YBag_Param_c::m[7]); + mCyl.SetH(daObj_YBag_Param_c::m[5]); + mCyl.SetC(current.pos); + dComIfG_Ccsp()->Set(&mCyl); + field_0xa34 = local_8c != 0; + cLib_calcTimer(&field_0x9e4); + cLib_calcTimer(&field_0x9e8); + return 1; +} + +/* 80D3D32C-80D3D438 00132C 010C+00 1/1 0/0 0/0 .text Draw__12daObj_YBag_cFv */ +int daObj_YBag_c::Draw() { + g_env_light.settingTevStruct( 0, + ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI( + mModel, + &tevStr); + mDoExt_modelUpdateDL(mModel); + if (field_0x9f0 != -1e9f) { + fopAc_ac_c* grabActor = NULL; + s32 grabActorId = daPy_getPlayerActorClass()->getGrabActorID(); + fopAcM_SearchByID(grabActorId, &grabActor); + if (this == grabActor) { + model = mModel; + } else { + ; + mShadowId = dComIfGd_setShadow(mShadowId, 1, mModel, ¤t.pos, + daObj_YBag_Param_c::m[3], 20.0f, + current.pos.y, field_0x9f0, mGndChk, + &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + } + } + return 1; +} + +/* 80D3D438-80D3D458 001438 0020+00 1/1 0/0 0/0 .text + * createHeapCallBack__12daObj_YBag_cFP10fopAc_ac_c */ +int daObj_YBag_c::createHeapCallBack(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); +} + +/* 80D3D458-80D3D460 001458 0008+00 1/1 0/0 0/0 .text getTypeFromParam__12daObj_YBag_cFv + */ +int daObj_YBag_c::getTypeFromParam() { + return 0; +} + +/* 80D3D460-80D3D468 001460 0008+00 1/1 0/0 0/0 .text isDelete__12daObj_YBag_cFv */ +int daObj_YBag_c::isDelete() { + return 0; +} + +/* 80D3D468-80D3D4C4 001468 005C+00 2/2 0/0 0/0 .text setEnvTevColor__12daObj_YBag_cFv */ +void daObj_YBag_c::setEnvTevColor() { + tevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(mGndChk); + tevStr.mRoomNo = dComIfG_Bgsp().GetRoomId(mGndChk); +} + +/* 80D3D4C4-80D3D508 0014C4 0044+00 2/2 0/0 0/0 .text setRoomNo__12daObj_YBag_cFv */ +void daObj_YBag_c::setRoomNo() { + int roomNo = dComIfG_Bgsp().GetRoomId(mGndChk); + fopAcM_SetRoomNo(this, roomNo); + mStts.SetRoomId(roomNo); +} + +/* 80D3D508-80D3D5C8 001508 00C0+00 1/1 0/0 0/0 .text reset__12daObj_YBag_cFv */ +void daObj_YBag_c::reset() { + field_0x9c4.setall(0.0f); + field_0x9d0.setall(0.0f); + field_0x9dc.setall(0); + field_0x9e4 = 0; + field_0x9e8 = 0; + field_0x9ec = 0.0f; + field_0x9f0 = 0.0f; + field_0x9f4 = 0.0f; + field_0x9f8 = 0.0f; + field_0x9fc = 0.0f; + field_0xa00 = 0; + field_0xa02 = 0; + field_0xa04 = 0; + field_0xa06 = 0; + field_0xa08 = 0; + mShadowId = 0; + field_0xa10 = -1; + field_0xa14 = -1; + for (int i = 0; i < 4; i++) { + mWaterParticles[i] = -1; + } + for (int i = 0; i < 2; i++) { + field_0xa28[i] = -1; + } + field_0xa31 = 0; + field_0xa32 = 0; + field_0xa33 = 0; + field_0xa34 = 0; +} + +/* 80D3D5C8-80D3D69C 0015C8 00D4+00 1/1 0/0 0/0 .text setMtx__12daObj_YBag_cFv */ +void daObj_YBag_c::setMtx() { + s16 angleDiff = current.angle.y - shape_angle.y; + s16 dVar5 = field_0xa04 * cM_scos(angleDiff); + s16 dVar6 = field_0xa04 * cM_ssin(angleDiff); + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::YrotM(dVar5); + mDoMtx_stack_c::scaleM(scale); + mModel->setBaseTRMtx(mDoMtx_stack_c::get()); +} + +/* 80D3D69C-80D3D73C 00169C 00A0+00 1/1 0/0 0/0 .text calcRollAngle__12daObj_YBag_cFsi */ +s16 daObj_YBag_c::calcRollAngle(s16 param_1, int param_2) { + if (param_1 != 0) { + int rv; + int diff = param_2 - (u16)param_1; + if (abs(diff) > 4) { + if ((int)diff / 4 > 0x800) { + rv = (u16)param_1 + 0x800; + } else { + if (diff / 4 < -0x800) { + rv = (u16)param_1 - 0x800; + } else { + rv = (u16)param_1 + (s32)diff / 4; + } + } + } else { + rv = param_2; + } + return rv; + } + return 0; +} + +/* 80D3D73C-80D3D8CC 00173C 0190+00 1/1 0/0 0/0 .text getWallAngle__12daObj_YBag_cFsPs */ +int daObj_YBag_c::getWallAngle(s16 param_1, s16* param_2) { + cXyz cStack_50; + cXyz acStack_40[2]; + cXyz local_5c; + mDoMtx_stack_c::YrotS(param_1); + local_5c.set(0.0f, 0.0f, -50.0f); + mDoMtx_stack_c::multVec(&local_5c, &cStack_50); + cStack_50 += current.pos; + local_5c.set(5.0f, 0.0f, 200.0f); + for (int i = 0; i < 2; i++) { + mDoMtx_stack_c::multVec(&local_5c, &acStack_40[i]); + local_5c.x = -1.0f * local_5c.x; + acStack_40[i] += cStack_50; + mLinChk.Set(&cStack_50, &acStack_40[i], this); + if (dComIfG_Bgsp().LineCross(&mLinChk)) { + acStack_40[i] = mLinChk.i_GetCross(); + } else { + return 0; + } + } + local_5c = acStack_40[1] - acStack_40[0]; + *param_2 = cM_atan2s(local_5c.x, local_5c.z) + 0x4000; + return 1; +} + +/* 80D3D8CC-80D3D948 0018CC 007C+00 1/1 0/0 0/0 .text setSmokePrtcl__12daObj_YBag_cFv */ +void daObj_YBag_c::setSmokePrtcl() { + fopAcM_effSmokeSet1(&field_0xa10, &field_0xa14, ¤t.pos, NULL, 0.4f, &tevStr, 1); + dComIfGp_particle_levelEmitterOnEventMove(field_0xa10); + dComIfGp_particle_levelEmitterOnEventMove(field_0xa14); +} + +UNK_BSS(1109); +UNK_BSS(1107); +UNK_BSS(1105); +UNK_BSS(1104); +UNK_BSS(1099); +UNK_BSS(1097); +UNK_BSS(1095); +UNK_BSS(1094); +UNK_BSS(1057); +UNK_BSS(1055); +UNK_BSS(1053); +UNK_BSS(1052); +UNK_BSS(1014); +UNK_BSS(1012); +UNK_BSS(1010); +UNK_BSS(1009); + +/* 80D3DF1C-80D3DF20 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daObj_YBag_Param_c l_HIO; + +/* 80D3D948-80D3DA70 001948 0128+00 1/1 0/0 0/0 .text setWaterPrtcl__12daObj_YBag_cFv */ +void daObj_YBag_c::setWaterPrtcl() { + static const cXyz scl(0.4f, 0.4f, 0.4f); + + cXyz acStack_28(current.pos.x, field_0x9f4, current.pos.z); + for (int i = 0; i < 4; i++) { + mWaterParticles[i] = dComIfGp_particle_set(mWaterParticles[i], emttrId[i], &acStack_28, &tevStr, + NULL, &scl, 0xff, 0, -1, NULL, NULL, NULL); + dComIfGp_particle_levelEmitterOnEventMove(mWaterParticles[i]); + } +} + +/* 80D3DA70-80D3DAC0 001A70 0050+00 1/1 0/0 0/0 .text setHamonPrtcl__12daObj_YBag_cFv */ +void daObj_YBag_c::setHamonPrtcl() { + cXyz cStack_18(current.pos.x, field_0x9f4, current.pos.z); + fopAcM_effHamonSet(field_0xa28, &cStack_18, 0.7f, 0.05f); +} + +/* 80D3DAC0-80D3DAE0 001AC0 0020+00 1/0 0/0 0/0 .text daObj_YBag_Create__FPv */ +static int daObj_YBag_Create(void* i_this) { + return static_cast(i_this)->create(); +} + +/* 80D3DAE0-80D3DB00 001AE0 0020+00 1/0 0/0 0/0 .text daObj_YBag_Delete__FPv */ +static int daObj_YBag_Delete(void* i_this) { + return static_cast(i_this)->Delete(); +} + +/* 80D3DB00-80D3DB20 001B00 0020+00 1/0 0/0 0/0 .text daObj_YBag_Execute__FPv */ +static int daObj_YBag_Execute(void* i_this) { + return static_cast(i_this)->Execute(); +} + +/* 80D3DB20-80D3DB40 001B20 0020+00 1/0 0/0 0/0 .text daObj_YBag_Draw__FPv */ +static int daObj_YBag_Draw(void* i_this) { + return static_cast(i_this)->Draw(); +} + +/* 80D3DB40-80D3DB48 001B40 0008+00 1/0 0/0 0/0 .text daObj_YBag_IsDelete__FPv */ +static int daObj_YBag_IsDelete(void* i_this) { + return 1; +} + /* 80D3DE00-80D3DE20 -00001 0020+00 1/0 0/0 0/0 .data daObj_YBag_MethodTable */ static actor_method_class daObj_YBag_MethodTable = { - (process_method_func)daObj_YBag_Create__FPv, - (process_method_func)daObj_YBag_Delete__FPv, - (process_method_func)daObj_YBag_Execute__FPv, - (process_method_func)daObj_YBag_IsDelete__FPv, - (process_method_func)daObj_YBag_Draw__FPv, + (process_method_func)daObj_YBag_Create, + (process_method_func)daObj_YBag_Delete, + (process_method_func)daObj_YBag_Execute, + (process_method_func)daObj_YBag_IsDelete, + (process_method_func)daObj_YBag_Draw, }; /* 80D3DE20-80D3DE50 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_YBAG */ @@ -235,783 +584,6 @@ extern actor_process_profile_definition g_profile_OBJ_YBAG = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80D3DE50-80D3DE5C 0000DC 000C+00 2/2 0/0 0/0 .data __vt__12daObj_YBag_c */ -SECTION_DATA extern void* __vt__12daObj_YBag_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daObj_YBag_cFv, -}; - -/* 80D3DE5C-80D3DE68 0000E8 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, -}; - -/* 80D3DE68-80D3DE74 0000F4 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, -}; - -/* 80D3DE74-80D3DE80 000100 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, -}; - -/* 80D3DE80-80D3DE8C 00010C 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, -}; - -/* 80D3DE8C-80D3DE98 000118 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, -}; - -/* 80D3DE98-80D3DEBC 000124 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_80D3DC70, - (void*)NULL, - (void*)NULL, - (void*)func_80D3DC68, -}; - -/* 80D3C0EC-80D3C200 0000EC 0114+00 1/1 0/0 0/0 .text __ct__12daObj_YBag_cFv */ -daObj_YBag_c::daObj_YBag_c() { - // NONMATCHING -} - -/* 80D3C200-80D3C248 000200 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80D3C248-80D3C290 000248 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80D3C290-80D3C300 000290 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80D3C300-80D3C35C 000300 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D3C35C-80D3C398 00035C 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80D3C398-80D3C408 000398 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80D3C408-80D3C610 000408 0208+00 1/0 0/0 0/0 .text __dt__12daObj_YBag_cFv */ -daObj_YBag_c::~daObj_YBag_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DC8C-80D3DCBC 000000 0030+00 4/4 0/0 0/0 .rodata mCcDObjInfo__12daObj_YBag_c */ -SECTION_RODATA u8 const daObj_YBag_c::mCcDObjInfo[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D3DC8C, &daObj_YBag_c::mCcDObjInfo); - -/* 80D3DCBC-80D3DCE8 000030 002C+00 0/3 0/0 0/0 .rodata m__18daObj_YBag_Param_c */ -#pragma push -#pragma force_active on -SECTION_RODATA u8 const daObj_YBag_Param_c::m[44] = { - 0x00, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xC8, 0x00, - 0x00, 0x43, 0x7F, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x41, 0x20, - 0x00, 0x00, 0x42, 0x24, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D3DCBC, &daObj_YBag_Param_c::m); -#pragma pop - -/* 80D3DCE8-80D3DCEC 00005C 0004+00 0/1 0/0 0/0 .rodata @4021 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4021 = -300.0f; -COMPILER_STRIP_GATE(0x80D3DCE8, &lit_4021); -#pragma pop - -/* 80D3DCEC-80D3DCF0 000060 0004+00 0/2 0/0 0/0 .rodata @4022 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4022 = -50.0f; -COMPILER_STRIP_GATE(0x80D3DCEC, &lit_4022); -#pragma pop - -/* 80D3DCF0-80D3DCF4 000064 0004+00 0/1 0/0 0/0 .rodata @4023 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4023 = 300.0f; -COMPILER_STRIP_GATE(0x80D3DCF0, &lit_4023); -#pragma pop - -/* 80D3DCF4-80D3DCF8 000068 0004+00 0/1 0/0 0/0 .rodata @4024 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4024 = 450.0f; -COMPILER_STRIP_GATE(0x80D3DCF4, &lit_4024); -#pragma pop - -/* 80D3C610-80D3C898 000610 0288+00 1/1 0/0 0/0 .text create__12daObj_YBag_cFv */ -void daObj_YBag_c::create() { - // NONMATCHING -} - -/* 80D3C898-80D3C93C 000898 00A4+00 1/1 0/0 0/0 .text CreateHeap__12daObj_YBag_cFv */ -void daObj_YBag_c::CreateHeap() { - // NONMATCHING -} - -/* 80D3C93C-80D3C970 00093C 0034+00 1/1 0/0 0/0 .text Delete__12daObj_YBag_cFv */ -void daObj_YBag_c::Delete() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DCF8-80D3DCFC 00006C 0004+00 1/3 0/0 0/0 .rodata @4312 */ -SECTION_RODATA static u8 const lit_4312[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D3DCF8, &lit_4312); - -/* 80D3DCFC-80D3DD00 000070 0004+00 0/1 0/0 0/0 .rodata @4313 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4313 = 0x43360B61; -COMPILER_STRIP_GATE(0x80D3DCFC, &lit_4313); -#pragma pop - -/* 80D3DD00-80D3DD04 000074 0004+00 0/2 0/0 0/0 .rodata @4314 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4314 = -1000000000.0f; -COMPILER_STRIP_GATE(0x80D3DD00, &lit_4314); -#pragma pop - -/* 80D3DD04-80D3DD08 000078 0004+00 0/1 0/0 0/0 .rodata @4315 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4315 = 3000.0f; -COMPILER_STRIP_GATE(0x80D3DD04, &lit_4315); -#pragma pop - -/* 80D3DD08-80D3DD0C 00007C 0004+00 0/1 0/0 0/0 .rodata @4316 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4316 = 3.0f / 10.0f; -COMPILER_STRIP_GATE(0x80D3DD08, &lit_4316); -#pragma pop - -/* 80D3DD0C-80D3DD10 000080 0004+00 0/1 0/0 0/0 .rodata @4317 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4317 = 2.0f; -COMPILER_STRIP_GATE(0x80D3DD0C, &lit_4317); -#pragma pop - -/* 80D3DD10-80D3DD14 000084 0004+00 0/1 0/0 0/0 .rodata @4318 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4318 = 0.5f; -COMPILER_STRIP_GATE(0x80D3DD10, &lit_4318); -#pragma pop - -/* 80D3DD14-80D3DD18 000088 0004+00 0/1 0/0 0/0 .rodata @4319 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4319 = 5.5f; -COMPILER_STRIP_GATE(0x80D3DD14, &lit_4319); -#pragma pop - -/* 80D3DD18-80D3DD1C 00008C 0004+00 0/1 0/0 0/0 .rodata @4320 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4320 = 0.75f; -COMPILER_STRIP_GATE(0x80D3DD18, &lit_4320); -#pragma pop - -/* 80D3DD1C-80D3DD20 000090 0004+00 0/1 0/0 0/0 .rodata @4321 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4321 = 0.25f; -COMPILER_STRIP_GATE(0x80D3DD1C, &lit_4321); -#pragma pop - -/* 80D3DD20-80D3DD24 000094 0004+00 1/3 0/0 0/0 .rodata @4322 */ -SECTION_RODATA static f32 const lit_4322 = 1.0f; -COMPILER_STRIP_GATE(0x80D3DD20, &lit_4322); - -/* 80D3DD24-80D3DD28 000098 0004+00 0/1 0/0 0/0 .rodata @4323 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4323 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80D3DD24, &lit_4323); -#pragma pop - -/* 80D3DD28-80D3DD2C 00009C 0004+00 0/1 0/0 0/0 .rodata @4324 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4324 = 2000.0f; -COMPILER_STRIP_GATE(0x80D3DD28, &lit_4324); -#pragma pop - -/* 80D3DD2C-80D3DD30 0000A0 0004+00 0/1 0/0 0/0 .rodata @4325 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4325 = 1000.0f; -COMPILER_STRIP_GATE(0x80D3DD2C, &lit_4325); -#pragma pop - -/* 80D3DD30-80D3DD34 0000A4 0004+00 0/1 0/0 0/0 .rodata @4326 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4326 = -30.0f; -COMPILER_STRIP_GATE(0x80D3DD30, &lit_4326); -#pragma pop - -/* 80D3DD34-80D3DD38 0000A8 0004+00 0/1 0/0 0/0 .rodata @4327 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4327 = 1200.0f; -COMPILER_STRIP_GATE(0x80D3DD34, &lit_4327); -#pragma pop - -/* 80D3DD38-80D3DD3C 0000AC 0004+00 0/1 0/0 0/0 .rodata @4328 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4328 = 900.0f; -COMPILER_STRIP_GATE(0x80D3DD38, &lit_4328); -#pragma pop - -/* 80D3DD3C-80D3DD40 0000B0 0004+00 1/2 0/0 0/0 .rodata @4329 */ -SECTION_RODATA static f32 const lit_4329 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x80D3DD3C, &lit_4329); - -/* 80D3DD40-80D3DD44 0000B4 0004+00 0/1 0/0 0/0 .rodata @4330 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4330 = 100.0f; -COMPILER_STRIP_GATE(0x80D3DD40, &lit_4330); -#pragma pop - -/* 80D3DD44-80D3DD48 0000B8 0004+00 0/1 0/0 0/0 .rodata @4331 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4331 = 9.0f / 20.0f; -COMPILER_STRIP_GATE(0x80D3DD44, &lit_4331); -#pragma pop - -/* 80D3DD48-80D3DD4C 0000BC 0004+00 0/1 0/0 0/0 .rodata @4332 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4332 = 4.0f; -COMPILER_STRIP_GATE(0x80D3DD48, &lit_4332); -#pragma pop - -/* 80D3DD4C-80D3DD54 0000C0 0008+00 1/2 0/0 0/0 .rodata @4334 */ -SECTION_RODATA static u8 const lit_4334[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D3DD4C, &lit_4334); - -/* 80D3C970-80D3D32C 000970 09BC+00 2/2 0/0 0/0 .text Execute__12daObj_YBag_cFv */ -void daObj_YBag_c::Execute() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DD54-80D3DD58 0000C8 0004+00 0/1 0/0 0/0 .rodata @4351 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4351 = 20.0f; -COMPILER_STRIP_GATE(0x80D3DD54, &lit_4351); -#pragma pop - -/* 80D3D32C-80D3D438 00132C 010C+00 1/1 0/0 0/0 .text Draw__12daObj_YBag_cFv */ -void daObj_YBag_c::Draw() { - // NONMATCHING -} - -/* 80D3D438-80D3D458 001438 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__12daObj_YBag_cFP10fopAc_ac_c */ -void daObj_YBag_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80D3D458-80D3D460 001458 0008+00 1/1 0/0 0/0 .text getTypeFromParam__12daObj_YBag_cFv - */ -bool daObj_YBag_c::getTypeFromParam() { - return false; -} - -/* 80D3D460-80D3D468 001460 0008+00 1/1 0/0 0/0 .text isDelete__12daObj_YBag_cFv */ -bool daObj_YBag_c::isDelete() { - return false; -} - -/* 80D3D468-80D3D4C4 001468 005C+00 2/2 0/0 0/0 .text setEnvTevColor__12daObj_YBag_cFv */ -void daObj_YBag_c::setEnvTevColor() { - // NONMATCHING -} - -/* 80D3D4C4-80D3D508 0014C4 0044+00 2/2 0/0 0/0 .text setRoomNo__12daObj_YBag_cFv */ -void daObj_YBag_c::setRoomNo() { - // NONMATCHING -} - -/* 80D3D508-80D3D5C8 001508 00C0+00 1/1 0/0 0/0 .text reset__12daObj_YBag_cFv */ -void daObj_YBag_c::reset() { - // NONMATCHING -} - -/* 80D3D5C8-80D3D69C 0015C8 00D4+00 1/1 0/0 0/0 .text setMtx__12daObj_YBag_cFv */ -void daObj_YBag_c::setMtx() { - // NONMATCHING -} - -/* 80D3D69C-80D3D73C 00169C 00A0+00 1/1 0/0 0/0 .text calcRollAngle__12daObj_YBag_cFsi */ -void daObj_YBag_c::calcRollAngle(s16 param_0, int param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DD58-80D3DD5C 0000CC 0004+00 0/1 0/0 0/0 .rodata @4485 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4485 = 5.0f; -COMPILER_STRIP_GATE(0x80D3DD58, &lit_4485); -#pragma pop - -/* 80D3DD5C-80D3DD60 0000D0 0004+00 0/1 0/0 0/0 .rodata @4486 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4486 = 200.0f; -COMPILER_STRIP_GATE(0x80D3DD5C, &lit_4486); -#pragma pop - -/* 80D3DD60-80D3DD64 0000D4 0004+00 0/1 0/0 0/0 .rodata @4487 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4487 = -1.0f; -COMPILER_STRIP_GATE(0x80D3DD60, &lit_4487); -#pragma pop - -/* 80D3D73C-80D3D8CC 00173C 0190+00 1/1 0/0 0/0 .text getWallAngle__12daObj_YBag_cFsPs */ -void daObj_YBag_c::getWallAngle(s16 param_0, s16* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DD64-80D3DD68 0000D8 0004+00 2/2 0/0 0/0 .rodata @4503 */ -SECTION_RODATA static f32 const lit_4503 = 2.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D3DD64, &lit_4503); - -/* 80D3D8CC-80D3D948 0018CC 007C+00 1/1 0/0 0/0 .text setSmokePrtcl__12daObj_YBag_cFv */ -void daObj_YBag_c::setSmokePrtcl() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DED0-80D3DED4 000008 0001+03 1/1 0/0 0/0 .bss @1109 */ -static u8 lit_1109[1 + 3 /* padding */]; - -/* 80D3DED4-80D3DED8 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */ -#pragma push -#pragma force_active on -static u8 lit_1107[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DED8-80D3DEDC 000010 0001+03 0/0 0/0 0/0 .bss @1105 */ -#pragma push -#pragma force_active on -static u8 lit_1105[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEDC-80D3DEE0 000014 0001+03 0/0 0/0 0/0 .bss @1104 */ -#pragma push -#pragma force_active on -static u8 lit_1104[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEE0-80D3DEE4 000018 0001+03 0/0 0/0 0/0 .bss @1099 */ -#pragma push -#pragma force_active on -static u8 lit_1099[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEE4-80D3DEE8 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */ -#pragma push -#pragma force_active on -static u8 lit_1097[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEE8-80D3DEEC 000020 0001+03 0/0 0/0 0/0 .bss @1095 */ -#pragma push -#pragma force_active on -static u8 lit_1095[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEEC-80D3DEF0 000024 0001+03 0/0 0/0 0/0 .bss @1094 */ -#pragma push -#pragma force_active on -static u8 lit_1094[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEF0-80D3DEF4 000028 0001+03 0/0 0/0 0/0 .bss @1057 */ -#pragma push -#pragma force_active on -static u8 lit_1057[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEF4-80D3DEF8 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */ -#pragma push -#pragma force_active on -static u8 lit_1055[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEF8-80D3DEFC 000030 0001+03 0/0 0/0 0/0 .bss @1053 */ -#pragma push -#pragma force_active on -static u8 lit_1053[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DEFC-80D3DF00 000034 0001+03 0/0 0/0 0/0 .bss @1052 */ -#pragma push -#pragma force_active on -static u8 lit_1052[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DF00-80D3DF04 000038 0001+03 0/0 0/0 0/0 .bss @1014 */ -#pragma push -#pragma force_active on -static u8 lit_1014[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DF04-80D3DF08 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */ -#pragma push -#pragma force_active on -static u8 lit_1012[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DF08-80D3DF0C 000040 0001+03 0/0 0/0 0/0 .bss @1010 */ -#pragma push -#pragma force_active on -static u8 lit_1010[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DF0C-80D3DF10 000044 0001+03 0/0 0/0 0/0 .bss @1009 */ -#pragma push -#pragma force_active on -static u8 lit_1009[1 + 3 /* padding */]; -#pragma pop - -/* 80D3DF10-80D3DF1C 000048 000C+00 1/1 0/0 0/0 .bss @3802 */ -static u8 lit_3802[12]; - -/* 80D3DF1C-80D3DF20 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80D3DF20-80D3DF30 000058 000C+04 0/1 0/0 0/0 .bss @4508 */ -#pragma push -#pragma force_active on -static u8 lit_4508[12 + 4 /* padding */]; -#pragma pop - -/* 80D3DF30-80D3DF3C 000068 000C+00 0/1 0/0 0/0 .bss scl$4507 */ -#pragma push -#pragma force_active on -static u8 scl[12]; -#pragma pop - -/* 80D3D948-80D3DA70 001948 0128+00 1/1 0/0 0/0 .text setWaterPrtcl__12daObj_YBag_cFv */ -void daObj_YBag_c::setWaterPrtcl() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DD68-80D3DD6C 0000DC 0004+00 1/1 0/0 0/0 .rodata @4550 */ -SECTION_RODATA static f32 const lit_4550 = 7.0f / 10.0f; -COMPILER_STRIP_GATE(0x80D3DD68, &lit_4550); - -/* 80D3DA70-80D3DAC0 001A70 0050+00 1/1 0/0 0/0 .text setHamonPrtcl__12daObj_YBag_cFv */ -void daObj_YBag_c::setHamonPrtcl() { - // NONMATCHING -} - -/* 80D3DAC0-80D3DAE0 001AC0 0020+00 1/0 0/0 0/0 .text daObj_YBag_Create__FPv */ -static void daObj_YBag_Create(void* param_0) { - // NONMATCHING -} - -/* 80D3DAE0-80D3DB00 001AE0 0020+00 1/0 0/0 0/0 .text daObj_YBag_Delete__FPv */ -static void daObj_YBag_Delete(void* param_0) { - // NONMATCHING -} - -/* 80D3DB00-80D3DB20 001B00 0020+00 1/0 0/0 0/0 .text daObj_YBag_Execute__FPv */ -static void daObj_YBag_Execute(void* param_0) { - // NONMATCHING -} - -/* 80D3DB20-80D3DB40 001B20 0020+00 1/0 0/0 0/0 .text daObj_YBag_Draw__FPv */ -static void daObj_YBag_Draw(void* param_0) { - // NONMATCHING -} - -/* 80D3DB40-80D3DB48 001B40 0008+00 1/0 0/0 0/0 .text daObj_YBag_IsDelete__FPv */ -static bool daObj_YBag_IsDelete(void* param_0) { - return true; -} - -/* 80D3DB48-80D3DB90 001B48 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D3DB90-80D3DBAC 001B90 001C+00 1/1 0/0 0/0 .text cLib_calcTimer__FPi */ -extern "C" void func_80D3DB90(void* _this, int* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DEBC-80D3DEC8 000148 000C+00 2/2 0/0 0/0 .data __vt__18daObj_YBag_Param_c */ -SECTION_DATA extern void* __vt__18daObj_YBag_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daObj_YBag_Param_cFv, -}; - -/* 80D3DBAC-80D3DC20 001BAC 0074+00 0/0 1/0 0/0 .text __sinit_d_a_obj_yel_bag_cpp */ -void __sinit_d_a_obj_yel_bag_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80D3DBAC, __sinit_d_a_obj_yel_bag_cpp); -#pragma pop - -/* 80D3DC20-80D3DC68 001C20 0048+00 2/1 0/0 0/0 .text __dt__18daObj_YBag_Param_cFv */ -daObj_YBag_Param_c::~daObj_YBag_Param_c() { - // NONMATCHING -} - -/* 80D3DC68-80D3DC70 001C68 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80D3DC68() { - // NONMATCHING -} - -/* 80D3DC70-80D3DC78 001C70 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80D3DC70() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D3DF3C-80D3DF40 000074 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF3C[4]; -#pragma pop - -/* 80D3DF40-80D3DF44 000078 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF40[4]; -#pragma pop - -/* 80D3DF44-80D3DF48 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF44[4]; -#pragma pop - -/* 80D3DF48-80D3DF4C 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF48[4]; -#pragma pop - -/* 80D3DF4C-80D3DF50 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF4C[4]; -#pragma pop - -/* 80D3DF50-80D3DF54 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF50[4]; -#pragma pop - -/* 80D3DF54-80D3DF58 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF54[4]; -#pragma pop - -/* 80D3DF58-80D3DF5C 000090 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF58[4]; -#pragma pop - -/* 80D3DF5C-80D3DF60 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF5C[4]; -#pragma pop - -/* 80D3DF60-80D3DF64 000098 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF60[4]; -#pragma pop - -/* 80D3DF64-80D3DF68 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF64[4]; -#pragma pop - -/* 80D3DF68-80D3DF6C 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF68[4]; -#pragma pop - -/* 80D3DF6C-80D3DF70 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF6C[4]; -#pragma pop - -/* 80D3DF70-80D3DF74 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF70[4]; -#pragma pop - -/* 80D3DF74-80D3DF78 0000AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF74[4]; -#pragma pop - -/* 80D3DF78-80D3DF7C 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF78[4]; -#pragma pop - -/* 80D3DF7C-80D3DF80 0000B4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF7C[4]; -#pragma pop - -/* 80D3DF80-80D3DF84 0000B8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF80[4]; -#pragma pop - -/* 80D3DF84-80D3DF88 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF84[4]; -#pragma pop - -/* 80D3DF88-80D3DF8C 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF88[4]; -#pragma pop - -/* 80D3DF8C-80D3DF90 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF8C[4]; -#pragma pop - -/* 80D3DF90-80D3DF94 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF90[4]; -#pragma pop - -/* 80D3DF94-80D3DF98 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF94[4]; -#pragma pop - -/* 80D3DF98-80D3DF9C 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D3DF98[4]; -#pragma pop - -/* 80D3DF9C-80D3DFA0 0000D4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D3DF9C[4]; -#pragma pop +AUDIO_INSTANCES; /* 80D3DD6C-80D3DD6C 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */