dCcD_Linked template conversion

This commit is contained in:
elijah-thomas774
2026-09-24 14:51:16 -04:00
parent 83a06ced84
commit 93e4f12526
11 changed files with 57 additions and 73 deletions
+10 -10
View File
@@ -6,8 +6,8 @@ __destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:glob
__dt__7mVec3_cFv = .text:0x000000F0; // type:function size:0x40
dAcBlastboss_c_classInit__Fv = .text:0x00000130; // type:function size:0x39C
__dt__Q214dAcBlastboss_c10callback_cFv = .text:0x000004D0; // type:function size:0x58
__dt__15dCcD_Linked_CylFv = .text:0x00000530; // type:function size:0x90
__dt__15dCcD_Linked_SphFv = .text:0x000005C0; // type:function size:0x90
__dt__22dCcD_Linked<8dCcD_Cyl>Fv = .text:0x00000530; // type:function size:0x90
__dt__22dCcD_Linked<8dCcD_Sph>Fv = .text:0x000005C0; // type:function size:0x90
__dt__14dScnCallback_cFv = .text:0x00000650; // type:function size:0x40
__dt__27sFState_c<14dAcBlastboss_c>Fv = .text:0x00000690; // type:function size:0x58
__dt__30sFStateFct_c<14dAcBlastboss_c>Fv = .text:0x000006F0; // type:function size:0x6C
@@ -15,8 +15,8 @@ __dt__83sStateMgr_c<14dAcBlastboss_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sSt
__dt__53sFStateMgr_c<14dAcBlastboss_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000800; // type:function size:0xA4
__ct__7mVec3_cFv = .text:0x000008B0; // type:function size:0x4
__dt__26dSwordSwingEffectProcMgr_cFv = .text:0x000008C0; // type:function size:0x84
__ct__15dCcD_Linked_CpsFv = .text:0x00000950; // type:function size:0x58
__dt__15dCcD_Linked_CpsFv = .text:0x000009B0; // type:function size:0x90
__ct__22dCcD_Linked<8dCcD_Cps>Fv = .text:0x00000950; // type:function size:0x58
__dt__22dCcD_Linked<8dCcD_Cps>Fv = .text:0x000009B0; // type:function size:0x90
__dt__16dEnemySwordMdl_cFv = .text:0x00000A40; // type:function size:0xCC
__ct__17UnkLastBossCcSph2Fv = .text:0x00000B10; // type:function size:0xC0
__dt__17UnkLastBossCcSph2Fv = .text:0x00000BD0; // type:function size:0xDC
@@ -119,9 +119,9 @@ initializeState__29sFStateID_c<14dAcBlastboss_c>CFR14dAcBlastboss_c = .text:0x00
__sinit_\d_a_b_lastboss_cpp = .text:0x0000A7C0; // type:function size:0xA90 scope:local
__dt__29sFStateID_c<14dAcBlastboss_c>Fv = .text:0x0000B250; // type:function size:0x58
isSameName__29sFStateID_c<14dAcBlastboss_c>CFPCc = .text:0x0000B2B0; // type:function size:0x88
@272@__dt__15dCcD_Linked_CpsFv = .text:0x0000B340; // type:function size:0x8
@272@__dt__15dCcD_Linked_SphFv = .text:0x0000B350; // type:function size:0x8
@272@__dt__15dCcD_Linked_CylFv = .text:0x0000B360; // type:function size:0x8
@272@__dt__22dCcD_Linked<8dCcD_Cps>Fv = .text:0x0000B340; // type:function size:0x8
@272@__dt__22dCcD_Linked<8dCcD_Sph>Fv = .text:0x0000B350; // type:function size:0x8
@272@__dt__22dCcD_Linked<8dCcD_Cyl>Fv = .text:0x0000B360; // type:function size:0x8
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
@@ -361,11 +361,11 @@ __vt__53sFStateMgr_c<14dAcBlastboss_c,20sStateMethodUsr_FI_c> = .data:0x000005B0
__vt__83sStateMgr_c<14dAcBlastboss_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000005E0; // type:object size:0x30
__vt__30sFStateFct_c<14dAcBlastboss_c> = .data:0x00000610; // type:object size:0x14
__vt__27sFState_c<14dAcBlastboss_c> = .data:0x00000628; // type:object size:0x18
__vt__15dCcD_Linked_Cyl = .data:0x00000640; // type:object size:0x70
__vt__22dCcD_Linked<8dCcD_Cyl> = .data:0x00000640; // type:object size:0x70
__vt__Q214dAcBlastboss_c10callback_c = .data:0x000006B0; // type:object size:0x18
__vt__15dCcD_Linked_Sph = .data:0x000006C8; // type:object size:0x70
__vt__22dCcD_Linked<8dCcD_Sph> = .data:0x000006C8; // type:object size:0x70
__vt__16dEnemySwordMdl_c = .data:0x00000738; // type:object size:0xC
__vt__15dCcD_Linked_Cps = .data:0x00000748; // type:object size:0x70
__vt__22dCcD_Linked<8dCcD_Cps> = .data:0x00000748; // type:object size:0x70
__vt__26dSwordSwingEffectProcMgr_c = .data:0x000007B8; // type:object size:0xC
__vt__Q34nw4r3g3d15IScnObjCallback = .data:0x000007C8; // type:object size:0x20
lbl_143_data_7E8 = .data:0x000007E8; // type:object size:0x3E0
+3 -3
View File
@@ -6,7 +6,7 @@ __ct__11dShpProc1_cFv = .text:0x00000140; // type:function size:0x58
__dt__14dShpProcBase_cFv = .text:0x000001A0; // type:function size:0x58
__dt__11dShpProc1_cFv = .text:0x00000200; // type:function size:0x5C
__ct__18dAcNpcBeeSingleBeeFv = .text:0x00000260; // type:function size:0x68
__dt__15dCcD_Linked_SphFv = .text:0x000002D0; // type:function size:0x90
__dt__22dCcD_Linked<8dCcD_Sph>Fv = .text:0x000002D0; // type:function size:0x90
__dt__18dAcNpcBeeSingleBeeFv = .text:0x00000360; // type:function size:0x9C
createHeap__11dAcNpcBee_cFv = .text:0x00000400; // type:function size:0xD0
create__11dAcNpcBee_cFv = .text:0x000004D0; // type:function size:0x1DC
@@ -27,7 +27,7 @@ getObjectListEntry__11dAcEnBase_cFv = .text:0x000028A0; // type:function size:0x
__dt__11dAcNpcBee_cFv = .text:0x000028B0; // type:function size:0xC4
drawXlu__11dShpProc1_cFv = .text:0x00002980; // type:function size:0x4
drawOpa__11dShpProc1_cFv = .text:0x00002990; // type:function size:0x4
@272@__dt__15dCcD_Linked_SphFv = .text:0x000029A0; // type:function size:0x8
@272@__dt__22dCcD_Linked<8dCcD_Sph>Fv = .text:0x000029A0; // type:function size:0x8
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
lbl_14_rodata_0 = .rodata:0x00000000; // type:object size:0x4 data:float
@@ -92,7 +92,7 @@ lbl_14_data_90 = .data:0x00000090; // type:object size:0x4
lbl_14_data_94 = .data:0x00000094; // type:object size:0x4
lbl_14_data_98 = .data:0x00000098; // type:object size:0x4
__vt__11dAcNpcBee_c = .data:0x0000009C; // type:object size:0x8C
__vt__15dCcD_Linked_Sph = .data:0x00000128; // type:object size:0x70
__vt__22dCcD_Linked<8dCcD_Sph> = .data:0x00000128; // type:object size:0x70
__vt__11dShpProc1_c = .data:0x00000198; // type:object size:0x58
lbl_14_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
lbl_14_bss_C = .bss:0x0000000C; // type:object size:0xC align:4 data:float
+1 -1
View File
@@ -145,7 +145,7 @@ d/a/obj/d_a_obj_base.cpp:
.text start:0x8002DE40 end:0x8002F300 align:16
.data start:0x805015B8 end:0x80501638
d/a/e/d_a_e_base.cpp:
d/a/e/d_a_en_base.cpp:
.text start:0x8002F300 end:0x80030CB0 align:16
.ctors start:0x804DB664 end:0x804DB668
.data start:0x80501638 end:0x805016E0
+8 -8
View File
@@ -2116,10 +2116,10 @@ fn_800051630__13dAcObjRef_unkFv = .text:0x80051630; // type:function size:0x144
fn_80051780__13dAcObjRef_unkFRC8cCcD_Obj = .text:0x80051780; // type:function size:0x464
fn_80051BF0 = .text:0x80051BF0; // type:function size:0x8
postInit__19dColliderLinkedListFR8cCcD_Obj = .text:0x80051C00; // type:function size:0x4C
addCc__19dColliderLinkedListFR15dCcD_Linked_CylRC11dCcD_SrcCyl = .text:0x80051C50; // type:function size:0x5C
addCc__19dColliderLinkedListFR15dCcD_Linked_SphRC11dCcD_SrcSph = .text:0x80051CB0; // type:function size:0x5C
addCc__19dColliderLinkedListFR15dCcD_Linked_CpsRC11dCcD_SrcCps = .text:0x80051D10; // type:function size:0x5C
addCc__19dColliderLinkedListFR15dCcD_Linked_UnkRC11dCcD_SrcUnk = .text:0x80051D70; // type:function size:0x5C
addCc__19dColliderLinkedListFR22dCcD_Linked<8dCcD_Cyl>RC11dCcD_SrcCyl = .text:0x80051C50; // type:function size:0x5C
addCc__19dColliderLinkedListFR22dCcD_Linked<8dCcD_Sph>RC11dCcD_SrcSph = .text:0x80051CB0; // type:function size:0x5C
addCc__19dColliderLinkedListFR22dCcD_Linked<8dCcD_Cps>RC11dCcD_SrcCps = .text:0x80051D10; // type:function size:0x5C
addCc__19dColliderLinkedListFR22dCcD_Linked<8dCcD_Unk>RC11dCcD_SrcUnk = .text:0x80051D70; // type:function size:0x5C
foreachCc__19dColliderLinkedListCFPFP8cCcD_ObjPv_vPv = .text:0x80051DD0; // type:function size:0x64
foreachCc2__19dColliderLinkedListCFPFP8cCcD_ObjPv_vPv = .text:0x80051E40; // type:function size:0x64
Set__19dColliderLinkedListFP8cCcD_ObjPv = .text:0x80051EB0; // type:function size:0x34
@@ -14242,7 +14242,7 @@ hasCollectedAllTears__9dAcTbox_cFv = .text:0x80268680; // type:function size:0x1
getGroundHeight__9dAcTbox_cFPfRC7mVec3_c = .text:0x802686A0; // type:function size:0x50
isBelowGroundAtPos__9dAcTbox_cFfRC7mVec3_c = .text:0x802686F0; // type:function size:0x5C
__ct__9dAcTbox_cFv = .text:0x80268750; // type:function size:0x2EC
__dt__15dCcD_Linked_UnkFv = .text:0x80268A40; // type:function size:0x98
__dt__22dCcD_Linked<8dCcD_Unk>Fv = .text:0x80268A40; // type:function size:0x98
__dt__21sFState_c<9dAcTbox_c>Fv = .text:0x80268AE0; // type:function size:0x58
__dt__24sFStateFct_c<9dAcTbox_c>Fv = .text:0x80268B40; // type:function size:0x6C
__dt__77sStateMgr_c<9dAcTbox_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80268BB0; // type:function size:0xA0
@@ -14364,8 +14364,8 @@ initializeState__23sFStateID_c<9dAcTbox_c>CFR9dAcTbox_c = .text:0x8026E8D0; // t
__sinit_\d_a_obj_tbox_cpp = .text:0x8026E900; // type:function size:0xA7C scope:local
__dt__23sFStateID_c<9dAcTbox_c>Fv = .text:0x8026F380; // type:function size:0x58
isSameName__23sFStateID_c<9dAcTbox_c>CFPCc = .text:0x8026F3E0; // type:function size:0x88
@316@__dt__15dCcD_Linked_UnkFv = .text:0x8026F470; // type:function size:0x8
@272@__dt__15dCcD_Linked_UnkFv = .text:0x8026F480; // type:function size:0x8
@316@__dt__22dCcD_Linked<8dCcD_Unk>Fv = .text:0x8026F470; // type:function size:0x8
@272@__dt__22dCcD_Linked<8dCcD_Unk>Fv = .text:0x8026F480; // type:function size:0x8
AcTimeArea__ctor = .text:0x8026F490; // type:function size:0x1A8
fn_8026F640 = .text:0x8026F640; // type:function size:0x58
fn_8026F6A0 = .text:0x8026F6A0; // type:function size:0x6C
@@ -36414,7 +36414,7 @@ __vt__47sFStateMgr_c<9dAcTbox_c,20sStateMethodUsr_FI_c> = .data:0x80535540; // t
__vt__77sStateMgr_c<9dAcTbox_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80535570; // type:object size:0x30
__vt__24sFStateFct_c<9dAcTbox_c> = .data:0x805355A0; // type:object size:0x14
__vt__21sFState_c<9dAcTbox_c> = .data:0x805355B8; // type:object size:0x18
__vt__15dCcD_Linked_Unk = .data:0x805355D0; // type:object size:0x7C
__vt__22dCcD_Linked<8dCcD_Unk> = .data:0x805355D0; // type:object size:0x7C
lbl_8053564C = .data:0x8053564C; // type:object size:0x394
__vt__23sFStateID_c<9dAcTbox_c> = .data:0x805359E0; // type:object size:0x34
g_profile_TIME_AREA = .data:0x80535A18; // type:object size:0x10
+1 -1
View File
@@ -438,7 +438,7 @@ config.libs = [
Object(Matching, "toBeSorted/sound_info.cpp"),
Object(NonMatching, "d/a/d_a_base.cpp"),
Object(NonMatching, "d/a/obj/d_a_obj_base.cpp"),
Object(NonMatching, "d/a/e/d_a_e_base.cpp"),
Object(NonMatching, "d/a/e/d_a_en_base.cpp"),
Object(NonMatching, "d/a/npc/d_a_npc.cpp"),
Object(NonMatching, "toBeSorted/d_npc_common.cpp"),
Object(NonMatching, "d/a/npc/d_a_ordinary_npc.cpp"),
+7 -7
View File
@@ -26,7 +26,7 @@ struct UnkLastBossCcSph1 {
/* 0x008 */ mVec3_c field_0x008[5];
/* 0x044 */ mVec3_c field_0x044[5];
/* 0x080 */ mVec3_c field_0x080[5];
/* 0x0BC */ dCcD_Linked_Sph mCc;
/* 0x0BC */ dCcD_Linked<dCcD_Sph> mCc;
};
struct UnkLastBossCcSph2 {
@@ -41,7 +41,7 @@ struct UnkLastBossCcSph2 {
/* 0x014 */ mVec3_c field_0x014[10];
/* 0x08C */ mVec3_c field_0x08C[10];
/* 0x104 */ mVec3_c field_0x104[10];
/* 0x17C */ dCcD_Linked_Sph mCc;
/* 0x17C */ dCcD_Linked<dCcD_Sph> mCc;
};
class dAcBlastboss_c : public dAcEnBase_c {
@@ -321,11 +321,11 @@ private:
/* 0x0440 */ m3d::smdl_c mThunderMdl;
/* 0x045C */ m3d::anmMatClr_c mThunderAnmMatClr;
/* 0x0488 */ callback_c mMdlCallback;
/* 0x04C0 */ dCcD_Linked_Cyl mCc1;
/* 0x0620 */ dCcD_Linked_Cyl mCc2;
/* 0x0780 */ dCcD_Linked_Cyl mCc3;
/* 0x08E0 */ dCcD_Linked_Sph mCc4;
/* 0x0A40 */ dCcD_Linked_Sph mLightningCc;
/* 0x04C0 */ dCcD_Linked<dCcD_Cyl> mCc1;
/* 0x0620 */ dCcD_Linked<dCcD_Cyl> mCc2;
/* 0x0780 */ dCcD_Linked<dCcD_Cyl> mCc3;
/* 0x08E0 */ dCcD_Linked<dCcD_Sph> mCc4;
/* 0x0A40 */ dCcD_Linked<dCcD_Sph> mLightningCc;
/* 0x0BA0 */ dScnCallback_c mScnCallback;
/* 0x0BAC */ STATE_MGR_DECLARE(dAcBlastboss_c);
/* 0x0BE8 */ dColliderLinkedList mCcList;
+2 -2
View File
@@ -50,7 +50,7 @@ public:
/* 0x054 */ mVec3_c mTargetPos; // Either an absolute target or relative to the attacked actor
/* 0x060 */ mAng3_c mCrawlingRotation;
/* 0x066 */ mAng3_c mModelRotation;
/* 0x06C */ dCcD_Linked_Sph mCollider;
/* 0x06C */ dCcD_Linked<dCcD_Sph> mCollider;
};
class dAcNpcBee_c : public dAcEnBase_c {
@@ -74,7 +74,7 @@ private:
/* 0x0378 */ u8 mSwarmBeeCount;
/* 0x0379 */ u8 mRumbleTimer;
/* 0x037A */ u8 mSceneflag;
/* 0x037C */ s16 mFrameCounter; // used to only search for new targets every 16 frames
/* 0x037C */ s16 mFrameCounter; // used to only search for new targets every 16 frames
/* 0x0380 */ f32 mAttackActorDistFromHome;
/* 0x0384 */ u8 field_0x0384[4]; // unused
/* 0x0388 */ nw4r::g3d::ResFile mRes;
+2 -3
View File
@@ -24,7 +24,6 @@
#include "toBeSorted/dowsing_target.h"
#include "toBeSorted/stage_render_stuff.h"
class dAcTbox_c : public dAcObjBase_c {
public:
enum TboxVariant_e {
@@ -150,8 +149,8 @@ private:
/* 0x04D4 */ dShadowCircle_c mShadowCircle;
/* 0x04DC */ LIGHT_INFLUENCE mLightInfo;
/* 0x04F8 */ dBgW mBgWs[2];
/* 0x0918 */ dCcD_Linked_Unk mCcD1;
/* 0x0B30 */ dCcD_Linked_Unk mCcD2;
/* 0x0918 */ dCcD_Linked<dCcD_Unk> mCcD1;
/* 0x0B30 */ dCcD_Linked<dCcD_Unk> mCcD2;
/* 0x0D48 */ dColliderLinkedList field_0x0D48;
/* 0x0D54 */ dCcD_Unk mCcD3;
/* 0x0F5C */ dCcD_Cyl mCcD4;
+18 -32
View File
@@ -18,35 +18,11 @@ public:
/* 0x0C */ cListMg_c *mpList;
};
class dCcD_Linked_Unk : public dCcD_Unk {
template <typename T>
class dCcD_Linked : public T {
public:
dCcD_Linked_Unk() : mNode(this) {}
virtual ~dCcD_Linked_Unk() {
mNode.remove();
}
/* 0x210 */ LinkedColliderNode mNode;
};
class dCcD_Linked_Cps : public dCcD_Cps {
public:
dCcD_Linked_Cps() : mNode(this) {}
virtual ~dCcD_Linked_Cps() {
mNode.remove();
}
/* 0x170 */ LinkedColliderNode mNode;
};
class dCcD_Linked_Sph : public dCcD_Sph {
public:
dCcD_Linked_Sph() : mNode(this) {}
virtual ~dCcD_Linked_Sph() {
mNode.remove();
}
/* 0x150 */ LinkedColliderNode mNode;
};
class dCcD_Linked_Cyl : public dCcD_Cyl {
public:
dCcD_Linked_Cyl() : mNode(this) {}
virtual ~dCcD_Linked_Cyl() {
dCcD_Linked() : mNode(this) {}
virtual ~dCcD_Linked() {
mNode.remove();
}
/* 0x150 */ LinkedColliderNode mNode;
@@ -68,10 +44,10 @@ public:
virtual ~dColliderLinkedList();
void postInit(cCcD_Obj &ccD);
void addCc(dCcD_Linked_Cyl &ccD, const dCcD_SrcCyl &src);
void addCc(dCcD_Linked_Sph &ccD, const dCcD_SrcSph &src);
void addCc(dCcD_Linked_Cps &ccD, const dCcD_SrcCps &src);
void addCc(dCcD_Linked_Unk &ccD, const dCcD_SrcUnk &src);
void addCc(dCcD_Linked<dCcD_Cyl> &ccD, const dCcD_SrcCyl &src);
void addCc(dCcD_Linked<dCcD_Sph> &ccD, const dCcD_SrcSph &src);
void addCc(dCcD_Linked<dCcD_Cps> &ccD, const dCcD_SrcCps &src);
void addCc(dCcD_Linked<dCcD_Unk> &ccD, const dCcD_SrcUnk &src);
void SetStts(cCcD_Stts &stts);
void registerColliders();
@@ -89,6 +65,16 @@ public:
typedef bool (cCcD_Obj::*ccPtmf)();
cCcD_Obj *find(ccPtmf f) const;
cCcD_Obj *findAtHit() const {
return find(&cCcD_Obj::ChkAtHit);
}
cCcD_Obj *findTgHit() const {
return find(&cCcD_Obj::ChkTgHit);
}
cCcD_Obj *findCoHit() const {
return find(&cCcD_Obj::ChkCoHit);
}
void AtSet();
void ClrAt();
void TgSet();
+1 -1
View File
@@ -29,7 +29,7 @@ private:
/* 0x098 */ mVec3_c field_0x098;
/* 0x0A4 */ f32 field_0x0A4;
/* 0x0A8 */ f32 field_0x0A8;
/* 0x0AC */ dCcD_Linked_Cps mCcs[3];
/* 0x0AC */ dCcD_Linked<dCcD_Cps> mCcs[3];
public:
/* 0x52C */ dColliderLinkedList mCcList;
+4 -5
View File
@@ -5,7 +5,6 @@
#include "d/col/cc/d_cc_d.h"
#include "d/col/cc/d_cc_s.h"
void dColliderLinkedList::postInit(cCcD_Obj &ccD) {
if (ccD.ChkAtSet()) {
ccD.SetAt_0x40000000();
@@ -18,28 +17,28 @@ void dColliderLinkedList::postInit(cCcD_Obj &ccD) {
}
}
void dColliderLinkedList::addCc(dCcD_Linked_Cyl &ccD, const dCcD_SrcCyl &src) {
void dColliderLinkedList::addCc(dCcD_Linked<dCcD_Cyl> &ccD, const dCcD_SrcCyl &src) {
ccD.Set(src);
mList.append(&ccD.mNode);
ccD.mNode.mpList = &mList;
postInit(ccD);
}
void dColliderLinkedList::addCc(dCcD_Linked_Sph &ccD, const dCcD_SrcSph &src) {
void dColliderLinkedList::addCc(dCcD_Linked<dCcD_Sph> &ccD, const dCcD_SrcSph &src) {
ccD.Set(src);
mList.append(&ccD.mNode);
ccD.mNode.mpList = &mList;
postInit(ccD);
}
void dColliderLinkedList::addCc(dCcD_Linked_Cps &ccD, const dCcD_SrcCps &src) {
void dColliderLinkedList::addCc(dCcD_Linked<dCcD_Cps> &ccD, const dCcD_SrcCps &src) {
ccD.Set(src);
mList.append(&ccD.mNode);
ccD.mNode.mpList = &mList;
postInit(ccD);
}
void dColliderLinkedList::addCc(dCcD_Linked_Unk &ccD, const dCcD_SrcUnk &src) {
void dColliderLinkedList::addCc(dCcD_Linked<dCcD_Unk> &ccD, const dCcD_SrcUnk &src) {
ccD.Set(src);
mList.append(&ccD.mNode);
ccD.mNode.mpList = &mList;