d_a_obj_yel_bag OK (#2267)

* d_a_obj_web0 cleanup

* d_a_obj_yel_bag OK
This commit is contained in:
hatal175 2024-12-19 22:10:53 +02:00 committed by GitHub
parent ff5f31b844
commit e0ea8495f7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 619 additions and 1141 deletions

View File

@ -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<i>__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

View File

@ -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"),

View File

@ -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];

View File

@ -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];
};

View File

@ -15,7 +15,7 @@ public:
/* 0x00 cBgS_LinChk */;
/* 0x58 dBgS_Chk */;
};
}; // Size = 0x70
class dBgS_LinkLinChk : public dBgS_LinChk {
public:

View File

@ -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

View File

@ -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<dCcD_GObjInf*>(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<dCcD_GObjInf*>(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;
}

File diff suppressed because it is too large Load Diff