Rough dynamic collision setup (#24)

* Rough collider shape setup

* d_a_obj_toD3_stone_figure OK

* Cleanup

* Cleanup 2
This commit is contained in:
robojumper
2024-09-28 00:19:00 +02:00
committed by GitHub
parent 0f9ef3d33c
commit 3829ee6d48
44 changed files with 2215 additions and 390 deletions
@@ -17,3 +17,6 @@ REL/global_destructor_chain.c:
REL/d/a/obj/d_a_obj_spike.cpp:
.text start:0x000000F0 end:0x00000BF8
.ctors start:0x00000000 end:0x00000004
.rodata start:0x00000000 end:0x00000030
.data start:0x00000000 end:0x000001FC
.bss start:0x00000008 end:0x00000060
+48 -46
View File
@@ -3,53 +3,55 @@ _epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
__register_global_object = .text:0x00000070; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
fn_372_F0 = .text:0x000000F0; // type:function size:0xC8
fn_372_1C0 = .text:0x000001C0; // type:function size:0x58
fn_372_220 = .text:0x00000220; // type:function size:0x6C
fn_372_290 = .text:0x00000290; // type:function size:0xA0
fn_372_330 = .text:0x00000330; // type:function size:0xA4
fn_372_3E0 = .text:0x000003E0; // type:function size:0x80
fn_372_460 = .text:0x00000460; // type:function size:0x1C0
fn_372_620 = .text:0x00000620; // type:function size:0x10
fn_372_630 = .text:0x00000630; // type:function size:0x8
fn_372_640 = .text:0x00000640; // type:function size:0x5C
fn_372_6A0 = .text:0x000006A0; // type:function size:0x10
fn_372_6B0 = .text:0x000006B0; // type:function size:0x28
fn_372_6E0 = .text:0x000006E0; // type:function size:0x4
fn_372_6F0 = .text:0x000006F0; // type:function size:0x4
fn_372_700 = .text:0x00000700; // type:function size:0x4
fn_372_710 = .text:0x00000710; // type:function size:0xD8
fn_372_7F0 = .text:0x000007F0; // type:function size:0x10
fn_372_800 = .text:0x00000800; // type:function size:0x60
fn_372_860 = .text:0x00000860; // type:function size:0xC
fn_372_870 = .text:0x00000870; // type:function size:0x1C
fn_372_890 = .text:0x00000890; // type:function size:0x1C
fn_372_8B0 = .text:0x000008B0; // type:function size:0x1C
fn_372_8D0 = .text:0x000008D0; // type:function size:0x10
fn_372_8E0 = .text:0x000008E0; // type:function size:0x10
fn_372_8F0 = .text:0x000008F0; // type:function size:0x10
fn_372_900 = .text:0x00000900; // type:function size:0x10
fn_372_910 = .text:0x00000910; // type:function size:0x10
fn_372_920 = .text:0x00000920; // type:function size:0x10
fn_372_930 = .text:0x00000930; // type:function size:0x30
fn_372_960 = .text:0x00000960; // type:function size:0x30
fn_372_990 = .text:0x00000990; // type:function size:0x30
fn_372_9C0 = .text:0x000009C0; // type:function size:0x144
fn_372_B10 = .text:0x00000B10; // type:function size:0x58
fn_372_B70 = .text:0x00000B70; // type:function size:0x88
dAcOspike_c_classInit__Fv = .text:0x000000F0; // type:function size:0xC8
__dt__24sFState_c<11dAcOspike_c>Fv = .text:0x000001C0; // type:function size:0x58
__dt__27sFStateFct_c<11dAcOspike_c>Fv = .text:0x00000220; // type:function size:0x6C
__dt__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0
__dt__50sFStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4
createHeap__11dAcOspike_cFv = .text:0x000003E0; // type:function size:0x80
create__11dAcOspike_cFv = .text:0x00000460; // type:function size:0x1C0
changeState__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000620; // type:function size:0x10
doDelete__11dAcOspike_cFv = .text:0x00000630; // type:function size:0x8
actorExecute__11dAcOspike_cFv = .text:0x00000640; // type:function size:0x5C
executeState__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000006A0; // type:function size:0x10
draw__11dAcOspike_cFv = .text:0x000006B0; // type:function size:0x28
initializeState_Wait__11dAcOspike_cFv = .text:0x000006E0; // type:function size:0x4
executeState_Wait__11dAcOspike_cFv = .text:0x000006F0; // type:function size:0x4
finalizeState_Wait__11dAcOspike_cFv = .text:0x00000700; // type:function size:0x4
__dt__11dAcOspike_cFv = .text:0x00000710; // type:function size:0xD8
getStateID__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000007F0; // type:function size:0x10
build__27sFStateFct_c<11dAcOspike_c>FRC12sStateIDIf_c = .text:0x00000800; // type:function size:0x60
dispose__27sFStateFct_c<11dAcOspike_c>FRP10sStateIf_c = .text:0x00000860; // type:function size:0xC
initialize__24sFState_c<11dAcOspike_c>Fv = .text:0x00000870; // type:function size:0x1C
execute__24sFState_c<11dAcOspike_c>Fv = .text:0x00000890; // type:function size:0x1C
finalize__24sFState_c<11dAcOspike_c>Fv = .text:0x000008B0; // type:function size:0x1C
initializeState__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000008D0; // type:function size:0x10
finalizeState__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000008E0; // type:function size:0x10
refreshState__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000008F0; // type:function size:0x10
getState__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000900; // type:function size:0x10
getNewStateID__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000910; // type:function size:0x10
getOldStateID__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000920; // type:function size:0x10
finalizeState__26sFStateID_c<11dAcOspike_c>CFR11dAcOspike_c = .text:0x00000930; // type:function size:0x30
executeState__26sFStateID_c<11dAcOspike_c>CFR11dAcOspike_c = .text:0x00000960; // type:function size:0x30
initializeState__26sFStateID_c<11dAcOspike_c>CFR11dAcOspike_c = .text:0x00000990; // type:function size:0x30
__sinit_\d_a_obj_spike_cpp = .text:0x000009C0; // type:function size:0x144 scope:local
__dt__26sFStateID_c<11dAcOspike_c>Fv = .text:0x00000B10; // type:function size:0x58
isSameName__26sFStateID_c<11dAcOspike_c>CFPCc = .text:0x00000B70; // type:function size:0x88
_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
lbl_372_rodata_0 = .rodata:0x00000000; // type:object size:0x30 data:float
lbl_372_data_0 = .data:0x00000000; // type:object size:0x10 data:4byte
lbl_372_data_10 = .data:0x00000010; // type:object size:0x40
lbl_372_data_50 = .data:0x00000050; // type:object size:0xC
lbl_372_data_5C = .data:0x0000005C; // type:object size:0x1C
lbl_372_data_78 = .data:0x00000078; // type:object size:0x80
lbl_372_data_F8 = .data:0x000000F8; // type:object size:0x30
lbl_372_data_128 = .data:0x00000128; // type:object size:0x30
lbl_372_data_158 = .data:0x00000158; // type:object size:0x18
lbl_372_data_170 = .data:0x00000170; // type:object size:0x58
lbl_372_data_1C8 = .data:0x000001C8; // type:object size:0x34
lbl_372_rodata_0 = .rodata:0x00000000; // type:object size:0x30 scope:local data:float
g_profile_OBJ_SPIKE = .data:0x00000000; // type:object size:0x10 data:4byte
sCcSrc__11dAcOspike_c = .data:0x00000010; // type:object size:0x40
lbl_372_data_50 = .data:0x00000050; // type:object size:0xC scope:local
lbl_372_data_5C = .data:0x0000005C; // type:object size:0x1C scope:local
__vt__11dAcOspike_c = .data:0x00000078; // type:object size:0x80
__vt__50sFStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c> = .data:0x000000F8; // type:object size:0x30
__vt__80sStateMgr_c<11dAcOspike_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000128; // type:object size:0x30
__vt__27sFStateFct_c<11dAcOspike_c> = .data:0x00000158; // type:object size:0x14
__vt__24sFState_c<11dAcOspike_c> = .data:0x00000170; // type:object size:0x18
__vt__26sFStateID_c<11dAcOspike_c> = .data:0x000001C8; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_372_bss_8 = .bss:0x00000008; // type:object size:0x58 data:4byte
sVec1__11dAcOspike_c = .bss:0x00000008; // type:object size:0xC data:4byte
sVec2__11dAcOspike_c = .bss:0x00000014; // type:object size:0xC data:4byte
StateID_Wait__11dAcOspike_c = .bss:0x00000030; // type:object size:0x30 data:4byte
@@ -17,3 +17,6 @@ REL/global_destructor_chain.c:
REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp:
.text start:0x000000F0 end:0x00000F08
.ctors start:0x00000000 end:0x00000004
.rodata start:0x00000000 end:0x00000020
.data start:0x00000000 end:0x00000278
.bss start:0x00000008 end:0x00000088
@@ -3,63 +3,68 @@ _epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
__register_global_object = .text:0x00000070; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
fn_609_F0 = .text:0x000000F0; // type:function size:0xC8
fn_609_1C0 = .text:0x000001C0; // type:function size:0x58
fn_609_220 = .text:0x00000220; // type:function size:0x6C
fn_609_290 = .text:0x00000290; // type:function size:0xA0
fn_609_330 = .text:0x00000330; // type:function size:0xA4
fn_609_3E0 = .text:0x000003E0; // type:function size:0x88
fn_609_470 = .text:0x00000470; // type:function size:0x1C4
fn_609_640 = .text:0x00000640; // type:function size:0x10
fn_609_650 = .text:0x00000650; // type:function size:0x8
fn_609_660 = .text:0x00000660; // type:function size:0x4C
fn_609_6B0 = .text:0x000006B0; // type:function size:0x10
fn_609_6C0 = .text:0x000006C0; // type:function size:0x3C
fn_609_700 = .text:0x00000700; // type:function size:0x58
fn_609_760 = .text:0x00000760; // type:function size:0xDC
fn_609_840 = .text:0x00000840; // type:function size:0x4
fn_609_850 = .text:0x00000850; // type:function size:0x4
fn_609_860 = .text:0x00000860; // type:function size:0x4
fn_609_870 = .text:0x00000870; // type:function size:0x4
fn_609_880 = .text:0x00000880; // type:function size:0x20
fn_609_8A0 = .text:0x000008A0; // type:function size:0x48
fn_609_8F0 = .text:0x000008F0; // type:function size:0x70
fn_609_960 = .text:0x00000960; // type:function size:0x30
fn_609_990 = .text:0x00000990; // type:function size:0xD8
fn_609_A70 = .text:0x00000A70; // type:function size:0x10
fn_609_A80 = .text:0x00000A80; // type:function size:0x60
fn_609_AE0 = .text:0x00000AE0; // type:function size:0xC
fn_609_AF0 = .text:0x00000AF0; // type:function size:0x1C
fn_609_B10 = .text:0x00000B10; // type:function size:0x1C
fn_609_B30 = .text:0x00000B30; // type:function size:0x1C
fn_609_B50 = .text:0x00000B50; // type:function size:0x10
fn_609_B60 = .text:0x00000B60; // type:function size:0x10
fn_609_B70 = .text:0x00000B70; // type:function size:0x10
fn_609_B80 = .text:0x00000B80; // type:function size:0x10
fn_609_B90 = .text:0x00000B90; // type:function size:0x10
fn_609_BA0 = .text:0x00000BA0; // type:function size:0x10
fn_609_BB0 = .text:0x00000BB0; // type:function size:0x30
fn_609_BE0 = .text:0x00000BE0; // type:function size:0x30
fn_609_C10 = .text:0x00000C10; // type:function size:0x30
fn_609_C40 = .text:0x00000C40; // type:function size:0x1D4
fn_609_E20 = .text:0x00000E20; // type:function size:0x58
fn_609_E80 = .text:0x00000E80; // type:function size:0x88
dAcOtoD3StoneFigure_c_classInit__Fv = .text:0x000000F0; // type:function size:0xC8
__dt__34sFState_c<21dAcOtoD3StoneFigure_c>Fv = .text:0x000001C0; // type:function size:0x58
__dt__37sFStateFct_c<21dAcOtoD3StoneFigure_c>Fv = .text:0x00000220; // type:function size:0x6C
__dt__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0
__dt__60sFStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4
createHeap__21dAcOtoD3StoneFigure_cFv = .text:0x000003E0; // type:function size:0x88
create__21dAcOtoD3StoneFigure_cFv = .text:0x00000470; // type:function size:0x1C4
changeState__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000640; // type:function size:0x10
doDelete__21dAcOtoD3StoneFigure_cFv = .text:0x00000650; // type:function size:0x8
actorExecute__21dAcOtoD3StoneFigure_cFv = .text:0x00000660; // type:function size:0x4C
executeState__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000006B0; // type:function size:0x10
draw__21dAcOtoD3StoneFigure_cFv = .text:0x000006C0; // type:function size:0x3C
initializeState_OneEye__21dAcOtoD3StoneFigure_cFv = .text:0x00000700; // type:function size:0x58
executeState_OneEye__21dAcOtoD3StoneFigure_cFv = .text:0x00000760; // type:function size:0xDC
finalizeState_OneEye__21dAcOtoD3StoneFigure_cFv = .text:0x00000840; // type:function size:0x4
initializeState_Eyes__21dAcOtoD3StoneFigure_cFv = .text:0x00000850; // type:function size:0x4
executeState_Eyes__21dAcOtoD3StoneFigure_cFv = .text:0x00000860; // type:function size:0x4
finalizeState_Eyes__21dAcOtoD3StoneFigure_cFv = .text:0x00000870; // type:function size:0x4
getModelName__21dAcOtoD3StoneFigure_cCFv = .text:0x00000880; // type:function size:0x20
isStoneOfTrialsPlaced__21dAcOtoD3StoneFigure_cCFv = .text:0x000008A0; // type:function size:0x48
doInteraction__21dAcOtoD3StoneFigure_cFl = .text:0x000008F0; // type:function size:0x70
hasStoneOfTrials__21dAcOtoD3StoneFigure_cCFv = .text:0x00000960; // type:function size:0x30
__dt__21dAcOtoD3StoneFigure_cFv = .text:0x00000990; // type:function size:0xD8
getStateID__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000A70; // type:function size:0x10
build__37sFStateFct_c<21dAcOtoD3StoneFigure_c>FRC12sStateIDIf_c = .text:0x00000A80; // type:function size:0x60
dispose__37sFStateFct_c<21dAcOtoD3StoneFigure_c>FRP10sStateIf_c = .text:0x00000AE0; // type:function size:0xC
initialize__34sFState_c<21dAcOtoD3StoneFigure_c>Fv = .text:0x00000AF0; // type:function size:0x1C
execute__34sFState_c<21dAcOtoD3StoneFigure_c>Fv = .text:0x00000B10; // type:function size:0x1C
finalize__34sFState_c<21dAcOtoD3StoneFigure_c>Fv = .text:0x00000B30; // type:function size:0x1C
initializeState__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000B50; // type:function size:0x10
finalizeState__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000B60; // type:function size:0x10
refreshState__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000B70; // type:function size:0x10
getState__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000B80; // type:function size:0x10
getNewStateID__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000B90; // type:function size:0x10
getOldStateID__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000BA0; // type:function size:0x10
finalizeState__36sFStateID_c<21dAcOtoD3StoneFigure_c>CFR21dAcOtoD3StoneFigure_c = .text:0x00000BB0; // type:function size:0x30
executeState__36sFStateID_c<21dAcOtoD3StoneFigure_c>CFR21dAcOtoD3StoneFigure_c = .text:0x00000BE0; // type:function size:0x30
initializeState__36sFStateID_c<21dAcOtoD3StoneFigure_c>CFR21dAcOtoD3StoneFigure_c = .text:0x00000C10; // type:function size:0x30
__sinit_\d_a_obj_toD3_stone_figure_cpp = .text:0x00000C40; // type:function size:0x1D4 scope:local
__dt__36sFStateID_c<21dAcOtoD3StoneFigure_c>Fv = .text:0x00000E20; // type:function size:0x58
isSameName__36sFStateID_c<21dAcOtoD3StoneFigure_c>CFPCc = .text:0x00000E80; // type:function size:0x88
_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
lbl_609_rodata_0 = .rodata:0x00000000; // type:object size:0x20 data:float
lbl_609_data_0 = .data:0x00000000; // type:object size:0x48 data:float
lbl_609_data_48 = .data:0x00000048; // type:object size:0x30
lbl_609_data_78 = .data:0x00000078; // type:object size:0xC data:string
lbl_609_data_84 = .data:0x00000084; // type:object size:0xC
lbl_609_data_90 = .data:0x00000090; // type:object size:0x10
lbl_609_data_A0 = .data:0x000000A0; // type:object size:0x80
lbl_609_data_120 = .data:0x00000120; // type:object size:0x30
lbl_609_data_150 = .data:0x00000150; // type:object size:0x30
lbl_609_data_180 = .data:0x00000180; // type:object size:0x18
lbl_609_data_198 = .data:0x00000198; // type:object size:0xAC
lbl_609_data_244 = .data:0x00000244; // type:object size:0x34
lbl_609_rodata_0 = .rodata:0x00000000; // type:object size:0x20 scope:local data:float
g_profile_OBJ_TOD3_STONE = .data:0x00000000; // type:object size:0x10 data:4byte
sRadius__21dAcOtoD3StoneFigure_c = .data:0x00000010; // type:object size:0x4 data:float
sHeight__21dAcOtoD3StoneFigure_c = .data:0x00000014; // type:object size:0x4 data:float
sCcSrc__21dAcOtoD3StoneFigure_c = .data:0x00000018; // type:object size:0x30
lbl_609_data_48 = .data:0x00000048; // type:object size:0xA scope:local data:string
lbl_609_data_54 = .data:0x00000054; // type:object size:0x23 scope:local data:string
lbl_609_data_78 = .data:0x00000078; // type:object size:0xC scope:local data:string
lbl_609_data_84 = .data:0x00000084; // type:object size:0xC scope:local data:string
lbl_609_data_90 = .data:0x00000090; // type:object size:0x10 scope:local data:string
__vt__21dAcOtoD3StoneFigure_c = .data:0x000000A0; // type:object size:0x80
__vt__60sFStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c> = .data:0x00000120; // type:object size:0x30
__vt__90sStateMgr_c<21dAcOtoD3StoneFigure_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000150; // type:object size:0x30
__vt__37sFStateFct_c<21dAcOtoD3StoneFigure_c> = .data:0x00000180; // type:object size:0x14
__vt__34sFState_c<21dAcOtoD3StoneFigure_c> = .data:0x00000198; // type:object size:0x18
__vt__36sFStateID_c<21dAcOtoD3StoneFigure_c> = .data:0x00000244; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_609_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte
lbl_609_bss_18 = .bss:0x00000018; // type:object size:0x40 data:4byte
lbl_609_bss_58 = .bss:0x00000058; // type:object size:0x30 data:4byte
lbl_609_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local data:4byte
StateID_OneEye__21dAcOtoD3StoneFigure_c = .bss:0x00000018; // type:object size:0x30 data:4byte
lbl_609_bss_48 = .bss:0x00000048; // type:object size:0x10 scope:local data:4byte
StateID_Eyes__21dAcOtoD3StoneFigure_c = .bss:0x00000058; // type:object size:0x30 data:4byte
@@ -11,3 +11,5 @@ REL/executor.c:
REL/d/a/obj/d_a_obj_triforce.cpp:
.text start:0x00000070 end:0x0000050C
.rodata start:0x00000000 end:0x00000028
.data start:0x00000000 end:0x000000E8
@@ -1,19 +1,19 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
fn_625_70 = .text:0x00000070; // type:function size:0xA0
fn_625_110 = .text:0x00000110; // type:function size:0xDC
fn_625_1F0 = .text:0x000001F0; // type:function size:0xBC
fn_625_2B0 = .text:0x000002B0; // type:function size:0x8
fn_625_2C0 = .text:0x000002C0; // type:function size:0x18C
fn_625_450 = .text:0x00000450; // type:function size:0x28
fn_625_480 = .text:0x00000480; // type:function size:0x8C
dAcOtriforce_c_classInit__Fv = .text:0x00000070; // type:function size:0xA0
createHeap__14dAcOtriforce_cFv = .text:0x00000110; // type:function size:0xDC
create__14dAcOtriforce_cFv = .text:0x000001F0; // type:function size:0xBC
doDelete__14dAcOtriforce_cFv = .text:0x000002B0; // type:function size:0x8
actorExecute__14dAcOtriforce_cFv = .text:0x000002C0; // type:function size:0x18C
draw__14dAcOtriforce_cFv = .text:0x00000450; // type:function size:0x28
__dt__14dAcOtriforce_cFv = .text:0x00000480; // type:function size:0x8C
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
lbl_625_rodata_0 = .rodata:0x00000000; // type:object size:0xC data:float
lbl_625_rodata_C = .rodata:0x0000000C; // type:object size:0x1C data:float
lbl_625_data_0 = .data:0x00000000; // type:object size:0x10
lbl_625_data_10 = .data:0x00000010; // type:object size:0x2C
lbl_625_data_3C = .data:0x0000003C; // type:object size:0xC
lbl_625_data_48 = .data:0x00000048; // type:object size:0x20
lbl_625_data_68 = .data:0x00000068; // type:object size:0x80
lbl_625_rodata_0 = .rodata:0x00000000; // type:object size:0xC scope:local data:float
lbl_625_rodata_C = .rodata:0x0000000C; // type:object size:0x1C scope:local data:float
g_profile_OBJ_TRIFORCE = .data:0x00000000; // type:object size:0x10
sCcSrc__14dAcOtriforce_c = .data:0x00000010; // type:object size:0x2C
lbl_625_data_3C = .data:0x0000003C; // type:object size:0xC scope:local
lbl_625_data_48 = .data:0x00000048; // type:object size:0x20 scope:local
__vt__14dAcOtriforce_c = .data:0x00000068; // type:object size:0x80
+25
View File
@@ -515,6 +515,31 @@ m/m_pad.cpp:
.sdata2 start:0x8057CDF8 end:0x8057CE00
.bss start:0x805CB0B8 end:0x805CB1F8
toBeSorted/cc/d_cc_d.cpp:
.text start:0x80328120 end:0x8032BC78
.ctors start:0x804DB8F8 end:0x804DB8FC
.rodata start:0x804F0AF0 end:0x804F0B80
.data start:0x805473D8 end:0x80547668
.sdata2 start:0x8057CF98 end:0x8057CFBC
.bss start:0x805D0128 end:0x805D0134
toBeSorted/cc/d_cc_unknown.cpp:
.text start:0x8032BEC0 end:0x8032BF00
.data start:0x80547668 end:0x80547678
toBeSorted/cc/d_cc_m3d.cpp:
.text start:0x8032BF00 end:0x80337B58
toBeSorted/cc/d_cc_m3d_g_cyl.cpp:
.text start:0x80338020 end:0x80338348
toBeSorted/cc/d_cc_m3d_g_sph.cpp:
.text start:0x80338680 end:0x803388D8
toBeSorted/cc/d_cc_shape_colliders.cpp:
.text start:0x80353B50 end:0x80354298
.data start:0x80548340 end:0x80548580
rvl/CX/cx.c:
.text start:0x803CEE90 end:0x803D0B20
+243 -243
View File
@@ -919,9 +919,9 @@ fn_80027490 = .text:0x80027490; // type:function size:0x40
fn_800274D0 = .text:0x800274D0; // type:function size:0x40
fn_80027510 = .text:0x80027510; // type:function size:0x4C
fn_80027560 = .text:0x80027560; // type:function size:0x5C
fn_800275C0 = .text:0x800275C0; // type:function size:0x44
__ct__13EffectsStructFv = .text:0x800275C0; // type:function size:0x44
fn_80027610 = .text:0x80027610; // type:function size:0x44
fn_80027660 = .text:0x80027660; // type:function size:0x78
__dt__13EffectsStructFv = .text:0x80027660; // type:function size:0x78
fn_800276E0 = .text:0x800276E0; // type:function size:0x84
fn_80027770 = .text:0x80027770; // type:function size:0xE8
fn_80027860 = .text:0x80027860; // type:function size:0xC8
@@ -2090,7 +2090,7 @@ preExecute__7dBase_cFv = .text:0x80050890; // type:function size:0x60
postExecute__7dBase_cFQ27fBase_c12MAIN_STATE_e = .text:0x800508F0; // type:function size:0x28
preDraw__7dBase_cFv = .text:0x80050920; // type:function size:0x60
resetFlags__7dBase_cFv = .text:0x80050980; // type:function size:0x14
isActorPlayer__7dBase_cFR7dBase_c = .text:0x800509A0; // type:function size:0x14
isActorPlayer__7dBase_cFv = .text:0x800509A0; // type:function size:0x14
loadAsyncCallback__7dBase_cFv = .text:0x800509C0; // type:function size:0x8
unloadCallback__7dBase_cFv = .text:0x800509D0; // type:function size:0x4
initLoader__7dBase_cFv = .text:0x800509E0; // type:function size:0x1C
@@ -3371,8 +3371,8 @@ fn_80096AB0 = .text:0x80096AB0; // type:function size:0x88
fn_80096B40 = .text:0x80096B40; // type:function size:0x80
fn_80096BC0 = .text:0x80096BC0; // type:function size:0x18
fn_80096BE0 = .text:0x80096BE0; // type:function size:0x20
fn_80096C00 = .text:0x80096C00; // type:function size:0x28
fn_80096C30 = .text:0x80096C30; // type:function size:0x28
addTarget__12dAttention_cFP9dAcBase_clffff = .text:0x80096C00; // type:function size:0x28
addTarget__12dAttention_cFP9dAcBase_clfff = .text:0x80096C30; // type:function size:0x28
fn_80096C60 = .text:0x80096C60; // type:function size:0x30
fn_80096C90 = .text:0x80096C90; // type:function size:0x34
fn_80096CD0 = .text:0x80096CD0; // type:function size:0x30
@@ -3562,7 +3562,7 @@ fn_8009EB10 = .text:0x8009EB10; // type:function size:0xC
fn_8009EB20 = .text:0x8009EB20; // type:function size:0x8
fn_8009EB30 = .text:0x8009EB30; // type:function size:0x36C
fn_8009EEA0 = .text:0x8009EEA0; // type:function size:0x53C
alsoSetAsCurrentEvent = .text:0x8009F3E0; // type:function size:0x470
alsoSetAsCurrentEvent__12EventManagerFP9dAcBase_cP5EventPv = .text:0x8009F3E0; // type:function size:0x470
fn_8009F850 = .text:0x8009F850; // type:function size:0x134
fn_8009F990 = .text:0x8009F990; // type:function size:0x80
fn_8009FA10 = .text:0x8009FA10; // type:function size:0x8
@@ -3570,7 +3570,7 @@ fn_8009FA20 = .text:0x8009FA20; // type:function size:0x1A0
fn_8009FBC0 = .text:0x8009FBC0; // type:function size:0x120
fn_8009FCE0 = .text:0x8009FCE0; // type:function size:0x11C
fn_8009FE00 = .text:0x8009FE00; // type:function size:0x124
fn_8009FF30 = .text:0x8009FF30; // type:function size:0x10C
isInEvent__12EventManagerFP9dAcBase_cPCc = .text:0x8009FF30; // type:function size:0x10C
fn_800A0040 = .text:0x800A0040; // type:function size:0x114
fn_800A0160 = .text:0x800A0160; // type:function size:0xB8
fn_800A0220 = .text:0x800A0220; // type:function size:0x64
@@ -11179,7 +11179,7 @@ fn_801BAE60 = .text:0x801BAE60; // type:function size:0x90
fn_801BAEF0 = .text:0x801BAEF0; // type:function size:0x50
fn_801BAF40 = .text:0x801BAF40; // type:function size:0x54
fn_801BAFA0 = .text:0x801BAFA0; // type:function size:0xDC
fn_801BB080 = .text:0x801BB080; // type:function size:0xC0
triggerExit__6ScGameFlUcll = .text:0x801BB080; // type:function size:0xC0
fn_801BB140 = .text:0x801BB140; // type:function size:0x154
fn_801BB2A0 = .text:0x801BB2A0; // type:function size:0x28
fn_801BB2D0 = .text:0x801BB2D0; // type:function size:0x8
@@ -17290,7 +17290,7 @@ atan2s__2cMFff = .text:0x802E0AF0; // type:function size:0x1BC
fn_802E0CB0 = .text:0x802E0CB0; // type:function size:0x48
fn_802E0D00 = .text:0x802E0D00; // type:function size:0x8
rnd__2cMFv = .text:0x802E0D10; // type:function size:0x8
fn_802E0D20 = .text:0x802E0D20; // type:function size:0x58
rndInt__2cMFi = .text:0x802E0D20; // type:function size:0x58
rndF__2cMFf = .text:0x802E0D80; // type:function size:0x38
fn_802E0DC0 = .text:0x802E0DC0; // type:function size:0x48
fn_802E0E10 = .text:0x802E0E10; // type:function size:0xC
@@ -17838,12 +17838,12 @@ createDylinkHeap__5mHeapFUlPQ23EGG4Heap = .text:0x802F15C0; // type:function siz
createAssertHeap__5mHeapFPQ23EGG4Heap = .text:0x802F15F0; // type:function size:0x50
makeHeapOnCurrentGameHeap__5mHeapFUlPCcUlUl = .text:0x802F1640; // type:function size:0x20
fn_802F1660 = .text:0x802F1660; // type:function size:0x44
fn_802F16B0 = .text:0x802F16B0; // type:function size:0xBC
XrotS__6mMtx_cFRC4mAng = .text:0x802F16B0; // type:function size:0xBC
fn_802F1770 = .text:0x802F1770; // type:function size:0x4C
fn_802F17C0 = .text:0x802F17C0; // type:function size:0xBC
YrotM__6mMtx_cFRC4mAng = .text:0x802F1880; // type:function size:0x4C
fn_802F18D0 = .text:0x802F18D0; // type:function size:0xBC
fn_802F1990 = .text:0x802F1990; // type:function size:0x4C
ZrotM__6mMtx_cFRC4mAng = .text:0x802F1990; // type:function size:0x4C
fn_802F19E0 = .text:0x802F19E0; // type:function size:0x60
fn_802F1A40 = .text:0x802F1A40; // type:function size:0x60
fn_802F1AA0 = .text:0x802F1AA0; // type:function size:0x60
@@ -18739,35 +18739,35 @@ fn_80328090 = .text:0x80328090; // type:function size:0x40
fn_803280D0 = .text:0x803280D0; // type:function size:0x8
fn_803280E0 = .text:0x803280E0; // type:function size:0xC
fn_803280F0 = .text:0x803280F0; // type:function size:0x24
fn_80328120 = .text:0x80328120; // type:function size:0x10
fn_80328130 = .text:0x80328130; // type:function size:0x40
fn_80328170 = .text:0x80328170; // type:function size:0x10
fn_80328180 = .text:0x80328180; // type:function size:0x40
fn_803281C0 = .text:0x803281C0; // type:function size:0x104
__ct__15dCcD_DivideInfoFv = .text:0x80328120; // type:function size:0x10
__dt__15dCcD_DivideInfoFv = .text:0x80328130; // type:function size:0x40
__ct__15dCcD_DivideAreaFv = .text:0x80328170; // type:function size:0x10
__dt__15dCcD_DivideAreaFv = .text:0x80328180; // type:function size:0x40
SetArea__15dCcD_DivideAreaFRC4Aabb = .text:0x803281C0; // type:function size:0x104
fn_803282D0 = .text:0x803282D0; // type:function size:0x198
fn_80328470 = .text:0x80328470; // type:function size:0x1E0
fn_80328650 = .text:0x80328650; // type:function size:0x4C
fn_803286A0 = .text:0x803286A0; // type:function size:0x20
fn_803286C0 = .text:0x803286C0; // type:function size:0x1C
__ct__12UnkCCDStructFP9dAcBase_c = .text:0x80328650; // type:function size:0x4C
postExecute__12UnkCCDStructFv = .text:0x803286A0; // type:function size:0x20
getId__12UnkCCDStructFv = .text:0x803286C0; // type:function size:0x1C
fn_803286E0 = .text:0x803286E0; // type:function size:0xA0
fn_80328780 = .text:0x80328780; // type:function size:0x54
fn_803287E0 = .text:0x803287E0; // type:function size:0xD4
fn_803288C0 = .text:0x803288C0; // type:function size:0x2C
fn_803288F0 = .text:0x803288F0; // type:function size:0x94
fn_80328990 = .text:0x80328990; // type:function size:0x8
fn_803289A0 = .text:0x803289A0; // type:function size:0x14
fn_803289C0 = .text:0x803289C0; // type:function size:0x8
fn_803289D0 = .text:0x803289D0; // type:function size:0x18
fn_803289F0 = .text:0x803289F0; // type:function size:0x58
fn_80328A50 = .text:0x80328A50; // type:function size:0x7C
fn_80328AD0 = .text:0x80328AD0; // type:function size:0x58
fn_80328B30 = .text:0x80328B30; // type:function size:0x28
fn_80328B60 = .text:0x80328B60; // type:function size:0x50
fn_80328BB0 = .text:0x80328BB0; // type:function size:0x48
fn_80328C00 = .text:0x80328C00; // type:function size:0x4C
fn_80328C50 = .text:0x80328C50; // type:function size:0x4C
fn_80328CA0 = .text:0x80328CA0; // type:function size:0x8
fn_80328CB0 = .text:0x80328CB0; // type:function size:0x8
reset__12UnkCCDStructFv = .text:0x80328780; // type:function size:0x54
getSomething__12UnkCCDStructFi = .text:0x803287E0; // type:function size:0xD4
__ct__22dCcD_GAtTgCoCommonBaseFv = .text:0x803288C0; // type:function size:0x2C
__dt__22dCcD_GAtTgCoCommonBaseFv = .text:0x803288F0; // type:function size:0x94
unlink__22dCcD_GAtTgCoCommonBaseFv = .text:0x80328990; // type:function size:0x8
setActor__22dCcD_GAtTgCoCommonBaseFP9dAcBase_c = .text:0x803289A0; // type:function size:0x14
getActor__22dCcD_GAtTgCoCommonBaseFv = .text:0x803289C0; // type:function size:0x8
decreaseCount__22dCcD_GAtTgCoCommonBaseFv = .text:0x803289D0; // type:function size:0x18
__ct__12dCcD_GObjInfFv = .text:0x803289F0; // type:function size:0x58
__dt__12dCcD_GObjInfFv = .text:0x80328A50; // type:function size:0x7C
weirdConditionCheck__12dCcD_GObjInfFP9dAcBase_cUl = .text:0x80328AD0; // type:function size:0x58
clear__12dCcD_GObjInfFv = .text:0x80328B30; // type:function size:0x28
init__12dCcD_GObjInfFRC15dCcD_SrcGObjInf = .text:0x80328B60; // type:function size:0x50
ResetAtHit__12dCcD_GObjInfFv = .text:0x80328BB0; // type:function size:0x48
ResetTgHit__12dCcD_GObjInfFv = .text:0x80328C00; // type:function size:0x4C
ResetCoHit__12dCcD_GObjInfFv = .text:0x80328C50; // type:function size:0x4C
GetAtHitPosP__12dCcD_GObjInfFv = .text:0x80328CA0; // type:function size:0x8
GetAtHitPosP2__12dCcD_GObjInfFv = .text:0x80328CB0; // type:function size:0x8
fn_80328CC0 = .text:0x80328CC0; // type:function size:0xC
fn_80328CD0 = .text:0x80328CD0; // type:function size:0xC
fn_80328CE0 = .text:0x80328CE0; // type:function size:0xC
@@ -18775,7 +18775,7 @@ fn_80328CF0 = .text:0x80328CF0; // type:function size:0x8
fn_80328D00 = .text:0x80328D00; // type:function size:0x8
fn_80328D10 = .text:0x80328D10; // type:function size:0xC
fn_80328D20 = .text:0x80328D20; // type:function size:0xC
fn_80328D30 = .text:0x80328D30; // type:function size:0x4
dCcD_GObjInf_0x10__12dCcD_GObjInfFv = .text:0x80328D30; // type:function size:0x4
fn_80328D40 = .text:0x80328D40; // type:function size:0xC
fn_80328D50 = .text:0x80328D50; // type:function size:0x8
fn_80328D60 = .text:0x80328D60; // type:function size:0xC
@@ -18785,7 +18785,7 @@ fn_80328D90 = .text:0x80328D90; // type:function size:0xC
fn_80328DA0 = .text:0x80328DA0; // type:function size:0xC
fn_80328DB0 = .text:0x80328DB0; // type:function size:0xC
fn_80328DC0 = .text:0x80328DC0; // type:function size:0xC
fn_80328DD0 = .text:0x80328DD0; // type:function size:0x4
GetAtActor__12dCcD_GObjInfFv = .text:0x80328DD0; // type:function size:0x4
fn_80328DE0 = .text:0x80328DE0; // type:function size:0x18
fn_80328E00 = .text:0x80328E00; // type:function size:0x8
fn_80328E10 = .text:0x80328E10; // type:function size:0xC
@@ -18803,155 +18803,155 @@ fn_80328EC0 = .text:0x80328EC0; // type:function size:0x8
fn_80328ED0 = .text:0x80328ED0; // type:function size:0x8
fn_80328EE0 = .text:0x80328EE0; // type:function size:0xC
fn_80328EF0 = .text:0x80328EF0; // type:function size:0x8
fn_80328F00 = .text:0x80328F00; // type:function size:0x8
GetTgActor__12dCcD_GObjInfFv = .text:0x80328F00; // type:function size:0x8
fn_80328F10 = .text:0x80328F10; // type:function size:0x8
fn_80328F20 = .text:0x80328F20; // type:function size:0x8
GetCoActor__12dCcD_GObjInfFv = .text:0x80328F20; // type:function size:0x8
fn_80328F30 = .text:0x80328F30; // type:function size:0xC
fn_80328F40 = .text:0x80328F40; // type:function size:0x14
fn_80328F60 = .text:0x80328F60; // type:function size:0xC
fn_80328F70 = .text:0x80328F70; // type:function size:0x64
fn_80328FE0 = .text:0x80328FE0; // type:function size:0x40
fn_80329020 = .text:0x80329020; // type:function size:0x5C
adjustHitPos__12dCcD_GObjInfFff = .text:0x80328F70; // type:function size:0x64
__ct__14dCcD_ShapeAttrFv = .text:0x80328FE0; // type:function size:0x40
__dt__14dCcD_ShapeAttrFv = .text:0x80329020; // type:function size:0x5C
fn_80329080 = .text:0x80329080; // type:function size:0x8
fn_80329090 = .text:0x80329090; // type:function size:0x5C
fn_803290F0 = .text:0x803290F0; // type:function size:0x8
getShapeAccess__14dCcD_ShapeAttrFv = .text:0x80329090; // type:function size:0x5C
dCcD_ShapeAttr_0x54__14dCcD_ShapeAttrFv = .text:0x803290F0; // type:function size:0x8
fn_80329100 = .text:0x80329100; // type:function size:0x8
fn_80329110 = .text:0x80329110; // type:function size:0x8
fn_80329120 = .text:0x80329120; // type:function size:0xC
fn_80329130 = .text:0x80329130; // type:function size:0x3C
fn_80329170 = .text:0x80329170; // type:function size:0x58
fn_803291D0 = .text:0x803291D0; // type:function size:0x458
fn_80329630 = .text:0x80329630; // type:function size:0x1C
fn_80329650 = .text:0x80329650; // type:function size:0x10
fn_80329660 = .text:0x80329660; // type:function size:0x10
fn_80329670 = .text:0x80329670; // type:function size:0x18
fn_80329690 = .text:0x80329690; // type:function size:0xC
fn_803296A0 = .text:0x803296A0; // type:function size:0x10
fn_803296B0 = .text:0x803296B0; // type:function size:0x1C
fn_803296D0 = .text:0x803296D0; // type:function size:0x8
fn_803296E0 = .text:0x803296E0; // type:function size:0x8
fn_803296F0 = .text:0x803296F0; // type:function size:0x8
fn_80329700 = .text:0x80329700; // type:function size:0x8
fn_80329710 = .text:0x80329710; // type:function size:0x8
fn_80329720 = .text:0x80329720; // type:function size:0xD4
fn_80329800 = .text:0x80329800; // type:function size:0x98
fn_803298A0 = .text:0x803298A0; // type:function size:0x54
fn_80329900 = .text:0x80329900; // type:function size:0x1C
fn_80329920 = .text:0x80329920; // type:function size:0x4C
fn_80329970 = .text:0x80329970; // type:function size:0x4C
fn_803299C0 = .text:0x803299C0; // type:function size:0x40
fn_80329A00 = .text:0x80329A00; // type:function size:0x58
fn_80329A60 = .text:0x80329A60; // type:function size:0x1B0
fn_80329C10 = .text:0x80329C10; // type:function size:0x1C
fn_80329C30 = .text:0x80329C30; // type:function size:0xC
fn_80329C40 = .text:0x80329C40; // type:function size:0xC
fn_80329C50 = .text:0x80329C50; // type:function size:0xC
fn_80329C60 = .text:0x80329C60; // type:function size:0xC
fn_80329C70 = .text:0x80329C70; // type:function size:0xC
fn_80329C80 = .text:0x80329C80; // type:function size:0x1C
fn_80329CA0 = .text:0x80329CA0; // type:function size:0x84
fn_80329D30 = .text:0x80329D30; // type:function size:0x8
fn_80329D40 = .text:0x80329D40; // type:function size:0x8
fn_80329D50 = .text:0x80329D50; // type:function size:0xC
fn_80329D60 = .text:0x80329D60; // type:function size:0xC
fn_80329D70 = .text:0x80329D70; // type:function size:0x164
fn_80329EE0 = .text:0x80329EE0; // type:function size:0x18
fn_80329F00 = .text:0x80329F00; // type:function size:0x1C
fn_80329F20 = .text:0x80329F20; // type:function size:0x5C
fn_80329F80 = .text:0x80329F80; // type:function size:0x8
fn_80329F90 = .text:0x80329F90; // type:function size:0x8
fn_80329FA0 = .text:0x80329FA0; // type:function size:0x44
fn_80329FF0 = .text:0x80329FF0; // type:function size:0x58
fn_8032A050 = .text:0x8032A050; // type:function size:0x5C
fn_8032A0B0 = .text:0x8032A0B0; // type:function size:0x8
fn_8032A0C0 = .text:0x8032A0C0; // type:function size:0x1C
fn_8032A0E0 = .text:0x8032A0E0; // type:function size:0x1C
fn_8032A100 = .text:0x8032A100; // type:function size:0x8
getVirtualCenter__14dCcD_ShapeAttrFv = .text:0x80329120; // type:function size:0xC
__ct__15dCcD_ShapeAttr2Fv = .text:0x80329130; // type:function size:0x3C
__dt__15dCcD_ShapeAttr2Fv = .text:0x80329170; // type:function size:0x58
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr2Fv = .text:0x803291D0; // type:function size:0x458
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr2Fv = .text:0x80329630; // type:function size:0x1C
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr2Fv = .text:0x80329650; // type:function size:0x10
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr2Fv = .text:0x80329660; // type:function size:0x10
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr2Fv = .text:0x80329670; // type:function size:0x18
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr2Fv = .text:0x80329690; // type:function size:0xC
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr2Fv = .text:0x803296A0; // type:function size:0x10
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr2Fv = .text:0x803296B0; // type:function size:0x1C
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr2Fv = .text:0x803296D0; // type:function size:0x8
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr2Fv = .text:0x803296E0; // type:function size:0x8
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr2Fv = .text:0x803296F0; // type:function size:0x8
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr2Fv = .text:0x80329700; // type:function size:0x8
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr2Fv = .text:0x80329710; // type:function size:0x8
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr2Fv = .text:0x80329720; // type:function size:0xD4
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr2Fv = .text:0x80329800; // type:function size:0x98
getShapeAccess__15dCcD_ShapeAttr2Fv = .text:0x803298A0; // type:function size:0x54
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr2Fv = .text:0x80329900; // type:function size:0x1C
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr2Fv = .text:0x80329920; // type:function size:0x4C
__ct__15dCcD_ShapeAttr5Fv = .text:0x80329970; // type:function size:0x4C
__dt__9cM3dGAabbFv = .text:0x803299C0; // type:function size:0x40
__dt__15dCcD_ShapeAttr5Fv = .text:0x80329A00; // type:function size:0x58
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr5Fv = .text:0x80329A60; // type:function size:0x1B0
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr5Fv = .text:0x80329C10; // type:function size:0x1C
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr5Fv = .text:0x80329C30; // type:function size:0xC
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr5Fv = .text:0x80329C40; // type:function size:0xC
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr5Fv = .text:0x80329C50; // type:function size:0xC
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr5Fv = .text:0x80329C60; // type:function size:0xC
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr5Fv = .text:0x80329C70; // type:function size:0xC
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr5Fv = .text:0x80329C80; // type:function size:0x1C
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr5Fv = .text:0x80329CA0; // type:function size:0x84
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr5Fv = .text:0x80329D30; // type:function size:0x8
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr5Fv = .text:0x80329D40; // type:function size:0x8
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr5Fv = .text:0x80329D50; // type:function size:0xC
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr5Fv = .text:0x80329D60; // type:function size:0xC
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr5Fv = .text:0x80329D70; // type:function size:0x164
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr5Fv = .text:0x80329EE0; // type:function size:0x18
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr5Fv = .text:0x80329F00; // type:function size:0x1C
init__15dCcD_ShapeAttr5FRC16dCcD_SrcAabbAttr = .text:0x80329F20; // type:function size:0x5C
getVirtualCenter__15dCcD_ShapeAttr5Fv = .text:0x80329F80; // type:function size:0x8
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr5Fv = .text:0x80329F90; // type:function size:0x8
__ct__15dCcD_ShapeAttr1Fv = .text:0x80329FA0; // type:function size:0x44
__dt__15dCcD_ShapeAttr1Fv = .text:0x80329FF0; // type:function size:0x58
init__15dCcD_ShapeAttr1FRC16dCcD_SrcUnk1Attr = .text:0x8032A050; // type:function size:0x5C
getVirtualCenter__15dCcD_ShapeAttr1Fv = .text:0x8032A0B0; // type:function size:0x8
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr1Fv = .text:0x8032A0C0; // type:function size:0x1C
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr1Fv = .text:0x8032A0E0; // type:function size:0x1C
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr1Fv = .text:0x8032A100; // type:function size:0x8
fn_8032A110 = .text:0x8032A110; // type:function size:0x308
fn_8032A420 = .text:0x8032A420; // type:function size:0x28C
fn_8032A6B0 = .text:0x8032A6B0; // type:function size:0x14
fn_8032A6D0 = .text:0x8032A6D0; // type:function size:0xC
fn_8032A6E0 = .text:0x8032A6E0; // type:function size:0xC
fn_8032A6F0 = .text:0x8032A6F0; // type:function size:0xC
fn_8032A700 = .text:0x8032A700; // type:function size:0xC
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr1Fv = .text:0x8032A420; // type:function size:0x28C
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr1Fv = .text:0x8032A6B0; // type:function size:0x14
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr1Fv = .text:0x8032A6D0; // type:function size:0xC
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr1Fv = .text:0x8032A6E0; // type:function size:0xC
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr1Fv = .text:0x8032A6F0; // type:function size:0xC
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr1Fv = .text:0x8032A700; // type:function size:0xC
fn_8032A710 = .text:0x8032A710; // type:function size:0xB0
fn_8032A7C0 = .text:0x8032A7C0; // type:function size:0xBC
fn_8032A880 = .text:0x8032A880; // type:function size:0xA4
fn_8032A930 = .text:0x8032A930; // type:function size:0x84
fn_8032A9C0 = .text:0x8032A9C0; // type:function size:0x8C
fn_8032AA50 = .text:0x8032AA50; // type:function size:0x8C
fn_8032AAE0 = .text:0x8032AAE0; // type:function size:0x90
fn_8032AB70 = .text:0x8032AB70; // type:function size:0x188
fn_8032AD00 = .text:0x8032AD00; // type:function size:0x1C
fn_8032AD20 = .text:0x8032AD20; // type:function size:0x50
fn_8032AD70 = .text:0x8032AD70; // type:function size:0x34
fn_8032ADB0 = .text:0x8032ADB0; // type:function size:0x3C
fn_8032ADF0 = .text:0x8032ADF0; // type:function size:0x58
fn_8032AE50 = .text:0x8032AE50; // type:function size:0x68
fn_8032AEC0 = .text:0x8032AEC0; // type:function size:0x8
fn_8032AED0 = .text:0x8032AED0; // type:function size:0x28
fn_8032AF00 = .text:0x8032AF00; // type:function size:0x1C
fn_8032AF20 = .text:0x8032AF20; // type:function size:0x10
fn_8032AF30 = .text:0x8032AF30; // type:function size:0xC
fn_8032AF40 = .text:0x8032AF40; // type:function size:0x2C
fn_8032AF70 = .text:0x8032AF70; // type:function size:0xC
fn_8032AF80 = .text:0x8032AF80; // type:function size:0xC
fn_8032AF90 = .text:0x8032AF90; // type:function size:0x1C
fn_8032AFB0 = .text:0x8032AFB0; // type:function size:0x8
fn_8032AFC0 = .text:0x8032AFC0; // type:function size:0xC
fn_8032AFD0 = .text:0x8032AFD0; // type:function size:0xC
fn_8032AFE0 = .text:0x8032AFE0; // type:function size:0x84
fn_8032B070 = .text:0x8032B070; // type:function size:0xC
fn_8032B080 = .text:0x8032B080; // type:function size:0x64
fn_8032B0F0 = .text:0x8032B0F0; // type:function size:0xE8
fn_8032B1E0 = .text:0x8032B1E0; // type:function size:0x5C
fn_8032B240 = .text:0x8032B240; // type:function size:0x1C
fn_8032B260 = .text:0x8032B260; // type:function size:0x1C
fn_8032B280 = .text:0x8032B280; // type:function size:0x44
fn_8032B2D0 = .text:0x8032B2D0; // type:function size:0x58
fn_8032B330 = .text:0x8032B330; // type:function size:0x50
fn_8032B380 = .text:0x8032B380; // type:function size:0x8
fn_8032B390 = .text:0x8032B390; // type:function size:0x190
fn_8032B520 = .text:0x8032B520; // type:function size:0x1C
fn_8032B540 = .text:0x8032B540; // type:function size:0x10
fn_8032B550 = .text:0x8032B550; // type:function size:0x30
fn_8032B580 = .text:0x8032B580; // type:function size:0x10
fn_8032B590 = .text:0x8032B590; // type:function size:0x14
fn_8032B5B0 = .text:0x8032B5B0; // type:function size:0xC
fn_8032B5C0 = .text:0x8032B5C0; // type:function size:0x1C
fn_8032B5E0 = .text:0x8032B5E0; // type:function size:0x8
fn_8032B5F0 = .text:0x8032B5F0; // type:function size:0x10
fn_8032B600 = .text:0x8032B600; // type:function size:0xC
fn_8032B610 = .text:0x8032B610; // type:function size:0x8C
fn_8032B6A0 = .text:0x8032B6A0; // type:function size:0xC
fn_8032B6B0 = .text:0x8032B6B0; // type:function size:0x8
fn_8032B6C0 = .text:0x8032B6C0; // type:function size:0xA4
fn_8032B770 = .text:0x8032B770; // type:function size:0x58
fn_8032B7D0 = .text:0x8032B7D0; // type:function size:0x1C
fn_8032B7F0 = .text:0x8032B7F0; // type:function size:0x20
fn_8032B810 = .text:0x8032B810; // type:function size:0x1C
fn_8032B830 = .text:0x8032B830; // type:function size:0x44
fn_8032B880 = .text:0x8032B880; // type:function size:0x58
fn_8032B8E0 = .text:0x8032B8E0; // type:function size:0x94
fn_8032B980 = .text:0x8032B980; // type:function size:0x14
fn_8032B9A0 = .text:0x8032B9A0; // type:function size:0x1C
fn_8032B9C0 = .text:0x8032B9C0; // type:function size:0x6C
fn_8032BA30 = .text:0x8032BA30; // type:function size:0x58
fn_8032BA90 = .text:0x8032BA90; // type:function size:0x64
fn_8032BB00 = .text:0x8032BB00; // type:function size:0x34
fn_8032BB40 = .text:0x8032BB40; // type:function size:0x48
fn_8032BB90 = .text:0x8032BB90; // type:function size:0x58
fn_8032BBF0 = .text:0x8032BBF0; // type:function size:0x18
fn_8032BC10 = .text:0x8032BC10; // type:function size:0x1C
fn_8032BC30 = .text:0x8032BC30; // type:function size:0x4
fn_8032BC40 = .text:0x8032BC40; // type:function size:0x2C
fn_8032BC70 = .text:0x8032BC70; // type:function size:0x8
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr1Fv = .text:0x8032A880; // type:function size:0xA4
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr1Fv = .text:0x8032A930; // type:function size:0x84
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr1Fv = .text:0x8032A9C0; // type:function size:0x8C
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr1Fv = .text:0x8032AA50; // type:function size:0x8C
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr1Fv = .text:0x8032AAE0; // type:function size:0x90
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr1Fv = .text:0x8032AB70; // type:function size:0x188
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr1Fv = .text:0x8032AD00; // type:function size:0x1C
getShapeAccess__15dCcD_ShapeAttr1Fv = .text:0x8032AD20; // type:function size:0x50
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr1Fv = .text:0x8032AD70; // type:function size:0x34
__ct__15dCcD_ShapeAttr3Fv = .text:0x8032ADB0; // type:function size:0x3C
__dt__15dCcD_ShapeAttr3Fv = .text:0x8032ADF0; // type:function size:0x58
init__15dCcD_ShapeAttr3FRC15dCcD_SrcCylAttr = .text:0x8032AE50; // type:function size:0x68
getVirtualCenter__15dCcD_ShapeAttr3Fv = .text:0x8032AEC0; // type:function size:0x8
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr3Fv = .text:0x8032AED0; // type:function size:0x28
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr3Fv = .text:0x8032AF00; // type:function size:0x1C
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr3Fv = .text:0x8032AF20; // type:function size:0x10
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr3Fv = .text:0x8032AF30; // type:function size:0xC
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr3Fv = .text:0x8032AF40; // type:function size:0x2C
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr3Fv = .text:0x8032AF70; // type:function size:0xC
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr3Fv = .text:0x8032AF80; // type:function size:0xC
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr3Fv = .text:0x8032AF90; // type:function size:0x1C
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr3Fv = .text:0x8032AFB0; // type:function size:0x8
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr3Fv = .text:0x8032AFC0; // type:function size:0xC
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr3Fv = .text:0x8032AFD0; // type:function size:0xC
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr3Fv = .text:0x8032AFE0; // type:function size:0x84
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr3Fv = .text:0x8032B070; // type:function size:0xC
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr3Fv = .text:0x8032B080; // type:function size:0x64
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr3Fv = .text:0x8032B0F0; // type:function size:0xE8
getShapeAccess__15dCcD_ShapeAttr3Fv = .text:0x8032B1E0; // type:function size:0x5C
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr3Fv = .text:0x8032B240; // type:function size:0x1C
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr3Fv = .text:0x8032B260; // type:function size:0x1C
__ct__15dCcD_ShapeAttr4Fv = .text:0x8032B280; // type:function size:0x44
__dt__15dCcD_ShapeAttr4Fv = .text:0x8032B2D0; // type:function size:0x58
init__15dCcD_ShapeAttr4FRC15dCcD_SrcSphAttr = .text:0x8032B330; // type:function size:0x50
getVirtualCenter__15dCcD_ShapeAttr4Fv = .text:0x8032B380; // type:function size:0x8
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr4Fv = .text:0x8032B390; // type:function size:0x190
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr4Fv = .text:0x8032B520; // type:function size:0x1C
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr4Fv = .text:0x8032B540; // type:function size:0x10
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr4Fv = .text:0x8032B550; // type:function size:0x30
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr4Fv = .text:0x8032B580; // type:function size:0x10
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr4Fv = .text:0x8032B590; // type:function size:0x14
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr4Fv = .text:0x8032B5B0; // type:function size:0xC
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr4Fv = .text:0x8032B5C0; // type:function size:0x1C
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr4Fv = .text:0x8032B5E0; // type:function size:0x8
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr4Fv = .text:0x8032B5F0; // type:function size:0x10
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr4Fv = .text:0x8032B600; // type:function size:0xC
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr4Fv = .text:0x8032B610; // type:function size:0x8C
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr4Fv = .text:0x8032B6A0; // type:function size:0xC
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr4Fv = .text:0x8032B6B0; // type:function size:0x8
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr4Fv = .text:0x8032B6C0; // type:function size:0xA4
getShapeAccess__15dCcD_ShapeAttr4Fv = .text:0x8032B770; // type:function size:0x58
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr4Fv = .text:0x8032B7D0; // type:function size:0x1C
dCcD_ShapeAttr_0x54__15dCcD_ShapeAttr4Fv = .text:0x8032B7F0; // type:function size:0x20
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr4Fv = .text:0x8032B810; // type:function size:0x1C
__ct__11dCcD_GObjAtFv = .text:0x8032B830; // type:function size:0x44
__dt__11dCcD_GObjAtFv = .text:0x8032B880; // type:function size:0x58
init__11dCcD_GObjAtFPC14dCcD_SrcGObjAt = .text:0x8032B8E0; // type:function size:0x94
setSomeAtFlags__11dCcD_GObjAtFUl = .text:0x8032B980; // type:function size:0x14
adjustHitPos__11dCcD_GObjAtFff = .text:0x8032B9A0; // type:function size:0x1C
__ct__11dCcD_GObjTgFv = .text:0x8032B9C0; // type:function size:0x6C
__dt__11dCcD_GObjTgFv = .text:0x8032BA30; // type:function size:0x58
init__11dCcD_GObjTgFPC14dCcD_SrcGObjTg = .text:0x8032BA90; // type:function size:0x64
adjustHitPos__11dCcD_GObjTgFff = .text:0x8032BB00; // type:function size:0x34
__ct__11dCcD_GObjCoFv = .text:0x8032BB40; // type:function size:0x48
__dt__11dCcD_GObjCoFv = .text:0x8032BB90; // type:function size:0x58
init__11dCcD_GObjCoFPC14dCcD_SrcGObjCo = .text:0x8032BBF0; // type:function size:0x18
setSomeAtFlags__11dCcD_GObjCoFUl = .text:0x8032BC10; // type:function size:0x1C
adjustHitPos__11dCcD_GObjCoFff = .text:0x8032BC30; // type:function size:0x4
__sinit_\d_cc_d_cpp = .text:0x8032BC40; // type:function size:0x2C
@44@__dt__15dCcD_ShapeAttr5Fv = .text:0x8032BC70; // type:function size:0x8
fn_8032BC80 = .text:0x8032BC80; // type:function size:0x238
fn_8032BEC0 = .text:0x8032BEC0; // type:function size:0x40
fn_8032BF00 = .text:0x8032BF00; // type:function size:0xB0
fn_8032BFB0 = .text:0x8032BFB0; // type:function size:0x11C
fn_8032C0D0 = .text:0x8032C0D0; // type:function size:0x84
fn_8032C160 = .text:0x8032C160; // type:function size:0x10C
cM3d_Len2dSqPntAndSegLine = .text:0x8032BF00; // type:function size:0xB0
cM3d_Len3dSqPntAndSegLine = .text:0x8032BFB0; // type:function size:0x11C
cM3d_SignedLenPlaAndPos = .text:0x8032C0D0; // type:function size:0x84
cM3d_CalcPla__FPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3Pf = .text:0x8032C160; // type:function size:0x10C
fn_8032C270 = .text:0x8032C270; // type:function size:0x298
fn_8032C510 = .text:0x8032C510; // type:function size:0x1D0
fn_8032C6E0 = .text:0x8032C6E0; // type:function size:0xD34
@@ -19029,10 +19029,10 @@ fn_80337EE0 = .text:0x80337EE0; // type:function size:0x8
fn_80337EF0 = .text:0x80337EF0; // type:function size:0x34
fn_80337F30 = .text:0x80337F30; // type:function size:0x4
fn_80337F40 = .text:0x80337F40; // type:function size:0xD8
fn_80338020 = .text:0x80338020; // type:function size:0x5C
fn_80338080 = .text:0x80338080; // type:function size:0x1C
fn_803380A0 = .text:0x803380A0; // type:function size:0x18
fn_803380C0 = .text:0x803380C0; // type:function size:0x18
setC__8cM3dGCylFRC7mVec3_cff = .text:0x80338020; // type:function size:0x5C
setC__8cM3dGCylFRC7mVec3_c = .text:0x80338080; // type:function size:0x1C
setH__8cM3dGCylFf = .text:0x803380A0; // type:function size:0x18
setR__8cM3dGCylFf = .text:0x803380C0; // type:function size:0x18
fn_803380E0 = .text:0x803380E0; // type:function size:0x4
fn_803380F0 = .text:0x803380F0; // type:function size:0x4
fn_80338100 = .text:0x80338100; // type:function size:0x6C
@@ -19045,11 +19045,11 @@ fn_80338430 = .text:0x80338430; // type:function size:0xE8
fn_80338520 = .text:0x80338520; // type:function size:0x58
fn_80338580 = .text:0x80338580; // type:function size:0xAC
fn_80338630 = .text:0x80338630; // type:function size:0x48
fn_80338680 = .text:0x80338680; // type:function size:0xC
fn_80338690 = .text:0x80338690; // type:function size:0x1C
fn_803386B0 = .text:0x803386B0; // type:function size:0x44
fn_80338700 = .text:0x80338700; // type:function size:0x18
fn_80338720 = .text:0x80338720; // type:function size:0x30
__ct__8cM3dGSphFv = .text:0x80338680; // type:function size:0xC
setC__8cM3dGSphFRC7mVec3_c = .text:0x80338690; // type:function size:0x1C
set__8cM3dGSphFRC7mVec3_cf = .text:0x803386B0; // type:function size:0x44
setR__8cM3dGSphFf = .text:0x80338700; // type:function size:0x18
setC__8cM3dGSphFfff = .text:0x80338720; // type:function size:0x30
fn_80338750 = .text:0x80338750; // type:function size:0x10
fn_80338760 = .text:0x80338760; // type:function size:0x10
fn_80338770 = .text:0x80338770; // type:function size:0x6C
@@ -19058,7 +19058,7 @@ fn_803387F0 = .text:0x803387F0; // type:function size:0xE0
fn_803388D0 = .text:0x803388D0; // type:function size:0x8
fn_803388E0 = .text:0x803388E0; // type:function size:0x60
fn_80338940 = .text:0x80338940; // type:function size:0xB4
fn_80338A00 = .text:0x80338A00; // type:function size:0x144
setMinMax__9cM3dGAabbFRC7mVec3_cRC7mVec3_c = .text:0x80338A00; // type:function size:0x144
fn_80338B50 = .text:0x80338B50; // type:function size:0xA0
fn_80338BF0 = .text:0x80338BF0; // type:function size:0x34
fn_80338C30 = .text:0x80338C30; // type:function size:0x10
@@ -19069,7 +19069,7 @@ fn_80338CC0 = .text:0x80338CC0; // type:function size:0x10
fn_80338CD0 = .text:0x80338CD0; // type:function size:0x4
fn_80338CE0 = .text:0x80338CE0; // type:function size:0x4
fn_80338CF0 = .text:0x80338CF0; // type:function size:0x64
fn_80338D60 = .text:0x80338D60; // type:function size:0x78
setWithYRot__9cM3dGAabbFRC7mVec3_cRC4mAng = .text:0x80338D60; // type:function size:0x78
fn_80338DE0 = .text:0x80338DE0; // type:function size:0xBC
fn_80338EA0 = .text:0x80338EA0; // type:function size:0x90
fn_80338F30 = .text:0x80338F30; // type:function size:0x1C
@@ -19693,38 +19693,38 @@ fn_80353920 = .text:0x80353920; // type:function size:0xDC
fn_80353A00 = .text:0x80353A00; // type:function size:0x128
fn_80353B30 = .text:0x80353B30; // type:function size:0x8
fn_80353B40 = .text:0x80353B40; // type:function size:0x4
fn_80353B50 = .text:0x80353B50; // type:function size:0x4C
fn_80353BA0 = .text:0x80353BA0; // type:function size:0x68
fn_80353C10 = .text:0x80353C10; // type:function size:0x44
fn_80353C60 = .text:0x80353C60; // type:function size:0x10
fn_80353C70 = .text:0x80353C70; // type:function size:0x14
fn_80353C90 = .text:0x80353C90; // type:function size:0x4C
fn_80353CE0 = .text:0x80353CE0; // type:function size:0x68
fn_80353D50 = .text:0x80353D50; // type:function size:0x4
fn_80353D60 = .text:0x80353D60; // type:function size:0x10
fn_80353D70 = .text:0x80353D70; // type:function size:0x4C
fn_80353DC0 = .text:0x80353DC0; // type:function size:0x68
fn_80353E30 = .text:0x80353E30; // type:function size:0x44
fn_80353E80 = .text:0x80353E80; // type:function size:0x10
fn_80353E90 = .text:0x80353E90; // type:function size:0x28
fn_80353EC0 = .text:0x80353EC0; // type:function size:0x64
fn_80353F30 = .text:0x80353F30; // type:function size:0x4C
fn_80353F80 = .text:0x80353F80; // type:function size:0x68
fn_80353FF0 = .text:0x80353FF0; // type:function size:0x44
fn_80354040 = .text:0x80354040; // type:function size:0x28
fn_80354070 = .text:0x80354070; // type:function size:0x64
fn_803540E0 = .text:0x803540E0; // type:function size:0x20
fn_80354100 = .text:0x80354100; // type:function size:0x10
fn_80354110 = .text:0x80354110; // type:function size:0x54
fn_80354170 = .text:0x80354170; // type:function size:0x68
fn_803541E0 = .text:0x803541E0; // type:function size:0x44
fn_80354230 = .text:0x80354230; // type:function size:0x10
fn_80354240 = .text:0x80354240; // type:function size:0x8
fn_80354250 = .text:0x80354250; // type:function size:0x8
fn_80354260 = .text:0x80354260; // type:function size:0x8
fn_80354270 = .text:0x80354270; // type:function size:0x8
fn_80354280 = .text:0x80354280; // type:function size:0x8
fn_80354290 = .text:0x80354290; // type:function size:0x8
__ct__9dCcD_Unk1Fv = .text:0x80353B50; // type:function size:0x4C
__dt__9dCcD_Unk1Fv = .text:0x80353BA0; // type:function size:0x68
init__9dCcD_Unk1FRC11dCcD_SrcUnk = .text:0x80353C10; // type:function size:0x44
dCcD_GObjInf_0x0C__9dCcD_Unk1Fv = .text:0x80353C60; // type:function size:0x10
unknownCalc__9dCcD_Unk1Fv = .text:0x80353C70; // type:function size:0x14
__ct__10dCcD_EmptyFv = .text:0x80353C90; // type:function size:0x4C
__dt__10dCcD_EmptyFv = .text:0x80353CE0; // type:function size:0x68
init__10dCcD_EmptyFRC13dCcD_SrcEmpty = .text:0x80353D50; // type:function size:0x4
dCcD_GObjInf_0x0C__10dCcD_EmptyFv = .text:0x80353D60; // type:function size:0x10
__ct__8dCcD_CylFv = .text:0x80353D70; // type:function size:0x4C
__dt__8dCcD_CylFv = .text:0x80353DC0; // type:function size:0x68
init__8dCcD_CylFRC11dCcD_SrcCyl = .text:0x80353E30; // type:function size:0x44
dCcD_GObjInf_0x0C__8dCcD_CylFv = .text:0x80353E80; // type:function size:0x10
setCenter__8dCcD_CylFRC7mVec3_c = .text:0x80353E90; // type:function size:0x28
moveCenter__8dCcD_CylFRC7mVec3_c = .text:0x80353EC0; // type:function size:0x64
__ct__8dCcD_SphFv = .text:0x80353F30; // type:function size:0x4C
__dt__8dCcD_SphFv = .text:0x80353F80; // type:function size:0x68
init__8dCcD_SphFRC11dCcD_SrcSph = .text:0x80353FF0; // type:function size:0x44
setCenter__8dCcD_SphFRC7mVec3_c = .text:0x80354040; // type:function size:0x28
moveCenter__8dCcD_SphFRC7mVec3_c = .text:0x80354070; // type:function size:0x64
setCenterAndAtVec__8dCcD_SphFRC7mVec3_cRC7mVec3_c = .text:0x803540E0; // type:function size:0x20
dCcD_GObjInf_0x0C__8dCcD_SphFv = .text:0x80354100; // type:function size:0x10
__ct__9dCcD_AabbFv = .text:0x80354110; // type:function size:0x54
__dt__9dCcD_AabbFv = .text:0x80354170; // type:function size:0x68
init__9dCcD_AabbFRC12dCcD_SrcAabb = .text:0x803541E0; // type:function size:0x44
dCcD_GObjInf_0x0C__9dCcD_AabbFv = .text:0x80354230; // type:function size:0x10
@272@__dt__9dCcD_Unk1Fv = .text:0x80354240; // type:function size:0x8
@272@__dt__10dCcD_EmptyFv = .text:0x80354250; // type:function size:0x8
@272@__dt__8dCcD_CylFv = .text:0x80354260; // type:function size:0x8
@272@__dt__8dCcD_SphFv = .text:0x80354270; // type:function size:0x8
@316@__dt__9dCcD_AabbFv = .text:0x80354280; // type:function size:0x8
@272@__dt__9dCcD_AabbFv = .text:0x80354290; // type:function size:0x8
fn_803542A0 = .text:0x803542A0; // type:function size:0x14
fn_803542C0 = .text:0x803542C0; // type:function size:0x54
fn_80354320 = .text:0x80354320; // type:function size:0x54
@@ -19746,7 +19746,7 @@ fn_80354990 = .text:0x80354990; // type:function size:0x504
fn_80354EA0 = .text:0x80354EA0; // type:function size:0xAC
fn_80354F50 = .text:0x80354F50; // type:function size:0x9C
fn_80354FF0 = .text:0x80354FF0; // type:function size:0x90
fn_80355080 = .text:0x80355080; // type:function size:0x8
getColliderManager__15ColliderManagerFv = .text:0x80355080; // type:function size:0x8
fn_80355090 = .text:0x80355090; // type:function size:0x428
fn_803554C0 = .text:0x803554C0; // type:function size:0x4C
fn_80355510 = .text:0x80355510; // type:function size:0x70
@@ -19772,7 +19772,7 @@ fn_80357600 = .text:0x80357600; // type:function size:0x1E8
fn_803577F0 = .text:0x803577F0; // type:function size:0x2D4
fn_80357AD0 = .text:0x80357AD0; // type:function size:0x1B4
fn_80357C90 = .text:0x80357C90; // type:function size:0x218
fn_80357EB0 = .text:0x80357EB0; // type:function size:0x13C
addCollider__15ColliderManagerFP12dCcD_GObjInf = .text:0x80357EB0; // type:function size:0x13C
fn_80357FF0 = .text:0x80357FF0; // type:function size:0x4
fn_80358000 = .text:0x80358000; // type:function size:0x1DC
fn_803581E0 = .text:0x803581E0; // type:function size:0x1D0
@@ -36068,19 +36068,19 @@ lbl_80547398 = .data:0x80547398; // type:object size:0x10
lbl_805473A8 = .data:0x805473A8; // type:object size:0x10
lbl_805473B8 = .data:0x805473B8; // type:object size:0x10
lbl_805473C8 = .data:0x805473C8; // type:object size:0x10
lbl_805473D8 = .data:0x805473D8; // type:object size:0x5C
lbl_80547434 = .data:0x80547434; // type:object size:0x5C
lbl_80547490 = .data:0x80547490; // type:object size:0x68
lbl_805474F8 = .data:0x805474F8; // type:object size:0x5C
lbl_80547554 = .data:0x80547554; // type:object size:0x5C
lbl_805475B0 = .data:0x805475B0; // type:object size:0x14
lbl_805475C4 = .data:0x805475C4; // type:object size:0x5C
lbl_80547620 = .data:0x80547620; // type:object size:0xC
lbl_8054762C = .data:0x8054762C; // type:object size:0xC
lbl_80547638 = .data:0x80547638; // type:object size:0xC
lbl_80547644 = .data:0x80547644; // type:object size:0xC
lbl_80547650 = .data:0x80547650; // type:object size:0xC
lbl_8054765C = .data:0x8054765C; // type:object size:0xC
__vt__15dCcD_ShapeAttr4 = .data:0x805473D8; // type:object size:0x5C
__vt__15dCcD_ShapeAttr3 = .data:0x80547434; // type:object size:0x5C
__vt__15dCcD_ShapeAttr5 = .data:0x80547490; // type:object size:0x68
__vt__15dCcD_ShapeAttr2 = .data:0x805474F8; // type:object size:0x5C
__vt__15dCcD_ShapeAttr1 = .data:0x80547554; // type:object size:0x5C
__vt__12dCcD_GObjInf = .data:0x805475B0; // type:object size:0x14
__vt__14dCcD_ShapeAttr = .data:0x805475C4; // type:object size:0x5C
__vt__11dCcD_GObjCo = .data:0x80547620; // type:object size:0xC
__vt__11dCcD_GObjTg = .data:0x8054762C; // type:object size:0xC
__vt__11dCcD_GObjAt = .data:0x80547638; // type:object size:0xC
__vt__22dCcD_GAtTgCoCommonBase = .data:0x80547644; // type:object size:0xC
__vt__15dCcD_DivideArea = .data:0x80547650; // type:object size:0xC
__vt__15dCcD_DivideInfo = .data:0x8054765C; // type:object size:0xC
lbl_80547668 = .data:0x80547668; // type:object size:0x10
lbl_80547678 = .data:0x80547678; // type:object size:0x10
lbl_80547688 = .data:0x80547688; // type:object size:0x10
@@ -36136,11 +36136,11 @@ lbl_80547F10 = .data:0x80547F10; // type:object size:0x108
lbl_80548018 = .data:0x80548018; // type:object size:0x108
lbl_80548120 = .data:0x80548120; // type:object size:0x118
lbl_80548238 = .data:0x80548238; // type:object size:0x108
lbl_80548340 = .data:0x80548340; // type:object size:0x80
lbl_805483C0 = .data:0x805483C0; // type:object size:0x70
lbl_80548430 = .data:0x80548430; // type:object size:0x70
lbl_805484A0 = .data:0x805484A0; // type:object size:0x70
lbl_80548510 = .data:0x80548510; // type:object size:0x70
__vt__9dCcD_Aabb = .data:0x80548340; // type:object size:0x7C
__vt__8dCcD_Sph = .data:0x805483C0; // type:object size:0x70
__vt__8dCcD_Cyl = .data:0x80548430; // type:object size:0x70
__vt__10dCcD_Empty = .data:0x805484A0; // type:object size:0x70
__vt__9dCcD_Unk1 = .data:0x80548510; // type:object size:0x70
lbl_80548580 = .data:0x80548580; // type:object size:0xC
lbl_8054858C = .data:0x8054858C; // type:object size:0xC
lbl_80548598 = .data:0x80548598; // type:object size:0x10
@@ -39885,7 +39885,7 @@ lbl_8057535C = .sbss:0x8057535C; // type:object size:0x4 data:4byte
lbl_80575360 = .sbss:0x80575360; // type:object size:0x4 data:4byte
lbl_80575364 = .sbss:0x80575364; // type:object size:0x4 data:4byte
lbl_80575368 = .sbss:0x80575368; // type:object size:0x8 data:4byte
lbl_80575370 = .sbss:0x80575370; // type:object size:0x8 data:4byte
sInstance__12dAttention_c = .sbss:0x80575370; // type:object size:0x8 data:4byte
lbl_80575378 = .sbss:0x80575378; // type:object size:0x4 data:4byte
lbl_8057537C = .sbss:0x8057537C; // type:object size:0xC data:byte
lbl_80575388 = .sbss:0x80575388; // type:object size:0x8 data:byte
@@ -40076,7 +40076,7 @@ lbl_80575787 = .sbss:0x80575787; // type:object size:0x1 data:byte
lbl_80575788 = .sbss:0x80575788; // type:object size:0x4 data:4byte
LINK__7dAcPy_c = .sbss:0x8057578C; // type:object size:0x4 data:4byte
lbl_80575790 = .sbss:0x80575790; // type:object size:0x4 data:4byte
lbl_80575794 = .sbss:0x80575794; // type:object size:0x4 data:4byte
sInstance__6ScGame = .sbss:0x80575794; // type:object size:0x4 data:4byte
lbl_80575798 = .sbss:0x80575798; // type:object size:0x4 data:4byte
lbl_8057579C = .sbss:0x8057579C; // type:object size:0x1 data:byte
lbl_8057579D = .sbss:0x8057579D; // type:object size:0x1 data:byte
@@ -45991,7 +45991,7 @@ lbl_8057CFA8 = .sdata2:0x8057CFA8; // type:object size:0x4 data:float
lbl_8057CFAC = .sdata2:0x8057CFAC; // type:object size:0x4 data:float
lbl_8057CFB0 = .sdata2:0x8057CFB0; // type:object size:0x4 data:float
lbl_8057CFB4 = .sdata2:0x8057CFB4; // type:object size:0x4 data:float
lbl_8057CFB8 = .sdata2:0x8057CFB8; // type:object size:0x8 data:float
lbl_8057CFB8 = .sdata2:0x8057CFB8; // type:object size:0x4 data:float
lbl_8057CFC0 = .sdata2:0x8057CFC0; // type:object size:0x4 data:float
lbl_8057CFC4 = .sdata2:0x8057CFC4; // type:object size:0x4 data:float
lbl_8057CFC8 = .sdata2:0x8057CFC8; // type:object size:0x8 data:float
@@ -49196,7 +49196,7 @@ lbl_805CED68 = .bss:0x805CED68; // type:object size:0x48
lbl_805CEDB0 = .bss:0x805CEDB0; // type:object size:0x1318
lbl_805D00C8 = .bss:0x805D00C8; // type:object size:0x30
lbl_805D00F8 = .bss:0x805D00F8; // type:object size:0x30
lbl_805D0128 = .bss:0x805D0128; // type:object size:0x10 data:float
m_virtual_center__14dCcD_ShapeAttr = .bss:0x805D0128; // type:object size:0xC data:float
lbl_805D0138 = .bss:0x805D0138; // type:object size:0x7C data:4byte
lbl_805D01B4 = .bss:0x805D01B4; // type:object size:0x14 data:4byte
lbl_805D01C8 = .bss:0x805D01C8; // type:object size:0x10
+8 -3
View File
@@ -344,6 +344,11 @@ config.libs = [
Object(Matching, "toBeSorted/counters/slingshot_seed_counter.cpp"),
Object(Matching, "toBeSorted/counters/key_piece_counter.cpp"),
Object(Matching, "toBeSorted/counters/extra_wallet_counter.cpp"),
Object(NonMatching, "toBeSorted/cc/d_cc_d.cpp"),
Object(NonMatching, "toBeSorted/cc/d_cc_m3d.cpp"),
Object(NonMatching, "toBeSorted/cc/d_cc_m3d_g_cyl.cpp"),
Object(NonMatching, "toBeSorted/cc/d_cc_m3d_g_sph.cpp"),
Object(Matching, "toBeSorted/cc/d_cc_shape_colliders.cpp"),
Object(NonMatching, "toBeSorted/file_manager.cpp"),
Object(NonMatching, "toBeSorted/save_manager.cpp"),
Object(Matching, "DynamicLink.cpp"),
@@ -1165,7 +1170,7 @@ config.libs = [
Rel(Matching, "d_a_obj_smoke", "REL/d/a/obj/d_a_obj_smoke.cpp"),
Rel(NonMatching, "d_a_obj_soil", "REL/d/a/obj/d_a_obj_soil.cpp"),
Rel(NonMatching, "d_a_obj_spider_line", "REL/d/a/obj/d_a_obj_spider_line.cpp"),
Rel(NonMatching, "d_a_obj_spike", "REL/d/a/obj/d_a_obj_spike.cpp"),
Rel(Matching, "d_a_obj_spike", "REL/d/a/obj/d_a_obj_spike.cpp"),
Rel(NonMatching, "d_a_obj_stage_cover", "REL/d/a/obj/d_a_obj_stage_cover.cpp"),
Rel(NonMatching, "d_a_obj_stage_crack", "REL/d/a/obj/d_a_obj_stage_crack.cpp"),
Rel(NonMatching, "d_a_obj_stage_debris", "REL/d/a/obj/d_a_obj_stage_debris.cpp"),
@@ -1216,7 +1221,7 @@ config.libs = [
Rel(NonMatching, "d_a_obj_time_door_before", "REL/d/a/obj/d_a_obj_time_door_before.cpp"),
Rel(NonMatching, "d_a_obj_time_stage_bg", "REL/d/a/obj/d_a_obj_time_stage_bg.cpp"),
Rel(NonMatching, "d_a_obj_time_stone", "REL/d/a/obj/d_a_obj_time_stone.cpp"),
Rel(NonMatching, "d_a_obj_toD3_stone_figure", "REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp"),
Rel(Matching, "d_a_obj_toD3_stone_figure", "REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp"),
Rel(NonMatching, "d_a_obj_toge_trap", "REL/d/a/obj/d_a_obj_toge_trap.cpp"),
Rel(NonMatching, "d_a_obj_tornado", "REL/d/a/obj/d_a_obj_tornado.cpp"),
Rel(NonMatching, "d_a_obj_tower_bomb", "REL/d/a/obj/d_a_obj_tower_bomb.cpp"),
@@ -1227,7 +1232,7 @@ config.libs = [
Rel(NonMatching, "d_a_obj_trap_rock_1", "REL/d/a/obj/d_a_obj_trap_rock_1.cpp"),
Rel(NonMatching, "d_a_obj_treasure_island", "REL/d/a/obj/d_a_obj_treasure_island.cpp"),
Rel(NonMatching, "d_a_obj_treasure_island_b", "REL/d/a/obj/d_a_obj_treasure_island_b.cpp"),
Rel(NonMatching, "d_a_obj_triforce", "REL/d/a/obj/d_a_obj_triforce.cpp"),
Rel(Matching, "d_a_obj_triforce", "REL/d/a/obj/d_a_obj_triforce.cpp"),
Rel(NonMatching, "d_a_obj_trolley", "REL/d/a/obj/d_a_obj_trolley.cpp"),
Rel(NonMatching, "d_a_obj_trolley_shutter", "REL/d/a/obj/d_a_obj_trolley_shutter.cpp"),
Rel(NonMatching, "d_a_obj_truck", "REL/d/a/obj/d_a_obj_truck.cpp"),
+9 -5
View File
@@ -2,11 +2,14 @@
#define D_A_OBJ_BASE_H
#include "d/a/d_a_base.h"
#include "m/m_angle.h"
#include "m/m_mtx.h"
#include "m/m3d/m_smdl.h"
#include "m/m3d/m_shadow.h"
#include "m/m_vec.h"
#include "m/types_m.h"
#include "nw4r/g3d/g3d_resfile.h"
#include "toBeSorted/cc/d_cc_d.h"
// Size: 0xA8
struct ActorCarryStruct {
@@ -21,7 +24,7 @@ struct ActorCarryStruct {
/* 0x58 */ mMtx_c field_0x58;
/* 0x88 */ s32 isCarried;
/* 0x8C */ u8 field_0x8C[0x10]; // mQuat_c
/* 0x9C */ void *dtor; // ???
/* 0x9C */ void *dtor; // ???
/* 0xA0 */ u32 field_0xA0;
/* 0xA4 */ u32 field_0xA4;
@@ -57,11 +60,12 @@ public:
/* 0x1A8 */ f32 field_0x1A8;
/* 0x1AC */ u32 mObjectActorFlags;
u8 unk_0x1B0[0x1E8 - 0x1B0];
u8 unk_0x1B0[0x1C0 - 0x1B0];
/* 0x1E8 */ mVec3_c posIncrements;
/* 0x1C0 */ UnkCCDStruct mCCdStruct;
u8 unk_0x1F4[0x210 - 0x1F4];
mVec3_c mStartingPos;
mAng3_c mStartingRot;
/* 0x210 */ ActorCarryStruct mActorCarryInfo;
@@ -136,7 +140,7 @@ protected:
// Actors' createHeap functions often have patterns that can be matched with this macro
#define TRY_CREATE(thing) do { bool result = (thing); if (!result) return result; } while (0)
// Use this in actors' createHeap functions
#define CREATE_ALLOCATOR(className) do { if (!initAllocatorWork1Heap(-1, #className "::m_allocator", 0x20)) { return FAILED; } } while (0)
#endif
+38
View File
@@ -0,0 +1,38 @@
#ifndef D_A_O_SPIKE_H
#define D_A_O_SPIKE_H
#include <d/a/obj/d_a_obj_base.h>
#include <m/m3d/m_smdl.h>
#include <m/m_vec.h>
#include <nw4r/g3d/g3d_resfile.h>
#include <s/s_State.hpp>
#include <s/s_StateID.hpp>
#include <toBeSorted/cc/d_cc_shape_colliders.h>
class dAcOspike_c : public dAcObjBase_c {
public:
dAcOspike_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dAcOspike_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int actorExecute() override;
virtual int draw() override;
virtual int doDelete() override;
STATE_FUNC_DECLARE(dAcOspike_c, Wait);
static const mVec3_c sVec1;
static const mVec3_c sVec2;
private:
static dCcD_SrcAabb sCcSrc;
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mMdl;
dCcD_Aabb mCollision;
STATE_MGR_DECLARE(dAcOspike_c);
};
#endif
@@ -0,0 +1,47 @@
#ifndef D_A_O_TTOD3_STONE_FIGURE_H
#define D_A_O_TTOD3_STONE_FIGURE_H
#include <c/c_math.h>
#include <d/a/obj/d_a_obj_base.h>
#include <m/m3d/m_smdl.h>
#include <nw4r/g3d/g3d_resfile.h>
#include <s/s_State.hpp>
#include <s/s_StateMgr.hpp>
#include <toBeSorted/cc/d_cc_shape_colliders.h>
class dAcOtoD3StoneFigure_c : public dAcObjBase_c {
public:
dAcOtoD3StoneFigure_c() : mStateMgr(*this, sStateID::null) {}
virtual ~dAcOtoD3StoneFigure_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int actorExecute() override;
virtual int draw() override;
virtual int doDelete() override;
virtual void doInteraction(s32) override;
STATE_FUNC_DECLARE(dAcOtoD3StoneFigure_c, OneEye);
STATE_FUNC_DECLARE(dAcOtoD3StoneFigure_c, Eyes);
private:
f32 getYPos() {
return position.y + sHeight;
}
const char *getModelName() const;
bool isStoneOfTrialsPlaced() const;
bool hasStoneOfTrials() const;
static f32 sRadius;
static f32 sHeight;
static dCcD_SrcCyl sCcSrc;
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mMdl;
STATE_MGR_DECLARE(dAcOtoD3StoneFigure_c);
dCcD_Cyl mCollision;
s8 mExitId;
bool mIsSkyKeepAlreadyOpen;
};
#endif
+43
View File
@@ -0,0 +1,43 @@
#ifndef D_A_O_TRIFORCE_H
#define D_A_O_TRIFORCE_H
#include <c/c_math.h>
#include <d/a/obj/d_a_obj_base.h>
#include <m/m3d/m_anmtexsrt.h>
#include <m/m3d/m_smdl.h>
#include <m/m_angle.h>
#include <nw4r/g3d/g3d_resfile.h>
#include <toBeSorted/cc/d_cc_shape_colliders.h>
#include <toBeSorted/effects_struct.h>
class dAcOtriforce_c : public dAcObjBase_c {
public:
dAcOtriforce_c() {}
virtual ~dAcOtriforce_c() {}
virtual bool createHeap() override;
virtual int create() override;
virtual int actorExecute() override;
virtual int draw() override;
virtual int doDelete() override;
private:
f32 getBounceScalar() const {
int zero = 0;
return (23.0f + zero + -3.0f);
}
static dCcD_SrcSph sCcSrc;
static const f32 sScale;
static const f32 sAmpNeg;
static const u32 sStartingOffsetRange;
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mMdl;
dCcD_Sph mCollision;
EffectsStruct mEffects;
m3d::anmTexSrt_c mAnm;
mAng mStartingOffset;
};
#endif
+1 -1
View File
@@ -20,7 +20,7 @@ public:
public:
/* 80050980 */ static void resetFlags();
/* 800509a0 */ static bool isActorPlayer(dBase_c &);
/* 800509a0 */ bool isActorPlayer();
/* 800509e0 */ static void initLoader();
/* 80050a00 */ static dBase_c *createBase(ProfileName, dBase_c *, u32, u8);
/* 80050a10 */ static dBase_c *createRoot(ProfileName, u32, u8);
+9
View File
@@ -2,6 +2,7 @@
#define M_ANGLE_H
#include <common.h>
#include <nw4r/math/math_triangular.h>
struct mAng {
mAng() {}
@@ -12,6 +13,14 @@ struct mAng {
}
s32 step(s16 target, s32 steps, s16 max, s16 min);
inline f32 sin() const {
return nw4r::math::SinIdx(*this);
}
inline f32 cos() const {
return nw4r::math::CosIdx(*this);
}
s16 mVal;
};
+5
View File
@@ -61,6 +61,11 @@ public:
return (Vec *)&x;
}
/// @brief Vec cast operator.
operator Vec() const {
return *(Vec *)&x;
}
operator EGG::Vector3f *() {
return (EGG::Vector3f *)&x;
}
+1
View File
@@ -1,6 +1,7 @@
#ifndef NW4R_MATH_TRIANGULAR_H
#define NW4R_MATH_TRIANGULAR_H
#include <MSL_C/math.h>
#include <nw4r/math/math_arithmetic.h>
#include <nw4r/types_nw4r.h>
#define NW4R_MATH_PI M_PI
+1
View File
@@ -7,6 +7,7 @@ extern "C" {
#endif
void PSMTXMultVec(const Mtx, const Vec *, Vec *);
void PSMTXMultVecSR(const Mtx, const Vec *, Vec *);
#ifdef __cplusplus
}
+1
View File
@@ -7,6 +7,7 @@ extern "C" {
#endif
void PSVECAdd(const Vec *, const Vec *, Vec *);
void PSVECSubtract(const Vec *, const Vec *, Vec *);
void PSVECScale(const Vec *, Vec *, f32);
void PSVECNormalize(const Vec *, Vec *);
f32 PSVECMag(const Vec *);
+16
View File
@@ -0,0 +1,16 @@
#ifndef ATTENTION_H
#define ATTENTION_H
#include <common.h>
class dAcBase_c;
class dAttention_c {
public:
static dAttention_c *sInstance;
void addTarget(dAcBase_c *target, s32, f32, f32, f32);
void addTarget(dAcBase_c *target, s32, f32, f32, f32, f32);
};
#endif
+519
View File
@@ -0,0 +1,519 @@
#ifndef TOSORT_D_CC_D_H
#define TOSORT_D_CC_D_H
#include <d/a/d_a_base.h>
#include <f/f_base_id.h>
#include <m/m_mtx.h>
#include <m/m_vec.h>
#include <nw4r/math/math_types.h>
#include <toBeSorted/cc/d_cc_m3d_g_cyl.h>
#include <toBeSorted/cc/d_cc_m3d_g_sph.h>
// Largely modeled off
// https://github.com/zeldaret/tp/blob/main/include/SSystem/SComponent/c_cc_d.h
// https://github.com/zeldaret/tp/blob/main/include/d/cc/d_cc_d.h
// - the SComponent/d split seems to not exist anymore in SS, so we'll just
// go with the d names for this merger of the two
class dCcD_DivideInfo {
private:
/* 0x00 */ u32 mXDivInfo;
/* 0x04 */ u32 mYDivInfo;
/* 0x08 */ u32 mZDivInfo;
/* 0x0C vtable */
public:
/* 80328120 */ dCcD_DivideInfo();
/* 80328130 */ virtual ~dCcD_DivideInfo();
// void Set(u32, u32, u32);
// bool Chk(dCcD_DivideInfo const &) const;
}; // Size = 0x10
// This Aabb type really could be anything
struct Aabb {
mVec3_c mMin;
mVec3_c mMax;
void Set(mVec3_c const &a, mVec3_c const &b) {
mMin = a;
mMax = b;
}
}; // Size = 0x18
class dCcD_DivideArea : public Aabb {
private:
/* 0x18 */ bool mXDiffIsZero;
/* 0x1C */ f32 mScaledXDiff;
/* 0x20 */ f32 mInvScaledXDiff;
/* 0x24 */ bool mYDiffIsZero;
/* 0x28 */ f32 mScaledYDiff;
/* 0x2C */ f32 mInvScaledYDiff;
/* 0x30 */ bool mZDiffIsZero;
/* 0x34 */ f32 mScaledZDiff;
/* 0x38 */ f32 mInvScaledZDiff;
public:
/* vt at 0x3C */
dCcD_DivideArea();
virtual ~dCcD_DivideArea();
/* 803281c0 */ void SetArea(Aabb const &);
/* 803282d0 */ void CalcDivideInfo(dCcD_DivideInfo *, Aabb const &, u32);
/* 80328470 */ void CalcDivideInfoOverArea(dCcD_DivideInfo *, Aabb const &);
}; // Size = 0x40
class dCcD_GAtTgCoCommonBase {
protected:
/* 0x00 */ u32 field_0x00;
/* 0x04 */ s8 mEffCounter;
/* 0x08 */ dAcRef_c<dAcBase_c> mActor;
/* 0x14 */ u32 field_0x14;
public:
dCcD_GAtTgCoCommonBase();
virtual ~dCcD_GAtTgCoCommonBase();
void resetEffCounter() {
mEffCounter = 0;
}
void resetField0x14() {
field_0x14 = 0;
}
void decreaseCount();
void unlink();
dAcBase_c *getActor();
void setActor(dAcBase_c *);
};
struct dCcD_SrcGAtTgCoCommonBase {
/* 0x0 */ u32 mGFlag;
}; // Size: 0x4
struct dCcD_SrcGObjAt {
/* 0x00 */ dCcD_SrcGAtTgCoCommonBase base;
/* 0x04 */ u32 field_0x04;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ u8 mSe; // Sound Effect ID
/* 0x0D */ u8 mHitMark; // Hit Mark particle ID
/* 0x0E */ u8 mSpl;
/* 0x0F */ u8 mMtrl;
/* 0x10 */ u16 field_0x10;
/* 0x12 */ s16 field_0x12;
};
struct dCcD_SrcGObjTg {
/* 0x00 */ dCcD_SrcGAtTgCoCommonBase base;
/* 0x04 */ u32 field_0x04;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ u16 field_0x0C;
/* 0x0E */ u16 field_0x0E;
};
struct dCcD_SrcGObjCo {
/* 0x0 */ dCcD_SrcGAtTgCoCommonBase mBase;
};
struct dCcD_SrcGObjInf {
/* 0x00 */ dCcD_SrcGObjAt mGObjAt;
/* 0x14 */ dCcD_SrcGObjTg mGObjTg;
/* 0x24 */ dCcD_SrcGObjCo mGObjCo;
};
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
private:
/* 0x1C */ dCcD_SrcGObjAt mSrc;
/* 0x30 */ mVec3_c mHitPos;
/* 0x3C */ mVec3_c mVec;
/* 0x48 */ mVec3_c mRVec;
/* 0x54 */ u8 field_0x4C[0x58 - 0x54];
/* 0x58 */ u32 field_0x58;
public:
dCcD_GObjAt();
virtual ~dCcD_GObjAt();
void clearFlag() {
mSrc.field_0x04 = mSrc.field_0x04 & 0xFFFFFFFE;
}
mVec3_c *GetHitPosP() {
return &mHitPos;
}
void SetSomeVec(const mVec3_c &p) {
mVec = p;
}
mVec3_c *GetSomeVec() {
return &mVec;
}
void init(const dCcD_SrcGObjAt *);
void setSomeAtFlags(u32 flags);
void adjustHitPos(f32 dx, f32 dz);
};
class dCcD_GObjTg : public dCcD_GAtTgCoCommonBase {
private:
/* 0x1C */ dCcD_SrcGObjTg mSrc;
/* 0x2C */ u8 field_0x2C[0x38 - 0x2C];
/* 0x38 */ mVec3_c mHitPos;
/* 0x44 */ u32 field_0x44;
/* 0x48 */ u16 field_0x48;
/* 0x4A */ u8 field_0x4A;
/* 0x4B */ u8 field_0x4B;
/* 0x4C */ u32 field_0x4C;
/* 0x50 */ u32 field_0x50;
/* 0x54 */ u32 field_0x54;
/* 0x58 */ u8 field_0x58[0x6C - 0x58];
/* 0x6C */ mVec3_c field_0x6C;
/* 0x78 */ u32 field_0x78;
public:
dCcD_GObjTg();
virtual ~dCcD_GObjTg();
void clearFlag() {
mSrc.field_0x04 = mSrc.field_0x04 & 0xFFFFFFFE;
}
void setFlag(u32 f) {
mSrc.field_0x04 |= f;
}
void set0x4C(u32 val) {
field_0x4C = val;
}
void init(const dCcD_SrcGObjTg *);
void adjustHitPos(f32 dx, f32 dz);
};
class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase {
private:
/* 0x1C */ dCcD_SrcGObjCo mSrc;
/* 0x20 */ u32 field_0x20;
/* 0x24 */ u16 field_0x24;
/* 0x28 */ u32 field_0x28;
public:
dCcD_GObjCo();
virtual ~dCcD_GObjCo();
void clearFlag() {
mSrc.mBase.mGFlag = mSrc.mBase.mGFlag & 0xFFFFFFFE;
}
void setFlag(u32 f) {
mSrc.mBase.mGFlag |= f;
}
void init(const dCcD_SrcGObjCo *);
void setSomeAtFlags(u32 flags);
void adjustHitPos(f32 dx, f32 dz);
void SetGFlag(u32 flag) {
mSrc.mBase.mGFlag = flag;
}
};
class dCcD_ShapeAttr {
public:
/* 0x00 */ u8 UNK_0x00[0x18 - 0x00];
/* 0x18 */ dCcD_DivideInfo field_0x18;
dCcD_ShapeAttr();
/* vt 0x08 */ virtual ~dCcD_ShapeAttr();
/* vt 0x0C */ virtual void dCcD_ShapeAttr_0x0C();
/* vt 0x10 */ virtual void dCcD_ShapeAttr_0x10();
/* vt 0x14 */ virtual void dCcD_ShapeAttr_0x14() = 0;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x18() = 0;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x1C() = 0;
/* vt 0x20 */ virtual void dCcD_ShapeAttr_0x20() = 0;
/* vt 0x24 */ virtual void dCcD_ShapeAttr_0x24() = 0;
/* vt 0x28 */ virtual void dCcD_ShapeAttr_0x28(); // 0x80329110
/* vt 0x2C */ virtual void dCcD_ShapeAttr_0x2C() = 0;
/* vt 0x30 */ virtual void dCcD_ShapeAttr_0x30() = 0;
/* vt 0x34 */ virtual void dCcD_ShapeAttr_0x34() = 0;
/* vt 0x38 */ virtual void dCcD_ShapeAttr_0x38() = 0;
/* vt 0x3C */ virtual void dCcD_ShapeAttr_0x3C() = 0;
/* vt 0x40 */ virtual mVec3_c *getVirtualCenter(); // 0x80329120
/* vt 0x44 */ virtual void dCcD_ShapeAttr_0x44() = 0;
/* vt 0x48 */ virtual void dCcD_ShapeAttr_0x48() = 0;
/* vt 0x4C */ virtual void getShapeAccess(); // 0x80329090
/* vt 0x50 */ virtual void dCcD_ShapeAttr_0x50() = 0;
/* vt 0x54 */ virtual void dCcD_ShapeAttr_0x54(); // 0x803290F0
/* vt 0x58 */ virtual void dCcD_ShapeAttr_0x58() = 0;
static mVec3_c m_virtual_center;
};
// This is in dAcObjBase_c @ 0x1c0
struct UnkCCDStruct {
u32 field_0x00;
u32 field_0x04;
u32 field_0x08;
u32 field_0x0C;
/* 0x10 */ mVec3_c field_0x10;
/* 0x1C */ mVec3_c field_0x1C;
/* 0x28 */ mVec3_c posIncrements;
dAcBase_c *field_0x34;
s32 field_0x38;
UnkCCDStruct(dAcBase_c *);
void postExecute();
void reset();
fBaseID_e getId();
u32 getSomething(int);
void setField0x38ToMagicValue() {
field_0x38 = 0xD;
}
};
// Object Info
class dCcD_GObjInf {
protected:
/* 0x000 */ dCcD_GObjAt mGObjAt;
/* 0x05C */ dCcD_GObjTg mGObjTg;
/* 0x0D8 */ dCcD_GObjCo mGObjCo;
/* 0x104 */ UnkCCDStruct *field_0x104;
/* 0x108 */ u32 field_0x108;
public:
dCcD_GObjInf();
/* vt 0x08 */ virtual ~dCcD_GObjInf();
/* vt 0x0C */ virtual void *dCcD_GObjInf_0x0C() = 0;
/* vt 0x10 */ virtual void dCcD_GObjInf_0x10(); // 0x80328d30
void clear();
void init(const dCcD_SrcGObjInf &src);
static bool weirdConditionCheck(dAcBase_c *ac, u32);
inline void initUnk(UnkCCDStruct &src) {
field_0x104 = &src;
}
inline void clearCoFlag() {
mGObjCo.clearFlag();
}
void setTgCoFlag(u32 f) {
mGObjTg.setFlag(f);
mGObjCo.setFlag(f);
}
inline void setSomeDefendValue(u32 val) {
mGObjTg.set0x4C(val);
}
inline void setAtVec(const mVec3_c &p) {
mGObjAt.SetSomeVec(p);
}
inline mVec3_c *getAtVec() {
return mGObjAt.GetSomeVec();
}
void ResetAtHit();
void ResetTgHit();
void ResetCoHit();
mVec3_c *GetAtHitPosP();
mVec3_c *GetAtHitPosP2();
dAcBase_c *GetAtActor();
dAcBase_c *GetTgActor();
dAcBase_c *GetCoActor();
void adjustHitPos(f32 dx, f32 dz);
};
struct dCcD_SrcCylAttr {
public:
/* 0x00 */ f32 mRadius;
/* 0x04 */ f32 mHeight;
}; // Size = 0x8
struct dCcD_SrcSphAttr {
/* 0x00 */ f32 mRadius;
}; // Size = 0x4
class cM3dGAabb {
public:
/* 0x00 */ mMtx_c mMtx1;
/* 0x30 */ mMtx_c mMtx2;
/* 0x60 */ mVec3_c mMin;
/* 0x6C */ mVec3_c mMax;
/* 0x78 */ u8 field_0x78[0xB8 - 0x78];
/* 0xB8 */ mVec3_c mVirtualCenter;
/* 0xC4 */ u32 field_0xC4;
cM3dGAabb();
/* vt 0xC8 */
virtual ~cM3dGAabb() {}
void setWithYRot(const mVec3_c &translation, const mAng &rot);
void setMinMax(const mVec3_c &min, const mVec3_c &max);
};
struct dCcD_SrcAabbAttr {
/* 0x00 */ f32 minX, minY, minZ, maxX, maxY, maxZ;
}; // Size = 0x18
struct dCcD_SrcUnk1Attr {};
class cM3dGUnk1 {
public:
/* 0x00 */ mVec3_c field_0x00;
/* 0x0C */ mVec3_c field_0x0C;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1C;
/* 0x20 */ u8 field_0x20;
/* 0x24 */ u32 field_0x24;
/* 0x28 */ mVec3_c mVirtualCenter;
cM3dGUnk1();
};
class cM3dGUnk2 {
public:
};
// Unk1
class dCcD_ShapeAttr1 : public dCcD_ShapeAttr, public cM3dGUnk1 {
public:
dCcD_ShapeAttr1();
void init(const dCcD_SrcUnk1Attr &);
/* vt 0x08 */ virtual ~dCcD_ShapeAttr1();
/* vt 0x0C */ virtual void dCcD_ShapeAttr_0x0C() override;
/* vt 0x10 */ virtual void dCcD_ShapeAttr_0x10() override;
/* vt 0x14 */ virtual void dCcD_ShapeAttr_0x14() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x18() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x1C() override;
/* vt 0x20 */ virtual void dCcD_ShapeAttr_0x20() override;
/* vt 0x24 */ virtual void dCcD_ShapeAttr_0x24() override;
/* vt 0x28 */ virtual void dCcD_ShapeAttr_0x28() override;
/* vt 0x2C */ virtual void dCcD_ShapeAttr_0x2C() override;
/* vt 0x30 */ virtual void dCcD_ShapeAttr_0x30() override;
/* vt 0x34 */ virtual void dCcD_ShapeAttr_0x34() override;
/* vt 0x38 */ virtual void dCcD_ShapeAttr_0x38() override;
/* vt 0x3C */ virtual void dCcD_ShapeAttr_0x3C() override;
/* vt 0x40 */ virtual mVec3_c *getVirtualCenter() override;
/* vt 0x44 */ virtual void dCcD_ShapeAttr_0x44() override;
/* vt 0x48 */ virtual void dCcD_ShapeAttr_0x48() override;
/* vt 0x4C */ virtual void getShapeAccess() override;
/* vt 0x50 */ virtual void dCcD_ShapeAttr_0x50() override;
// /* vt 0x54 */ virtual void dCcD_ShapeAttr_0x54() override;
/* vt 0x58 */ virtual void dCcD_ShapeAttr_0x58() override;
};
// Unk1
class dCcD_ShapeAttr2 : public dCcD_ShapeAttr, public cM3dGUnk2 {
public:
dCcD_ShapeAttr2();
/* vt 0x08 */ virtual ~dCcD_ShapeAttr2();
/* vt 0x0C */ virtual void dCcD_ShapeAttr_0x0C() override;
/* vt 0x10 */ virtual void dCcD_ShapeAttr_0x10() override;
/* vt 0x14 */ virtual void dCcD_ShapeAttr_0x14() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x18() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x1C() override;
/* vt 0x20 */ virtual void dCcD_ShapeAttr_0x20() override;
/* vt 0x24 */ virtual void dCcD_ShapeAttr_0x24() override;
/* vt 0x28 */ virtual void dCcD_ShapeAttr_0x28() override;
/* vt 0x2C */ virtual void dCcD_ShapeAttr_0x2C() override;
/* vt 0x30 */ virtual void dCcD_ShapeAttr_0x30() override;
/* vt 0x34 */ virtual void dCcD_ShapeAttr_0x34() override;
/* vt 0x38 */ virtual void dCcD_ShapeAttr_0x38() override;
/* vt 0x3C */ virtual void dCcD_ShapeAttr_0x3C() override;
// /* vt 0x40 */ virtual mVec3_c *getVirtualCenter() override;
/* vt 0x44 */ virtual void dCcD_ShapeAttr_0x44() override;
/* vt 0x48 */ virtual void dCcD_ShapeAttr_0x48() override;
/* vt 0x4C */ virtual void getShapeAccess() override;
/* vt 0x50 */ virtual void dCcD_ShapeAttr_0x50() override;
// /* vt 0x54 */ virtual void dCcD_ShapeAttr_0x54() override;
/* vt 0x58 */ virtual void dCcD_ShapeAttr_0x58() override;
};
// Aabb
class dCcD_ShapeAttr5 : public dCcD_ShapeAttr, public cM3dGAabb {
public:
dCcD_ShapeAttr5();
void init(const dCcD_SrcAabbAttr &);
/* vt 0x08 */ virtual ~dCcD_ShapeAttr5();
/* vt 0x0C */ virtual void dCcD_ShapeAttr_0x0C() override;
/* vt 0x10 */ virtual void dCcD_ShapeAttr_0x10() override;
/* vt 0x14 */ virtual void dCcD_ShapeAttr_0x14() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x18() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x1C() override;
/* vt 0x20 */ virtual void dCcD_ShapeAttr_0x20() override;
/* vt 0x24 */ virtual void dCcD_ShapeAttr_0x24() override;
/* vt 0x28 */ virtual void dCcD_ShapeAttr_0x28() override;
/* vt 0x2C */ virtual void dCcD_ShapeAttr_0x2C() override;
/* vt 0x30 */ virtual void dCcD_ShapeAttr_0x30() override;
/* vt 0x34 */ virtual void dCcD_ShapeAttr_0x34() override;
/* vt 0x38 */ virtual void dCcD_ShapeAttr_0x38() override;
/* vt 0x3C */ virtual void dCcD_ShapeAttr_0x3C() override;
/* vt 0x40 */ virtual mVec3_c *getVirtualCenter() override;
/* vt 0x44 */ virtual void dCcD_ShapeAttr_0x44() override;
/* vt 0x48 */ virtual void dCcD_ShapeAttr_0x48() override;
// /* vt 0x4C */ virtual void getShapeAccess() override;
/* vt 0x50 */ virtual void dCcD_ShapeAttr_0x50() override;
// /* vt 0x54 */ virtual void dCcD_ShapeAttr_0x54() override;
/* vt 0x58 */ virtual void dCcD_ShapeAttr_0x58() override;
};
// Cyl
class dCcD_ShapeAttr3 : public dCcD_ShapeAttr, public cM3dGCyl {
public:
dCcD_ShapeAttr3();
void init(const dCcD_SrcCylAttr &);
/* vt 0x08 */ virtual ~dCcD_ShapeAttr3();
/* vt 0x0C */ virtual void dCcD_ShapeAttr_0x0C() override;
/* vt 0x10 */ virtual void dCcD_ShapeAttr_0x10() override;
/* vt 0x14 */ virtual void dCcD_ShapeAttr_0x14() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x18() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x1C() override;
/* vt 0x20 */ virtual void dCcD_ShapeAttr_0x20() override;
/* vt 0x24 */ virtual void dCcD_ShapeAttr_0x24() override;
/* vt 0x28 */ virtual void dCcD_ShapeAttr_0x28() override;
/* vt 0x2C */ virtual void dCcD_ShapeAttr_0x2C() override;
/* vt 0x30 */ virtual void dCcD_ShapeAttr_0x30() override;
/* vt 0x34 */ virtual void dCcD_ShapeAttr_0x34() override;
/* vt 0x38 */ virtual void dCcD_ShapeAttr_0x38() override;
/* vt 0x3C */ virtual void dCcD_ShapeAttr_0x3C() override;
/* vt 0x40 */ virtual mVec3_c *getVirtualCenter() override;
/* vt 0x44 */ virtual void dCcD_ShapeAttr_0x44() override;
/* vt 0x48 */ virtual void dCcD_ShapeAttr_0x48() override;
/* vt 0x4C */ virtual void getShapeAccess() override;
/* vt 0x50 */ virtual void dCcD_ShapeAttr_0x50() override;
// /* vt 0x54 */ virtual void dCcD_ShapeAttr_0x54() override;
/* vt 0x58 */ virtual void dCcD_ShapeAttr_0x58() override;
};
// Sph
class dCcD_ShapeAttr4 : public dCcD_ShapeAttr, public cM3dGSph {
public:
dCcD_ShapeAttr4();
void init(const dCcD_SrcSphAttr &);
/* vt 0x08 */ virtual ~dCcD_ShapeAttr4();
/* vt 0x0C */ virtual void dCcD_ShapeAttr_0x0C() override;
/* vt 0x10 */ virtual void dCcD_ShapeAttr_0x10() override;
/* vt 0x14 */ virtual void dCcD_ShapeAttr_0x14() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x18() override;
/* vt 0x18 */ virtual void dCcD_ShapeAttr_0x1C() override;
/* vt 0x20 */ virtual void dCcD_ShapeAttr_0x20() override;
/* vt 0x24 */ virtual void dCcD_ShapeAttr_0x24() override;
/* vt 0x28 */ virtual void dCcD_ShapeAttr_0x28() override;
/* vt 0x2C */ virtual void dCcD_ShapeAttr_0x2C() override;
/* vt 0x30 */ virtual void dCcD_ShapeAttr_0x30() override;
/* vt 0x34 */ virtual void dCcD_ShapeAttr_0x34() override;
/* vt 0x38 */ virtual void dCcD_ShapeAttr_0x38() override;
/* vt 0x3C */ virtual void dCcD_ShapeAttr_0x3C() override;
/* vt 0x40 */ virtual mVec3_c *getVirtualCenter() override;
/* vt 0x44 */ virtual void dCcD_ShapeAttr_0x44() override;
/* vt 0x48 */ virtual void dCcD_ShapeAttr_0x48() override;
/* vt 0x4C */ virtual void getShapeAccess() override;
/* vt 0x50 */ virtual void dCcD_ShapeAttr_0x50() override;
/* vt 0x54 */ virtual void dCcD_ShapeAttr_0x54() override;
/* vt 0x58 */ virtual void dCcD_ShapeAttr_0x58() override;
};
#endif
+7
View File
@@ -0,0 +1,7 @@
#ifndef TOSORT_D_CC_M3D_H
#define TOSORT_D_CC_M3D_H
#endif
+24
View File
@@ -0,0 +1,24 @@
#ifndef TO_SORT_D_CC_M3D_G_CYL_H
#define TO_SORT_D_CC_M3D_G_CYL_H
#include <m/m_vec.h>
class cM3dGCyl {
public:
/* 0x00 */ mVec3_c mCenter;
/* 0x0C */ f32 mRadius;
/* 0x10 */ f32 mHeight;
cM3dGCyl() {}
void setC(const mVec3_c &, f32 radius, f32 height);
void setC(const mVec3_c &);
void setH(f32);
void setR(f32);
const mVec3_c &GetC() const {
return mCenter;
}
}; // Size = 0x14
#endif
+23
View File
@@ -0,0 +1,23 @@
#ifndef TO_SORT_D_CC_M3D_G_SPH_H
#define TO_SORT_D_CC_M3D_G_SPH_H
#include <m/m_vec.h>
class cM3dGSph {
public:
/* 0x00 */ mVec3_c mCenter;
/* 0x0C */ f32 mRadius;
/* 0x10 */ f32 field_0x10;
cM3dGSph();
void setR(f32);
void set(const mVec3_c &, f32);
void setC(const mVec3_c &);
void setC(f32, f32, f32);
const mVec3_c &GetC() const {
return mCenter;
}
}; // Size = 0x14
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef TOSORT_D_CC_MGR_H
#define TOSORT_D_CC_MGR_H
#include <toBeSorted/cc/d_cc_d.h>
class ColliderManager {
public:
static ColliderManager *getColliderManager();
void addCollider(dCcD_GObjInf *collider);
};
#endif
@@ -0,0 +1,89 @@
#ifndef D_CC_SHAPE_COLLIDERS_H
#define D_CC_SHAPE_COLLIDERS_H
#include <m/m_vec.h>
#include <toBeSorted/cc/d_cc_d.h>
struct dCcD_SrcUnk {
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
/* 0x44 */ dCcD_SrcUnk1Attr mUnk1Inf;
}; // Size: ???
class dCcD_Unk1 : public dCcD_GObjInf, public dCcD_ShapeAttr1 {
public:
dCcD_Unk1();
virtual ~dCcD_Unk1();
virtual void *dCcD_GObjInf_0x0C() override;
void init(const dCcD_SrcUnk &src);
void unknownCalc();
};
struct dCcD_SrcEmpty {
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
}; // Size: 0x40
// Not sure what this is, the init function
// doesn't call the shape initializer
class dCcD_Empty : public dCcD_GObjInf, public dCcD_ShapeAttr2 {
public:
dCcD_Empty();
virtual ~dCcD_Empty();
virtual void *dCcD_GObjInf_0x0C() override;
void init(const dCcD_SrcEmpty &src);
};
struct dCcD_SrcCyl {
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
/* 0x40 */ dCcD_SrcCylAttr mCylAttr;
}; // Size: 0x44
// Cylinder
class dCcD_Cyl : public dCcD_GObjInf, public dCcD_ShapeAttr3 {
public:
dCcD_Cyl();
virtual ~dCcD_Cyl();
virtual void *dCcD_GObjInf_0x0C() override;
void init(const dCcD_SrcCyl &src);
void setCenter(const mVec3_c &);
void moveCenter(const mVec3_c &);
};
struct dCcD_SrcSph {
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
/* 0x40 */ dCcD_SrcSphAttr mSphAttr;
}; // Size: 0x44
// Sphere
class dCcD_Sph : public dCcD_GObjInf, public dCcD_ShapeAttr4 {
public:
dCcD_Sph();
virtual ~dCcD_Sph();
virtual void *dCcD_GObjInf_0x0C() override;
void init(const dCcD_SrcSph &src);
void setCenter(const mVec3_c &);
void moveCenter(const mVec3_c &);
void setCenterAndAtVec(const mVec3_c &, const mVec3_c &);
};
struct dCcD_SrcAabb {
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
/* 0x40 */ dCcD_SrcAabbAttr mAabbAttr;
}; // Size: 0x58
class dCcD_Aabb : public dCcD_GObjInf, public dCcD_ShapeAttr5 {
public:
dCcD_Aabb();
virtual ~dCcD_Aabb();
virtual void *dCcD_GObjInf_0x0C() override;
void init(const dCcD_SrcAabb &src);
};
#endif
+28
View File
@@ -0,0 +1,28 @@
#ifndef EFFECTS_STRUCT_H
#define EFFECTS_STRUCT_H
#include <common.h>
#include <d/a/d_a_base.h>
class EffectsStruct {
private:
u8 field_0x00[0x1C - 0x00];
public:
// vt at 0x1C
EffectsStruct();
EffectsStruct(dAcBase_c *);
virtual ~EffectsStruct();
inline void init(dAcBase_c *owner) {
mpOwner = owner;
}
private:
u8 field_0x20[0x28 - 0x20];
/* 0x28 */ dAcBase_c *mpOwner;
u8 field_0x2C[0x34 - 0x2C];
};
#endif
+16
View File
@@ -0,0 +1,16 @@
#ifndef EVENT_MANAGER_H
#define EVENT_MANAGER_H
#include <toBeSorted/event.h>
class dAcBase_c;
class EventManager {
public:
static bool isInEvent(dAcBase_c *actor, const char *eventName);
static bool alsoSetAsCurrentEvent(dAcBase_c *actor, Event *event, void *unknown);
static EventManager *sInstance;
};
#endif
+2 -1
View File
@@ -7,7 +7,7 @@ struct SpawnInfo {
/* 0x00 */ char stageName[32]; // Probably SizedString<32>
/* 0x20 */ s16 transitionFadeFrames;
/* 0x22 */ s8 room;
/* 0x23 */ s8 layer;
/* 0x23 */ u8 layer;
/* 0x24 */ s8 entrance;
/* 0x25 */ s8 night;
/* 0x26 */ s8 trial;
@@ -26,6 +26,7 @@ public:
static ScGame *sInstance;
static bool isCurrentStage(const char *stageName);
void triggerExit(s32 room, u8 exitIndex, s32 forcedNight = 2, s32 forcedTrial = 2);
};
#endif
+1 -1
View File
@@ -48,7 +48,7 @@ int dAcOPoolCock_c::actorExecute() {
mStateMgr.executeState();
calcVelocity();
position += velocity;
position += posIncrements;
position += mCCdStruct.posIncrements;
updateMatrix();
mMtx_c mdl1Transform;
mMtx_c mdl2Transform;
+1 -1
View File
@@ -37,7 +37,7 @@ int dAcOring_c::actorExecute() {
mStateMgr.executeState();
calcVelocity();
position += velocity;
position += posIncrements;
position += mCCdStruct.posIncrements;
updateMatrix();
mModel.setLocalMtx(worldMatrix);
return SUCCEEDED;
+88
View File
@@ -0,0 +1,88 @@
#include <d/a/obj/d_a_obj_spike.h>
#include <toBeSorted/cc/d_cc_mgr.h>
SPECIAL_ACTOR_PROFILE(OBJ_SPIKE, dAcOspike_c, fProfile::OBJ_SPIKE, 0x1D9, 0, 2);
// clang-format off
dCcD_SrcAabb dAcOspike_c::sCcSrc = {
{{{0x400}, 0x2003F, 0, 1, 0, 0, 0, 0, 0},
{{0xFEB77DFF}, 0x111, 0x60407, 0, 0},
{0}},
{-1.0f, -246.0f, -472.0f, 73.0f, 255.0f, 482.0f}};
// clang-format on
const mVec3_c dAcOspike_c::sVec1 = mVec3_c(-1.0f, -246.0f, -472.0f);
const mVec3_c dAcOspike_c::sVec2 = mVec3_c(73.0f, 255.0f, 482.0f);
STATE_DEFINE(dAcOspike_c, Wait);
bool dAcOspike_c::createHeap() {
mResFile = getOarcResFile("SpikeD101");
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("SpikeD101");
TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120));
return true;
}
int dAcOspike_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOspike_c::m_allocator", 0x20)) {
return FAILED;
}
mCCdStruct.setField0x38ToMagicValue();
mCollision.init(sCcSrc);
mCollision.initUnk(mCCdStruct);
updateMatrix();
mMdl.setLocalMtx(worldMatrix);
mVec3_c tmp;
PSMTXMultVecSR(worldMatrix.m, mVec3_c::Ex, tmp);
mCollision.setAtVec(tmp);
mMtx_c mtx;
mtx.XrotS(rotation.x);
mtx.ZrotM(rotation.z);
mVec3_c tmp2, tmp3;
PSMTXMultVecSR(mtx.m, sVec1, tmp2);
PSMTXMultVecSR(mtx.m, sVec2, tmp3);
if (tmp2.x > tmp3.x) {
f32 copy = tmp2.x;
tmp2.x = tmp3.x;
tmp3.x = copy;
}
if (tmp2.y > tmp3.y) {
f32 copy = tmp2.y;
tmp2.y = tmp3.y;
tmp3.y = copy;
}
if (tmp2.z > tmp3.z) {
f32 copy = tmp2.z;
tmp2.z = tmp3.z;
tmp3.z = copy;
}
mCollision.setMinMax(tmp2, tmp3);
mStateMgr.changeState(StateID_Wait);
setBoundingBox(mVec3_c(-10.0f, -250.0f, -480.0f), mVec3_c(80.0f, 260.0f, 490.0f));
return SUCCEEDED;
}
int dAcOspike_c::doDelete() {
return 1;
}
int dAcOspike_c::actorExecute() {
mStateMgr.executeState();
mCollision.setWithYRot(position, rotation.y);
ColliderManager::getColliderManager()->addCollider(&mCollision);
return 1;
}
int dAcOspike_c::draw() {
drawModelType1(&mMdl);
return 1;
}
void dAcOspike_c::initializeState_Wait() {}
void dAcOspike_c::executeState_Wait() {}
void dAcOspike_c::finalizeState_Wait() {}
@@ -0,0 +1,139 @@
#include <d/a/obj/d_a_obj_toD3_stone_figure.h>
#include <toBeSorted/attention.h>
#include <toBeSorted/cc/d_cc_mgr.h>
#include <toBeSorted/event.h>
#include <toBeSorted/event_manager.h>
#include <toBeSorted/scgame.h>
#include <toBeSorted/item_story_flag_manager.h>
SPECIAL_ACTOR_PROFILE(OBJ_TOD3_STONE, dAcOtoD3StoneFigure_c, fProfile::OBJ_TOD3_STONE, 0x1B3, 0, 0);
STATE_DEFINE(dAcOtoD3StoneFigure_c, OneEye);
STATE_DEFINE(dAcOtoD3StoneFigure_c, Eyes);
f32 dAcOtoD3StoneFigure_c::sRadius = 85.0f;
f32 dAcOtoD3StoneFigure_c::sHeight = 290.0f;
// clang-format off
dCcD_SrcCyl dAcOtoD3StoneFigure_c::sCcSrc = {
{{{0}, 0, 0, 0, 0, 0, 0, 0, 0},
{{0xFEB77DFF}, 0x1000111, 0x60407, 0, 0},
{0xE9}},
{dAcOtoD3StoneFigure_c::sRadius, dAcOtoD3StoneFigure_c::sHeight}
};
// clang-format on
bool dAcOtoD3StoneFigure_c::createHeap() {
const char *modelName = getModelName();
mResFile = getOarcResFile("BirdObjD3");
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(modelName);
TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120));
return true;
}
int dAcOtoD3StoneFigure_c::create() {
mIsSkyKeepAlreadyOpen = isStoneOfTrialsPlaced();
mExitId = params & 0xFF;
updateMatrix();
if (!initAllocatorWork1Heap(-1, "dAcOtoD3StoneFigure_c::m_allocator", 0x20)) {
return FAILED;
}
mMdl.setLocalMtx(worldMatrix);
mCCdStruct.setField0x38ToMagicValue();
mCollision.init(sCcSrc);
mCollision.initUnk(mCCdStruct);
int zero = 0;
mCollision.setC(position);
mCollision.setR(dAcOtoD3StoneFigure_c::sRadius + zero);
mCollision.setH(dAcOtoD3StoneFigure_c::sHeight + zero);
ColliderManager::getColliderManager()->addCollider(&mCollision);
// mCollision.clearCoFlag();
mCollision.setTgCoFlag(1);
// ???
f32 a, b, c;
c = position.z;
b = getYPos();
b += zero;
a = position.x;
poscopy2.x = a;
poscopy2.y = b;
poscopy2.z = c;
poscopy3.x = a;
poscopy3.y = b;
poscopy3.z = c;
// poscopy3 = poscopy2;
mCollision.setSomeDefendValue(0x2000);
if (!mIsSkyKeepAlreadyOpen) {
mStateMgr.changeState(StateID_OneEye);
} else {
mStateMgr.changeState(StateID_Eyes);
}
return SUCCEEDED;
}
int dAcOtoD3StoneFigure_c::doDelete() {
return 1;
}
int dAcOtoD3StoneFigure_c::actorExecute() {
mStateMgr.executeState();
ColliderManager::getColliderManager()->addCollider(&mCollision);
return 1;
}
int dAcOtoD3StoneFigure_c::draw() {
if (ScGame::currentSpawnInfo.layer != 0x12) {
drawModelType1(&mMdl);
}
return 1;
}
void dAcOtoD3StoneFigure_c::initializeState_OneEye() {
if (ScGame::currentSpawnInfo.night == 1) {
rotation.y.mVal += -0x8000;
updateMatrix();
mMdl.setLocalMtx(worldMatrix);
}
}
void dAcOtoD3StoneFigure_c::executeState_OneEye() {
if (EventManager::isInEvent(this, "D3OpenStart")) {
ScGame::sInstance->triggerExit(roomid, mExitId);
} else {
if (hasStoneOfTrials() && ScGame::currentSpawnInfo.night != 1) {
// These are interaction related
-0.0f;
dAttention_c::sInstance->addTarget(this, 1, 300.0f, 50.0f, -100.0f, 100.0f);
dAttention_c::sInstance->addTarget(this, 1, 200.0f, -100.0f, 100.0f);
}
}
}
void dAcOtoD3StoneFigure_c::finalizeState_OneEye() {}
void dAcOtoD3StoneFigure_c::initializeState_Eyes() {}
void dAcOtoD3StoneFigure_c::executeState_Eyes() {}
void dAcOtoD3StoneFigure_c::finalizeState_Eyes() {}
const char *dAcOtoD3StoneFigure_c::getModelName() const {
return mIsSkyKeepAlreadyOpen ? "BirdObjD3B" : "BirdObjD3A";
}
bool dAcOtoD3StoneFigure_c::isStoneOfTrialsPlaced() const {
return StoryFlagManager::sInstance->getCounterOrFlag(22);
}
void dAcOtoD3StoneFigure_c::doInteraction(s32 arg) {
if (arg == 5) {
Event event = Event("D3OpenStart", 100, 0x100001, nullptr, nullptr);
EventManager::alsoSetAsCurrentEvent(this, &event, nullptr);
}
}
extern "C" s32 fn_80251B70(s32);
bool dAcOtoD3StoneFigure_c::hasStoneOfTrials() const {
return fn_80251B70(0xB4);
}
+81
View File
@@ -0,0 +1,81 @@
#include <c/c_math.h>
#include <d/a/obj/d_a_obj_triforce.h>
#include <m/m_vec.h>
#include <toBeSorted/cc/d_cc_mgr.h>
SPECIAL_ACTOR_PROFILE(OBJ_TRIFORCE, dAcOtriforce_c, fProfile::OBJ_TRIFORCE, 0x15D, 0, 4);
// clang-format off
dCcD_SrcSph dAcOtriforce_c::sCcSrc = {
{{{0}, 0, 0, 0, 0, 0, 0, 0, 0},
{{0xFEB77DFF}, 0x111, 0x60407, 0, 0},
{0xE9}},
{150.0f}};
// clang-format on
const f32 dAcOtriforce_c::sScale = 6.5f;
const f32 dAcOtriforce_c::sAmpNeg = -3.0f;
const u32 dAcOtriforce_c::sStartingOffsetRange = 0x10000;
// const f32 dAcOtriforce_c::sAmpPos = 23.0f;
bool dAcOtriforce_c::createHeap() {
mResFile = getOarcResFile("TriForce");
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("TriForce");
TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x324));
nw4r::g3d::ResAnmTexSrt anm = mResFile.GetResAnmTexSrt("TriForce");
TRY_CREATE(mAnm.create(mdl, anm, &heap_allocator, nullptr, 1));
mMdl.setAnm(mAnm);
return true;
}
int dAcOtriforce_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOtriforce_c::m_allocator", 0x20)) {
return FAILED;
}
mCCdStruct.setField0x38ToMagicValue();
mCollision.init(sCcSrc);
mCollision.initUnk(mCCdStruct);
mCollision.clearCoFlag();
mStartingOffset = cM::rndInt(sStartingOffsetRange);
mEffects.init(this);
mCollision.setSomeDefendValue(0x2000);
updateMatrix();
scale.x = sScale;
scale.y = sScale;
scale.z = sScale;
mMdl.setLocalMtx(worldMatrix);
return SUCCEEDED;
}
int dAcOtriforce_c::doDelete() {
return 1;
}
extern const u16 lbl_8057AB3E;
extern "C" void fn_80029AE0(EffectsStruct *, u16, mMtx_c *, void *, void *);
int dAcOtriforce_c::actorExecute() {
int zero = 0;
mVec3_c offset = mVec3_c::Ey * (mStartingOffset.sin() * getBounceScalar());
position = mStartingPos + offset;
mStartingOffset.mVal += 0x16C;
mCollision.setC(position.x, position.y + 90.0f + zero, position.z);
ColliderManager::getColliderManager()->addCollider(&mCollision);
updateMatrix();
Mtx m;
PSMTXScale(m, scale.x, scale.y, scale.z);
PSMTXConcat(worldMatrix.m, m, worldMatrix.m);
mMdl.setLocalMtx(worldMatrix);
mAnm.play();
fn_80029AE0(&mEffects, lbl_8057AB3E, &worldMatrix, nullptr, nullptr);
return 1;
}
int dAcOtriforce_c::draw() {
drawModelType1(&mMdl);
return 1;
}
+12 -9
View File
@@ -11,7 +11,6 @@ void float_ordering() {
0.01f;
}
int dTgSndAr_c::create() {
scale *= 0.01f;
if (dTgSndMg_c::sInstance == nullptr) {
@@ -34,9 +33,8 @@ int dTgSndAr_c::create() {
if ((base = fManager_c::searchBaseByGroupType(ACTOR, base)) == nullptr) {
break;
}
// This has got to be just a member function
dAcBase_c *ac = static_cast<dAcBase_c *>(base);
if (!dBase_c::isActorPlayer(*ac) && checkPosInArea(ac->position)) {
if (!ac->isActorPlayer() && checkPosInArea(ac->position)) {
ac->setBit_field_0xE8(params & 0xFF);
}
}
@@ -142,26 +140,31 @@ struct UnkStruct {
extern "C" void fn_80337EA0(UnkStruct *);
extern "C" void fn_80337EF0(UnkStruct *, mVec3_c &, mVec3_c &, f32);
extern "C" int fn_8032BFB0(UnkStruct *, EGG::Vector3f &, f32 *, f32 &, int);
extern "C" int cM3d_Len3dSqPntAndSegLine(UnkStruct *, Vec &, Vec *, f32 *, f32 *);
// ???
// Capsule
bool dTgSndAr_c::checkAlg3(const mVec3_c &pos) {
f32 q[4];
UnkStruct unk;
Vec q;
f32 radius = scale.x * 100.0f;
radius = radius * radius;
EGG::Vector3f a = pos;
Vec a = pos;
UnkStruct unk;
fn_80337EA0(&unk);
// Line between b and c
mVec3_c b = *mRail.getPntPosForIndex(0);
mVec3_c c = *mRail.getPntPosForIndex(1);
fn_80337EF0(&unk, b, c, scale.x * 100.0f);
f32 d;
if (fn_8032BFB0(&unk, a, q, d, 0)) {
if (cM3d_Len3dSqPntAndSegLine(&unk, a, &q, &d, nullptr)) {
// At the cylindrical part of the capsule, just check the distance to
// the line
return d < radius;
} else {
// Otherwise check if we are within the spheres around the endpoints
f32 distSq = PSVECSquareDistance(unk.vec, pos);
if (distSq < radius) {
return true;
+2 -2
View File
@@ -4,6 +4,7 @@
#include "f/f_list_nd.h"
#include "m/m_vec.h"
#include "toBeSorted/event.h"
#include "toBeSorted/event_manager.h"
#include "toBeSorted/file_manager.h"
#include "toBeSorted/misc_flag_managers.h"
#include "toBeSorted/scgame.h"
@@ -32,7 +33,6 @@ extern "C" s16 targetAngleX(mVec3_c *, mVec3_c *);
extern "C" bool checkCollision(mVec3_c *pos);
extern "C" s8 collisionCheckGetRoom();
extern "C" dRoom *getRoomByIndex(RoomManager *mgr, s8 roomid);
extern "C" bool alsoSetAsCurrentEvent(dAcBase_c *, Event *, void *);
bool dAcBase_c::createHeap() {
return true;
@@ -547,7 +547,7 @@ void dAcBase_c::unkVirtFunc_0x6C() {}
void dAcBase_c::doInteraction(s32 param) {
if (param == 4 || param == 5 || param == 12) {
Event event = Event("DefaultTalk", 400, 0x100001, nullptr, nullptr);
alsoSetAsCurrentEvent(this, &event, nullptr);
EventManager::alsoSetAsCurrentEvent(this, &event, nullptr);
}
}
+2 -2
View File
@@ -26,7 +26,7 @@ void dAcOswMdlCallback_c::timingB(u32 nodeId, nw4r::g3d::WorldMtxManip *manip, n
}
static bool isPushableBlock(dAcBase_c *actor) {
return dBase_c::isActorPlayer(*actor) || actor->profile_name == fProfile::OBJ_PUSH_BLOCK ||
return actor->isActorPlayer() || actor->profile_name == fProfile::OBJ_PUSH_BLOCK ||
actor->profile_name == fProfile::OBJ_KIBAKO;
}
@@ -34,7 +34,7 @@ void dAcOsw_c::interactCallback(void *unknown, dAcBase_c *actor, dAcObjBase_c *i
if (!isPushableBlock(interactor)) {
return;
}
dAcPy_c *link = dBase_c::isActorPlayer(*interactor) ? static_cast<dAcPy_c *>(interactor) : nullptr;
dAcPy_c *link = interactor->isActorPlayer() ? static_cast<dAcPy_c *>(interactor) : nullptr;
dAcOsw_c *sw = static_cast<dAcOsw_c *>(actor);
// halp
+2 -2
View File
@@ -53,8 +53,8 @@ void dBase_c::resetFlags() {
s_NextExecuteControlFlags = 0;
}
bool dBase_c::isActorPlayer(dBase_c &base) {
return base.profile_name == fProfile::PLAYER;
bool dBase_c::isActorPlayer() {
return profile_name == fProfile::PLAYER;
}
int dBase_c::loadAsyncCallback() {
+395
View File
@@ -0,0 +1,395 @@
#include <d/a/d_a_base.h>
#include <f/f_base_id.h>
#include <m/m_vec.h>
#include <toBeSorted/cc/d_cc_d.h>
inline bool cM3d_IsZero(f32 f);
mVec3_c dCcD_ShapeAttr::m_virtual_center = mVec3_c::Zero;
dCcD_DivideInfo::dCcD_DivideInfo() {}
dCcD_DivideInfo::~dCcD_DivideInfo() {}
dCcD_DivideArea::dCcD_DivideArea() {}
dCcD_DivideArea::~dCcD_DivideArea() {}
void d_cc_d_float_order() {
1.0f / 32.0f;
1.0f;
0.0f;
FLT_EPSILON;
1.0f / 3.0f;
1.0e9f;
-1.0e9f;
-1.0f;
0.5f;
}
// Very certain
void dCcD_DivideArea::SetArea(Aabb const &aab) {
Set(aab.mMin, aab.mMax);
mScaledXDiff = 1.0f / 32.0f * (mMax.x - mMin.x);
mXDiffIsZero = cM3d_IsZero(mScaledXDiff);
if (!mXDiffIsZero) {
mInvScaledXDiff = 1.0f / mScaledXDiff;
}
mScaledYDiff = 1.0f / 32.0f * (mMax.y - mMin.y);
mYDiffIsZero = cM3d_IsZero(mScaledYDiff);
if (!mYDiffIsZero) {
mInvScaledYDiff = 1.0f / mScaledYDiff;
}
mScaledZDiff = 1.0f / 32.0f * (mMax.z - mMin.z);
mZDiffIsZero = cM3d_IsZero(mScaledZDiff);
if (!mZDiffIsZero) {
mInvScaledZDiff = 1.0f / mScaledZDiff;
}
}
inline bool cM3d_IsZero(f32 f) {
return fabsf(f) < FLT_EPSILON;
}
static u32 const l_base[32] = {
0x00000001,
0x00000003,
0x00000007,
0x0000000F,
0x0000001F,
0x0000003F,
0x0000007F,
0x000000FF,
0x000001FF,
0x000003FF,
0x000007FF,
0x00000FFF,
0x00001FFF,
0x00003FFF,
0x00007FFF,
0x0000FFFF,
0x0001FFFF,
0x0003FFFF,
0x0007FFFF,
0x000FFFFF,
0x001FFFFF,
0x003FFFFF,
0x007FFFFF,
0x00FFFFFF,
0x01FFFFFF,
0x03FFFFFF,
0x07FFFFFF,
0x0FFFFFFF,
0x1FFFFFFF,
0x3FFFFFFF,
0x7FFFFFFF,
0xFFFFFFFF,
};
// TODO
UnkCCDStruct::UnkCCDStruct(dAcBase_c *arg) : field_0x00(0), field_0x04(0), field_0x08(0), field_0x0C(0) {
field_0x38 = 0;
field_0x34 = arg;
reset();
}
void UnkCCDStruct::postExecute() {
field_0x04 = field_0x00;
field_0x00 = 0;
field_0x0C = field_0x08;
field_0x08 = 0;
}
void UnkCCDStruct::reset() {
field_0x10 = mVec3_c::Zero;
field_0x1C = mVec3_c::Zero;
posIncrements = mVec3_c::Zero;
}
fBaseID_e UnkCCDStruct::getId() {
if (field_0x34 != nullptr) {
return field_0x34->unique_ID;
}
return (fBaseID_e)0;
}
static u32 const sth[] = {0x4B, 0x5A, 0x64, 0x00};
u32 UnkCCDStruct::getSomething(int arg) {
if (field_0x38 == 0x0D || arg == 0) {
return 0;
}
if (field_0x38 == 0 || arg == 0x0D) {
return 100;
}
if (field_0x38 == arg) {
return 50;
}
if (field_0x38 == 0x0C || arg == 0x01) {
return 0;
}
if (field_0x38 == 1 || arg == 0x0C) {
return 100;
}
arg = arg - field_0x38;
if (arg > 0) {
return sth[(arg <= 3 ? arg : 3) - 1];
} else {
return 100 - sth[(-arg <= 3 ? -arg : 3) - 1];
}
}
dCcD_GAtTgCoCommonBase::dCcD_GAtTgCoCommonBase() : field_0x00(0), field_0x14(0), mEffCounter(0) {}
dCcD_GAtTgCoCommonBase::~dCcD_GAtTgCoCommonBase() {
unlink();
field_0x14 = 0;
unlink();
decreaseCount();
field_0x00 = 0;
}
void dCcD_GAtTgCoCommonBase::unlink() {
mActor.unlink();
}
void dCcD_GAtTgCoCommonBase::setActor(dAcBase_c *actor) {
field_0x14 |= 1;
mActor.link(actor);
}
dAcBase_c *dCcD_GAtTgCoCommonBase::getActor() {
return mActor.get();
}
void dCcD_GAtTgCoCommonBase::decreaseCount() {
if (mEffCounter <= 0) {
return;
}
mEffCounter--;
}
dCcD_GObjInf::dCcD_GObjInf() {
field_0x104 = nullptr;
field_0x108 = 0;
}
dCcD_GObjInf::~dCcD_GObjInf() {
field_0x104 = nullptr;
}
bool dCcD_GObjInf::weirdConditionCheck(dAcBase_c *ac, u32 arg) {
return ac != nullptr && ac->isActorPlayer() && arg == 2;
}
void dCcD_GObjInf::clear() {
mGObjAt.clearFlag();
mGObjTg.clearFlag();
mGObjCo.clearFlag();
}
void dCcD_GObjInf::init(const dCcD_SrcGObjInf &src) {
mGObjAt.init(&src.mGObjAt);
mGObjTg.init(&src.mGObjTg);
mGObjCo.init(&src.mGObjCo);
}
void dCcD_GObjInf::ResetAtHit() {
mGObjAt.resetField0x14();
mGObjAt.unlink();
mGObjAt.decreaseCount();
mGObjAt.resetEffCounter();
}
void dCcD_GObjInf::ResetTgHit() {
mGObjTg.resetField0x14();
mGObjTg.unlink();
mGObjTg.decreaseCount();
mGObjTg.resetEffCounter();
}
void dCcD_GObjInf::ResetCoHit() {
mGObjCo.resetField0x14();
mGObjCo.unlink();
mGObjCo.decreaseCount();
mGObjCo.resetEffCounter();
}
mVec3_c *dCcD_GObjInf::GetAtHitPosP() {
return mGObjAt.GetHitPosP();
}
mVec3_c *dCcD_GObjInf::GetAtHitPosP2() {
return mGObjAt.GetHitPosP();
}
void dCcD_GObjInf::dCcD_GObjInf_0x10() {}
dAcBase_c *dCcD_GObjInf::GetAtActor() {
return mGObjAt.getActor();
}
dAcBase_c *dCcD_GObjInf::GetTgActor() {
return mGObjTg.getActor();
}
dAcBase_c *dCcD_GObjInf::GetCoActor() {
return mGObjCo.getActor();
}
void dCcD_GObjInf::adjustHitPos(f32 dx, f32 dz) {
mGObjAt.adjustHitPos(dx, dz);
mGObjTg.adjustHitPos(dx, dz);
mGObjCo.adjustHitPos(dx, dz);
}
/**
*
* Geometric shape colliders
*
*/
dCcD_ShapeAttr::dCcD_ShapeAttr() {}
dCcD_ShapeAttr::~dCcD_ShapeAttr() {}
mVec3_c *dCcD_ShapeAttr::getVirtualCenter() {
return &m_virtual_center;
}
dCcD_ShapeAttr2::dCcD_ShapeAttr2() {}
dCcD_ShapeAttr2::~dCcD_ShapeAttr2() {}
dCcD_ShapeAttr5::dCcD_ShapeAttr5() {}
dCcD_ShapeAttr5::~dCcD_ShapeAttr5() {}
void dCcD_ShapeAttr5::init(const dCcD_SrcAabbAttr &src) {
setMinMax(mVec3_c(src.minX, src.minY, src.minZ), mVec3_c(src.maxX, src.maxY, src.maxZ));
}
mVec3_c *dCcD_ShapeAttr5::getVirtualCenter() {
return &mVirtualCenter;
}
dCcD_ShapeAttr1::dCcD_ShapeAttr1() {}
dCcD_ShapeAttr1::~dCcD_ShapeAttr1() {}
mVec3_c *dCcD_ShapeAttr1::getVirtualCenter() {
return &mVirtualCenter;
}
dCcD_ShapeAttr3::dCcD_ShapeAttr3() {}
dCcD_ShapeAttr3::~dCcD_ShapeAttr3() {}
void dCcD_ShapeAttr3::init(const dCcD_SrcCylAttr &src) {
setR(src.mRadius);
setH(src.mHeight);
mVec3_c v;
v.z = 0.0f;
v.y = 0.0f;
v.x = 0.0f;
setC(v);
}
mVec3_c *dCcD_ShapeAttr3::getVirtualCenter() {
return &mCenter;
}
dCcD_ShapeAttr4::dCcD_ShapeAttr4() {}
dCcD_ShapeAttr4::~dCcD_ShapeAttr4() {}
void dCcD_ShapeAttr4::init(const dCcD_SrcSphAttr &src) {
setR(src.mRadius);
mVec3_c v;
v.z = 0.0f;
v.y = 0.0f;
v.x = 0.0f;
setC(v);
}
mVec3_c *dCcD_ShapeAttr4::getVirtualCenter() {
return &mCenter;
}
/**
*
* At/Tg/Co collider
*
*/
dCcD_GObjAt::dCcD_GObjAt() {
field_0x58 = 0;
}
dCcD_GObjAt::~dCcD_GObjAt() {}
void dCcD_GObjAt::init(const dCcD_SrcGObjAt *src) {
mEffCounter = 0;
mSrc = *src;
mHitPos = mVec3_c::Zero;
}
void dCcD_GObjAt::setSomeAtFlags(u32 flags) {
mSrc.field_0x04 = mSrc.field_0x04 & 0xFFFFFFC1 | flags;
}
void dCcD_GObjAt::adjustHitPos(f32 dx, f32 dz) {
mHitPos.x += dx;
mHitPos.z += dz;
}
dCcD_GObjTg::dCcD_GObjTg() {
field_0x44 = 0;
field_0x4A = 0;
field_0x4B = 0;
field_0x4C = 0;
field_0x50 = 0;
field_0x54 = 0;
field_0x6C.x = 0.0f;
field_0x6C.y = 0.0f;
field_0x6C.z = 0.0f;
field_0x78 = 0;
}
dCcD_GObjTg::~dCcD_GObjTg() {}
void dCcD_GObjTg::init(const dCcD_SrcGObjTg *src) {
mEffCounter = 0;
mSrc = *src;
field_0x4C = 0;
mHitPos = mVec3_c::Zero;
field_0x44 = 0;
field_0x48 = 0x4000;
}
void dCcD_GObjTg::adjustHitPos(f32 dx, f32 dz) {
mHitPos.x += dx;
mHitPos.z += dz;
field_0x6C.x += dx;
field_0x6C.z += dz;
}
dCcD_GObjCo::dCcD_GObjCo() {
field_0x20 = 0;
field_0x28 = 0;
}
dCcD_GObjCo::~dCcD_GObjCo() {}
void dCcD_GObjCo::init(const dCcD_SrcGObjCo *src) {
mEffCounter = 0;
mSrc = *src;
setSomeAtFlags(src->mBase.mGFlag & 0x1E0);
}
void dCcD_GObjCo::setSomeAtFlags(u32 flags) {}
void dCcD_GObjCo::adjustHitPos(f32 dx, f32 dz) {}
+33
View File
@@ -0,0 +1,33 @@
#include <math.h>
#include <nw4r/math/math_types.h>
#include <rvl/MTX.h>
using namespace nw4r::math;
inline VEC3 cM3d_Cross(const VEC3 *pVecA, const VEC3 *pVecB, const VEC3 *pVecC, VEC3 *pVecOut) {
VEC3 tmp1;
VEC3 tmp2;
VEC3Sub(&tmp1, pVecB, pVecA);
VEC3Sub(&tmp2, pVecC, pVecA);
VEC3Cross(pVecOut, &tmp1, &tmp2);
}
inline f32 cM3d_Dot(const VEC3 *pVecA, const VEC3 *pVecB) {
return VEC3Dot(pVecA, pVecB);
}
void cM3d_CalcPla(const VEC3 *pVecA, const VEC3 *pVecB, const VEC3 *pVecC, VEC3 *pVecOut, f32 *pD) {
cM3d_Cross(pVecA, pVecB, pVecC, pVecOut);
f32 mag = VEC3Len(pVecOut);
if (fabsf(mag) > 0.05f) {
VEC3Scale(pVecOut, pVecOut, 1.0f / mag);
*pD = -cM3d_Dot(pVecOut, pVecA);
} else {
pVecOut->y = 0.0f;
*pD = 0.0f;
pVecOut->z = 0.0f;
pVecOut->x = 0.0f;
}
}
+26
View File
@@ -0,0 +1,26 @@
#include <m/m_vec.h>
#include <toBeSorted/cc/d_cc_m3d_g_cyl.h>
void cM3dGCyl::setC(const mVec3_c &c, f32 radius, f32 height) {
setC(c);
setR(radius);
setH(height);
}
void cM3dGCyl::setC(const mVec3_c &c) {
mCenter = c;
}
void cM3dGCyl::setH(f32 h) {
if (h < 0.0f) {
h = 0.0f;
}
mHeight = h;
}
void cM3dGCyl::setR(f32 r) {
if (r < 0.0f) {
r = 0.0f;
}
mRadius = r;
}
+26
View File
@@ -0,0 +1,26 @@
#include <m/m_vec.h>
#include <toBeSorted/cc/d_cc_m3d_g_sph.h>
cM3dGSph::cM3dGSph() {
field_0x10 = 1.0f;
}
void cM3dGSph::setC(const mVec3_c &c) {
mCenter = c;
}
void cM3dGSph::set(const mVec3_c &c, f32 r) {
setC(c);
setR(r);
}
void cM3dGSph::setR(f32 r) {
if (r < 0.0f) {
r = 0.0f;
}
mRadius = r;
}
void cM3dGSph::setC(f32 x, f32 y, f32 z) {
setC(mVec3_c(x, y, z));
}
+106
View File
@@ -0,0 +1,106 @@
#include <m/m_vec.h>
#include <toBeSorted/cc/d_cc_d.h>
#include <toBeSorted/cc/d_cc_shape_colliders.h>
dCcD_Unk1::dCcD_Unk1() {}
dCcD_Unk1::~dCcD_Unk1() {}
void dCcD_Unk1::init(const dCcD_SrcUnk &src) {
dCcD_GObjInf::init(src.mObjInf);
dCcD_ShapeAttr1::init(src.mUnk1Inf);
}
void *dCcD_Unk1::dCcD_GObjInf_0x0C() {
if (this != nullptr) {
return &UNK_0x00;
}
return this;
}
void dCcD_Unk1::unknownCalc() {
PSVECSubtract(*&field_0x0C, *&field_0x00, *getAtVec());
}
dCcD_Empty::dCcD_Empty() {}
dCcD_Empty::~dCcD_Empty() {}
void dCcD_Empty::init(const dCcD_SrcEmpty &src) {
dCcD_GObjInf::init(src.mObjInf);
}
void *dCcD_Empty::dCcD_GObjInf_0x0C() {
if (this != nullptr) {
return &UNK_0x00;
}
return this;
}
dCcD_Cyl::dCcD_Cyl() {}
dCcD_Cyl::~dCcD_Cyl() {}
void dCcD_Cyl::init(const dCcD_SrcCyl &src) {
dCcD_GObjInf::init(src.mObjInf);
dCcD_ShapeAttr3::init(src.mCylAttr);
}
void *dCcD_Cyl::dCcD_GObjInf_0x0C() {
if (this != nullptr) {
return &UNK_0x00;
}
return this;
}
void dCcD_Cyl::setCenter(const mVec3_c &c) {
setAtVec(mVec3_c::Zero);
setC(c);
}
void dCcD_Cyl::moveCenter(const mVec3_c &c) {
setAtVec(c - GetC());
setC(c);
}
dCcD_Sph::dCcD_Sph() {}
dCcD_Sph::~dCcD_Sph() {}
void dCcD_Sph::init(const dCcD_SrcSph &src) {
dCcD_GObjInf::init(src.mObjInf);
dCcD_ShapeAttr4::init(src.mSphAttr);
}
void dCcD_Sph::setCenter(const mVec3_c &c) {
setAtVec(mVec3_c::Zero);
setC(c);
}
void dCcD_Sph::moveCenter(const mVec3_c &c) {
setAtVec(c - GetC());
setC(c);
}
void dCcD_Sph::setCenterAndAtVec(const mVec3_c &a, const mVec3_c &b) {
setAtVec(b);
setC(a);
}
void *dCcD_Sph::dCcD_GObjInf_0x0C() {
if (this != nullptr) {
return &UNK_0x00;
}
return this;
}
dCcD_Aabb::dCcD_Aabb() {}
dCcD_Aabb::~dCcD_Aabb() {}
void dCcD_Aabb::init(const dCcD_SrcAabb &src) {
dCcD_GObjInf::init(src.mObjInf);
dCcD_ShapeAttr5::init(src.mAabbAttr);
}
void *dCcD_Aabb::dCcD_GObjInf_0x0C() {
if (this != nullptr) {
return &UNK_0x00;
}
return this;
}
+2 -4
View File
@@ -27,9 +27,6 @@ import os
import pathlib
BLOCKING_SYMBOLS = [
['fn_80353D70', 'UnkCollider::ctor'],
['fn_80353F30', 'UnkCollider::ctor2'],
['fn_80353FF0', 'UnkCollider::init'],
['fn_800C3EC0', 'ActorEventFlowManagerRelated::checkEventFinished'],
['fn_800275C0', 'EffectsStruct::ctor'],
['fn_80027610', 'EffectsStruct::ctor'],
@@ -44,7 +41,6 @@ BLOCKING_SYMBOLS = [
['fn_800C43D0', 'ActorEventFlowManagerRelated *FUN_800c43d0'],
['fn_8037DCC0', 'EnemySoundMgr'],
['fn_800A6690', 'ActorOnRail::ctor'],
['fn_80355080', 'getColliderManager'],
['fn_800975D0', 'initializeDowsingTarget'],
['fn_800A0680', 'getCurrentEventActor'],
['fn_80390FE0', 'something harp sound'],
@@ -52,6 +48,8 @@ BLOCKING_SYMBOLS = [
['fn_800225F0', 'something light'],
['fn_80179250', 'shutter fence list'],
['fn_8033AB50', 'getCollisionCheckContext'],
['fn_8033F150', 'fn_8033F150'],
['fn_80341040', 'fn_80341040'],
['fn_383_D10', 'getAcOStageSink_ptr'],
]