mirror of
https://github.com/zeldaret/ss.git
synced 2024-12-03 11:01:05 +00:00
Updated CC collision (#80)
Some checks failed
Build / build (SOUE01) (push) Has been cancelled
Some checks failed
Build / build (SOUE01) (push) Has been cancelled
* c_cc_d soooo close * d_cc_shape_colliders -> d_cc_d * ported over changes from #43 * Oops, didnt save * use better collision functions in bombf * bombf fixes * bombf actorPostCreate matching * fix * small fix for cCcD_UnkAttr Set function * more cleanup(?) for c_cc_d * d_cc_mass_s OK * Initial d_cc_s setup * some easy funcs --------- Co-authored-by: robojumper <robojumper@gmail.com>
This commit is contained in:
parent
1d17e35316
commit
8a3710824b
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"[c]": {
|
"[c]": {
|
||||||
|
"files.autoSave": "onFocusChange",
|
||||||
"files.encoding": "utf8",
|
"files.encoding": "utf8",
|
||||||
"editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd"
|
"editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd"
|
||||||
},
|
},
|
||||||
"[cpp]": {
|
"[cpp]": {
|
||||||
|
"files.autoSave": "onFocusChange",
|
||||||
"files.encoding": "utf8",
|
"files.encoding": "utf8",
|
||||||
"editor.defaultFormatter": "xaver.clang-format"
|
"editor.defaultFormatter": "xaver.clang-format"
|
||||||
},
|
},
|
||||||
@ -11,7 +13,6 @@
|
|||||||
// "editor.defaultFormatter": "ms-python.black-formatter"
|
// "editor.defaultFormatter": "ms-python.black-formatter"
|
||||||
// },
|
// },
|
||||||
// "editor.tabSize": 2,
|
// "editor.tabSize": 2,
|
||||||
"files.autoSave": "onFocusChange",
|
|
||||||
"files.insertFinalNewline": true,
|
"files.insertFinalNewline": true,
|
||||||
"files.trimFinalNewlines": true,
|
"files.trimFinalNewlines": true,
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
|
@ -17,3 +17,4 @@ REL/global_destructor_chain.c:
|
|||||||
REL/d/a/d_a_bombf.cpp:
|
REL/d/a/d_a_bombf.cpp:
|
||||||
.text start:0x000000F0 end:0x00001358
|
.text start:0x000000F0 end:0x00001358
|
||||||
.ctors start:0x00000000 end:0x00000004
|
.ctors start:0x00000000 end:0x00000004
|
||||||
|
.rodata start:0x00000000 end:0x00000044
|
||||||
|
@ -8,15 +8,15 @@ __dt__23sFState_c<10dAcBombf_c>Fv = .text:0x000001F0; // type:function size:0x58
|
|||||||
__dt__26sFStateFct_c<10dAcBombf_c>Fv = .text:0x00000250; // type:function size:0x6C
|
__dt__26sFStateFct_c<10dAcBombf_c>Fv = .text:0x00000250; // type:function size:0x6C
|
||||||
__dt__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000002C0; // type:function size:0xA0
|
__dt__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000002C0; // type:function size:0xA0
|
||||||
__dt__49sFStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000360; // type:function size:0xA4
|
__dt__49sFStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000360; // type:function size:0xA4
|
||||||
fn_17_410 = .text:0x00000410; // type:function size:0x68
|
createHeap__10dAcBombf_cFv = .text:0x00000410; // type:function size:0x68
|
||||||
AcBombf__init1 = .text:0x00000480; // type:function size:0x184
|
actorCreate__10dAcBombf_cFv = .text:0x00000480; // type:function size:0x184
|
||||||
changeState__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000610; // type:function size:0x10
|
changeState__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000610; // type:function size:0x10
|
||||||
AcBombf__init2 = .text:0x00000620; // type:function size:0x2A4
|
actorPostCreate__10dAcBombf_cFv = .text:0x00000620; // type:function size:0x2A4
|
||||||
fn_17_8D0 = .text:0x000008D0; // type:function size:0x8
|
doDelete__10dAcBombf_cFv = .text:0x000008D0; // type:function size:0x8
|
||||||
fn_17_8E0 = .text:0x000008E0; // type:function size:0x138
|
actorExecute__10dAcBombf_cFv = .text:0x000008E0; // type:function size:0x138
|
||||||
executeState__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000A20; // type:function size:0x10
|
executeState__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000A20; // type:function size:0x10
|
||||||
fn_17_A30 = .text:0x00000A30; // type:function size:0x50
|
draw__10dAcBombf_cFv = .text:0x00000A30; // type:function size:0x50
|
||||||
AcBombf__regrowBomb = .text:0x00000A80; // type:function size:0x124
|
regrowBomb__10dAcBombf_cFv = .text:0x00000A80; // type:function size:0x124
|
||||||
initializeState_Wait__10dAcBombf_cFv = .text:0x00000BB0; // type:function size:0x4
|
initializeState_Wait__10dAcBombf_cFv = .text:0x00000BB0; // type:function size:0x4
|
||||||
executeState_Wait__10dAcBombf_cFv = .text:0x00000BC0; // type:function size:0x2DC
|
executeState_Wait__10dAcBombf_cFv = .text:0x00000BC0; // type:function size:0x2DC
|
||||||
finalizeState_Wait__10dAcBombf_cFv = .text:0x00000EA0; // type:function size:0x4
|
finalizeState_Wait__10dAcBombf_cFv = .text:0x00000EA0; // type:function size:0x4
|
||||||
@ -36,7 +36,7 @@ getOldStateID__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,
|
|||||||
finalizeState__25sFStateID_c<10dAcBombf_c>CFR10dAcBombf_c = .text:0x000010D0; // type:function size:0x30
|
finalizeState__25sFStateID_c<10dAcBombf_c>CFR10dAcBombf_c = .text:0x000010D0; // type:function size:0x30
|
||||||
executeState__25sFStateID_c<10dAcBombf_c>CFR10dAcBombf_c = .text:0x00001100; // type:function size:0x30
|
executeState__25sFStateID_c<10dAcBombf_c>CFR10dAcBombf_c = .text:0x00001100; // type:function size:0x30
|
||||||
initializeState__25sFStateID_c<10dAcBombf_c>CFR10dAcBombf_c = .text:0x00001130; // type:function size:0x30
|
initializeState__25sFStateID_c<10dAcBombf_c>CFR10dAcBombf_c = .text:0x00001130; // type:function size:0x30
|
||||||
__sinit_\d_a_bombf_cpp = .text:0x00001160; // type:function size:0x10C scope:local
|
__sinit_\d_a_bombf_cpp = .text:0x00001160; // type:function size:0x10C
|
||||||
__dt__25sFStateID_c<10dAcBombf_c>Fv = .text:0x00001270; // type:function size:0x58
|
__dt__25sFStateID_c<10dAcBombf_c>Fv = .text:0x00001270; // type:function size:0x58
|
||||||
isSameName__25sFStateID_c<10dAcBombf_c>CFPCc = .text:0x000012D0; // type:function size:0x88
|
isSameName__25sFStateID_c<10dAcBombf_c>CFPCc = .text:0x000012D0; // type:function size:0x88
|
||||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||||
@ -49,11 +49,11 @@ g_profile_BOMBF = .data:0x00000000; // type:object size:0x10 data:4byte
|
|||||||
lbl_17_data_10 = .data:0x00000010; // type:object size:0xC
|
lbl_17_data_10 = .data:0x00000010; // type:object size:0xC
|
||||||
lbl_17_data_1C = .data:0x0000001C; // type:object size:0xC
|
lbl_17_data_1C = .data:0x0000001C; // type:object size:0xC
|
||||||
lbl_17_data_28 = .data:0x00000028; // type:object size:0x18 data:string
|
lbl_17_data_28 = .data:0x00000028; // type:object size:0x18 data:string
|
||||||
lbl_17_data_40 = .data:0x00000040; // type:object size:0x80
|
__vt__10dAcBombf_c = .data:0x00000040; // type:object size:0x80
|
||||||
lbl_17_data_C0 = .data:0x000000C0; // type:object size:0x30
|
__vt__49sFStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c> = .data:0x000000C0; // type:object size:0x30
|
||||||
lbl_17_data_F0 = .data:0x000000F0; // type:object size:0x30
|
__vt__79sStateMgr_c<10dAcBombf_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000F0; // type:object size:0x30
|
||||||
lbl_17_data_120 = .data:0x00000120; // type:object size:0x18
|
__vt__26sFStateFct_c<10dAcBombf_c> = .data:0x00000120; // type:object size:0x18
|
||||||
lbl_17_data_138 = .data:0x00000138; // type:object size:0x58
|
__vt__23sFState_c<10dAcBombf_c> = .data:0x00000138; // type:object size:0x58
|
||||||
lbl_17_data_190 = .data:0x00000190; // type:object size:0x34
|
lbl_17_data_190 = .data:0x00000190; // type:object size:0x34
|
||||||
lbl_17_data_1C4 = .data:0x000001C4; // type:object size:0x8
|
lbl_17_data_1C4 = .data:0x000001C4; // type:object size:0x8
|
||||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||||
|
@ -997,6 +997,7 @@ d/col/c/c_m3d_g_lin.cpp:
|
|||||||
|
|
||||||
d/col/c/c_m3d_g_pla.cpp:
|
d/col/c/c_m3d_g_pla.cpp:
|
||||||
.text start:0x80338430 end:0x80338678
|
.text start:0x80338430 end:0x80338678
|
||||||
|
.sdata2 start:0x8057D048 end:0x8057D04C
|
||||||
|
|
||||||
d/col/c/c_m3d_g_sph.cpp:
|
d/col/c/c_m3d_g_sph.cpp:
|
||||||
.text start:0x80338680 end:0x803388D8
|
.text start:0x80338680 end:0x803388D8
|
||||||
@ -1114,10 +1115,20 @@ d/col/bg/d_bg_w_time.cpp:
|
|||||||
.sdata2 start:0x8057D230 end:0x8057D240
|
.sdata2 start:0x8057D230 end:0x8057D240
|
||||||
.bss start:0x805D0F90 end:0x805D0FB4
|
.bss start:0x805D0F90 end:0x805D0FB4
|
||||||
|
|
||||||
d/col/cc/d_cc_shape_colliders.cpp:
|
d/col/cc/d_cc_d.cpp:
|
||||||
.text start:0x80353B50 end:0x80354298
|
.text start:0x80353B50 end:0x80354298
|
||||||
.data start:0x80548340 end:0x80548580
|
.data start:0x80548340 end:0x80548580
|
||||||
|
|
||||||
|
d/col/cc/d_cc_mass_s.cpp:
|
||||||
|
.text start:0x803543F0 end:0x80355080
|
||||||
|
.data start:0x80548580 end:0x805485A4
|
||||||
|
.sdata2 start:0x8057D240 end:0x8057D254
|
||||||
|
|
||||||
|
d/col/cc/d_cc_s.cpp:
|
||||||
|
.text start:0x80355080 end:0x80358654
|
||||||
|
.data start:0x805485A8 end:0x805485B4
|
||||||
|
.sbss start:0x80575D20 end:0x80575D24
|
||||||
|
|
||||||
rvl/CX/cx.c:
|
rvl/CX/cx.c:
|
||||||
.text start:0x803CEE90 end:0x803D0B20
|
.text start:0x803CEE90 end:0x803D0B20
|
||||||
|
|
||||||
|
@ -920,9 +920,9 @@ fn_800274D0 = .text:0x800274D0; // type:function size:0x40
|
|||||||
fn_80027510 = .text:0x80027510; // type:function size:0x4C
|
fn_80027510 = .text:0x80027510; // type:function size:0x4C
|
||||||
fn_80027560 = .text:0x80027560; // type:function size:0x5C
|
fn_80027560 = .text:0x80027560; // type:function size:0x5C
|
||||||
__ct__13EffectsStructFv = .text:0x800275C0; // type:function size:0x44
|
__ct__13EffectsStructFv = .text:0x800275C0; // type:function size:0x44
|
||||||
EffectsStruct__ctor = .text:0x80027610; // type:function size:0x44
|
__ct__13EffectsStructFP9dAcBase_c = .text:0x80027610; // type:function size:0x44
|
||||||
__dt__13EffectsStructFv = .text:0x80027660; // type:function size:0x78
|
__dt__13EffectsStructFv = .text:0x80027660; // type:function size:0x78
|
||||||
fn_800276E0 = .text:0x800276E0; // type:function size:0x84
|
remove__13EffectsStructFb = .text:0x800276E0; // type:function size:0x84
|
||||||
fn_80027770 = .text:0x80027770; // type:function size:0xE8
|
fn_80027770 = .text:0x80027770; // type:function size:0xE8
|
||||||
fn_80027860 = .text:0x80027860; // type:function size:0xC8
|
fn_80027860 = .text:0x80027860; // type:function size:0xC8
|
||||||
fn_80027930 = .text:0x80027930; // type:function size:0x130
|
fn_80027930 = .text:0x80027930; // type:function size:0x130
|
||||||
@ -13974,8 +13974,8 @@ fn_80258D10 = .text:0x80258D10; // type:function size:0x1C
|
|||||||
fn_80258D30 = .text:0x80258D30; // type:function size:0x40
|
fn_80258D30 = .text:0x80258D30; // type:function size:0x40
|
||||||
AcItem__state_dtor = .text:0x80258D70; // type:function size:0x58
|
AcItem__state_dtor = .text:0x80258D70; // type:function size:0x58
|
||||||
fn_80258DD0 = .text:0x80258DD0; // type:function size:0x88
|
fn_80258DD0 = .text:0x80258DD0; // type:function size:0x88
|
||||||
AcBomb__ctor = .text:0x80258E60; // type:function size:0x134
|
dAcBomb_c_classInit__Fv = .text:0x80258E60; // type:function size:0x134
|
||||||
fn_80258FA0 = .text:0x80258FA0; // type:function size:0x58
|
__dt__21sFState_c<9dAcBomb_c>Fv = .text:0x80258FA0; // type:function size:0x58
|
||||||
fn_80259000 = .text:0x80259000; // type:function size:0x6C
|
fn_80259000 = .text:0x80259000; // type:function size:0x6C
|
||||||
fn_80259070 = .text:0x80259070; // type:function size:0xA0
|
fn_80259070 = .text:0x80259070; // type:function size:0xA0
|
||||||
fn_80259110 = .text:0x80259110; // type:function size:0xA4
|
fn_80259110 = .text:0x80259110; // type:function size:0xA4
|
||||||
@ -13992,7 +13992,7 @@ fn_80259B00 = .text:0x80259B00; // type:function size:0x304
|
|||||||
fn_80259E10 = .text:0x80259E10; // type:function size:0x68
|
fn_80259E10 = .text:0x80259E10; // type:function size:0x68
|
||||||
fn_80259E80 = .text:0x80259E80; // type:function size:0xB0
|
fn_80259E80 = .text:0x80259E80; // type:function size:0xB0
|
||||||
fn_80259F30 = .text:0x80259F30; // type:function size:0x58
|
fn_80259F30 = .text:0x80259F30; // type:function size:0x58
|
||||||
fn_80259F90 = .text:0x80259F90; // type:function size:0x150
|
setTransformFromFlower__9dAcBomb_cFRC6mMtx_c = .text:0x80259F90; // type:function size:0x150
|
||||||
fn_8025A0E0 = .text:0x8025A0E0; // type:function size:0x20
|
fn_8025A0E0 = .text:0x8025A0E0; // type:function size:0x20
|
||||||
fn_8025A100 = .text:0x8025A100; // type:function size:0x50
|
fn_8025A100 = .text:0x8025A100; // type:function size:0x50
|
||||||
fn_8025A150 = .text:0x8025A150; // type:function size:0x94
|
fn_8025A150 = .text:0x8025A150; // type:function size:0x94
|
||||||
@ -14038,17 +14038,17 @@ fn_8025D0A0 = .text:0x8025D0A0; // type:function size:0x30
|
|||||||
AcBomb__sinit = .text:0x8025D0D0; // type:function size:0x420
|
AcBomb__sinit = .text:0x8025D0D0; // type:function size:0x420
|
||||||
AcBomb__state_dtor = .text:0x8025D4F0; // type:function size:0x58
|
AcBomb__state_dtor = .text:0x8025D4F0; // type:function size:0x58
|
||||||
fn_8025D550 = .text:0x8025D550; // type:function size:0x88
|
fn_8025D550 = .text:0x8025D550; // type:function size:0x88
|
||||||
AcArrow__ctor = .text:0x8025D5E0; // type:function size:0x110
|
dAcArrow_c_classInit__Fv = .text:0x8025D5E0; // type:function size:0x110
|
||||||
fn_8025D6F0 = .text:0x8025D6F0; // type:function size:0x58
|
__dt__23sFState_c<10dAcArrow_c>Fv = .text:0x8025D6F0; // type:function size:0x58
|
||||||
fn_8025D750 = .text:0x8025D750; // type:function size:0x6C
|
__dt__26sFStateFct_c<10dAcArrow_c>Fv = .text:0x8025D750; // type:function size:0x6C
|
||||||
fn_8025D7C0 = .text:0x8025D7C0; // type:function size:0xA0
|
__dt__79sStateMgr_c<10dAcArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8025D7C0; // type:function size:0xA0
|
||||||
fn_8025D860 = .text:0x8025D860; // type:function size:0xA4
|
__dt__49sFStateMgr_c<10dAcArrow_c,20sStateMethodUsr_FI_c>Fv = .text:0x8025D860; // type:function size:0xA4
|
||||||
fn_8025D910 = .text:0x8025D910; // type:function size:0x24
|
hitCallback__FP12dAcObjBase_cP12dCcD_GObjInfP12dAcObjBase_cP12dCcD_GObjInf = .text:0x8025D910; // type:function size:0x24
|
||||||
AcArrow__initModels = .text:0x8025D940; // type:function size:0x90
|
createHeap__10dAcArrow_cFv = .text:0x8025D940; // type:function size:0x90
|
||||||
AcArrow__init = .text:0x8025D9D0; // type:function size:0x184
|
create__10dAcArrow_cFv = .text:0x8025D9D0; // type:function size:0x184
|
||||||
fn_8025DB60 = .text:0x8025DB60; // type:function size:0x10
|
changeState__79sStateMgr_c<10dAcArrow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8025DB60; // type:function size:0x10
|
||||||
fn_8025DB70 = .text:0x8025DB70; // type:function size:0x110
|
__dt__10dAcArrow_cFv = .text:0x8025DB70; // type:function size:0x110
|
||||||
fn_8025DC80 = .text:0x8025DC80; // type:function size:0xA0
|
hitCallback__10dAcArrow_cFP12dCcD_GObjInfP12dAcObjBase_cP12dCcD_GObjInf = .text:0x8025DC80; // type:function size:0xA0
|
||||||
fn_8025DD20 = .text:0x8025DD20; // type:function size:0x1AC
|
fn_8025DD20 = .text:0x8025DD20; // type:function size:0x1AC
|
||||||
fn_8025DED0 = .text:0x8025DED0; // type:function size:0x288
|
fn_8025DED0 = .text:0x8025DED0; // type:function size:0x288
|
||||||
fn_8025E160 = .text:0x8025E160; // type:function size:0x480
|
fn_8025E160 = .text:0x8025E160; // type:function size:0x480
|
||||||
@ -14096,9 +14096,9 @@ fn_80260720 = .text:0x80260720; // type:function size:0x10
|
|||||||
fn_80260730 = .text:0x80260730; // type:function size:0x30
|
fn_80260730 = .text:0x80260730; // type:function size:0x30
|
||||||
fn_80260760 = .text:0x80260760; // type:function size:0x30
|
fn_80260760 = .text:0x80260760; // type:function size:0x30
|
||||||
fn_80260790 = .text:0x80260790; // type:function size:0x30
|
fn_80260790 = .text:0x80260790; // type:function size:0x30
|
||||||
AcArrow__initStates = .text:0x802607C0; // type:function size:0x490
|
__sinit_\d_a_obj_arrow_cpp = .text:0x802607C0; // type:function size:0x490 scope:local
|
||||||
AcArrow__dtor = .text:0x80260C50; // type:function size:0x58
|
__dt__25sFStateID_c<10dAcArrow_c>Fv = .text:0x80260C50; // type:function size:0x58
|
||||||
fn_80260CB0 = .text:0x80260CB0; // type:function size:0x88
|
isSameName__25sFStateID_c<10dAcArrow_c>CFPCc = .text:0x80260CB0; // type:function size:0x88
|
||||||
AcBoomerang__ctor = .text:0x80260D40; // type:function size:0x1CC
|
AcBoomerang__ctor = .text:0x80260D40; // type:function size:0x1CC
|
||||||
fn_80260F10 = .text:0x80260F10; // type:function size:0x5C
|
fn_80260F10 = .text:0x80260F10; // type:function size:0x5C
|
||||||
fn_80260F70 = .text:0x80260F70; // type:function size:0x58
|
fn_80260F70 = .text:0x80260F70; // type:function size:0x58
|
||||||
@ -17840,12 +17840,12 @@ createAssertHeap__5mHeapFPQ23EGG4Heap = .text:0x802F15F0; // type:function size:
|
|||||||
makeHeapOnCurrentGameHeap__5mHeapFUlPCcUlUl = .text:0x802F1640; // type:function size:0x20
|
makeHeapOnCurrentGameHeap__5mHeapFUlPCcUlUl = .text:0x802F1640; // type:function size:0x20
|
||||||
mMtx__ctor = .text:0x802F1660; // type:function size:0x44
|
mMtx__ctor = .text:0x802F1660; // type:function size:0x44
|
||||||
XrotS__6mMtx_cFRC4mAng = .text:0x802F16B0; // type:function size:0xBC
|
XrotS__6mMtx_cFRC4mAng = .text:0x802F16B0; // type:function size:0xBC
|
||||||
mMtx__XrotM = .text:0x802F1770; // type:function size:0x4C
|
XrotM__6mMtx_cFRC4mAng = .text:0x802F1770; // type:function size:0x4C
|
||||||
YrotS__6mMtx_cFRC4mAng = .text:0x802F17C0; // type:function size:0xBC
|
YrotS__6mMtx_cFRC4mAng = .text:0x802F17C0; // type:function size:0xBC
|
||||||
YrotM__6mMtx_cFRC4mAng = .text:0x802F1880; // type:function size:0x4C
|
YrotM__6mMtx_cFRC4mAng = .text:0x802F1880; // type:function size:0x4C
|
||||||
mMtx__ZrotS = .text:0x802F18D0; // type:function size:0xBC
|
mMtx__ZrotS = .text:0x802F18D0; // type:function size:0xBC
|
||||||
ZrotM__6mMtx_cFRC4mAng = .text:0x802F1990; // type:function size:0x4C
|
ZrotM__6mMtx_cFRC4mAng = .text:0x802F1990; // type:function size:0x4C
|
||||||
mMtx__ZXYrotS = .text:0x802F19E0; // type:function size:0x60
|
ZXYrotS__6mMtx_cFRC4mAngRC4mAngRC4mAng = .text:0x802F19E0; // type:function size:0x60
|
||||||
mMtx__ZXYrotM = .text:0x802F1A40; // type:function size:0x60
|
mMtx__ZXYrotM = .text:0x802F1A40; // type:function size:0x60
|
||||||
mMtx__XYZrotS = .text:0x802F1AA0; // type:function size:0x60
|
mMtx__XYZrotS = .text:0x802F1AA0; // type:function size:0x60
|
||||||
mMtx__ZYXrotM = .text:0x802F1B00; // type:function size:0x60
|
mMtx__ZYXrotM = .text:0x802F1B00; // type:function size:0x60
|
||||||
@ -18740,262 +18740,262 @@ __dt__9cBgW_BgIdFv = .text:0x80328090; // type:function size:0x40
|
|||||||
Regist__9cBgW_BgIdFi = .text:0x803280D0; // type:function size:0x8
|
Regist__9cBgW_BgIdFi = .text:0x803280D0; // type:function size:0x8
|
||||||
Release__9cBgW_BgIdFv = .text:0x803280E0; // type:function size:0xC
|
Release__9cBgW_BgIdFv = .text:0x803280E0; // type:function size:0xC
|
||||||
ChkUsed__9cBgW_BgIdCFv = .text:0x803280F0; // type:function size:0x24
|
ChkUsed__9cBgW_BgIdCFv = .text:0x803280F0; // type:function size:0x24
|
||||||
__ct__15dCcD_DivideInfoFv = .text:0x80328120; // type:function size:0x10
|
__ct__15cCcD_DivideInfoFv = .text:0x80328120; // type:function size:0x10
|
||||||
__dt__15dCcD_DivideInfoFv = .text:0x80328130; // type:function size:0x40
|
__dt__15cCcD_DivideInfoFv = .text:0x80328130; // type:function size:0x40
|
||||||
__ct__15dCcD_DivideAreaFv = .text:0x80328170; // type:function size:0x10
|
__ct__15cCcD_DivideAreaFv = .text:0x80328170; // type:function size:0x10
|
||||||
__dt__15dCcD_DivideAreaFv = .text:0x80328180; // type:function size:0x40
|
__dt__15cCcD_DivideAreaFv = .text:0x80328180; // type:function size:0x40
|
||||||
SetArea__15dCcD_DivideAreaFRC4Aabb = .text:0x803281C0; // type:function size:0x104
|
SetArea__15cCcD_DivideAreaFRC8cM3dGAab = .text:0x803281C0; // type:function size:0x104
|
||||||
DivideArea__CalcDivideInfo = .text:0x803282D0; // type:function size:0x198
|
CalcDivideInfo__15cCcD_DivideAreaFP15cCcD_DivideInfoRC8cM3dGAab = .text:0x803282D0; // type:function size:0x198
|
||||||
DivideArea__CalcArea2 = .text:0x80328470; // type:function size:0x1E0
|
CalcDivideInfoOverArea__15cCcD_DivideAreaFP15cCcD_DivideInfoRC8cM3dGAab = .text:0x80328470; // type:function size:0x1E0
|
||||||
__ct__12UnkCCDStructFP9dAcBase_c = .text:0x80328650; // type:function size:0x4C
|
__ct__9cCcD_SttsFP12dAcObjBase_c = .text:0x80328650; // type:function size:0x4C
|
||||||
postExecute__12UnkCCDStructFv = .text:0x803286A0; // type:function size:0x20
|
Move__9cCcD_SttsFv = .text:0x803286A0; // type:function size:0x20
|
||||||
getId__12UnkCCDStructFv = .text:0x803286C0; // type:function size:0x1C
|
GetID__9cCcD_SttsCFv = .text:0x803286C0; // type:function size:0x1C
|
||||||
fn_803286E0 = .text:0x803286E0; // type:function size:0xA0
|
PlusCcMove__9cCcD_SttsFfff = .text:0x803286E0; // type:function size:0xA0
|
||||||
reset__12UnkCCDStructFv = .text:0x80328780; // type:function size:0x54
|
ClrCcMove__9cCcD_SttsFv = .text:0x80328780; // type:function size:0x54
|
||||||
getSomething__12UnkCCDStructFi = .text:0x803287E0; // type:function size:0xD4
|
GetWeight__9cCcD_SttsCFi = .text:0x803287E0; // type:function size:0xD4
|
||||||
__ct__22dCcD_GAtTgCoCommonBaseFv = .text:0x803288C0; // type:function size:0x2C
|
__ct__22cCcD_GAtTgCoCommonBaseFv = .text:0x803288C0; // type:function size:0x2C
|
||||||
__dt__22dCcD_GAtTgCoCommonBaseFv = .text:0x803288F0; // type:function size:0x94
|
__dt__22cCcD_GAtTgCoCommonBaseFv = .text:0x803288F0; // type:function size:0x94
|
||||||
unlink__22dCcD_GAtTgCoCommonBaseFv = .text:0x80328990; // type:function size:0x8
|
ClrActorInfo__22cCcD_GAtTgCoCommonBaseFv = .text:0x80328990; // type:function size:0x8
|
||||||
setActor__22dCcD_GAtTgCoCommonBaseFP9dAcBase_c = .text:0x803289A0; // type:function size:0x14
|
SetHitActor__22cCcD_GAtTgCoCommonBaseFP12dAcObjBase_c = .text:0x803289A0; // type:function size:0x14
|
||||||
getActor__22dCcD_GAtTgCoCommonBaseFv = .text:0x803289C0; // type:function size:0x8
|
GetActor__22cCcD_GAtTgCoCommonBaseFv = .text:0x803289C0; // type:function size:0x8
|
||||||
decreaseCount__22dCcD_GAtTgCoCommonBaseFv = .text:0x803289D0; // type:function size:0x18
|
SubtractEffCounter__22cCcD_GAtTgCoCommonBaseFv = .text:0x803289D0; // type:function size:0x18
|
||||||
__ct__12dCcD_GObjInfFv = .text:0x803289F0; // type:function size:0x58
|
__ct__8cCcD_ObjFv = .text:0x803289F0; // type:function size:0x58
|
||||||
__dt__12dCcD_GObjInfFv = .text:0x80328A50; // type:function size:0x7C
|
__dt__8cCcD_ObjFv = .text:0x80328A50; // type:function size:0x7C
|
||||||
weirdConditionCheck__12dCcD_GObjInfFP9dAcBase_cUl = .text:0x80328AD0; // type:function size:0x58
|
fn_80328ad0__8cCcD_ObjFP12dAcObjBase_cUl = .text:0x80328AD0; // type:function size:0x58
|
||||||
clear__12dCcD_GObjInfFv = .text:0x80328B30; // type:function size:0x28
|
ClrSet__8cCcD_ObjFv = .text:0x80328B30; // type:function size:0x28
|
||||||
init__12dCcD_GObjInfFRC15dCcD_SrcGObjInf = .text:0x80328B60; // type:function size:0x50
|
Set__8cCcD_ObjFRC12cCcD_SrcGObj = .text:0x80328B60; // type:function size:0x50
|
||||||
ResetAtHit__12dCcD_GObjInfFv = .text:0x80328BB0; // type:function size:0x48
|
ClrAtHit__8cCcD_ObjFv = .text:0x80328BB0; // type:function size:0x48
|
||||||
ResetTgHit__12dCcD_GObjInfFv = .text:0x80328C00; // type:function size:0x4C
|
ClrTgHit__8cCcD_ObjFv = .text:0x80328C00; // type:function size:0x4C
|
||||||
ResetCoHit__12dCcD_GObjInfFv = .text:0x80328C50; // type:function size:0x4C
|
ClrCoHit__8cCcD_ObjFv = .text:0x80328C50; // type:function size:0x4C
|
||||||
GetAtHitPosP__12dCcD_GObjInfFv = .text:0x80328CA0; // type:function size:0x8
|
GetAtHitPos__8cCcD_ObjCFv = .text:0x80328CA0; // type:function size:0x8
|
||||||
GetAtHitPosP2__12dCcD_GObjInfFv = .text:0x80328CB0; // type:function size:0x8
|
GetAtHitPos__8cCcD_ObjFv = .text:0x80328CB0; // type:function size:0x8
|
||||||
fn_80328CC0 = .text:0x80328CC0; // type:function size:0xC
|
GetAtFlag0x2__8cCcD_ObjCFv = .text:0x80328CC0; // type:function size:0xC
|
||||||
fn_80328CD0 = .text:0x80328CD0; // type:function size:0xC
|
GetAtFlag0x4__8cCcD_ObjCFv = .text:0x80328CD0; // type:function size:0xC
|
||||||
fn_80328CE0 = .text:0x80328CE0; // type:function size:0xC
|
GetAtFlag0x8__8cCcD_ObjCFv = .text:0x80328CE0; // type:function size:0xC
|
||||||
fn_80328CF0 = .text:0x80328CF0; // type:function size:0x8
|
GetTgHitPos__8cCcD_ObjCFv = .text:0x80328CF0; // type:function size:0x8
|
||||||
fn_80328D00 = .text:0x80328D00; // type:function size:0x8
|
GetTgHitPos__8cCcD_ObjFv = .text:0x80328D00; // type:function size:0x8
|
||||||
fn_80328D10 = .text:0x80328D10; // type:function size:0xC
|
GetTgFlag0x4__8cCcD_ObjCFv = .text:0x80328D10; // type:function size:0xC
|
||||||
fn_80328D20 = .text:0x80328D20; // type:function size:0xC
|
GetTgFlag0x8__8cCcD_ObjCFv = .text:0x80328D20; // type:function size:0xC
|
||||||
dCcD_GObjInf_0x10__12dCcD_GObjInfFv = .text:0x80328D30; // type:function size:0x4
|
GetGObjInfo__8cCcD_ObjFv = .text:0x80328D30; // type:function size:0x4
|
||||||
fn_80328D40 = .text:0x80328D40; // type:function size:0xC
|
ChkAtClawshot__8cCcD_ObjCFv = .text:0x80328D40; // type:function size:0xC
|
||||||
fn_80328D50 = .text:0x80328D50; // type:function size:0x8
|
ChkAtClawshotDebug__8cCcD_ObjCFv = .text:0x80328D50; // type:function size:0x8
|
||||||
fn_80328D60 = .text:0x80328D60; // type:function size:0xC
|
ChkAtElectrified__8cCcD_ObjCFv = .text:0x80328D60; // type:function size:0xC
|
||||||
fn_80328D70 = .text:0x80328D70; // type:function size:0xC
|
ChkAtElectrifiedExtra__8cCcD_ObjCFv = .text:0x80328D70; // type:function size:0xC
|
||||||
fn_80328D80 = .text:0x80328D80; // type:function size:0xC
|
ChkAtWhippable__8cCcD_ObjCFv = .text:0x80328D80; // type:function size:0xC
|
||||||
fn_80328D90 = .text:0x80328D90; // type:function size:0xC
|
ChkAtBit24__8cCcD_ObjCFv = .text:0x80328D90; // type:function size:0xC
|
||||||
fn_80328DA0 = .text:0x80328DA0; // type:function size:0xC
|
ChkAtArrowStick__8cCcD_ObjCFv = .text:0x80328DA0; // type:function size:0xC
|
||||||
fn_80328DB0 = .text:0x80328DB0; // type:function size:0xC
|
ChkAtWaterScaleBonk__8cCcD_ObjCFv = .text:0x80328DB0; // type:function size:0xC
|
||||||
fn_80328DC0 = .text:0x80328DC0; // type:function size:0xC
|
ChkAtSwordBonk__8cCcD_ObjCFv = .text:0x80328DC0; // type:function size:0xC
|
||||||
GetAtActor__12dCcD_GObjInfFv = .text:0x80328DD0; // type:function size:0x4
|
GetAtActor__8cCcD_ObjFv = .text:0x80328DD0; // type:function size:0x4
|
||||||
CheckCollidedMask__12dCcD_GObjInfFUl = .text:0x80328DE0; // type:function size:0x18
|
ChkTgAtHitType__8cCcD_ObjCFUl = .text:0x80328DE0; // type:function size:0x18
|
||||||
ActorEnemyBase__getRoomIdCopy = .text:0x80328E00; // type:function size:0x8
|
GetTg_0x58__8cCcD_ObjCFv = .text:0x80328E00; // type:function size:0x8
|
||||||
fn_80328E10 = .text:0x80328E10; // type:function size:0xC
|
ChkTgBit14__8cCcD_ObjCFv = .text:0x80328E10; // type:function size:0xC
|
||||||
UnkCollider__getDamage = .text:0x80328E20; // type:function size:0x8
|
GetTgDamage__8cCcD_ObjCFv = .text:0x80328E20; // type:function size:0x8
|
||||||
UnkCollider__getDamageSpecialFlags = .text:0x80328E30; // type:function size:0x8
|
GetTgDamageFlags__8cCcD_ObjCFv = .text:0x80328E30; // type:function size:0x8
|
||||||
UnkCollider__checkSkywardStrike = .text:0x80328E40; // type:function size:0xC
|
ChkTgSkywardStrike__8cCcD_ObjCFv = .text:0x80328E40; // type:function size:0xC
|
||||||
fn_80328E50 = .text:0x80328E50; // type:function size:0xC
|
ChkTgBit17__8cCcD_ObjCFv = .text:0x80328E50; // type:function size:0xC
|
||||||
fn_80328E60 = .text:0x80328E60; // type:function size:0xC
|
ChkTgBit18__8cCcD_ObjCFv = .text:0x80328E60; // type:function size:0xC
|
||||||
fn_80328E70 = .text:0x80328E70; // type:function size:0xC
|
ChkTgBit19__8cCcD_ObjCFv = .text:0x80328E70; // type:function size:0xC
|
||||||
fn_80328E80 = .text:0x80328E80; // type:function size:0xC
|
ChkTgBit23__8cCcD_ObjCFv = .text:0x80328E80; // type:function size:0xC
|
||||||
fn_80328E90 = .text:0x80328E90; // type:function size:0xC
|
ChkTgBit20__8cCcD_ObjCFv = .text:0x80328E90; // type:function size:0xC
|
||||||
fn_80328EA0 = .text:0x80328EA0; // type:function size:0xC
|
ChkTgBit24__8cCcD_ObjCFv = .text:0x80328EA0; // type:function size:0xC
|
||||||
fn_80328EB0 = .text:0x80328EB0; // type:function size:0xC
|
ChkTgBit25__8cCcD_ObjCFv = .text:0x80328EB0; // type:function size:0xC
|
||||||
fn_80328EC0 = .text:0x80328EC0; // type:function size:0x8
|
GetTgSoundID__8cCcD_ObjCFv = .text:0x80328EC0; // type:function size:0x8
|
||||||
fn_80328ED0 = .text:0x80328ED0; // type:function size:0x8
|
GetTg_0x6A__8cCcD_ObjCFv = .text:0x80328ED0; // type:function size:0x8
|
||||||
fn_80328EE0 = .text:0x80328EE0; // type:function size:0xC
|
ChkTgBit8__8cCcD_ObjCFv = .text:0x80328EE0; // type:function size:0xC
|
||||||
fn_80328EF0 = .text:0x80328EF0; // type:function size:0x8
|
GetTg_0x4A__8cCcD_ObjCFv = .text:0x80328EF0; // type:function size:0x8
|
||||||
GetTgActor__12dCcD_GObjInfFv = .text:0x80328F00; // type:function size:0x8
|
GetTgActor__8cCcD_ObjFv = .text:0x80328F00; // type:function size:0x8
|
||||||
fn_80328F10 = .text:0x80328F10; // type:function size:0x8
|
GetTg_0x2C__8cCcD_ObjCFv = .text:0x80328F10; // type:function size:0x8
|
||||||
GetCoActor__12dCcD_GObjInfFv = .text:0x80328F20; // type:function size:0x8
|
GetCoActor__8cCcD_ObjFv = .text:0x80328F20; // type:function size:0x8
|
||||||
fn_80328F30 = .text:0x80328F30; // type:function size:0xC
|
ChkCoBit4__8cCcD_ObjCFv = .text:0x80328F30; // type:function size:0xC
|
||||||
setColliderAtFlags = .text:0x80328F40; // type:function size:0x14
|
SetAtFlagsUpper__8cCcD_ObjFUl = .text:0x80328F40; // type:function size:0x14
|
||||||
fn_80328F60 = .text:0x80328F60; // type:function size:0xC
|
ChkTgBit1__8cCcD_ObjCFv = .text:0x80328F60; // type:function size:0xC
|
||||||
adjustHitPos__12dCcD_GObjInfFff = .text:0x80328F70; // type:function size:0x64
|
AdjustHitPos__8cCcD_ObjFff = .text:0x80328F70; // type:function size:0x64
|
||||||
__ct__14dCcD_ShapeAttrFv = .text:0x80328FE0; // type:function size:0x40
|
__ct__14cCcD_ShapeAttrFv = .text:0x80328FE0; // type:function size:0x40
|
||||||
__dt__14dCcD_ShapeAttrFv = .text:0x80329020; // type:function size:0x5C
|
__dt__14cCcD_ShapeAttrFv = .text:0x80329020; // type:function size:0x5C
|
||||||
fn_80329080 = .text:0x80329080; // type:function size:0x8
|
Calc__14cCcD_ShapeAttrFRC7mVec3_cRC7mVec3_cP7mVec3_c = .text:0x80329080; // type:function size:0x8
|
||||||
getShapeAccess__14dCcD_ShapeAttrFv = .text:0x80329090; // type:function size:0x5C
|
GetShapeAccess__14cCcD_ShapeAttrCFPQ214cCcD_ShapeAttr5Shape = .text:0x80329090; // type:function size:0x5C
|
||||||
dCcD_ShapeAttr_0x54__14dCcD_ShapeAttrFv = .text:0x803290F0; // type:function size:0x8
|
GetPosBool__14cCcD_ShapeAttrCFP7mVec3_c = .text:0x803290F0; // type:function size:0x8
|
||||||
fn_80329100 = .text:0x80329100; // type:function size:0x8
|
CrossAtTg__14cCcD_ShapeAttrFR14cCcD_ShapeAttrP7mVec3_c = .text:0x80329100; // type:function size:0x8
|
||||||
fn_80329110 = .text:0x80329110; // type:function size:0x8
|
CrossCo__14cCcD_ShapeAttrFR14cCcD_ShapeAttrPf = .text:0x80329110; // type:function size:0x8
|
||||||
getVirtualCenter__14dCcD_ShapeAttrFv = .text:0x80329120; // type:function size:0xC
|
GetCoP__14cCcD_ShapeAttrFv = .text:0x80329120; // type:function size:0xC
|
||||||
__ct__15dCcD_ShapeAttr2Fv = .text:0x80329130; // type:function size:0x3C
|
__ct__12cCcD_TriAttrFv = .text:0x80329130; // type:function size:0x3C
|
||||||
__dt__15dCcD_ShapeAttr2Fv = .text:0x80329170; // type:function size:0x58
|
__dt__12cCcD_TriAttrFv = .text:0x80329170; // type:function size:0x58
|
||||||
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr2Fv = .text:0x803291D0; // type:function size:0x458
|
Calc__12cCcD_TriAttrFRC7mVec3_cRC7mVec3_cP7mVec3_c = .text:0x803291D0; // type:function size:0x458
|
||||||
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr2Fv = .text:0x80329630; // type:function size:0x1C
|
CrossAtTg__12cCcD_TriAttrFR14cCcD_ShapeAttrP7mVec3_c = .text:0x80329630; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr2Fv = .text:0x80329650; // type:function size:0x10
|
CrossAtTg__12cCcD_TriAttrFR12cCcD_CpsAttrP7mVec3_c = .text:0x80329650; // type:function size:0x10
|
||||||
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr2Fv = .text:0x80329660; // type:function size:0x10
|
CrossAtTg__12cCcD_TriAttrFR12cCcD_CylAttrP7mVec3_c = .text:0x80329660; // type:function size:0x10
|
||||||
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr2Fv = .text:0x80329670; // type:function size:0x18
|
CrossAtTg__12cCcD_TriAttrFR12cCcD_SphAttrP7mVec3_c = .text:0x80329670; // type:function size:0x18
|
||||||
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr2Fv = .text:0x80329690; // type:function size:0xC
|
CrossAtTg__12cCcD_TriAttrFR12cCcD_TriAttrP7mVec3_c = .text:0x80329690; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr2Fv = .text:0x803296A0; // type:function size:0x10
|
CrossAtTg__12cCcD_TriAttrFR12cCcD_UnkAttrP7mVec3_c = .text:0x803296A0; // type:function size:0x10
|
||||||
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr2Fv = .text:0x803296B0; // type:function size:0x1C
|
CrossCo__12cCcD_TriAttrFR14cCcD_ShapeAttrPf = .text:0x803296B0; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr2Fv = .text:0x803296D0; // type:function size:0x8
|
CrossCo__12cCcD_TriAttrFR12cCcD_CpsAttrPf = .text:0x803296D0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr2Fv = .text:0x803296E0; // type:function size:0x8
|
CrossCo__12cCcD_TriAttrFR12cCcD_TriAttrPf = .text:0x803296E0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr2Fv = .text:0x803296F0; // type:function size:0x8
|
CrossCo__12cCcD_TriAttrFR12cCcD_UnkAttrPf = .text:0x803296F0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr2Fv = .text:0x80329700; // type:function size:0x8
|
CrossCo__12cCcD_TriAttrFR12cCcD_CylAttrPf = .text:0x80329700; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr2Fv = .text:0x80329710; // type:function size:0x8
|
CrossCo__12cCcD_TriAttrFR12cCcD_SphAttrPf = .text:0x80329710; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr2Fv = .text:0x80329720; // type:function size:0xD4
|
CalcAabBox__12cCcD_TriAttrFv = .text:0x80329720; // type:function size:0xD4
|
||||||
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr2Fv = .text:0x80329800; // type:function size:0x98
|
GetNVec__12cCcD_TriAttrCFRC7mVec3_cP7mVec3_c = .text:0x80329800; // type:function size:0x98
|
||||||
getShapeAccess__15dCcD_ShapeAttr2Fv = .text:0x803298A0; // type:function size:0x54
|
GetShapeAccess__12cCcD_TriAttrCFPQ214cCcD_ShapeAttr5Shape = .text:0x803298A0; // type:function size:0x54
|
||||||
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr2Fv = .text:0x80329900; // type:function size:0x1C
|
GetPos__12cCcD_TriAttrCFPQ34nw4r4math4VEC3 = .text:0x80329900; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr2Fv = .text:0x80329920; // type:function size:0x4C
|
TranslateXZ__12cCcD_TriAttrFff = .text:0x80329920; // type:function size:0x4C
|
||||||
__ct__15dCcD_ShapeAttr5Fv = .text:0x80329970; // type:function size:0x4C
|
__ct__12cCcD_UnkAttrFv = .text:0x80329970; // type:function size:0x4C
|
||||||
__dt__8cM3dGUnkFv = .text:0x803299C0; // type:function size:0x40
|
__dt__8cM3dGUnkFv = .text:0x803299C0; // type:function size:0x40
|
||||||
__dt__15dCcD_ShapeAttr5Fv = .text:0x80329A00; // type:function size:0x58
|
__dt__12cCcD_UnkAttrFv = .text:0x80329A00; // type:function size:0x58
|
||||||
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr5Fv = .text:0x80329A60; // type:function size:0x1B0
|
Calc__12cCcD_UnkAttrFRC7mVec3_cRC7mVec3_cP7mVec3_c = .text:0x80329A60; // type:function size:0x1B0
|
||||||
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr5Fv = .text:0x80329C10; // type:function size:0x1C
|
CrossAtTg__12cCcD_UnkAttrFR14cCcD_ShapeAttrP7mVec3_c = .text:0x80329C10; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr5Fv = .text:0x80329C30; // type:function size:0xC
|
CrossAtTg__12cCcD_UnkAttrFR12cCcD_CpsAttrP7mVec3_c = .text:0x80329C30; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr5Fv = .text:0x80329C40; // type:function size:0xC
|
CrossAtTg__12cCcD_UnkAttrFR12cCcD_TriAttrP7mVec3_c = .text:0x80329C40; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr5Fv = .text:0x80329C50; // type:function size:0xC
|
CrossAtTg__12cCcD_UnkAttrFR12cCcD_UnkAttrP7mVec3_c = .text:0x80329C50; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr5Fv = .text:0x80329C60; // type:function size:0xC
|
CrossAtTg__12cCcD_UnkAttrFR12cCcD_CylAttrP7mVec3_c = .text:0x80329C60; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr5Fv = .text:0x80329C70; // type:function size:0xC
|
CrossAtTg__12cCcD_UnkAttrFR12cCcD_SphAttrP7mVec3_c = .text:0x80329C70; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr5Fv = .text:0x80329C80; // type:function size:0x1C
|
CrossCo__12cCcD_UnkAttrFR14cCcD_ShapeAttrPf = .text:0x80329C80; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr5Fv = .text:0x80329CA0; // type:function size:0x84
|
CrossCo__12cCcD_UnkAttrFR12cCcD_CpsAttrPf = .text:0x80329CA0; // type:function size:0x84
|
||||||
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr5Fv = .text:0x80329D30; // type:function size:0x8
|
CrossCo__12cCcD_UnkAttrFR12cCcD_TriAttrPf = .text:0x80329D30; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr5Fv = .text:0x80329D40; // type:function size:0x8
|
CrossCo__12cCcD_UnkAttrFR12cCcD_UnkAttrPf = .text:0x80329D40; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr5Fv = .text:0x80329D50; // type:function size:0xC
|
CrossCo__12cCcD_UnkAttrFR12cCcD_CylAttrPf = .text:0x80329D50; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr5Fv = .text:0x80329D60; // type:function size:0xC
|
CrossCo__12cCcD_UnkAttrFR12cCcD_SphAttrPf = .text:0x80329D60; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr5Fv = .text:0x80329D70; // type:function size:0x164
|
CalcAabBox__12cCcD_UnkAttrFv = .text:0x80329D70; // type:function size:0x164
|
||||||
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr5Fv = .text:0x80329EE0; // type:function size:0x18
|
GetNVec__12cCcD_UnkAttrCFRC7mVec3_cP7mVec3_c = .text:0x80329EE0; // type:function size:0x18
|
||||||
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr5Fv = .text:0x80329F00; // type:function size:0x1C
|
GetPos__12cCcD_UnkAttrCFPQ34nw4r4math4VEC3 = .text:0x80329F00; // type:function size:0x1C
|
||||||
init__15dCcD_ShapeAttr5FRC16dCcD_SrcAabbAttr = .text:0x80329F20; // type:function size:0x5C
|
Set__12cCcD_UnkAttrFRC15cCcD_SrcUnkAttr = .text:0x80329F20; // type:function size:0x5C
|
||||||
getVirtualCenter__15dCcD_ShapeAttr5Fv = .text:0x80329F80; // type:function size:0x8
|
GetCoP__12cCcD_UnkAttrFv = .text:0x80329F80; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr5Fv = .text:0x80329F90; // type:function size:0x8
|
TranslateXZ__12cCcD_UnkAttrFff = .text:0x80329F90; // type:function size:0x8
|
||||||
__ct__15dCcD_ShapeAttr1Fv = .text:0x80329FA0; // type:function size:0x44
|
__ct__12cCcD_CpsAttrFv = .text:0x80329FA0; // type:function size:0x44
|
||||||
__dt__15dCcD_ShapeAttr1Fv = .text:0x80329FF0; // type:function size:0x58
|
__dt__12cCcD_CpsAttrFv = .text:0x80329FF0; // type:function size:0x58
|
||||||
init__15dCcD_ShapeAttr1FRC16dCcD_SrcUnk1Attr = .text:0x8032A050; // type:function size:0x5C
|
Set__12cCcD_CpsAttrFRC15cCcD_SrcCpsAttr = .text:0x8032A050; // type:function size:0x5C
|
||||||
getVirtualCenter__15dCcD_ShapeAttr1Fv = .text:0x8032A0B0; // type:function size:0x8
|
GetCoP__12cCcD_CpsAttrFv = .text:0x8032A0B0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr1Fv = .text:0x8032A0C0; // type:function size:0x1C
|
CrossAtTg__12cCcD_CpsAttrFR14cCcD_ShapeAttrP7mVec3_c = .text:0x8032A0C0; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr1Fv = .text:0x8032A0E0; // type:function size:0x1C
|
CrossCo__12cCcD_CpsAttrFR14cCcD_ShapeAttrPf = .text:0x8032A0E0; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr1Fv = .text:0x8032A100; // type:function size:0x8
|
CrossCo__12cCcD_CpsAttrFR12cCcD_TriAttrPf = .text:0x8032A100; // type:function size:0x8
|
||||||
fn_8032A110 = .text:0x8032A110; // type:function size:0x308
|
CalcCyl__FRC8cM3dGCylRC7mVec3_cRC7mVec3_cP7mVec3_c = .text:0x8032A110; // type:function size:0x308
|
||||||
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr1Fv = .text:0x8032A420; // type:function size:0x28C
|
Calc__12cCcD_CpsAttrFRC7mVec3_cRC7mVec3_cP7mVec3_c = .text:0x8032A420; // type:function size:0x28C
|
||||||
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr1Fv = .text:0x8032A6B0; // type:function size:0x14
|
CrossAtTg__12cCcD_CpsAttrFR12cCcD_CpsAttrP7mVec3_c = .text:0x8032A6B0; // type:function size:0x14
|
||||||
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr1Fv = .text:0x8032A6D0; // type:function size:0xC
|
CrossAtTg__12cCcD_CpsAttrFR12cCcD_CylAttrP7mVec3_c = .text:0x8032A6D0; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr1Fv = .text:0x8032A6E0; // type:function size:0xC
|
CrossAtTg__12cCcD_CpsAttrFR12cCcD_SphAttrP7mVec3_c = .text:0x8032A6E0; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr1Fv = .text:0x8032A6F0; // type:function size:0xC
|
CrossAtTg__12cCcD_CpsAttrFR12cCcD_TriAttrP7mVec3_c = .text:0x8032A6F0; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr1Fv = .text:0x8032A700; // type:function size:0xC
|
CrossAtTg__12cCcD_CpsAttrFR12cCcD_UnkAttrP7mVec3_c = .text:0x8032A700; // type:function size:0xC
|
||||||
fn_8032A710 = .text:0x8032A710; // type:function size:0xB0
|
SetVirtCenter__12cCcD_CpsAttrFP7mVec3_c = .text:0x8032A710; // type:function size:0xB0
|
||||||
fn_8032A7C0 = .text:0x8032A7C0; // type:function size:0xBC
|
CrossCoCommon__12cCcD_CpsAttrFR14cCcD_ShapeAttrf = .text:0x8032A7C0; // type:function size:0xBC
|
||||||
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr1Fv = .text:0x8032A880; // type:function size:0xA4
|
CrossCo__12cCcD_CpsAttrFR12cCcD_CpsAttrPf = .text:0x8032A880; // type:function size:0xA4
|
||||||
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr1Fv = .text:0x8032A930; // type:function size:0x84
|
CrossCo__12cCcD_CpsAttrFR12cCcD_CylAttrPf = .text:0x8032A930; // type:function size:0x84
|
||||||
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr1Fv = .text:0x8032A9C0; // type:function size:0x8C
|
CrossCo__12cCcD_CpsAttrFR12cCcD_SphAttrPf = .text:0x8032A9C0; // type:function size:0x8C
|
||||||
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr1Fv = .text:0x8032AA50; // type:function size:0x8C
|
CrossCo__12cCcD_CpsAttrFR12cCcD_UnkAttrPf = .text:0x8032AA50; // type:function size:0x8C
|
||||||
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr1Fv = .text:0x8032AAE0; // type:function size:0x90
|
CalcAabBox__12cCcD_CpsAttrFv = .text:0x8032AAE0; // type:function size:0x90
|
||||||
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr1Fv = .text:0x8032AB70; // type:function size:0x188
|
GetNVec__12cCcD_CpsAttrCFRC7mVec3_cP7mVec3_c = .text:0x8032AB70; // type:function size:0x188
|
||||||
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr1Fv = .text:0x8032AD00; // type:function size:0x1C
|
GetPos__12cCcD_CpsAttrCFPQ34nw4r4math4VEC3 = .text:0x8032AD00; // type:function size:0x1C
|
||||||
getShapeAccess__15dCcD_ShapeAttr1Fv = .text:0x8032AD20; // type:function size:0x50
|
GetShapeAccess__12cCcD_CpsAttrCFPQ214cCcD_ShapeAttr5Shape = .text:0x8032AD20; // type:function size:0x50
|
||||||
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr1Fv = .text:0x8032AD70; // type:function size:0x34
|
TranslateXZ__12cCcD_CpsAttrFff = .text:0x8032AD70; // type:function size:0x34
|
||||||
__ct__15dCcD_ShapeAttr3Fv = .text:0x8032ADB0; // type:function size:0x3C
|
__ct__12cCcD_CylAttrFv = .text:0x8032ADB0; // type:function size:0x3C
|
||||||
__dt__15dCcD_ShapeAttr3Fv = .text:0x8032ADF0; // type:function size:0x58
|
__dt__12cCcD_CylAttrFv = .text:0x8032ADF0; // type:function size:0x58
|
||||||
init__15dCcD_ShapeAttr3FRC15dCcD_SrcCylAttr = .text:0x8032AE50; // type:function size:0x68
|
Set__12cCcD_CylAttrFRC15cCcD_SrcCylAttr = .text:0x8032AE50; // type:function size:0x68
|
||||||
getVirtualCenter__15dCcD_ShapeAttr3Fv = .text:0x8032AEC0; // type:function size:0x8
|
GetCoP__12cCcD_CylAttrFv = .text:0x8032AEC0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr3Fv = .text:0x8032AED0; // type:function size:0x28
|
Calc__12cCcD_CylAttrFRC7mVec3_cRC7mVec3_cP7mVec3_c = .text:0x8032AED0; // type:function size:0x28
|
||||||
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr3Fv = .text:0x8032AF00; // type:function size:0x1C
|
CrossAtTg__12cCcD_CylAttrFR14cCcD_ShapeAttrP7mVec3_c = .text:0x8032AF00; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr3Fv = .text:0x8032AF20; // type:function size:0x10
|
CrossAtTg__12cCcD_CylAttrFR12cCcD_CpsAttrP7mVec3_c = .text:0x8032AF20; // type:function size:0x10
|
||||||
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr3Fv = .text:0x8032AF30; // type:function size:0xC
|
CrossAtTg__12cCcD_CylAttrFR12cCcD_CylAttrP7mVec3_c = .text:0x8032AF30; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr3Fv = .text:0x8032AF40; // type:function size:0x2C
|
CrossAtTg__12cCcD_CylAttrFR12cCcD_SphAttrP7mVec3_c = .text:0x8032AF40; // type:function size:0x2C
|
||||||
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr3Fv = .text:0x8032AF70; // type:function size:0xC
|
CrossAtTg__12cCcD_CylAttrFR12cCcD_TriAttrP7mVec3_c = .text:0x8032AF70; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr3Fv = .text:0x8032AF80; // type:function size:0xC
|
CrossAtTg__12cCcD_CylAttrFR12cCcD_UnkAttrP7mVec3_c = .text:0x8032AF80; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr3Fv = .text:0x8032AF90; // type:function size:0x1C
|
CrossCo__12cCcD_CylAttrFR14cCcD_ShapeAttrPf = .text:0x8032AF90; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr3Fv = .text:0x8032AFB0; // type:function size:0x8
|
CrossCo__12cCcD_CylAttrFR12cCcD_TriAttrPf = .text:0x8032AFB0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr3Fv = .text:0x8032AFC0; // type:function size:0xC
|
CrossCo__12cCcD_CylAttrFR12cCcD_CylAttrPf = .text:0x8032AFC0; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr3Fv = .text:0x8032AFD0; // type:function size:0xC
|
CrossCo__12cCcD_CylAttrFR12cCcD_SphAttrPf = .text:0x8032AFD0; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr3Fv = .text:0x8032AFE0; // type:function size:0x84
|
CrossCo__12cCcD_CylAttrFR12cCcD_CpsAttrPf = .text:0x8032AFE0; // type:function size:0x84
|
||||||
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr3Fv = .text:0x8032B070; // type:function size:0xC
|
CrossCo__12cCcD_CylAttrFR12cCcD_UnkAttrPf = .text:0x8032B070; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr3Fv = .text:0x8032B080; // type:function size:0x64
|
CalcAabBox__12cCcD_CylAttrFv = .text:0x8032B080; // type:function size:0x64
|
||||||
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr3Fv = .text:0x8032B0F0; // type:function size:0xE8
|
GetNVec__12cCcD_CylAttrCFRC7mVec3_cP7mVec3_c = .text:0x8032B0F0; // type:function size:0xE8
|
||||||
getShapeAccess__15dCcD_ShapeAttr3Fv = .text:0x8032B1E0; // type:function size:0x5C
|
GetShapeAccess__12cCcD_CylAttrCFPQ214cCcD_ShapeAttr5Shape = .text:0x8032B1E0; // type:function size:0x5C
|
||||||
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr3Fv = .text:0x8032B240; // type:function size:0x1C
|
GetPos__12cCcD_CylAttrCFPQ34nw4r4math4VEC3 = .text:0x8032B240; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr3Fv = .text:0x8032B260; // type:function size:0x1C
|
TranslateXZ__12cCcD_CylAttrFff = .text:0x8032B260; // type:function size:0x1C
|
||||||
__ct__15dCcD_ShapeAttr4Fv = .text:0x8032B280; // type:function size:0x44
|
__ct__12cCcD_SphAttrFv = .text:0x8032B280; // type:function size:0x44
|
||||||
__dt__15dCcD_ShapeAttr4Fv = .text:0x8032B2D0; // type:function size:0x58
|
__dt__12cCcD_SphAttrFv = .text:0x8032B2D0; // type:function size:0x58
|
||||||
init__15dCcD_ShapeAttr4FRC15dCcD_SrcSphAttr = .text:0x8032B330; // type:function size:0x50
|
Set__12cCcD_SphAttrFRC15cCcD_SrcSphAttr = .text:0x8032B330; // type:function size:0x50
|
||||||
getVirtualCenter__15dCcD_ShapeAttr4Fv = .text:0x8032B380; // type:function size:0x8
|
GetCoP__12cCcD_SphAttrFv = .text:0x8032B380; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x0C__15dCcD_ShapeAttr4Fv = .text:0x8032B390; // type:function size:0x190
|
Calc__12cCcD_SphAttrFRC7mVec3_cRC7mVec3_cP7mVec3_c = .text:0x8032B390; // type:function size:0x190
|
||||||
dCcD_ShapeAttr_0x10__15dCcD_ShapeAttr4Fv = .text:0x8032B520; // type:function size:0x1C
|
CrossAtTg__12cCcD_SphAttrFR14cCcD_ShapeAttrP7mVec3_c = .text:0x8032B520; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x14__15dCcD_ShapeAttr4Fv = .text:0x8032B540; // type:function size:0x10
|
CrossAtTg__12cCcD_SphAttrFR12cCcD_CpsAttrP7mVec3_c = .text:0x8032B540; // type:function size:0x10
|
||||||
dCcD_ShapeAttr_0x20__15dCcD_ShapeAttr4Fv = .text:0x8032B550; // type:function size:0x30
|
CrossAtTg__12cCcD_SphAttrFR12cCcD_CylAttrP7mVec3_c = .text:0x8032B550; // type:function size:0x30
|
||||||
dCcD_ShapeAttr_0x24__15dCcD_ShapeAttr4Fv = .text:0x8032B580; // type:function size:0x10
|
CrossAtTg__12cCcD_SphAttrFR12cCcD_SphAttrP7mVec3_c = .text:0x8032B580; // type:function size:0x10
|
||||||
dCcD_ShapeAttr_0x18__15dCcD_ShapeAttr4Fv = .text:0x8032B590; // type:function size:0x14
|
CrossAtTg__12cCcD_SphAttrFR12cCcD_TriAttrP7mVec3_c = .text:0x8032B590; // type:function size:0x14
|
||||||
dCcD_ShapeAttr_0x1C__15dCcD_ShapeAttr4Fv = .text:0x8032B5B0; // type:function size:0xC
|
CrossAtTg__12cCcD_SphAttrFR12cCcD_UnkAttrP7mVec3_c = .text:0x8032B5B0; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x28__15dCcD_ShapeAttr4Fv = .text:0x8032B5C0; // type:function size:0x1C
|
CrossCo__12cCcD_SphAttrFR14cCcD_ShapeAttrPf = .text:0x8032B5C0; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x30__15dCcD_ShapeAttr4Fv = .text:0x8032B5E0; // type:function size:0x8
|
CrossCo__12cCcD_SphAttrFR12cCcD_TriAttrPf = .text:0x8032B5E0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x38__15dCcD_ShapeAttr4Fv = .text:0x8032B5F0; // type:function size:0x10
|
CrossCo__12cCcD_SphAttrFR12cCcD_CylAttrPf = .text:0x8032B5F0; // type:function size:0x10
|
||||||
dCcD_ShapeAttr_0x3C__15dCcD_ShapeAttr4Fv = .text:0x8032B600; // type:function size:0xC
|
CrossCo__12cCcD_SphAttrFR12cCcD_SphAttrPf = .text:0x8032B600; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x2C__15dCcD_ShapeAttr4Fv = .text:0x8032B610; // type:function size:0x8C
|
CrossCo__12cCcD_SphAttrFR12cCcD_CpsAttrPf = .text:0x8032B610; // type:function size:0x8C
|
||||||
dCcD_ShapeAttr_0x34__15dCcD_ShapeAttr4Fv = .text:0x8032B6A0; // type:function size:0xC
|
CrossCo__12cCcD_SphAttrFR12cCcD_UnkAttrPf = .text:0x8032B6A0; // type:function size:0xC
|
||||||
dCcD_ShapeAttr_0x44__15dCcD_ShapeAttr4Fv = .text:0x8032B6B0; // type:function size:0x8
|
CalcAabBox__12cCcD_SphAttrFv = .text:0x8032B6B0; // type:function size:0x8
|
||||||
dCcD_ShapeAttr_0x48__15dCcD_ShapeAttr4Fv = .text:0x8032B6C0; // type:function size:0xA4
|
GetNVec__12cCcD_SphAttrCFRC7mVec3_cP7mVec3_c = .text:0x8032B6C0; // type:function size:0xA4
|
||||||
getShapeAccess__15dCcD_ShapeAttr4Fv = .text:0x8032B770; // type:function size:0x58
|
GetShapeAccess__12cCcD_SphAttrCFPQ214cCcD_ShapeAttr5Shape = .text:0x8032B770; // type:function size:0x58
|
||||||
dCcD_ShapeAttr_0x50__15dCcD_ShapeAttr4Fv = .text:0x8032B7D0; // type:function size:0x1C
|
GetPos__12cCcD_SphAttrCFPQ34nw4r4math4VEC3 = .text:0x8032B7D0; // type:function size:0x1C
|
||||||
dCcD_ShapeAttr_0x54__15dCcD_ShapeAttr4Fv = .text:0x8032B7F0; // type:function size:0x20
|
GetPosBool__12cCcD_SphAttrCFP7mVec3_c = .text:0x8032B7F0; // type:function size:0x20
|
||||||
dCcD_ShapeAttr_0x58__15dCcD_ShapeAttr4Fv = .text:0x8032B810; // type:function size:0x1C
|
TranslateXZ__12cCcD_SphAttrFff = .text:0x8032B810; // type:function size:0x1C
|
||||||
__ct__11dCcD_GObjAtFv = .text:0x8032B830; // type:function size:0x44
|
__ct__10cCcD_ObjAtFv = .text:0x8032B830; // type:function size:0x44
|
||||||
__dt__11dCcD_GObjAtFv = .text:0x8032B880; // type:function size:0x58
|
__dt__10cCcD_ObjAtFv = .text:0x8032B880; // type:function size:0x58
|
||||||
init__11dCcD_GObjAtFPC14dCcD_SrcGObjAt = .text:0x8032B8E0; // type:function size:0x94
|
Set__10cCcD_ObjAtFRC14cCcD_SrcGObjAt = .text:0x8032B8E0; // type:function size:0x94
|
||||||
setSomeAtFlags__11dCcD_GObjAtFUl = .text:0x8032B980; // type:function size:0x14
|
SetAtFlag__10cCcD_ObjAtFUl = .text:0x8032B980; // type:function size:0x14
|
||||||
adjustHitPos__11dCcD_GObjAtFff = .text:0x8032B9A0; // type:function size:0x1C
|
AdjustHitPos__10cCcD_ObjAtFff = .text:0x8032B9A0; // type:function size:0x1C
|
||||||
__ct__11dCcD_GObjTgFv = .text:0x8032B9C0; // type:function size:0x6C
|
__ct__10cCcD_ObjTgFv = .text:0x8032B9C0; // type:function size:0x6C
|
||||||
__dt__11dCcD_GObjTgFv = .text:0x8032BA30; // type:function size:0x58
|
__dt__10cCcD_ObjTgFv = .text:0x8032BA30; // type:function size:0x58
|
||||||
init__11dCcD_GObjTgFPC14dCcD_SrcGObjTg = .text:0x8032BA90; // type:function size:0x64
|
Set__10cCcD_ObjTgFRC14cCcD_SrcGObjTg = .text:0x8032BA90; // type:function size:0x64
|
||||||
adjustHitPos__11dCcD_GObjTgFff = .text:0x8032BB00; // type:function size:0x34
|
AdjustHitPos__10cCcD_ObjTgFff = .text:0x8032BB00; // type:function size:0x34
|
||||||
__ct__11dCcD_GObjCoFv = .text:0x8032BB40; // type:function size:0x48
|
__ct__10cCcD_ObjCoFv = .text:0x8032BB40; // type:function size:0x48
|
||||||
__dt__11dCcD_GObjCoFv = .text:0x8032BB90; // type:function size:0x58
|
__dt__10cCcD_ObjCoFv = .text:0x8032BB90; // type:function size:0x58
|
||||||
init__11dCcD_GObjCoFPC14dCcD_SrcGObjCo = .text:0x8032BBF0; // type:function size:0x18
|
Set__10cCcD_ObjCoFRC14cCcD_SrcGObjCo = .text:0x8032BBF0; // type:function size:0x18
|
||||||
setSomeAtFlags__11dCcD_GObjCoFUl = .text:0x8032BC10; // type:function size:0x1C
|
SetCoFlag__10cCcD_ObjCoFUl = .text:0x8032BC10; // type:function size:0x1C
|
||||||
adjustHitPos__11dCcD_GObjCoFff = .text:0x8032BC30; // type:function size:0x4
|
AdjustHitPos__10cCcD_ObjCoFff = .text:0x8032BC30; // type:function size:0x4
|
||||||
__sinit_\d_cc_d_cpp = .text:0x8032BC40; // type:function size:0x2C scope:local
|
__sinit_\c_cc_d_cpp = .text:0x8032BC40; // type:function size:0x2C scope:local
|
||||||
@44@__dt__15dCcD_ShapeAttr5Fv = .text:0x8032BC70; // type:function size:0x8
|
@44@__dt__12cCcD_UnkAttrFv = .text:0x8032BC70; // type:function size:0x8
|
||||||
cM2d_CrossCirLin__FR8cM2dGCirffffPfPf = .text:0x8032BC80; // type:function size:0x238
|
cM2d_CrossCirLin__FR8cM2dGCirffffPfPf = .text:0x8032BC80; // type:function size:0x238
|
||||||
fn_8032BEC0 = .text:0x8032BEC0; // type:function size:0x40
|
fn_8032BEC0 = .text:0x8032BEC0; // type:function size:0x40
|
||||||
cM3d_Len2dSqPntAndSegLine__FffffffPfPfPf = .text:0x8032BF00; // type:function size:0xB0
|
cM3d_Len2dSqPntAndSegLine__FffffffPfPfPf = .text:0x8032BF00; // type:function size:0xB0
|
||||||
cM3d_Len3dSqPntAndSegLine__FPC8cM3dGLinPCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3PfPf = .text:0x8032BFB0; // type:function size:0x11C
|
cM3d_Len3dSqPntAndSegLine__FRC8cM3dGLinRCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3PfPf = .text:0x8032BFB0; // type:function size:0x11C
|
||||||
cM3d_SignedLenPlaAndPos__FPC8cM3dGPlaPCQ34nw4r4math4VEC3 = .text:0x8032C0D0; // type:function size:0x84
|
cM3d_SignedLenPlaAndPos__FPC8cM3dGPlaPCQ34nw4r4math4VEC3 = .text:0x8032C0D0; // type:function size:0x84
|
||||||
cM3d_CalcPla__FPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3Pf = .text:0x8032C160; // type:function size:0x10C
|
cM3d_CalcPla__FPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3Pf = .text:0x8032C160; // type:function size:0x10C
|
||||||
cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf = .text:0x8032C270; // type:function size:0x298
|
cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf = .text:0x8032C270; // type:function size:0x298
|
||||||
cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaPQ34nw4r4math4VEC3bb = .text:0x8032C510; // type:function size:0x1D0
|
cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaPQ34nw4r4math4VEC3bb = .text:0x8032C510; // type:function size:0x1D0
|
||||||
cM3d_Cross_MinMaxBoxLine__FPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3 = .text:0x8032C6E0; // type:function size:0xD34
|
cM3d_Cross_MinMaxBoxLine__FPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3 = .text:0x8032C6E0; // type:function size:0xD34
|
||||||
cM3d_InclusionCheckPosIn3PosBox3d__FPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3f = .text:0x8032D420; // type:function size:0x134
|
cM3d_InclusionCheckPosIn3PosBox3d__FPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3f = .text:0x8032D420; // type:function size:0x134
|
||||||
cM3d_CrossX_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3f = .text:0x8032D560; // type:function size:0x224
|
cM3d_CrossX_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3f = .text:0x8032D560; // type:function size:0x224
|
||||||
cM3d_CrossX_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032D790; // type:function size:0x228
|
cM3d_CrossX_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032D790; // type:function size:0x228
|
||||||
cM3d_CrossY_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032D9C0; // type:function size:0x228
|
cM3d_CrossY_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032D9C0; // type:function size:0x228
|
||||||
cM3d_CrossY_Tri_Front__FRCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3 = .text:0x8032DBF0; // type:function size:0x184
|
cM3d_CrossY_Tri_Front__FRCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3 = .text:0x8032DBF0; // type:function size:0x184
|
||||||
cM3d_CrossY_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3Pf = .text:0x8032DD80; // type:function size:0x8C
|
cM3d_CrossY_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3Pf = .text:0x8032DD80; // type:function size:0x8C
|
||||||
cM3d_CrossY_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3f = .text:0x8032DE10; // type:function size:0x224
|
cM3d_CrossY_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3f = .text:0x8032DE10; // type:function size:0x224
|
||||||
cM3d_CrossY_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3PC10cM3d_RangePf = .text:0x8032E040; // type:function size:0xDC
|
cM3d_CrossY_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3PC10cM3d_RangePf = .text:0x8032E040; // type:function size:0xDC
|
||||||
cM3d_CrossZ_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3f = .text:0x8032E120; // type:function size:0x224
|
cM3d_CrossZ_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3f = .text:0x8032E120; // type:function size:0x224
|
||||||
cM3d_CrossZ_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032E350; // type:function size:0x228
|
cM3d_CrossZ_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032E350; // type:function size:0x228
|
||||||
cM3d_CrossZ_Tri__FPC8cM3dGTriPCQ34nw4r4math4VEC3Pf = .text:0x8032E580; // type:function size:0x8C
|
cM3d_CrossZ_Tri__FRC8cM3dGTriPCQ34nw4r4math4VEC3Pf = .text:0x8032E580; // type:function size:0x8C
|
||||||
cM3d_Cross_LinTri__FPC8cM3dGLinPC8cM3dGTriPQ34nw4r4math4VEC3bb = .text:0x8032E610; // type:function size:0x2F0
|
cM3d_Cross_LinTri__FRC8cM3dGLinPC8cM3dGTriPQ34nw4r4math4VEC3bb = .text:0x8032E610; // type:function size:0x2F0
|
||||||
cM3d_Cross_LinTri__FPC8cM3dGLinPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PC8cM3dGTriPQ34nw4r4math4VEC3bb = .text:0x8032E900; // type:function size:0x2E4
|
cM3d_Cross_LinTri__FRC8cM3dGLinPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PC8cM3dGTriPQ34nw4r4math4VEC3bb = .text:0x8032E900; // type:function size:0x2E4
|
||||||
cM3d_Cross_LinTri_Easy__FPC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032EBF0; // type:function size:0xD4
|
cM3d_Cross_LinTri_Easy__FRC8cM3dGTriPCQ34nw4r4math4VEC3 = .text:0x8032EBF0; // type:function size:0xD4
|
||||||
cM3d_Cross_SphPnt__FPC8cM3dGSphPCQ34nw4r4math4VEC3 = .text:0x8032ECD0; // type:function size:0x44
|
cM3d_Cross_SphPnt__FRC8cM3dGSphPCQ34nw4r4math4VEC3 = .text:0x8032ECD0; // type:function size:0x44
|
||||||
cM3d_Cross_LinSph__FPC8cM3dGLinPC8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x8032ED20; // type:function size:0x2CC
|
cM3d_Cross_LinSph__FRC8cM3dGLinPC8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x8032ED20; // type:function size:0x2CC
|
||||||
cM3d_Cross_LinSph_CrossPos__FRC8cM3dGSphRC8cM3dGLinPQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x8032EFF0; // type:function size:0x438
|
cM3d_Cross_LinSph_CrossPos__FRC8cM3dGSphRC8cM3dGLinPQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x8032EFF0; // type:function size:0x438
|
||||||
cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphPf = .text:0x8032F430; // type:function size:0x558
|
cM3d_Cross_CylSph__FRC8cM3dGCylRC8cM3dGSphPf = .text:0x8032F430; // type:function size:0x558
|
||||||
cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphPQ34nw4r4math4VEC3Pf = .text:0x8032F990; // type:function size:0x300
|
cM3d_Cross_CylSph__FRC8cM3dGCylRC8cM3dGSphPQ34nw4r4math4VEC3Pf = .text:0x8032F990; // type:function size:0x300
|
||||||
cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPf = .text:0x8032FC90; // type:function size:0xE4
|
cM3d_Cross_SphSph__FRC8cM3dGSphRC8cM3dGSphPf = .text:0x8032FC90; // type:function size:0xE4
|
||||||
cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPfPf = .text:0x8032FD80; // type:function size:0x98
|
cM3d_Cross_SphSph__FRC8cM3dGSphRC8cM3dGSphPfPf = .text:0x8032FD80; // type:function size:0x98
|
||||||
cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x8032FE20; // type:function size:0xE4
|
cM3d_Cross_SphSph__FRC8cM3dGSphRC8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x8032FE20; // type:function size:0xE4
|
||||||
cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x8032FF10; // type:function size:0xFC
|
cM3d_CalcSphVsTriCrossPoint__FRC8cM3dGSphRC8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x8032FF10; // type:function size:0xFC
|
||||||
cM3d_Cross_SphTri__FPC8cM3dGSphPC8cM3dGTriPQ34nw4r4math4VEC3PfPQ34nw4r4math4VEC3 = .text:0x80330010; // type:function size:0x330
|
cM3d_Cross_SphTri__FRC8cM3dGSphRC8cM3dGTriPQ34nw4r4math4VEC3PfPQ34nw4r4math4VEC3 = .text:0x80330010; // type:function size:0x330
|
||||||
cM3d_Cross_CylCyl__FPC8cM3dGCylPC8cM3dGCylPf = .text:0x80330340; // type:function size:0x12C
|
cM3d_Cross_CylCyl__FRC8cM3dGCylRC8cM3dGCylPf = .text:0x80330340; // type:function size:0x12C
|
||||||
cM3d_Cross_CylCyl__FPC8cM3dGCylPC8cM3dGCylPQ34nw4r4math4VEC3 = .text:0x80330470; // type:function size:0x1C4
|
cM3d_Cross_CylCyl__FRC8cM3dGCylRC8cM3dGCylPQ34nw4r4math4VEC3 = .text:0x80330470; // type:function size:0x1C4
|
||||||
cM3d_Cross_CylTri__FPC8cM3dGCylPC8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x80330640; // type:function size:0x320
|
cM3d_Cross_CylTri__FRC8cM3dGCylRC8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x80330640; // type:function size:0x320
|
||||||
fn_80330960 = .text:0x80330960; // type:function size:0x34
|
fn_80330960 = .text:0x80330960; // type:function size:0x34
|
||||||
cM3d_Cross_CylLin__FPC8cM3dGCylPC8cM3dGLinPQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803309A0; // type:function size:0xB30
|
cM3d_Cross_CylLin__FRC8cM3dGCylRC8cM3dGLinPQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803309A0; // type:function size:0xB30
|
||||||
cM3d_Cross_CylPntPnt__FPC8cM3dGCylPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803314D0; // type:function size:0x5C
|
cM3d_Cross_CylPntPnt__FRC8cM3dGCylPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803314D0; // type:function size:0x5C
|
||||||
cM3d_Cross_CylPnt__FPC8cM3dGCylPCQ34nw4r4math4VEC3 = .text:0x80331530; // type:function size:0x64
|
cM3d_Cross_CylPnt__FRC8cM3dGCylPCQ34nw4r4math4VEC3 = .text:0x80331530; // type:function size:0x64
|
||||||
fn_803315A0 = .text:0x803315A0; // type:function size:0x9F8
|
fn_803315A0 = .text:0x803315A0; // type:function size:0x9F8
|
||||||
fn_80331FA0 = .text:0x80331FA0; // type:function size:0x2BC
|
fn_80331FA0 = .text:0x80331FA0; // type:function size:0x2BC
|
||||||
fn_80332260 = .text:0x80332260; // type:function size:0x19C8
|
cM3d_Cross_CpsCps__FRC8cM3dGCpsRC8cM3dGCpsPQ34nw4r4math4VEC3PfPf = .text:0x80332260; // type:function size:0x19C8
|
||||||
fn_80333C30 = .text:0x80333C30; // type:function size:0x100
|
fn_80333C30 = .text:0x80333C30; // type:function size:0x100
|
||||||
fn_80333D30 = .text:0x80333D30; // type:function size:0x244
|
cM3d_Cross_CpsCyl__FRC8cM3dGCpsRC8cM3dGCylPQ34nw4r4math4VEC3 = .text:0x80333D30; // type:function size:0x244
|
||||||
cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x80333F80; // type:function size:0x14C
|
cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x80333F80; // type:function size:0x14C
|
||||||
cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x803340D0; // type:function size:0x628
|
cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x803340D0; // type:function size:0x628
|
||||||
cM3d_Cross_TriTri__FRC8cM3dGTriRC8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x80334700; // type:function size:0x2B8
|
cM3d_Cross_TriTri__FRC8cM3dGTriRC8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x80334700; // type:function size:0x2B8
|
||||||
cM3d_Cross_CpsTri__FRC8cM3dGCps8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x803349C0; // type:function size:0x360
|
cM3d_Cross_CpsTri__FRC8cM3dGCpsRC8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x803349C0; // type:function size:0x360
|
||||||
fn_80334D20 = .text:0x80334D20; // type:function size:0x1C4
|
fn_80334D20 = .text:0x80334D20; // type:function size:0x1C4
|
||||||
cM3d_CalcVecZAngle__FRCQ34nw4r4math4VEC3P7mAng3_c = .text:0x80334EF0; // type:function size:0xA0
|
cM3d_CalcVecZAngle__FRCQ34nw4r4math4VEC3P7mAng3_c = .text:0x80334EF0; // type:function size:0xA0
|
||||||
fn_80334F90 = .text:0x80334F90; // type:function size:0x110
|
fn_80334F90 = .text:0x80334F90; // type:function size:0x110
|
||||||
@ -19003,19 +19003,19 @@ fn_803350A0 = .text:0x803350A0; // type:function size:0x18
|
|||||||
cM3d_PlaneCrossLineProcWork__FfffffffPfPf = .text:0x803350C0; // type:function size:0x2C
|
cM3d_PlaneCrossLineProcWork__FfffffffPfPf = .text:0x803350C0; // type:function size:0x2C
|
||||||
cM3d_2PlaneCrossLine__FRC8cM3dGPlaRC8cM3dGPlaP8cM3dGLin = .text:0x803350F0; // type:function size:0x194
|
cM3d_2PlaneCrossLine__FRC8cM3dGPlaRC8cM3dGPlaP8cM3dGLin = .text:0x803350F0; // type:function size:0x194
|
||||||
cM3d_3PlaneCrossPos__FRC8cM3dGPlaRC8cM3dGPlaRC8cM3dGPlaPQ34nw4r4math4VEC3 = .text:0x80335290; // type:function size:0x144
|
cM3d_3PlaneCrossPos__FRC8cM3dGPlaRC8cM3dGPlaRC8cM3dGPlaPQ34nw4r4math4VEC3 = .text:0x80335290; // type:function size:0x144
|
||||||
cM3d_lineVsPosSuisenCross__FPC8cM3dGLinPCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803353E0; // type:function size:0x10
|
cM3d_lineVsPosSuisenCross__FRC8cM3dGLinRCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803353E0; // type:function size:0x10
|
||||||
cM3d_lineVsPosSuisenCross__FRCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803353F0; // type:function size:0xEC
|
cM3d_lineVsPosSuisenCross__FRCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3PQ34nw4r4math4VEC3 = .text:0x803353F0; // type:function size:0xEC
|
||||||
fn_803354e0__FP8cM3dGUnkP8cM3dGUnkPQ34nw4r4math4VEC3 = .text:0x803354E0; // type:function size:0xB20
|
cM3d_Cross_UnkTri__FRC8cM3dGUnkR8cM3dGTriPQ34nw4r4math4VEC3 = .text:0x803354E0; // type:function size:0xB20
|
||||||
fn_80336000 = .text:0x80336000; // type:function size:0x108
|
fn_80336000 = .text:0x80336000; // type:function size:0x108
|
||||||
fn_80336110__FP8cM3dGCylP8cM3dGUnkPQ34nw4r4math4VEC3 = .text:0x80336110; // type:function size:0x3C4
|
cM3d_Cross_CylUnk__FRC8cM3dGCylR8cM3dGUnkPQ34nw4r4math4VEC3 = .text:0x80336110; // type:function size:0x3C4
|
||||||
fn_803364e0__FP8cM3dGCylP8cM3dGUnkPf = .text:0x803364E0; // type:function size:0x858
|
cM3d_Cross_CylUnk__FRC8cM3dGCylR8cM3dGUnkPf = .text:0x803364E0; // type:function size:0x858
|
||||||
fn_80336D40 = .text:0x80336D40; // type:function size:0x4C
|
fn_80336D40 = .text:0x80336D40; // type:function size:0x4C
|
||||||
fn_80336d90__FP8cM3dGCpsP8cM3dGUnkPQ34nw4r4math4VEC3 = .text:0x80336D90; // type:function size:0x68C
|
cM3d_Cross_CpsUnk__FRC8cM3dGCpsR8cM3dGUnkPQ34nw4r4math4VEC3 = .text:0x80336D90; // type:function size:0x68C
|
||||||
fn_80337420 = .text:0x80337420; // type:function size:0x264
|
fn_80337420 = .text:0x80337420; // type:function size:0x264
|
||||||
fn_80337690__FP8cM3dGUnkP8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x80337690; // type:function size:0xE4
|
cM3d_Cross_UnkSph__FRC8cM3dGUnkR8cM3dGSphPQ34nw4r4math4VEC3 = .text:0x80337690; // type:function size:0xE4
|
||||||
fn_80337780__FP8cM3dGUnkP8cM3dGSphPf = .text:0x80337780; // type:function size:0x308
|
cM3d_Cross_UnkSph__FRC8cM3dGUnkR8cM3dGSphPf = .text:0x80337780; // type:function size:0x308
|
||||||
fn_80337A90 = .text:0x80337A90; // type:function size:0x80
|
cM3d_Normalize__FPQ34nw4r4math4VEC3 = .text:0x80337A90; // type:function size:0x80
|
||||||
fn_80337B10 = .text:0x80337B10; // type:function size:0x48
|
cM3d_Normalize_Ex__FPQ34nw4r4math4VEC3 = .text:0x80337B10; // type:function size:0x48
|
||||||
SetMin__8cM3dGAabFRC7mVec3_c = .text:0x80337B60; // type:function size:0x40
|
SetMin__8cM3dGAabFRC7mVec3_c = .text:0x80337B60; // type:function size:0x40
|
||||||
SetMax__8cM3dGAabFRC7mVec3_c = .text:0x80337BA0; // type:function size:0x40
|
SetMax__8cM3dGAabFRC7mVec3_c = .text:0x80337BA0; // type:function size:0x40
|
||||||
CalcCenter__8cM3dGAabCFR7mVec3_c = .text:0x80337BE0; // type:function size:0x44
|
CalcCenter__8cM3dGAabCFR7mVec3_c = .text:0x80337BE0; // type:function size:0x44
|
||||||
@ -19028,14 +19028,14 @@ __ct__8cM3dGCpsFv = .text:0x80337EA0; // type:function size:0x18
|
|||||||
SetR__8cM3dGCpsFf = .text:0x80337EC0; // type:function size:0x20
|
SetR__8cM3dGCpsFf = .text:0x80337EC0; // type:function size:0x20
|
||||||
Set_0x1C__8cM3dGCpsFf = .text:0x80337EE0; // type:function size:0x8
|
Set_0x1C__8cM3dGCpsFf = .text:0x80337EE0; // type:function size:0x8
|
||||||
Set__8cM3dGCpsFRC7mVec3_cRC7mVec3_cf = .text:0x80337EF0; // type:function size:0x34
|
Set__8cM3dGCpsFRC7mVec3_cRC7mVec3_cf = .text:0x80337EF0; // type:function size:0x34
|
||||||
fn_80337f30__8cM3dGCpsFP8cM3dGUnkP7mVec3_c = .text:0x80337F30; // type:function size:0x4
|
Cross__8cM3dGCpsFR8cM3dGUnkP7mVec3_c = .text:0x80337F30; // type:function size:0x4
|
||||||
fn_80337f40__8cM3dGCpsCFRC7mVec3_c = .text:0x80337F40; // type:function size:0xD8
|
fn_80337f40__8cM3dGCpsCFRC7mVec3_c = .text:0x80337F40; // type:function size:0xD8
|
||||||
SetC__8cM3dGCylFRC7mVec3_cff = .text:0x80338020; // type:function size:0x5C
|
SetC__8cM3dGCylFRC7mVec3_cff = .text:0x80338020; // type:function size:0x5C
|
||||||
SetC__8cM3dGCylFRC7mVec3_c = .text:0x80338080; // type:function size:0x1C
|
SetC__8cM3dGCylFRC7mVec3_c = .text:0x80338080; // type:function size:0x1C
|
||||||
SetH__8cM3dGCylFf = .text:0x803380A0; // type:function size:0x18
|
SetH__8cM3dGCylFf = .text:0x803380A0; // type:function size:0x18
|
||||||
SetR__8cM3dGCylFf = .text:0x803380C0; // type:function size:0x18
|
SetR__8cM3dGCylFf = .text:0x803380C0; // type:function size:0x18
|
||||||
fn_803380e0__8cM3dGCylFP8cM3dGUnkP7mVec3_c = .text:0x803380E0; // type:function size:0x4
|
Cross__8cM3dGCylFR8cM3dGUnkP7mVec3_c = .text:0x803380E0; // type:function size:0x4
|
||||||
fn_803380f0__8cM3dGCylFP8cM3dGUnkPf = .text:0x803380F0; // type:function size:0x4
|
Cross__8cM3dGCylFR8cM3dGUnkPf = .text:0x803380F0; // type:function size:0x4
|
||||||
Cross__8cM3dGCylCFRC7mVec3_c = .text:0x80338100; // type:function size:0x6C
|
Cross__8cM3dGCylCFRC7mVec3_c = .text:0x80338100; // type:function size:0x6C
|
||||||
Clamp__8cM3dGCylCFRC7mVec3_cR7mVec3_c = .text:0x80338170; // type:function size:0x1D8
|
Clamp__8cM3dGCylCFRC7mVec3_cR7mVec3_c = .text:0x80338170; // type:function size:0x1D8
|
||||||
SetStartEnd__8cM3dGLinFRCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3 = .text:0x80338350; // type:function size:0x34
|
SetStartEnd__8cM3dGLinFRCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3 = .text:0x80338350; // type:function size:0x34
|
||||||
@ -19051,8 +19051,8 @@ SetC__8cM3dGSphFPC7mVec3_c = .text:0x80338690; // type:function size:0x1C
|
|||||||
Set__8cM3dGSphFPC7mVec3_cf = .text:0x803386B0; // type:function size:0x44
|
Set__8cM3dGSphFPC7mVec3_cf = .text:0x803386B0; // type:function size:0x44
|
||||||
SetR__8cM3dGSphFf = .text:0x80338700; // type:function size:0x18
|
SetR__8cM3dGSphFf = .text:0x80338700; // type:function size:0x18
|
||||||
SetC__8cM3dGSphFfff = .text:0x80338720; // type:function size:0x30
|
SetC__8cM3dGSphFfff = .text:0x80338720; // type:function size:0x30
|
||||||
fn_80338750__8cM3dGSphFP8cM3dGUnkP7mVec3_c = .text:0x80338750; // type:function size:0x10
|
Cross__8cM3dGSphFR8cM3dGUnkP7mVec3_c = .text:0x80338750; // type:function size:0x10
|
||||||
fn_80338760__8cM3dGSphFP8cM3dGUnkPf = .text:0x80338760; // type:function size:0x10
|
Cross__8cM3dGSphFR8cM3dGUnkPf = .text:0x80338760; // type:function size:0x10
|
||||||
GetYDist__8cM3dGSphCFf = .text:0x80338770; // type:function size:0x6C
|
GetYDist__8cM3dGSphCFf = .text:0x80338770; // type:function size:0x6C
|
||||||
Cross__8cM3dGSphFPC8cM3dGTriPfP7mVec3_c = .text:0x803387E0; // type:function size:0x10
|
Cross__8cM3dGSphFPC8cM3dGTriPfP7mVec3_c = .text:0x803387E0; // type:function size:0x10
|
||||||
Clamp__8cM3dGSphCFRC7mVec3_cR7mVec3_c = .text:0x803387F0; // type:function size:0xE0
|
Clamp__8cM3dGSphCFRC7mVec3_cR7mVec3_c = .text:0x803387F0; // type:function size:0xE0
|
||||||
@ -19062,13 +19062,13 @@ __ct__8cM3dGUnkFv = .text:0x80338940; // type:function size:0xB4
|
|||||||
Set__8cM3dGUnkFRC7mVec3_cRC7mVec3_c = .text:0x80338A00; // type:function size:0x144
|
Set__8cM3dGUnkFRC7mVec3_cRC7mVec3_c = .text:0x80338A00; // type:function size:0x144
|
||||||
Update__8cM3dGUnkFv = .text:0x80338B50; // type:function size:0xA0
|
Update__8cM3dGUnkFv = .text:0x80338B50; // type:function size:0xA0
|
||||||
GetStartEnd__8cM3dGUnkFR7mVec3_cR7mVec3_c = .text:0x80338BF0; // type:function size:0x34
|
GetStartEnd__8cM3dGUnkFR7mVec3_cR7mVec3_c = .text:0x80338BF0; // type:function size:0x34
|
||||||
fn_80338c30__8cM3dGUnkFP8cM3dGCpsP7mVec3_c = .text:0x80338C30; // type:function size:0x10
|
Cross__8cM3dGUnkFR8cM3dGCpsP7mVec3_c = .text:0x80338C30; // type:function size:0x10
|
||||||
fn_80338c40__8cM3dGUnkFP8cM3dGUnkP7mVec3_c = .text:0x80338C40; // type:function size:0x5C
|
Cross__8cM3dGUnkFR8cM3dGTriP7mVec3_c = .text:0x80338C40; // type:function size:0x5C
|
||||||
fn_80338ca0__8cM3dGUnkFv = .text:0x80338CA0; // type:function size:0x8
|
Cross__8cM3dGUnkFR8cM3dGUnkP7mVec3_c = .text:0x80338CA0; // type:function size:0x8
|
||||||
fn_80338cb0__8cM3dGUnkFP8cM3dGCylP7mVec3_c = .text:0x80338CB0; // type:function size:0x10
|
Cross__8cM3dGUnkFR8cM3dGCylP7mVec3_c = .text:0x80338CB0; // type:function size:0x10
|
||||||
fn_80338cc0__8cM3dGUnkFP8cM3dGCylPf = .text:0x80338CC0; // type:function size:0x10
|
Cross__8cM3dGUnkFR8cM3dGCylPf = .text:0x80338CC0; // type:function size:0x10
|
||||||
fn_80338cd0__8cM3dGUnkFP8cM3dGSphP7mVec3_c = .text:0x80338CD0; // type:function size:0x4
|
Cross__8cM3dGUnkFR8cM3dGSphP7mVec3_c = .text:0x80338CD0; // type:function size:0x4
|
||||||
fn_80338ce0__8cM3dGUnkFP8cM3dGSphPf = .text:0x80338CE0; // type:function size:0x4
|
Cross__8cM3dGUnkFR8cM3dGSphPf = .text:0x80338CE0; // type:function size:0x4
|
||||||
Set__8cM3dGUnkFRC6mMtx_c = .text:0x80338CF0; // type:function size:0x64
|
Set__8cM3dGUnkFRC6mMtx_c = .text:0x80338CF0; // type:function size:0x64
|
||||||
Set__8cM3dGUnkFRC7mVec3_cRC4mAng = .text:0x80338D60; // type:function size:0x78
|
Set__8cM3dGUnkFRC7mVec3_cRC4mAng = .text:0x80338D60; // type:function size:0x78
|
||||||
Cross__8cM3dGUnkFRC7mVec3_c = .text:0x80338DE0; // type:function size:0xBC
|
Cross__8cM3dGUnkFRC7mVec3_c = .text:0x80338DE0; // type:function size:0xBC
|
||||||
@ -19694,94 +19694,94 @@ fn_80353920 = .text:0x80353920; // type:function size:0xDC
|
|||||||
fn_80353A00 = .text:0x80353A00; // type:function size:0x128
|
fn_80353A00 = .text:0x80353A00; // type:function size:0x128
|
||||||
GetIsDraw__8dBgWTimeFi = .text:0x80353B30; // type:function size:0x8
|
GetIsDraw__8dBgWTimeFi = .text:0x80353B30; // type:function size:0x8
|
||||||
DrawOnMap__8dBgWTimeFib = .text:0x80353B40; // type:function size:0x4
|
DrawOnMap__8dBgWTimeFib = .text:0x80353B40; // type:function size:0x4
|
||||||
__ct__9dCcD_Unk1Fv = .text:0x80353B50; // type:function size:0x4C
|
__ct__8dCcD_CpsFv = .text:0x80353B50; // type:function size:0x4C
|
||||||
__dt__9dCcD_Unk1Fv = .text:0x80353BA0; // type:function size:0x68
|
__dt__8dCcD_CpsFv = .text:0x80353BA0; // type:function size:0x68
|
||||||
init__9dCcD_Unk1FRC11dCcD_SrcUnk = .text:0x80353C10; // type:function size:0x44
|
Set__8dCcD_CpsFRC11dCcD_SrcCps = .text:0x80353C10; // type:function size:0x44
|
||||||
dCcD_GObjInf_0x0C__9dCcD_Unk1Fv = .text:0x80353C60; // type:function size:0x10
|
GetShapeAttr__8dCcD_CpsFv = .text:0x80353C60; // type:function size:0x10
|
||||||
unknownCalc__9dCcD_Unk1Fv = .text:0x80353C70; // type:function size:0x14
|
unknownCalc__8dCcD_CpsFv = .text:0x80353C70; // type:function size:0x14
|
||||||
__ct__10dCcD_EmptyFv = .text:0x80353C90; // type:function size:0x4C
|
__ct__8dCcD_TriFv = .text:0x80353C90; // type:function size:0x4C
|
||||||
__dt__10dCcD_EmptyFv = .text:0x80353CE0; // type:function size:0x68
|
__dt__8dCcD_TriFv = .text:0x80353CE0; // type:function size:0x68
|
||||||
init__10dCcD_EmptyFRC13dCcD_SrcEmpty = .text:0x80353D50; // type:function size:0x4
|
Set__8dCcD_TriFRC11dCcD_SrcTri = .text:0x80353D50; // type:function size:0x4
|
||||||
dCcD_GObjInf_0x0C__10dCcD_EmptyFv = .text:0x80353D60; // type:function size:0x10
|
GetShapeAttr__8dCcD_TriFv = .text:0x80353D60; // type:function size:0x10
|
||||||
__ct__8dCcD_CylFv = .text:0x80353D70; // type:function size:0x4C
|
__ct__8dCcD_CylFv = .text:0x80353D70; // type:function size:0x4C
|
||||||
__dt__8dCcD_CylFv = .text:0x80353DC0; // type:function size:0x68
|
__dt__8dCcD_CylFv = .text:0x80353DC0; // type:function size:0x68
|
||||||
init__8dCcD_CylFRC11dCcD_SrcCyl = .text:0x80353E30; // type:function size:0x44
|
Set__8dCcD_CylFRC11dCcD_SrcCyl = .text:0x80353E30; // type:function size:0x44
|
||||||
dCcD_GObjInf_0x0C__8dCcD_CylFv = .text:0x80353E80; // type:function size:0x10
|
GetShapeAttr__8dCcD_CylFv = .text:0x80353E80; // type:function size:0x10
|
||||||
setCenter__8dCcD_CylFRC7mVec3_c = .text:0x80353E90; // type:function size:0x28
|
setCenter__8dCcD_CylFRC7mVec3_c = .text:0x80353E90; // type:function size:0x28
|
||||||
moveCenter__8dCcD_CylFRC7mVec3_c = .text:0x80353EC0; // type:function size:0x64
|
moveCenter__8dCcD_CylFRC7mVec3_c = .text:0x80353EC0; // type:function size:0x64
|
||||||
__ct__8dCcD_SphFv = .text:0x80353F30; // type:function size:0x4C
|
__ct__8dCcD_SphFv = .text:0x80353F30; // type:function size:0x4C
|
||||||
__dt__8dCcD_SphFv = .text:0x80353F80; // type:function size:0x68
|
__dt__8dCcD_SphFv = .text:0x80353F80; // type:function size:0x68
|
||||||
init__8dCcD_SphFRC11dCcD_SrcSph = .text:0x80353FF0; // type:function size:0x44
|
Set__8dCcD_SphFRC11dCcD_SrcSph = .text:0x80353FF0; // type:function size:0x44
|
||||||
setCenter__8dCcD_SphFRC7mVec3_c = .text:0x80354040; // type:function size:0x28
|
setCenter__8dCcD_SphFRC7mVec3_c = .text:0x80354040; // type:function size:0x28
|
||||||
moveCenter__8dCcD_SphFRC7mVec3_c = .text:0x80354070; // type:function size:0x64
|
moveCenter__8dCcD_SphFRC7mVec3_c = .text:0x80354070; // type:function size:0x64
|
||||||
setCenterAndAtVec__8dCcD_SphFRC7mVec3_cRC7mVec3_c = .text:0x803540E0; // type:function size:0x20
|
setCenterAndAtVec__8dCcD_SphFRC7mVec3_cRC7mVec3_c = .text:0x803540E0; // type:function size:0x20
|
||||||
dCcD_GObjInf_0x0C__8dCcD_SphFv = .text:0x80354100; // type:function size:0x10
|
GetShapeAttr__8dCcD_SphFv = .text:0x80354100; // type:function size:0x10
|
||||||
__ct__9dCcD_AabbFv = .text:0x80354110; // type:function size:0x54
|
__ct__8dCcD_UnkFv = .text:0x80354110; // type:function size:0x54
|
||||||
__dt__9dCcD_AabbFv = .text:0x80354170; // type:function size:0x68
|
__dt__8dCcD_UnkFv = .text:0x80354170; // type:function size:0x68
|
||||||
init__9dCcD_AabbFRC12dCcD_SrcAabb = .text:0x803541E0; // type:function size:0x44
|
Set__8dCcD_UnkFRC11dCcD_SrcUnk = .text:0x803541E0; // type:function size:0x44
|
||||||
dCcD_GObjInf_0x0C__9dCcD_AabbFv = .text:0x80354230; // type:function size:0x10
|
GetShapeAttr__8dCcD_UnkFv = .text:0x80354230; // type:function size:0x10
|
||||||
@272@__dt__9dCcD_Unk1Fv = .text:0x80354240; // type:function size:0x8
|
@272@__dt__8dCcD_CpsFv = .text:0x80354240; // type:function size:0x8
|
||||||
@272@__dt__10dCcD_EmptyFv = .text:0x80354250; // type:function size:0x8
|
@272@__dt__8dCcD_TriFv = .text:0x80354250; // type:function size:0x8
|
||||||
@272@__dt__8dCcD_CylFv = .text:0x80354260; // type:function size:0x8
|
@272@__dt__8dCcD_CylFv = .text:0x80354260; // type:function size:0x8
|
||||||
@272@__dt__8dCcD_SphFv = .text:0x80354270; // type:function size:0x8
|
@272@__dt__8dCcD_SphFv = .text:0x80354270; // type:function size:0x8
|
||||||
@316@__dt__9dCcD_AabbFv = .text:0x80354280; // type:function size:0x8
|
@316@__dt__8dCcD_UnkFv = .text:0x80354280; // type:function size:0x8
|
||||||
@272@__dt__9dCcD_AabbFv = .text:0x80354290; // type:function size:0x8
|
@272@__dt__8dCcD_UnkFv = .text:0x80354290; // type:function size:0x8
|
||||||
fn_803542A0 = .text:0x803542A0; // type:function size:0x14
|
fn_803542A0 = .text:0x803542A0; // type:function size:0x14
|
||||||
fn_803542C0 = .text:0x803542C0; // type:function size:0x54
|
fn_803542C0 = .text:0x803542C0; // type:function size:0x54
|
||||||
fn_80354320 = .text:0x80354320; // type:function size:0x54
|
fn_80354320 = .text:0x80354320; // type:function size:0x54
|
||||||
fn_80354380 = .text:0x80354380; // type:function size:0x48
|
fn_80354380 = .text:0x80354380; // type:function size:0x48
|
||||||
fn_803543D0 = .text:0x803543D0; // type:function size:0x14
|
fn_803543D0 = .text:0x803543D0; // type:function size:0x14
|
||||||
fn_803543F0 = .text:0x803543F0; // type:function size:0x40
|
__ct__12dCcMassS_ObjFv = .text:0x803543F0; // type:function size:0x40
|
||||||
fn_80354430 = .text:0x80354430; // type:function size:0x5C
|
__dt__12dCcMassS_ObjFv = .text:0x80354430; // type:function size:0x5C
|
||||||
fn_80354490 = .text:0x80354490; // type:function size:0x10
|
Set__12dCcMassS_ObjFP8cCcD_ObjUcPFP12dAcObjBase_cP7mVec3_cUl_v = .text:0x80354490; // type:function size:0x10
|
||||||
fn_803544A0 = .text:0x803544A0; // type:function size:0x24
|
Clear__12dCcMassS_ObjFv = .text:0x803544A0; // type:function size:0x24
|
||||||
fn_803544D0 = .text:0x803544D0; // type:function size:0x10
|
__ct__15dCcMassS_HitInfFv = .text:0x803544D0; // type:function size:0x10
|
||||||
fn_803544E0 = .text:0x803544E0; // type:function size:0x40
|
__dt__15dCcMassS_HitInfFv = .text:0x803544E0; // type:function size:0x40
|
||||||
fn_80354520 = .text:0x80354520; // type:function size:0x1C
|
ClearPointer__15dCcMassS_HitInfFv = .text:0x80354520; // type:function size:0x1C
|
||||||
fn_80354540 = .text:0x80354540; // type:function size:0xA4
|
__ct__12dCcMassS_MngFv = .text:0x80354540; // type:function size:0xA4
|
||||||
fn_803545F0 = .text:0x803545F0; // type:function size:0xB4
|
__dt__12dCcMassS_MngFv = .text:0x803545F0; // type:function size:0xB4
|
||||||
fn_803546B0 = .text:0x803546B0; // type:function size:0x30
|
Ct__12dCcMassS_MngFv = .text:0x803546B0; // type:function size:0x30
|
||||||
fn_803546E0 = .text:0x803546E0; // type:function size:0x68
|
SetAttr__12dCcMassS_MngFffUcUc = .text:0x803546E0; // type:function size:0x68
|
||||||
fn_80354750 = .text:0x80354750; // type:function size:0x240
|
Prepare__12dCcMassS_MngFv = .text:0x80354750; // type:function size:0x240
|
||||||
fn_80354990 = .text:0x80354990; // type:function size:0x504
|
Chk__12dCcMassS_MngFP7mVec3_cPP12dAcObjBase_cP15dCcMassS_HitInf = .text:0x80354990; // type:function size:0x504
|
||||||
fn_80354EA0 = .text:0x80354EA0; // type:function size:0xAC
|
Clear__12dCcMassS_MngFv = .text:0x80354EA0; // type:function size:0xAC
|
||||||
fn_80354F50 = .text:0x80354F50; // type:function size:0x9C
|
SetObj__12dCcMassS_MngFP8cCcD_ObjUc = .text:0x80354F50; // type:function size:0x9C
|
||||||
fn_80354FF0 = .text:0x80354FF0; // type:function size:0x90
|
SetArea__12dCcMassS_MngFP8cCcD_ObjUcPFP12dAcObjBase_cP7mVec3_cUl_v = .text:0x80354FF0; // type:function size:0x90
|
||||||
getColliderManager__15ColliderManagerFv = .text:0x80355080; // type:function size:0x8
|
GetInstance__4dCcSFv = .text:0x80355080; // type:function size:0x8
|
||||||
ColliderManager__Ct = .text:0x80355090; // type:function size:0x428
|
Ct_cCcS__4dCcSFv = .text:0x80355090; // type:function size:0x428
|
||||||
ColliderManager__ctor = .text:0x803554C0; // type:function size:0x4C
|
__ct__4dCcSFv = .text:0x803554C0; // type:function size:0x4C
|
||||||
fn_80355510 = .text:0x80355510; // type:function size:0x70
|
__dt__4dCcSFv = .text:0x80355510; // type:function size:0x70
|
||||||
ColliderManager__init = .text:0x80355580; // type:function size:0x3C
|
Ct__4dCcSFv = .text:0x80355580; // type:function size:0x3C
|
||||||
fn_803555C0 = .text:0x803555C0; // type:function size:0x34
|
Dt__4dCcSFv = .text:0x803555C0; // type:function size:0x34
|
||||||
fn_80355600 = .text:0x80355600; // type:function size:0x30
|
ChkRemoveActor__4dCcSFP12dAcObjBase_c = .text:0x80355600; // type:function size:0x30
|
||||||
fn_80355630 = .text:0x80355630; // type:function size:0x218
|
ChkNoHitAtTg__4dCcSFP8cCcD_ObjP8cCcD_Obj = .text:0x80355630; // type:function size:0x218
|
||||||
fn_80355850 = .text:0x80355850; // type:function size:0x1CC
|
ChkAtTgCommonHitInf__4dCcSFP8cCcD_ObjP8cCcD_Obj = .text:0x80355850; // type:function size:0x1CC
|
||||||
fn_80355A20 = .text:0x80355A20; // type:function size:0x8CC
|
ChkAtTg__4dCcSFv = .text:0x80355A20; // type:function size:0x8CC
|
||||||
fn_803562F0 = .text:0x803562F0; // type:function size:0x170
|
ChkNoHitCo__4dCcSFP8cCcD_ObjP8cCcD_Obj = .text:0x803562F0; // type:function size:0x170
|
||||||
fn_80356460 = .text:0x80356460; // type:function size:0x138
|
SetCoCommonHitInf__4dCcSFP8cCcD_ObjP7mVec3_cP8cCcD_ObjP7mVec3_cf = .text:0x80356460; // type:function size:0x138
|
||||||
ColliderManager__calcHits1 = .text:0x803565A0; // type:function size:0x168
|
ChkCo__4dCcSFv = .text:0x803565A0; // type:function size:0x168
|
||||||
fn_80356710 = .text:0x80356710; // type:function size:0xD4
|
ChkSheildFrontRange__4dCcSFP8cCcD_ObjP8cCcD_Obj = .text:0x80356710; // type:function size:0xD4
|
||||||
fn_803567F0 = .text:0x803567F0; // type:function size:0xF0
|
ChkShield__4dCcSFP8cCcD_ObjP8cCcD_ObjPPFP12dAcObjBase_cP8cCcD_ObjP12dAcObjBase_cP8cCcD_Obj_i = .text:0x803567F0; // type:function size:0xF0
|
||||||
fn_803568E0 = .text:0x803568E0; // type:function size:0xEC
|
ChkAtTgHitAfterCross__4dCcSFbbP8cCcD_ObjP8cCcD_Obj = .text:0x803568E0; // type:function size:0xEC
|
||||||
fn_803569D0 = .text:0x803569D0; // type:function size:0xE8
|
SetCoObjInf__4dCcSFbbP8cCcD_ObjP8cCcD_Obj = .text:0x803569D0; // type:function size:0xE8
|
||||||
fn_80356AC0 = .text:0x80356AC0; // type:function size:0x258
|
SetPosCorrect__4dCcSFP8cCcD_ObjP7mVec3_cP8cCcD_ObjP7mVec3_cf = .text:0x80356AC0; // type:function size:0x258
|
||||||
fn_80356D20 = .text:0x80356D20; // type:function size:0x2A4
|
CalcParticleAngle__4dCcSFP8cCcD_ObjP8cCcD_ObjP7mAng3_cb = .text:0x80356D20; // type:function size:0x2A4
|
||||||
fn_80356FD0 = .text:0x80356FD0; // type:function size:0x184
|
fn_80356fd0__4dCcSFP7mVec3_cP8cCcD_ObjP8cCcD_Obj = .text:0x80356FD0; // type:function size:0x184
|
||||||
fn_80357160 = .text:0x80357160; // type:function size:0x21C
|
ProcAtTgHitmark__4dCcSFP8cCcD_ObjP8cCcD_ObjP7mVec3_cUlP7mVec3_c = .text:0x80357160; // type:function size:0x21C
|
||||||
fn_80357380 = .text:0x80357380; // type:function size:0x274
|
SetAtTgObjInf__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP7mVec3_cb = .text:0x80357380; // type:function size:0x274
|
||||||
fn_80357600 = .text:0x80357600; // type:function size:0x1E8
|
ChkCamera__4dCcSFR7mVec3_cR7mVec3_cP12dAcObjBase_cP12dAcObjBase_cP12dAcObjBase_cf = .text:0x80357600; // type:function size:0x1E8
|
||||||
fn_803577F0 = .text:0x803577F0; // type:function size:0x2D4
|
ChkCameraPoint__4dCcSFRC7mVec3_cRC7mVec3_cR7mVec3_cP12dAcObjBase_cP12dAcObjBase_cP12dAcObjBase_cf = .text:0x803577F0; // type:function size:0x2D4
|
||||||
fn_80357AD0 = .text:0x80357AD0; // type:function size:0x1B4
|
ChkCo__4dCcSFRC7mVec3_cP12dAcObjBase_c = .text:0x80357AD0; // type:function size:0x1B4
|
||||||
fn_80357C90 = .text:0x80357C90; // type:function size:0x218
|
fn_80357c90__4dCcSFRC7mVec3_cRC7mVec3_cUlPPv = .text:0x80357C90; // type:function size:0x218
|
||||||
addCollider__15ColliderManagerFP12dCcD_GObjInf = .text:0x80357EB0; // type:function size:0x13C
|
Set__4dCcSFP8cCcD_Obj = .text:0x80357EB0; // type:function size:0x13C
|
||||||
fn_80357FF0 = .text:0x80357FF0; // type:function size:0x4
|
MoveAfterCheck__4dCcSFv = .text:0x80357FF0; // type:function size:0x4
|
||||||
fn_80358000 = .text:0x80358000; // type:function size:0x1DC
|
RemoveDeadObj__4dCcSFv = .text:0x80358000; // type:function size:0x1DC
|
||||||
ColliderManager__CalcArea = .text:0x803581E0; // type:function size:0x1D0
|
CalcArea__4dCcSFv = .text:0x803581E0; // type:function size:0x1D0
|
||||||
fn_803583B0 = .text:0x803583B0; // type:function size:0xA4
|
Move__4dCcSFv = .text:0x803583B0; // type:function size:0xA4
|
||||||
fn_80358460 = .text:0x80358460; // type:function size:0x8
|
MassClear__4dCcSFv = .text:0x80358460; // type:function size:0x8
|
||||||
fn_80358470 = .text:0x80358470; // type:function size:0x114
|
SetArea__4dCcSFP6mMtx_c = .text:0x80358470; // type:function size:0x114
|
||||||
fn_80358590 = .text:0x80358590; // type:function size:0xC
|
ClearArea__4dCcSFv = .text:0x80358590; // type:function size:0xC
|
||||||
fn_803585A0 = .text:0x803585A0; // type:function size:0xB4
|
AdjustHitPos__4dCcSFv = .text:0x803585A0; // type:function size:0xB4
|
||||||
fn_80358660 = .text:0x80358660; // type:function size:0x1C
|
fn_80358660 = .text:0x80358660; // type:function size:0x1C
|
||||||
fn_80358680 = .text:0x80358680; // type:function size:0x2C
|
fn_80358680 = .text:0x80358680; // type:function size:0x2C
|
||||||
fn_803586B0 = .text:0x803586B0; // type:function size:0x7C
|
fn_803586B0 = .text:0x803586B0; // type:function size:0x7C
|
||||||
@ -34378,7 +34378,7 @@ lbl_80533090 = .data:0x80533090; // type:object size:0x18
|
|||||||
lbl_805330A8 = .data:0x805330A8; // type:object size:0x18
|
lbl_805330A8 = .data:0x805330A8; // type:object size:0x18
|
||||||
lbl_805330C0 = .data:0x805330C0; // type:object size:0xC
|
lbl_805330C0 = .data:0x805330C0; // type:object size:0xC
|
||||||
lbl_805330CC = .data:0x805330CC; // type:object size:0xDC
|
lbl_805330CC = .data:0x805330CC; // type:object size:0xDC
|
||||||
lbl_805331A8 = .data:0x805331A8; // type:object size:0xA0
|
__vt__15dShadowCircle_c = .data:0x805331A8; // type:object size:0xA0 scope:weak
|
||||||
lbl_80533248 = .data:0x80533248; // type:object size:0xC
|
lbl_80533248 = .data:0x80533248; // type:object size:0xC
|
||||||
lbl_80533254 = .data:0x80533254; // type:object size:0x14
|
lbl_80533254 = .data:0x80533254; // type:object size:0x14
|
||||||
lbl_80533268 = .data:0x80533268; // type:object size:0x10
|
lbl_80533268 = .data:0x80533268; // type:object size:0x10
|
||||||
@ -34413,11 +34413,11 @@ lbl_805344A0 = .data:0x805344A0; // type:object size:0x2C
|
|||||||
lbl_805344CC = .data:0x805344CC; // type:object size:0xC
|
lbl_805344CC = .data:0x805344CC; // type:object size:0xC
|
||||||
lbl_805344D8 = .data:0x805344D8; // type:object size:0x18
|
lbl_805344D8 = .data:0x805344D8; // type:object size:0x18
|
||||||
jumptable_805344F0 = .data:0x805344F0; // type:object size:0x20 scope:local
|
jumptable_805344F0 = .data:0x805344F0; // type:object size:0x20 scope:local
|
||||||
AcBomb__vtable = .data:0x80534510; // type:object size:0x80
|
__vt__9dAcBomb_c = .data:0x80534510; // type:object size:0x80
|
||||||
lbl_80534590 = .data:0x80534590; // type:object size:0x30
|
__vt__47sFStateMgr_c<9dAcBomb_c,20sStateMethodUsr_FI_c> = .data:0x80534590; // type:object size:0x30
|
||||||
lbl_805345C0 = .data:0x805345C0; // type:object size:0x30
|
__vt__77sStateMgr_c<9dAcBomb_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805345C0; // type:object size:0x30
|
||||||
lbl_805345F0 = .data:0x805345F0; // type:object size:0x18
|
__vt__24sFStateFct_c<9dAcBomb_c> = .data:0x805345F0; // type:object size:0x18
|
||||||
lbl_80534608 = .data:0x80534608; // type:object size:0x168
|
__vt__21sFState_c<9dAcBomb_c> = .data:0x80534608; // type:object size:0x168
|
||||||
lbl_80534770 = .data:0x80534770; // type:object size:0x38
|
lbl_80534770 = .data:0x80534770; // type:object size:0x38
|
||||||
g_profile_ARROW = .data:0x805347A8; // type:object size:0x38
|
g_profile_ARROW = .data:0x805347A8; // type:object size:0x38
|
||||||
lbl_805347E0 = .data:0x805347E0; // type:object size:0x2C data:4byte
|
lbl_805347E0 = .data:0x805347E0; // type:object size:0x2C data:4byte
|
||||||
@ -36105,19 +36105,19 @@ __vt__11cBgS_GndChk = .data:0x80547398; // type:object size:0xC
|
|||||||
__vt__11cBgS_LinChk = .data:0x805473A8; // type:object size:0x10
|
__vt__11cBgS_LinChk = .data:0x805473A8; // type:object size:0x10
|
||||||
__vt__13cBgS_ShdwDraw = .data:0x805473B8; // type:object size:0xC
|
__vt__13cBgS_ShdwDraw = .data:0x805473B8; // type:object size:0xC
|
||||||
__vt__9cBgW_BgId = .data:0x805473C8; // type:object size:0xC
|
__vt__9cBgW_BgId = .data:0x805473C8; // type:object size:0xC
|
||||||
__vt__15dCcD_ShapeAttr4 = .data:0x805473D8; // type:object size:0x5C
|
__vt__12cCcD_SphAttr = .data:0x805473D8; // type:object size:0x5C
|
||||||
__vt__15dCcD_ShapeAttr3 = .data:0x80547434; // type:object size:0x5C
|
__vt__12cCcD_CylAttr = .data:0x80547434; // type:object size:0x5C
|
||||||
__vt__15dCcD_ShapeAttr5 = .data:0x80547490; // type:object size:0x68
|
__vt__12cCcD_UnkAttr = .data:0x80547490; // type:object size:0x68
|
||||||
__vt__15dCcD_ShapeAttr2 = .data:0x805474F8; // type:object size:0x5C
|
__vt__12cCcD_TriAttr = .data:0x805474F8; // type:object size:0x5C
|
||||||
__vt__15dCcD_ShapeAttr1 = .data:0x80547554; // type:object size:0x5C
|
__vt__12cCcD_CpsAttr = .data:0x80547554; // type:object size:0x5C
|
||||||
__vt__12dCcD_GObjInf = .data:0x805475B0; // type:object size:0x14
|
__vt__8cCcD_Obj = .data:0x805475B0; // type:object size:0x14
|
||||||
__vt__14dCcD_ShapeAttr = .data:0x805475C4; // type:object size:0x5C
|
__vt__14cCcD_ShapeAttr = .data:0x805475C4; // type:object size:0x5C
|
||||||
__vt__11dCcD_GObjCo = .data:0x80547620; // type:object size:0xC
|
__vt__10cCcD_ObjCo = .data:0x80547620; // type:object size:0xC
|
||||||
__vt__11dCcD_GObjTg = .data:0x8054762C; // type:object size:0xC
|
__vt__10cCcD_ObjTg = .data:0x8054762C; // type:object size:0xC
|
||||||
__vt__11dCcD_GObjAt = .data:0x80547638; // type:object size:0xC
|
__vt__10cCcD_ObjAt = .data:0x80547638; // type:object size:0xC
|
||||||
__vt__22dCcD_GAtTgCoCommonBase = .data:0x80547644; // type:object size:0xC
|
__vt__22cCcD_GAtTgCoCommonBase = .data:0x80547644; // type:object size:0xC
|
||||||
__vt__15dCcD_DivideArea = .data:0x80547650; // type:object size:0xC
|
__vt__15cCcD_DivideArea = .data:0x80547650; // type:object size:0xC
|
||||||
__vt__15dCcD_DivideInfo = .data:0x8054765C; // type:object size:0xC
|
__vt__15cCcD_DivideInfo = .data:0x8054765C; // type:object size:0xC
|
||||||
__vt__8cM2dGCir = .data:0x80547668; // type:object size:0xC
|
__vt__8cM2dGCir = .data:0x80547668; // type:object size:0xC
|
||||||
__vt__8cM3dGUnk = .data:0x80547678; // type:object size:0xC
|
__vt__8cM3dGUnk = .data:0x80547678; // type:object size:0xC
|
||||||
__vt__10cPartition = .data:0x80547688; // type:object size:0xC
|
__vt__10cPartition = .data:0x80547688; // type:object size:0xC
|
||||||
@ -36173,15 +36173,15 @@ __vt__9dBgW_Base = .data:0x80547F10; // type:object size:0x108
|
|||||||
__vt__8dBgWKCol = .data:0x80548018; // type:object size:0x108
|
__vt__8dBgWKCol = .data:0x80548018; // type:object size:0x108
|
||||||
__vt__6dBgWSv = .data:0x80548120; // type:object size:0x114
|
__vt__6dBgWSv = .data:0x80548120; // type:object size:0x114
|
||||||
__vt__8dBgWTime = .data:0x80548238; // type:object size:0x108
|
__vt__8dBgWTime = .data:0x80548238; // type:object size:0x108
|
||||||
__vt__9dCcD_Aabb = .data:0x80548340; // type:object size:0x7C
|
__vt__8dCcD_Unk = .data:0x80548340; // type:object size:0x7C
|
||||||
__vt__8dCcD_Sph = .data:0x805483C0; // type:object size:0x70
|
__vt__8dCcD_Sph = .data:0x805483C0; // type:object size:0x70
|
||||||
__vt__8dCcD_Cyl = .data:0x80548430; // type:object size:0x70
|
__vt__8dCcD_Cyl = .data:0x80548430; // type:object size:0x70
|
||||||
__vt__10dCcD_Empty = .data:0x805484A0; // type:object size:0x70
|
__vt__8dCcD_Tri = .data:0x805484A0; // type:object size:0x70
|
||||||
__vt__9dCcD_Unk1 = .data:0x80548510; // type:object size:0x70
|
__vt__8dCcD_Cps = .data:0x80548510; // type:object size:0x70
|
||||||
lbl_80548580 = .data:0x80548580; // type:object size:0xC
|
__vt__12dCcMassS_Mng = .data:0x80548580; // type:object size:0xC
|
||||||
lbl_8054858C = .data:0x8054858C; // type:object size:0xC
|
__vt__15dCcMassS_HitInf = .data:0x8054858C; // type:object size:0xC
|
||||||
lbl_80548598 = .data:0x80548598; // type:object size:0x10
|
__vt__12dCcMassS_Obj = .data:0x80548598; // type:object size:0xC
|
||||||
lbl_805485A8 = .data:0x805485A8; // type:object size:0x10
|
__vt__4dCcS = .data:0x805485A8; // type:object size:0xC
|
||||||
lbl_805485B8 = .data:0x805485B8; // type:object size:0xC
|
lbl_805485B8 = .data:0x805485B8; // type:object size:0xC
|
||||||
lbl_805485C4 = .data:0x805485C4; // type:object size:0xC
|
lbl_805485C4 = .data:0x805485C4; // type:object size:0xC
|
||||||
lbl_805485D0 = .data:0x805485D0; // type:object size:0xA8
|
lbl_805485D0 = .data:0x805485D0; // type:object size:0xA8
|
||||||
@ -40409,7 +40409,7 @@ sSplGrpCheck__4cBgW = .sbss:0x80575D14; // type:object size:0x1 data:byte
|
|||||||
sSphCheck__4cBgW = .sbss:0x80575D15; // type:object size:0x1 data:byte
|
sSphCheck__4cBgW = .sbss:0x80575D15; // type:object size:0x1 data:byte
|
||||||
l_start = .sbss:0x80575D18; // type:object size:0x4 data:4byte
|
l_start = .sbss:0x80575D18; // type:object size:0x4 data:4byte
|
||||||
l_wcsbuf_num = .sbss:0x80575D1C; // type:object size:0x4 data:4byte
|
l_wcsbuf_num = .sbss:0x80575D1C; // type:object size:0x4 data:4byte
|
||||||
COLLIDER_MANAGER = .sbss:0x80575D20; // type:object size:0x8 data:4byte
|
sInstance__4dCcS = .sbss:0x80575D20; // type:object size:0x4 data:4byte
|
||||||
lbl_80575D28 = .sbss:0x80575D28; // type:object size:0x8 data:4byte
|
lbl_80575D28 = .sbss:0x80575D28; // type:object size:0x8 data:4byte
|
||||||
lbl_80575D30 = .sbss:0x80575D30; // type:object size:0x8 data:4byte
|
lbl_80575D30 = .sbss:0x80575D30; // type:object size:0x8 data:4byte
|
||||||
BGM_MGR = .sbss:0x80575D38; // type:object size:0x4 data:4byte
|
BGM_MGR = .sbss:0x80575D38; // type:object size:0x4 data:4byte
|
||||||
@ -46167,7 +46167,7 @@ lbl_8057D240 = .sdata2:0x8057D240; // type:object size:0x4 data:float
|
|||||||
lbl_8057D244 = .sdata2:0x8057D244; // type:object size:0x4 data:float
|
lbl_8057D244 = .sdata2:0x8057D244; // type:object size:0x4 data:float
|
||||||
lbl_8057D248 = .sdata2:0x8057D248; // type:object size:0x4 data:float
|
lbl_8057D248 = .sdata2:0x8057D248; // type:object size:0x4 data:float
|
||||||
lbl_8057D24C = .sdata2:0x8057D24C; // type:object size:0x4 data:float
|
lbl_8057D24C = .sdata2:0x8057D24C; // type:object size:0x4 data:float
|
||||||
lbl_8057D250 = .sdata2:0x8057D250; // type:object size:0x8 data:float
|
lbl_8057D250 = .sdata2:0x8057D250; // type:object size:0x4 data:float
|
||||||
lbl_8057D258 = .sdata2:0x8057D258; // type:object size:0x4 data:float
|
lbl_8057D258 = .sdata2:0x8057D258; // type:object size:0x4 data:float
|
||||||
lbl_8057D25C = .sdata2:0x8057D25C; // type:object size:0x4 data:float
|
lbl_8057D25C = .sdata2:0x8057D25C; // type:object size:0x4 data:float
|
||||||
lbl_8057D260 = .sdata2:0x8057D260; // type:object size:0x4 data:float
|
lbl_8057D260 = .sdata2:0x8057D260; // type:object size:0x4 data:float
|
||||||
@ -46180,7 +46180,7 @@ lbl_8057D280 = .sdata2:0x8057D280; // type:object size:0x4 data:float
|
|||||||
lbl_8057D284 = .sdata2:0x8057D284; // type:object size:0x4 data:float
|
lbl_8057D284 = .sdata2:0x8057D284; // type:object size:0x4 data:float
|
||||||
lbl_8057D288 = .sdata2:0x8057D288; // type:object size:0x4 data:float
|
lbl_8057D288 = .sdata2:0x8057D288; // type:object size:0x4 data:float
|
||||||
lbl_8057D28C = .sdata2:0x8057D28C; // type:object size:0x4 data:float
|
lbl_8057D28C = .sdata2:0x8057D28C; // type:object size:0x4 data:float
|
||||||
lbl_8057D290 = .sdata2:0x8057D290; // type:object size:0x8 data:float
|
lbl_8057D290 = .sdata2:0x8057D290; // type:object size:0x4 data:float
|
||||||
lbl_8057D298 = .sdata2:0x8057D298; // type:object size:0x4 data:float
|
lbl_8057D298 = .sdata2:0x8057D298; // type:object size:0x4 data:float
|
||||||
lbl_8057D29C = .sdata2:0x8057D29C; // type:object size:0x4 data:float
|
lbl_8057D29C = .sdata2:0x8057D29C; // type:object size:0x4 data:float
|
||||||
lbl_8057D2A0 = .sdata2:0x8057D2A0; // type:object size:0x4 data:float
|
lbl_8057D2A0 = .sdata2:0x8057D2A0; // type:object size:0x4 data:float
|
||||||
@ -48906,7 +48906,7 @@ AcItem__STATE_WAIT_TURN_OFF = .bss:0x805B4838; // type:object size:0x40 data:4by
|
|||||||
AcItem__STATE_WAIT_SACRED_DEW_GET_EFFECT = .bss:0x805B4878; // type:object size:0x30 data:4byte
|
AcItem__STATE_WAIT_SACRED_DEW_GET_EFFECT = .bss:0x805B4878; // type:object size:0x30 data:4byte
|
||||||
lbl_805B48A8 = .bss:0x805B48A8; // type:object size:0x10
|
lbl_805B48A8 = .bss:0x805B48A8; // type:object size:0x10
|
||||||
AcBomb__STATE_WAIT = .bss:0x805B48B8; // type:object size:0x40 data:4byte
|
AcBomb__STATE_WAIT = .bss:0x805B48B8; // type:object size:0x40 data:4byte
|
||||||
AcBomb__STATE_FLOWER_WAIT = .bss:0x805B48F8; // type:object size:0x40 data:4byte
|
StateID_FlowerWait__9dAcBomb_c = .bss:0x805B48F8; // type:object size:0x40 data:4byte
|
||||||
AcBomb__STATE_EXPLODE = .bss:0x805B4938; // type:object size:0x40 data:4byte
|
AcBomb__STATE_EXPLODE = .bss:0x805B4938; // type:object size:0x40 data:4byte
|
||||||
AcBomb__STATE_CARRY = .bss:0x805B4978; // type:object size:0x40 data:4byte
|
AcBomb__STATE_CARRY = .bss:0x805B4978; // type:object size:0x40 data:4byte
|
||||||
AcBomb__STATE_WIND_CARRY = .bss:0x805B49B8; // type:object size:0x30 data:4byte
|
AcBomb__STATE_WIND_CARRY = .bss:0x805B49B8; // type:object size:0x30 data:4byte
|
||||||
@ -49234,7 +49234,7 @@ lbl_805CED68 = .bss:0x805CED68; // type:object size:0x48
|
|||||||
lbl_805CEDB0 = .bss:0x805CEDB0; // type:object size:0x1318
|
lbl_805CEDB0 = .bss:0x805CEDB0; // type:object size:0x1318
|
||||||
lbl_805D00C8 = .bss:0x805D00C8; // type:object size:0x30
|
lbl_805D00C8 = .bss:0x805D00C8; // type:object size:0x30
|
||||||
lbl_805D00F8 = .bss:0x805D00F8; // type:object size:0x30
|
lbl_805D00F8 = .bss:0x805D00F8; // type:object size:0x30
|
||||||
m_virtual_center__14dCcD_ShapeAttr = .bss:0x805D0128; // type:object size:0xC data:float
|
sVirtualCenter__14cCcD_ShapeAttr = .bss:0x805D0128; // type:object size:0xC data:float
|
||||||
lbl_805D0138 = .bss:0x805D0138; // type:object size:0x7C data:4byte
|
lbl_805D0138 = .bss:0x805D0138; // type:object size:0x7C data:4byte
|
||||||
lbl_805D01B4 = .bss:0x805D01B4; // type:object size:0x14 data:4byte
|
lbl_805D01B4 = .bss:0x805D01B4; // type:object size:0x14 data:4byte
|
||||||
lbl_805D01C8 = .bss:0x805D01C8; // type:object size:0xC
|
lbl_805D01C8 = .bss:0x805D01C8; // type:object size:0xC
|
||||||
|
12
configure.py
12
configure.py
@ -438,11 +438,11 @@ config.libs = [
|
|||||||
Object(NonMatching, "d/col/c/c_m2d.cpp"),
|
Object(NonMatching, "d/col/c/c_m2d.cpp"),
|
||||||
Object(NonMatching, "d/col/c/c_m3d.cpp"),
|
Object(NonMatching, "d/col/c/c_m3d.cpp"),
|
||||||
Object(Matching, "d/col/c/c_m3d_g_aab.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_aab.cpp"),
|
||||||
Object(NonMatching, "d/col/c/c_m3d_g_cir.cpp"),
|
# Object(NonMatching, "d/col/c/c_m3d_g_cir.cpp"),
|
||||||
Object(Matching, "d/col/c/c_m3d_g_cps.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_cps.cpp"),
|
||||||
Object(Matching, "d/col/c/c_m3d_g_cyl.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_cyl.cpp"),
|
||||||
Object(Matching, "d/col/c/c_m3d_g_lin.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_lin.cpp"),
|
||||||
Object(NonMatching, "d/col/c/c_m3d_g_pla.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_pla.cpp"),
|
||||||
Object(Matching, "d/col/c/c_m3d_g_sph.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_sph.cpp"),
|
||||||
Object(Matching, "d/col/c/c_m3d_g_tri.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_tri.cpp"),
|
||||||
Object(Matching, "d/col/c/c_m3d_g_unk.cpp"),
|
Object(Matching, "d/col/c/c_m3d_g_unk.cpp"),
|
||||||
@ -465,7 +465,9 @@ config.libs = [
|
|||||||
Object(NonMatching, "d/col/bg/d_bg_w_kcol.cpp"),
|
Object(NonMatching, "d/col/bg/d_bg_w_kcol.cpp"),
|
||||||
Object(Matching, "d/col/bg/d_bg_w_sv.cpp"),
|
Object(Matching, "d/col/bg/d_bg_w_sv.cpp"),
|
||||||
Object(NonMatching, "d/col/bg/d_bg_w_time.cpp"),
|
Object(NonMatching, "d/col/bg/d_bg_w_time.cpp"),
|
||||||
Object(Matching, "d/col/cc/d_cc_shape_colliders.cpp"),
|
Object(Matching, "d/col/cc/d_cc_d.cpp"),
|
||||||
|
Object(Matching, "d/col/cc/d_cc_mass_s.cpp"),
|
||||||
|
Object(NonMatching, "d/col/cc/d_cc_s.cpp"),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1702,9 +1704,7 @@ config.libs = [
|
|||||||
Rel(NonMatching, "d_a_obj_under_cloud", "REL/d/a/obj/d_a_obj_under_cloud.cpp"),
|
Rel(NonMatching, "d_a_obj_under_cloud", "REL/d/a/obj/d_a_obj_under_cloud.cpp"),
|
||||||
Rel(NonMatching, "d_a_obj_updown_lava", "REL/d/a/obj/d_a_obj_updown_lava.cpp"),
|
Rel(NonMatching, "d_a_obj_updown_lava", "REL/d/a/obj/d_a_obj_updown_lava.cpp"),
|
||||||
Rel(Matching, "d_a_obj_utajima", "REL/d/a/obj/d_a_obj_utajima.cpp"),
|
Rel(Matching, "d_a_obj_utajima", "REL/d/a/obj/d_a_obj_utajima.cpp"),
|
||||||
Rel(
|
Rel(Matching, "d_a_obj_utajima_island", "REL/d/a/obj/d_a_obj_utajima_island.cpp"),
|
||||||
Matching, "d_a_obj_utajima_island", "REL/d/a/obj/d_a_obj_utajima_island.cpp"
|
|
||||||
),
|
|
||||||
Rel(Matching, "d_a_obj_utajima_lv2", "REL/d/a/obj/d_a_obj_utajima_lv2.cpp"),
|
Rel(Matching, "d_a_obj_utajima_lv2", "REL/d/a/obj/d_a_obj_utajima_lv2.cpp"),
|
||||||
Rel(
|
Rel(
|
||||||
NonMatching,
|
NonMatching,
|
||||||
|
@ -2,18 +2,40 @@
|
|||||||
#define D_A_BOMBF_H
|
#define D_A_BOMBF_H
|
||||||
|
|
||||||
#include "d/a/obj/d_a_obj_base.h"
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
|
#include "d/a/obj/d_a_obj_bomb.h"
|
||||||
|
#include "d/col/c/c_bg_s_poly_info.h"
|
||||||
#include "s/s_State.hpp"
|
#include "s/s_State.hpp"
|
||||||
#include "s/s_StateMgr.hpp"
|
#include "toBeSorted/time_area_mgr.h"
|
||||||
|
|
||||||
class dAcBombf_c : public dAcObjBase_c {
|
class dAcBombf_c : public dAcObjBase_c {
|
||||||
public:
|
public:
|
||||||
dAcBombf_c() : mStateMgr(*this, sStateID::null) {}
|
dAcBombf_c() : mStateMgr(*this, sStateID::null) {}
|
||||||
virtual ~dAcBombf_c() {}
|
virtual ~dAcBombf_c() {}
|
||||||
|
virtual bool createHeap() override;
|
||||||
|
virtual int create() override;
|
||||||
|
virtual int actorExecute() override;
|
||||||
|
virtual int draw() override;
|
||||||
|
virtual int doDelete() override;
|
||||||
|
|
||||||
|
virtual int actorCreate() override;
|
||||||
|
virtual int actorPostCreate() override;
|
||||||
|
|
||||||
STATE_FUNC_DECLARE(dAcBombf_c, Wait);
|
STATE_FUNC_DECLARE(dAcBombf_c, Wait);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/* 0x??? */ STATE_MGR_DECLARE(dAcBombf_c);
|
void regrowBomb();
|
||||||
|
|
||||||
|
/* 0x330 */ m3d::smdl_c mModel;
|
||||||
|
/* 0x34C */ STATE_MGR_DECLARE(dAcBombf_c);
|
||||||
|
/* 0x388 */ dAcRef_c<dAcBomb_c> mBombRef;
|
||||||
|
/* 0x394 */ UNKWORD field_0x394;
|
||||||
|
/* 0x398 */ cBgS_PolyInfo field_0x398;
|
||||||
|
/* 0x3C4 */ TimeAreaStruct mTimeAreaStruct;
|
||||||
|
/* 0x3D0 */ bool field_0x3D0;
|
||||||
|
/* 0x3D1 */ u8 mDespawnSceneFlag;
|
||||||
|
/* 0x3D2 */ u8 field_0x3D2;
|
||||||
|
/* 0x3D3 */ u8 field_0x3D3;
|
||||||
|
/* 0x3D4 */ u8 field_0x3D4;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -223,6 +223,7 @@ public:
|
|||||||
/* 0x35C */ u32 mForceOrPreventActionFlags;
|
/* 0x35C */ u32 mForceOrPreventActionFlags;
|
||||||
/* 0x360 */ UNKWORD field_0x360;
|
/* 0x360 */ UNKWORD field_0x360;
|
||||||
/* 0x364 */ u32 mActionFlags;
|
/* 0x364 */ u32 mActionFlags;
|
||||||
|
/* 0x368 */ u32 mActionFlagsCont;
|
||||||
|
|
||||||
inline bool checkFlags0x340(u32 mask) const {
|
inline bool checkFlags0x340(u32 mask) const {
|
||||||
return (someFlags_0x340 & mask) != 0;
|
return (someFlags_0x340 & mask) != 0;
|
||||||
|
60
include/d/a/obj/d_a_obj_arrow.h
Normal file
60
include/d/a/obj/d_a_obj_arrow.h
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#ifndef D_A_OBJ_ARROW_H
|
||||||
|
#define D_A_OBJ_ARROW_H
|
||||||
|
|
||||||
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
|
#include "d/col/c/c_bg_s_poly_info.h"
|
||||||
|
#include "d/col/c/c_cc_d.h"
|
||||||
|
#include "d/col/cc/d_cc_d.h"
|
||||||
|
#include "m/m3d/m_smdl.h"
|
||||||
|
#include "nw4r/g3d/g3d_resfile.h"
|
||||||
|
#include "s/s_State.hpp"
|
||||||
|
#include "s/s_StateID.hpp"
|
||||||
|
#include "toBeSorted/effects_struct.h"
|
||||||
|
|
||||||
|
class dAcArrow_c : public dAcObjBase_c {
|
||||||
|
public:
|
||||||
|
dAcArrow_c() : mPolyInfo(), mStateMgr(*this, sStateID::null) {}
|
||||||
|
virtual ~dAcArrow_c();
|
||||||
|
|
||||||
|
virtual bool createHeap() override;
|
||||||
|
virtual int create() override;
|
||||||
|
virtual int doDelete() override;
|
||||||
|
virtual int actorExecute() override;
|
||||||
|
virtual int draw() override;
|
||||||
|
|
||||||
|
STATE_FUNC_DECLARE(dAcArrow_c, Wait);
|
||||||
|
STATE_FUNC_DECLARE(dAcArrow_c, Move);
|
||||||
|
STATE_FUNC_DECLARE(dAcArrow_c, ActorStop);
|
||||||
|
STATE_FUNC_DECLARE(dAcArrow_c, BgStop);
|
||||||
|
STATE_FUNC_DECLARE(dAcArrow_c, Bound);
|
||||||
|
|
||||||
|
void hitCallback(cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB, cCcD_Obj *i_objInfB);
|
||||||
|
|
||||||
|
public:
|
||||||
|
static cCcD_SrcGObj sCcSrcInf;
|
||||||
|
static dCcD_SrcCps sCc1;
|
||||||
|
static const dCcD_SrcSph sCc2;
|
||||||
|
|
||||||
|
/* 0x330 */ nw4r::g3d::ResFile mResFile;
|
||||||
|
/* 0x334 */ m3d::smdl_c mModel;
|
||||||
|
/* 0x350 */ dAcRef_c<dAcObjBase_c> mRef1;
|
||||||
|
/* 0x35C */ dCcD_Cps mCcCps;
|
||||||
|
/* 0x4CC */ dCcD_Sph mCcSph;
|
||||||
|
/* 0x61C */ cBgS_PolyInfo mPolyInfo; // ??
|
||||||
|
/* 0x648 */ EffectsStruct mEffects;
|
||||||
|
/* 0x67C */ u32 field_0x67C;
|
||||||
|
/* 0x680 */ u8 mSubType;
|
||||||
|
/* 0x681 */ u8 field_0x681;
|
||||||
|
/* 0x682 */ u8 mDespawnTimer;
|
||||||
|
/* 0x684 */ s16 field_0x684;
|
||||||
|
/* 0x686 */ u8 field_0x686[0x688 - 0x686];
|
||||||
|
/* 0x688 */ u16 field_0x688;
|
||||||
|
/* 0x68A */ u16 field_0x68A;
|
||||||
|
/* 0x68C */ u8 field_0x68C[0x6A8 - 0x68C];
|
||||||
|
/* 0x6A8 */ f32 field_0x6A8;
|
||||||
|
/* 0x6AC */ u8 field_0x6AC[0x6F8 - 0x6AC];
|
||||||
|
/* 0x6F8 */ dAcRef_c<dAcObjBase_c> mRef2;
|
||||||
|
/* 0x704 */ STATE_MGR_DECLARE(dAcArrow_c);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -2,8 +2,8 @@
|
|||||||
#define D_A_OBJ_BASE_H
|
#define D_A_OBJ_BASE_H
|
||||||
|
|
||||||
#include "d/a/d_a_base.h"
|
#include "d/a/d_a_base.h"
|
||||||
|
#include "d/col/c/c_cc_d.h"
|
||||||
#include "d/col/c/c_m3d_g_aab.h"
|
#include "d/col/c/c_m3d_g_aab.h"
|
||||||
#include "d/col/cc/d_cc_d.h"
|
|
||||||
#include "m/m3d/m_shadow.h"
|
#include "m/m3d/m_shadow.h"
|
||||||
#include "m/m3d/m_smdl.h"
|
#include "m/m3d/m_smdl.h"
|
||||||
#include "m/m_angle.h"
|
#include "m/m_angle.h"
|
||||||
@ -11,6 +11,7 @@
|
|||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
#include "m/types_m.h"
|
#include "m/types_m.h"
|
||||||
|
|
||||||
|
|
||||||
// Size: 0xA8
|
// Size: 0xA8
|
||||||
struct ActorCarryStruct {
|
struct ActorCarryStruct {
|
||||||
/* 0x00 */ fLiNdBa_c actorLink;
|
/* 0x00 */ fLiNdBa_c actorLink;
|
||||||
@ -68,7 +69,7 @@ public:
|
|||||||
|
|
||||||
/* 0x1B0 */ u8 unk_0x1B0[0x1C0 - 0x1B0];
|
/* 0x1B0 */ u8 unk_0x1B0[0x1C0 - 0x1B0];
|
||||||
|
|
||||||
/* 0x1C0 */ UnkCCDStruct mCCdStruct;
|
/* 0x1C0 */ cCcD_Stts mStts;
|
||||||
|
|
||||||
/* 0x1FC */ mVec3_c mStartingPos;
|
/* 0x1FC */ mVec3_c mStartingPos;
|
||||||
/* 0x208 */ mAng3_c mStartingRot;
|
/* 0x208 */ mAng3_c mStartingRot;
|
||||||
|
@ -1,20 +1,32 @@
|
|||||||
#ifndef D_A_BOMB_H
|
#ifndef D_A_OBJ_BOMB_H
|
||||||
#define D_A_BOMB_H
|
#define D_A_OBJ_BOMB_H
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
#include "d/a/obj/d_a_obj_base.h"
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
#include "d/col/bg/d_bg_s_acch.h"
|
#include "d/col/bg/d_bg_s_acch.h"
|
||||||
#include "d/col/bg/d_bg_s_lin_chk.h"
|
#include "d/col/bg/d_bg_s_lin_chk.h"
|
||||||
#include "d/col/cc/d_cc_shape_colliders.h"
|
#include "d/col/c/c_bg_s_poly_info.h"
|
||||||
|
#include "d/col/cc/d_cc_d.h"
|
||||||
|
#include "d/d_shadow.h"
|
||||||
#include "m/m3d/m_smdl.h"
|
#include "m/m3d/m_smdl.h"
|
||||||
|
#include "m/m_mtx.h"
|
||||||
#include "nw4r/g3d/g3d_resfile.h"
|
#include "nw4r/g3d/g3d_resfile.h"
|
||||||
#include "s/s_State.hpp"
|
#include "s/s_State.hpp"
|
||||||
#include "s/s_StateMgr.hpp"
|
#include "s/s_StateID.hpp"
|
||||||
#include "toBeSorted/effects_struct.h"
|
#include "toBeSorted/effects_struct.h"
|
||||||
|
|
||||||
|
// This may need its own file and could be independent of a bomb
|
||||||
|
class UnkBombColInfo : public cBgS_PolyInfo {
|
||||||
|
public:
|
||||||
|
UnkBombColInfo() : mField_0x10(0), mField_0x14(0), mField_0x18(0) {}
|
||||||
|
u32 mField_0x10;
|
||||||
|
u32 mField_0x14;
|
||||||
|
u32 mField_0x18;
|
||||||
|
};
|
||||||
|
|
||||||
class dAcBomb_c : public dAcObjBase_c {
|
class dAcBomb_c : public dAcObjBase_c {
|
||||||
public:
|
public:
|
||||||
dAcBomb_c();
|
dAcBomb_c() : mStateMgr(*this, sStateID::null), mSelfRef(this), mEffect1(this), mEffect2(this) {}
|
||||||
virtual ~dAcBomb_c();
|
virtual ~dAcBomb_c();
|
||||||
|
|
||||||
/* vt 0x08 */ virtual int create() override;
|
/* vt 0x08 */ virtual int create() override;
|
||||||
@ -32,19 +44,28 @@ public:
|
|||||||
STATE_FUNC_DECLARE(dAcBomb_c, Carry);
|
STATE_FUNC_DECLARE(dAcBomb_c, Carry);
|
||||||
STATE_FUNC_DECLARE(dAcBomb_c, WindCarry);
|
STATE_FUNC_DECLARE(dAcBomb_c, WindCarry);
|
||||||
|
|
||||||
private:
|
void setTransformFromFlower(const mMtx_c &);
|
||||||
|
|
||||||
|
public:
|
||||||
/* 0x330 */ nw4r::g3d::ResFile mBrres;
|
/* 0x330 */ nw4r::g3d::ResFile mBrres;
|
||||||
/* 0x334 */ m3d::smdl_c mMdl;
|
/* 0x334 */ m3d::smdl_c mMdl;
|
||||||
/* 0x350 */ u8 _0[0x358 - 0x350];
|
/* 0x350 */ dShadowCircle_c mShdw;
|
||||||
/* 0x358 */ dBgS_BombAcch mAcch;
|
/* 0x358 */ dBgS_BombAcch mAcch;
|
||||||
/* 0x708 */ dBgS_AcchCir mAcchCir;
|
/* 0x708 */ dBgS_AcchCir mAcchCir;
|
||||||
/* 0x764 */ dCcD_Sph mCcDSph;
|
/* 0x764 */ dCcD_Sph mCcDSph;
|
||||||
/* 0x8B4 */ mMtx_c mMtx;
|
/* 0x8B4 */ mMtx_c mMtx;
|
||||||
/* 0x8E4 */ dBgS_BombLinChk mLinChk;
|
/* 0x8E4 */ dBgS_BombLinChk mLinChk;
|
||||||
/* 0x97C */ u8 _1[0x9D4 - 0x97C];
|
/* 0x97C */ UnkBombColInfo mUnkInfo;
|
||||||
|
/* 0x9B4 */ u8 _0[0x9B8 - 0x9B4];
|
||||||
|
/* 0x9B8 */ dAcBomb_c *mSelfRef;
|
||||||
|
/* 0x9BC */ u8 _1[0x9D4 - 0x9BC];
|
||||||
/* 0x9D4 */ EffectsStruct mEffect1;
|
/* 0x9D4 */ EffectsStruct mEffect1;
|
||||||
/* 0xA08 */ EffectsStruct mEffect2;
|
/* 0xA08 */ EffectsStruct mEffect2;
|
||||||
/* 0xA3C */ u8 _2[0xA9C - 0xA3C];
|
/* 0xA3C */ u8 _2[0xA44 - 0xA3C];
|
||||||
|
/* 0xA44 */ s16 mField_0xA44;
|
||||||
|
/* 0xA46 */ u8 _3[0xA50 - 0xA46];
|
||||||
|
/* 0xA50 */ f32 mField_0xA50;
|
||||||
|
/* 0xA54 */ u8 _4[0xA9C - 0xA54];
|
||||||
/* 0xA9C */ STATE_MGR_DECLARE(dAcBomb_c);
|
/* 0xA9C */ STATE_MGR_DECLARE(dAcBomb_c);
|
||||||
};
|
};
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
#define D_A_O_SPIKE_H
|
#define D_A_O_SPIKE_H
|
||||||
|
|
||||||
#include "d/a/obj/d_a_obj_base.h"
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
#include "d/col/cc/d_cc_shape_colliders.h"
|
#include "d/col/cc/d_cc_d.h"
|
||||||
#include "m/m3d/m_smdl.h"
|
#include "m/m3d/m_smdl.h"
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
#include "nw4r/g3d/g3d_resfile.h"
|
#include "nw4r/g3d/g3d_resfile.h"
|
||||||
@ -25,11 +25,11 @@ public:
|
|||||||
static const mVec3_c sVec2;
|
static const mVec3_c sVec2;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static dCcD_SrcAabb sCcSrc;
|
static dCcD_SrcUnk sCcSrc;
|
||||||
|
|
||||||
nw4r::g3d::ResFile mResFile;
|
nw4r::g3d::ResFile mResFile;
|
||||||
m3d::smdl_c mMdl;
|
m3d::smdl_c mMdl;
|
||||||
dCcD_Aabb mCollision;
|
dCcD_Unk mCollision;
|
||||||
|
|
||||||
STATE_MGR_DECLARE(dAcOspike_c);
|
STATE_MGR_DECLARE(dAcOspike_c);
|
||||||
};
|
};
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "c/c_math.h"
|
#include "c/c_math.h"
|
||||||
#include "d/a/obj/d_a_obj_base.h"
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
#include "d/col/cc/d_cc_shape_colliders.h"
|
#include "d/col/cc/d_cc_d.h"
|
||||||
#include "m/m3d/m_smdl.h"
|
#include "m/m3d/m_smdl.h"
|
||||||
#include "nw4r/g3d/g3d_resfile.h"
|
#include "nw4r/g3d/g3d_resfile.h"
|
||||||
#include "s/s_State.hpp"
|
#include "s/s_State.hpp"
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "c/c_math.h"
|
#include "c/c_math.h"
|
||||||
#include "d/a/obj/d_a_obj_base.h"
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
#include "d/col/cc/d_cc_shape_colliders.h"
|
#include "d/col/cc/d_cc_d.h"
|
||||||
#include "m/m3d/m_anmtexsrt.h"
|
#include "m/m3d/m_anmtexsrt.h"
|
||||||
#include "m/m3d/m_smdl.h"
|
#include "m/m3d/m_smdl.h"
|
||||||
#include "m/m_angle.h"
|
#include "m/m_angle.h"
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define C_BG_S_POLY_INFO_H
|
#define C_BG_S_POLY_INFO_H
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
#include "d/col/c/c_bg_w.h"
|
#include "d/col/c/c_bg_w.h"
|
||||||
#include "d/col/c/c_m3d_g_pla.h"
|
#include "d/col/c/c_m3d_g_pla.h"
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
|
@ -1,4 +1,916 @@
|
|||||||
#ifndef C_CC_D_H
|
#ifndef C_CC_D_H
|
||||||
#define C_CC_D_H
|
#define C_CC_D_H
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "d/a/d_a_base.h"
|
||||||
|
#include "d/col/c/c_m3d.h"
|
||||||
|
#include "d/col/c/c_m3d_g_aab.h"
|
||||||
|
#include "d/col/c/c_m3d_g_cps.h"
|
||||||
|
#include "d/col/c/c_m3d_g_cyl.h"
|
||||||
|
#include "d/col/c/c_m3d_g_sph.h"
|
||||||
|
#include "d/col/c/c_m3d_g_tri.h"
|
||||||
|
#include "d/col/c/c_m3d_g_unk.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
#include "nw4r/types_nw4r.h"
|
||||||
|
|
||||||
|
class dAcObjBase_c;
|
||||||
|
|
||||||
|
class cCcD_CpsAttr;
|
||||||
|
class cCcD_TriAttr;
|
||||||
|
class cCcD_UnkAttr;
|
||||||
|
class cCcD_CylAttr;
|
||||||
|
class cCcD_SphAttr;
|
||||||
|
|
||||||
|
class cCcD_DivideInfo {
|
||||||
|
private:
|
||||||
|
/* 0x00 */ u32 mXDivInfo;
|
||||||
|
/* 0x04 */ u32 mYDivInfo;
|
||||||
|
/* 0x08 */ u32 mZDivInfo;
|
||||||
|
/* 0x0C vtable */
|
||||||
|
public:
|
||||||
|
cCcD_DivideInfo();
|
||||||
|
virtual ~cCcD_DivideInfo();
|
||||||
|
|
||||||
|
// Following two funcs were probably inlined based on how other classes went
|
||||||
|
void Set(u32 xDivInfo, u32 yDivInfo, u32 zDivInfo) {
|
||||||
|
mXDivInfo = xDivInfo;
|
||||||
|
mYDivInfo = yDivInfo;
|
||||||
|
mZDivInfo = zDivInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Chk(cCcD_DivideInfo const &other) const {
|
||||||
|
if ((mXDivInfo & other.mXDivInfo) && (mZDivInfo & other.mZDivInfo) && (mYDivInfo & other.mYDivInfo)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_DivideArea : public cM3dGAab {
|
||||||
|
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;
|
||||||
|
/* 0x3C vtable */
|
||||||
|
|
||||||
|
public:
|
||||||
|
cCcD_DivideArea();
|
||||||
|
virtual ~cCcD_DivideArea();
|
||||||
|
void SetArea(cM3dGAab const &);
|
||||||
|
void CalcDivideInfo(cCcD_DivideInfo *, cM3dGAab const &);
|
||||||
|
void CalcDivideInfoOverArea(cCcD_DivideInfo *, cM3dGAab const &);
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_ShapeAttr {
|
||||||
|
public:
|
||||||
|
cM3dGAab mAab;
|
||||||
|
cCcD_DivideInfo mInfo;
|
||||||
|
enum ShapeType {
|
||||||
|
SHAPE_SPHERE = 0,
|
||||||
|
SHAPE_CYLINDER = 1,
|
||||||
|
SHAPE_CAPSULE = 2,
|
||||||
|
SHAPE_TRIANGLE = 3,
|
||||||
|
SHAPE_DEFAULT = 4,
|
||||||
|
};
|
||||||
|
struct Shape {
|
||||||
|
~Shape();
|
||||||
|
|
||||||
|
/* 0x00 */ int mField_0x00;
|
||||||
|
/* 0x04 */ mVec3_c mField_0x04;
|
||||||
|
/* 0x10 */ mVec3_c mField_0x10;
|
||||||
|
/* 0x1C */ mVec3_c mField_0x1C;
|
||||||
|
};
|
||||||
|
cCcD_ShapeAttr();
|
||||||
|
/* vt 0x08 */ virtual ~cCcD_ShapeAttr();
|
||||||
|
/* vt 0x0C */ virtual bool Calc(const mVec3_c &, const mVec3_c &, mVec3_c *);
|
||||||
|
/* vt 0x10 */ virtual bool CrossAtTg(cCcD_ShapeAttr &, mVec3_c *);
|
||||||
|
/* vt 0x14 */ virtual bool CrossAtTg(cCcD_CpsAttr &, mVec3_c *) = 0;
|
||||||
|
/* vt 0x18 */ virtual bool CrossAtTg(cCcD_TriAttr &, mVec3_c *) = 0;
|
||||||
|
/* vt 0x1C */ virtual bool CrossAtTg(cCcD_UnkAttr &, mVec3_c *) = 0;
|
||||||
|
/* vt 0x20 */ virtual bool CrossAtTg(cCcD_CylAttr &, mVec3_c *) = 0;
|
||||||
|
/* vt 0x24 */ virtual bool CrossAtTg(cCcD_SphAttr &, mVec3_c *) = 0;
|
||||||
|
/* vt 0x28 */ virtual bool CrossCo(cCcD_ShapeAttr &, f32 *);
|
||||||
|
/* vt 0x2C */ virtual bool CrossCo(cCcD_CpsAttr &, f32 *) = 0;
|
||||||
|
/* vt 0x30 */ virtual bool CrossCo(cCcD_TriAttr &, f32 *) = 0;
|
||||||
|
/* vt 0x34 */ virtual bool CrossCo(cCcD_UnkAttr &, f32 *) = 0;
|
||||||
|
/* vt 0x38 */ virtual bool CrossCo(cCcD_CylAttr &, f32 *) = 0;
|
||||||
|
/* vt 0x3C */ virtual bool CrossCo(cCcD_SphAttr &, f32 *) = 0;
|
||||||
|
/* vt 0x40 */ virtual mVec3_c &GetCoP();
|
||||||
|
/* vt 0x44 */ virtual void CalcAabBox() = 0;
|
||||||
|
/* vt 0x48 */ virtual bool GetNVec(const mVec3_c &, mVec3_c *) const = 0;
|
||||||
|
/* vt 0x4C */ virtual void GetShapeAccess(cCcD_ShapeAttr::Shape *) const;
|
||||||
|
/* vt 0x50 */ virtual void GetPos(nw4r::math::VEC3 *) const = 0;
|
||||||
|
/* vt 0x54 */ virtual bool GetPosBool(mVec3_c *) const;
|
||||||
|
/* vt 0x58 */ virtual void TranslateXZ(f32, f32) = 0;
|
||||||
|
|
||||||
|
cM3dGAab &GetWorkAab() {
|
||||||
|
return mAab;
|
||||||
|
}
|
||||||
|
cM3dGAab const &GetWorkAab() const {
|
||||||
|
return mAab;
|
||||||
|
}
|
||||||
|
|
||||||
|
static mVec3_c sVirtualCenter;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcCpsAttr {
|
||||||
|
f32 mRadius;
|
||||||
|
};
|
||||||
|
class cCcD_CpsAttr : public cCcD_ShapeAttr, public cM3dGCps {
|
||||||
|
public:
|
||||||
|
mVec3_c mVirtCenter;
|
||||||
|
|
||||||
|
cCcD_CpsAttr();
|
||||||
|
void Set(const cCcD_SrcCpsAttr &src);
|
||||||
|
void SetVirtCenter(mVec3_c *);
|
||||||
|
|
||||||
|
f32 CrossCoCommon(cCcD_ShapeAttr &, f32);
|
||||||
|
|
||||||
|
/* vt 0x08 */ virtual ~cCcD_CpsAttr();
|
||||||
|
/* vt 0x0C */ virtual bool Calc(const mVec3_c &, const mVec3_c &, mVec3_c *) override;
|
||||||
|
/* vt 0x10 */ virtual bool CrossAtTg(cCcD_ShapeAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x14 */ virtual bool CrossAtTg(cCcD_CpsAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x18 */ virtual bool CrossAtTg(cCcD_TriAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x1C */ virtual bool CrossAtTg(cCcD_UnkAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x20 */ virtual bool CrossAtTg(cCcD_CylAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x24 */ virtual bool CrossAtTg(cCcD_SphAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x28 */ virtual bool CrossCo(cCcD_ShapeAttr &, f32 *) override;
|
||||||
|
/* vt 0x2C */ virtual bool CrossCo(cCcD_CpsAttr &, f32 *) override;
|
||||||
|
/* vt 0x30 */ virtual bool CrossCo(cCcD_TriAttr &, f32 *) override;
|
||||||
|
/* vt 0x34 */ virtual bool CrossCo(cCcD_UnkAttr &, f32 *) override;
|
||||||
|
/* vt 0x38 */ virtual bool CrossCo(cCcD_CylAttr &, f32 *) override;
|
||||||
|
/* vt 0x3C */ virtual bool CrossCo(cCcD_SphAttr &, f32 *) override;
|
||||||
|
/* vt 0x40 */ virtual mVec3_c &GetCoP() override;
|
||||||
|
/* vt 0x44 */ virtual void CalcAabBox() override;
|
||||||
|
/* vt 0x48 */ virtual bool GetNVec(const mVec3_c &, mVec3_c *) const override;
|
||||||
|
/* vt 0x4C */ virtual void GetShapeAccess(cCcD_ShapeAttr::Shape *) const override;
|
||||||
|
/* vt 0x50 */ virtual void GetPos(nw4r::math::VEC3 *) const override;
|
||||||
|
/* vt 0x58 */ virtual void TranslateXZ(f32, f32) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_TriAttr : public cCcD_ShapeAttr, public cM3dGTri {
|
||||||
|
public:
|
||||||
|
cCcD_TriAttr();
|
||||||
|
/* vt 0x08 */ virtual ~cCcD_TriAttr();
|
||||||
|
/* vt 0x0C */ virtual bool Calc(const mVec3_c &, const mVec3_c &, mVec3_c *) override;
|
||||||
|
/* vt 0x10 */ virtual bool CrossAtTg(cCcD_ShapeAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x14 */ virtual bool CrossAtTg(cCcD_CpsAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x18 */ virtual bool CrossAtTg(cCcD_TriAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x1C */ virtual bool CrossAtTg(cCcD_UnkAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x20 */ virtual bool CrossAtTg(cCcD_CylAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x24 */ virtual bool CrossAtTg(cCcD_SphAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x28 */ virtual bool CrossCo(cCcD_ShapeAttr &, f32 *) override;
|
||||||
|
/* vt 0x2C */ virtual bool CrossCo(cCcD_CpsAttr &, f32 *) override;
|
||||||
|
/* vt 0x30 */ virtual bool CrossCo(cCcD_TriAttr &, f32 *) override;
|
||||||
|
/* vt 0x34 */ virtual bool CrossCo(cCcD_UnkAttr &, f32 *) override;
|
||||||
|
/* vt 0x38 */ virtual bool CrossCo(cCcD_CylAttr &, f32 *) override;
|
||||||
|
/* vt 0x3C */ virtual bool CrossCo(cCcD_SphAttr &, f32 *) override;
|
||||||
|
/* vt 0x44 */ virtual void CalcAabBox() override;
|
||||||
|
/* vt 0x48 */ virtual bool GetNVec(const mVec3_c &, mVec3_c *) const override;
|
||||||
|
/* vt 0x4C */ virtual void GetShapeAccess(cCcD_ShapeAttr::Shape *) const override;
|
||||||
|
/* vt 0x50 */ virtual void GetPos(nw4r::math::VEC3 *) const override;
|
||||||
|
/* vt 0x58 */ virtual void TranslateXZ(f32, f32) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcUnkAttr {
|
||||||
|
f32 mMinX, mMinY, mMinZ;
|
||||||
|
f32 mMaxX, mMaxY, mMaxZ;
|
||||||
|
|
||||||
|
mVec3_c &getMin() const {
|
||||||
|
return *(mVec3_c *)&mMinX;
|
||||||
|
}
|
||||||
|
mVec3_c &getMax() const {
|
||||||
|
return *(mVec3_c *)&mMaxX;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_UnkAttr : public cCcD_ShapeAttr, public cM3dGUnk {
|
||||||
|
public:
|
||||||
|
cCcD_UnkAttr();
|
||||||
|
|
||||||
|
void Set(const cCcD_SrcUnkAttr &src);
|
||||||
|
/* vt 0x08 */ virtual ~cCcD_UnkAttr();
|
||||||
|
/* vt 0x0C */ virtual bool Calc(const mVec3_c &, const mVec3_c &, mVec3_c *) override;
|
||||||
|
/* vt 0x10 */ virtual bool CrossAtTg(cCcD_ShapeAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x14 */ virtual bool CrossAtTg(cCcD_CpsAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x18 */ virtual bool CrossAtTg(cCcD_TriAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x1C */ virtual bool CrossAtTg(cCcD_UnkAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x20 */ virtual bool CrossAtTg(cCcD_CylAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x24 */ virtual bool CrossAtTg(cCcD_SphAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x28 */ virtual bool CrossCo(cCcD_ShapeAttr &, f32 *) override;
|
||||||
|
/* vt 0x2C */ virtual bool CrossCo(cCcD_CpsAttr &, f32 *) override;
|
||||||
|
/* vt 0x30 */ virtual bool CrossCo(cCcD_TriAttr &, f32 *) override;
|
||||||
|
/* vt 0x34 */ virtual bool CrossCo(cCcD_UnkAttr &, f32 *) override;
|
||||||
|
/* vt 0x38 */ virtual bool CrossCo(cCcD_CylAttr &, f32 *) override;
|
||||||
|
/* vt 0x3C */ virtual bool CrossCo(cCcD_SphAttr &, f32 *) override;
|
||||||
|
/* vt 0x40 */ virtual mVec3_c &GetCoP() override;
|
||||||
|
/* vt 0x44 */ virtual void CalcAabBox() override;
|
||||||
|
/* vt 0x48 */ virtual bool GetNVec(const mVec3_c &, mVec3_c *) const override;
|
||||||
|
/* vt 0x50 */ virtual void GetPos(nw4r::math::VEC3 *) const override;
|
||||||
|
/* vt 0x58 */ virtual void TranslateXZ(f32, f32) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcCylAttr {
|
||||||
|
f32 mRadius;
|
||||||
|
f32 mHeight;
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_CylAttr : public cCcD_ShapeAttr, public cM3dGCyl {
|
||||||
|
public:
|
||||||
|
cCcD_CylAttr();
|
||||||
|
void Set(const cCcD_SrcCylAttr &);
|
||||||
|
/* vt 0x08 */ virtual ~cCcD_CylAttr();
|
||||||
|
/* vt 0x0C */ virtual bool Calc(const mVec3_c &, const mVec3_c &, mVec3_c *) override;
|
||||||
|
/* vt 0x10 */ virtual bool CrossAtTg(cCcD_ShapeAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x14 */ virtual bool CrossAtTg(cCcD_CpsAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x18 */ virtual bool CrossAtTg(cCcD_TriAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x1C */ virtual bool CrossAtTg(cCcD_UnkAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x20 */ virtual bool CrossAtTg(cCcD_CylAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x24 */ virtual bool CrossAtTg(cCcD_SphAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x28 */ virtual bool CrossCo(cCcD_ShapeAttr &, f32 *) override;
|
||||||
|
/* vt 0x2C */ virtual bool CrossCo(cCcD_CpsAttr &, f32 *) override;
|
||||||
|
/* vt 0x30 */ virtual bool CrossCo(cCcD_TriAttr &, f32 *) override;
|
||||||
|
/* vt 0x34 */ virtual bool CrossCo(cCcD_UnkAttr &, f32 *) override;
|
||||||
|
/* vt 0x38 */ virtual bool CrossCo(cCcD_CylAttr &, f32 *) override;
|
||||||
|
/* vt 0x3C */ virtual bool CrossCo(cCcD_SphAttr &, f32 *) override;
|
||||||
|
/* vt 0x40 */ virtual mVec3_c &GetCoP() override;
|
||||||
|
/* vt 0x44 */ virtual void CalcAabBox() override;
|
||||||
|
/* vt 0x48 */ virtual bool GetNVec(const mVec3_c &, mVec3_c *) const override;
|
||||||
|
/* vt 0x4C */ virtual void GetShapeAccess(cCcD_ShapeAttr::Shape *) const override;
|
||||||
|
/* vt 0x50 */ virtual void GetPos(nw4r::math::VEC3 *) const override;
|
||||||
|
/* vt 0x58 */ virtual void TranslateXZ(f32, f32) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcSphAttr {
|
||||||
|
f32 mRadius;
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_SphAttr : public cCcD_ShapeAttr, public cM3dGSph {
|
||||||
|
public:
|
||||||
|
cCcD_SphAttr();
|
||||||
|
void Set(const cCcD_SrcSphAttr &);
|
||||||
|
/* vt 0x08 */ virtual ~cCcD_SphAttr();
|
||||||
|
/* vt 0x0C */ virtual bool Calc(const mVec3_c &, const mVec3_c &, mVec3_c *) override;
|
||||||
|
/* vt 0x10 */ virtual bool CrossAtTg(cCcD_ShapeAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x14 */ virtual bool CrossAtTg(cCcD_CpsAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x18 */ virtual bool CrossAtTg(cCcD_TriAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x1C */ virtual bool CrossAtTg(cCcD_UnkAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x20 */ virtual bool CrossAtTg(cCcD_CylAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x24 */ virtual bool CrossAtTg(cCcD_SphAttr &, mVec3_c *) override;
|
||||||
|
/* vt 0x28 */ virtual bool CrossCo(cCcD_ShapeAttr &, f32 *) override;
|
||||||
|
/* vt 0x2C */ virtual bool CrossCo(cCcD_CpsAttr &, f32 *) override;
|
||||||
|
/* vt 0x30 */ virtual bool CrossCo(cCcD_TriAttr &, f32 *) override;
|
||||||
|
/* vt 0x34 */ virtual bool CrossCo(cCcD_UnkAttr &, f32 *) override;
|
||||||
|
/* vt 0x38 */ virtual bool CrossCo(cCcD_CylAttr &, f32 *) override;
|
||||||
|
/* vt 0x3C */ virtual bool CrossCo(cCcD_SphAttr &, f32 *) override;
|
||||||
|
/* vt 0x40 */ virtual mVec3_c &GetCoP() override;
|
||||||
|
/* vt 0x44 */ virtual void CalcAabBox() override;
|
||||||
|
/* vt 0x48 */ virtual bool GetNVec(const mVec3_c &, mVec3_c *) const override;
|
||||||
|
/* vt 0x4C */ virtual void GetShapeAccess(cCcD_ShapeAttr::Shape *) const override;
|
||||||
|
/* vt 0x50 */ virtual void GetPos(nw4r::math::VEC3 *) const override;
|
||||||
|
/* vt 0x54 */ virtual bool GetPosBool(mVec3_c *) const override;
|
||||||
|
/* vt 0x58 */ virtual void TranslateXZ(f32, f32) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
// This has changed bit
|
||||||
|
class cCcD_Stts {
|
||||||
|
public:
|
||||||
|
/* 0x00 */ int mAtApid;
|
||||||
|
/* 0x04 */ int mAtOldApid;
|
||||||
|
/* 0x08 */ int mTgApid;
|
||||||
|
/* 0x0C */ int mTgOldApid;
|
||||||
|
/* 0x10 */ mVec3_c mField_0x10;
|
||||||
|
/* 0x1C */ mVec3_c mField_0x1C;
|
||||||
|
/* 0x28 */ mVec3_c mCcMove;
|
||||||
|
/* 0x34 */ dAcObjBase_c *mpActor;
|
||||||
|
/* 0x38 */ int mRank;
|
||||||
|
|
||||||
|
cCcD_Stts(dAcObjBase_c *);
|
||||||
|
void Move();
|
||||||
|
int GetID() const;
|
||||||
|
void PlusCcMove(f32, f32, f32);
|
||||||
|
void ClrCcMove();
|
||||||
|
int GetWeight(int) const; // idk what to really call it but it removes the rank table
|
||||||
|
|
||||||
|
void SetDefaultRank() {
|
||||||
|
mRank = 0xD;
|
||||||
|
}
|
||||||
|
void SetRank(int rank) {
|
||||||
|
mRank = rank;
|
||||||
|
}
|
||||||
|
dAcObjBase_c *GetAc() {
|
||||||
|
return mpActor;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcGObjTgInfo {
|
||||||
|
/* 0x00 */ u16 mField_0x0;
|
||||||
|
/* 0x02 */ u16 mField_0x2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcGObjTg {
|
||||||
|
/* 0x00 */ u32 mType;
|
||||||
|
/* 0x04 */ u32 mSPrm;
|
||||||
|
/* 0x08 */ cCcD_SrcGObjTgInfo mInfo;
|
||||||
|
/* 0x0C */ u16 mField_0x0C;
|
||||||
|
/* 0x0E */ u16 mField_0x0E;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum cCcD_AtModifiers_e {
|
||||||
|
/* 0x 0000 0001 */ AT_MOD_FIRE = (1 << 0),
|
||||||
|
/* 0x 0000 0002 */ AT_MOD_0x2 = (1 << 1),
|
||||||
|
/* 0x 0000 0004 */ AT_MOD_ELECTRIC = (1 << 2),
|
||||||
|
/* 0x 0000 0008 */ AT_MOD_WIND = (1 << 3),
|
||||||
|
/* 0x 0000 0010 */ AT_MOD_0x10 = (1 << 4),
|
||||||
|
/* 0x 0000 0020 */ AT_MOD_0x20 = (1 << 5),
|
||||||
|
/* 0x 0000 0040 */ AT_MOD_WATER = (1 << 6),
|
||||||
|
/* 0x 0000 0080 */ AT_MOD_0x80 = (1 << 7),
|
||||||
|
/* 0x 0000 0100 */ AT_MOD_0x100 = (1 << 8),
|
||||||
|
/* 0x 0000 0200 */ AT_MOD_STINKY = (1 << 9),
|
||||||
|
/* 0x 0000 0400 */ AT_MOD_CURSED = (1 << 10),
|
||||||
|
};
|
||||||
|
struct cCcD_SrcGObjAtInfo {
|
||||||
|
/* 0x00 */ u8 mField_0x0;
|
||||||
|
/* 0x01 */ u8 mField_0x1;
|
||||||
|
/* 0x02 */ u16 mModifier;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum cCcD_AtSPrm {
|
||||||
|
AT_SPRM_DAMAGE = 0x4,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcGObjAt {
|
||||||
|
/* 0x00 */ u32 mType;
|
||||||
|
/* 0x04 */ u32 mSPrm;
|
||||||
|
/* 0x08 */ cCcD_SrcGObjAtInfo mInfo;
|
||||||
|
/* 0x0C */ u8 mDamage;
|
||||||
|
/* 0x0D */ u8 mField_0xD;
|
||||||
|
/* 0x0E */ u8 mField_0xE;
|
||||||
|
/* 0x0F */ u8 mField_0xF;
|
||||||
|
/* 0x10 */ u16 mField_0x10;
|
||||||
|
/* 0x12 */ s16 mField_0x12;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcGObjCo {
|
||||||
|
/* 0x00 */ u32 mSPrm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cCcD_SrcGObj {
|
||||||
|
/* 0x00 */ cCcD_SrcGObjAt mObjAt;
|
||||||
|
/* 0x14 */ cCcD_SrcGObjTg mObjTg;
|
||||||
|
/* 0x1C */ cCcD_SrcGObjCo mObjCo;
|
||||||
|
};
|
||||||
|
|
||||||
|
class dAcObjBase_c;
|
||||||
|
class cCcD_Obj;
|
||||||
|
|
||||||
|
typedef bool (*cCcD_HitCallback)(
|
||||||
|
dAcObjBase_c *i_actorA, cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB, cCcD_Obj *i_objInfB
|
||||||
|
);
|
||||||
|
typedef int (*cCcD_ShieldChkCallback)(
|
||||||
|
dAcObjBase_c *i_actorA, cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB, cCcD_Obj *i_objInfB
|
||||||
|
);
|
||||||
|
|
||||||
|
class cCcD_GAtTgCoCommonBase {
|
||||||
|
public:
|
||||||
|
cCcD_HitCallback mHit_cb;
|
||||||
|
s8 mEffCounter;
|
||||||
|
dAcRef_c<dAcObjBase_c> mAc;
|
||||||
|
u32 mRPrm;
|
||||||
|
|
||||||
|
cCcD_GAtTgCoCommonBase();
|
||||||
|
|
||||||
|
virtual ~cCcD_GAtTgCoCommonBase();
|
||||||
|
void dt() {
|
||||||
|
mEffCounter = 0;
|
||||||
|
ClrActorInfo();
|
||||||
|
mHit_cb = nullptr;
|
||||||
|
}
|
||||||
|
void ClrActorInfo();
|
||||||
|
void SetHitActor(dAcObjBase_c *);
|
||||||
|
dAcObjBase_c *GetActor();
|
||||||
|
void SubtractEffCounter();
|
||||||
|
|
||||||
|
bool ChkEffCounter() {
|
||||||
|
return mEffCounter > 0;
|
||||||
|
}
|
||||||
|
void ClrEffCounter() {
|
||||||
|
mEffCounter = 0;
|
||||||
|
}
|
||||||
|
void SetEffCounterTimer() {
|
||||||
|
mEffCounter = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 MskRPrm(u32 m) const {
|
||||||
|
return mRPrm & m;
|
||||||
|
}
|
||||||
|
void SetRPrm(u32 f) {
|
||||||
|
mRPrm = f;
|
||||||
|
}
|
||||||
|
void OnRPrm(u32 m) {
|
||||||
|
mRPrm |= m;
|
||||||
|
}
|
||||||
|
void OffRPrm(u32 m) {
|
||||||
|
mRPrm = (mRPrm & ~m) | m;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_ObjAt : public cCcD_GAtTgCoCommonBase {
|
||||||
|
public:
|
||||||
|
cCcD_ObjAt();
|
||||||
|
virtual ~cCcD_ObjAt();
|
||||||
|
void Set(const cCcD_SrcGObjAt &);
|
||||||
|
void SetAtFlag(u32);
|
||||||
|
void AdjustHitPos(f32, f32);
|
||||||
|
|
||||||
|
void SetVec(const mVec3_c &vec) {
|
||||||
|
mVec = vec;
|
||||||
|
}
|
||||||
|
mVec3_c &GetVec() {
|
||||||
|
return mVec;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetHitPos(mVec3_c &pos) {
|
||||||
|
mHitPos = pos;
|
||||||
|
}
|
||||||
|
mVec3_c &GetHitPos() {
|
||||||
|
return mHitPos;
|
||||||
|
}
|
||||||
|
void ClrSet() {
|
||||||
|
OffSPrm(1);
|
||||||
|
}
|
||||||
|
u32 ChkSet() {
|
||||||
|
return MskSPrm(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetCallback(cCcD_HitCallback cb) {
|
||||||
|
mHit_cb = cb;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 MskType(u32 mask) const {
|
||||||
|
return mSrc.mType & mask;
|
||||||
|
}
|
||||||
|
void SetType(u32 flag) {
|
||||||
|
mSrc.mType = flag;
|
||||||
|
}
|
||||||
|
void OnType(u32 m) {
|
||||||
|
mSrc.mType |= m;
|
||||||
|
}
|
||||||
|
void OffType(u32 m) {
|
||||||
|
mSrc.mType &= ~m;
|
||||||
|
}
|
||||||
|
u32 MskSPrm(u32 m) const {
|
||||||
|
return mSrc.mSPrm & m;
|
||||||
|
}
|
||||||
|
void SetSPrm(u32 f) {
|
||||||
|
mSrc.mSPrm = f;
|
||||||
|
}
|
||||||
|
void OnSPrm(u32 m) {
|
||||||
|
mSrc.mSPrm |= m;
|
||||||
|
}
|
||||||
|
void OffSPrm(u32 m) {
|
||||||
|
mSrc.mSPrm &= ~m;
|
||||||
|
}
|
||||||
|
u32 MskTgHitSPrm(u32 m) const {
|
||||||
|
return mTgHitSrc.mSPrm & m;
|
||||||
|
}
|
||||||
|
void SetTgHitSPrm(u32 f) {
|
||||||
|
mTgHitSrc.mSPrm = f;
|
||||||
|
}
|
||||||
|
void OnTgHitSPrm(u32 m) {
|
||||||
|
mTgHitSrc.mSPrm |= m;
|
||||||
|
}
|
||||||
|
void OffTgHitSPrm(u32 m) {
|
||||||
|
mTgHitSrc.mSPrm &= ~m;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cCcD_SrcGObjAt &GetSrc() const {
|
||||||
|
return mSrc;
|
||||||
|
}
|
||||||
|
void SetTgHitSrc(const cCcD_SrcGObjTg &src) {
|
||||||
|
mTgHitSrc = src;
|
||||||
|
}
|
||||||
|
const cCcD_SrcGObjTg &GetTgHitSrc() const {
|
||||||
|
return mTgHitSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
/* 0x1C */ cCcD_SrcGObjAt mSrc;
|
||||||
|
/* 0x30 */ mVec3_c mHitPos;
|
||||||
|
/* 0x3C */ mVec3_c mVec;
|
||||||
|
/* 0x48 */ cCcD_SrcGObjTg mTgHitSrc;
|
||||||
|
/* 0x58 */ cCcD_HitCallback mField_0x58;
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_ObjTg : public cCcD_GAtTgCoCommonBase {
|
||||||
|
public:
|
||||||
|
cCcD_ObjTg();
|
||||||
|
virtual ~cCcD_ObjTg();
|
||||||
|
void Set(const cCcD_SrcGObjTg &);
|
||||||
|
void AdjustHitPos(f32, f32);
|
||||||
|
|
||||||
|
void SetHitPos(mVec3_c &pos) {
|
||||||
|
mHitPos = pos;
|
||||||
|
}
|
||||||
|
mVec3_c &GetHitPos() {
|
||||||
|
return mHitPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 GetAtHitType() const {
|
||||||
|
return mAtHitSrc.mType;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetFlag_0xA(u16 flag) {
|
||||||
|
mSrc.mField_0x0E = flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 GetFlag_0xA(u16 mask) const {
|
||||||
|
return mSrc.mField_0x0E & mask;
|
||||||
|
}
|
||||||
|
void ClrSet() {
|
||||||
|
OffSPrm(1);
|
||||||
|
}
|
||||||
|
u32 ChkSet() {
|
||||||
|
return MskSPrm(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Set_0x4C(u32 f) {
|
||||||
|
mField_0x4C = f;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 MskType(u32 mask) const {
|
||||||
|
return mSrc.mType & mask;
|
||||||
|
}
|
||||||
|
void SetType(u32 flag) {
|
||||||
|
mSrc.mType = flag;
|
||||||
|
}
|
||||||
|
void OnType(u32 m) {
|
||||||
|
mSrc.mType |= m;
|
||||||
|
}
|
||||||
|
void OffType(u32 m) {
|
||||||
|
mSrc.mType &= ~m;
|
||||||
|
}
|
||||||
|
u32 MskSPrm(u32 m) const {
|
||||||
|
return mSrc.mSPrm & m;
|
||||||
|
}
|
||||||
|
void SetSPrm(u32 f) {
|
||||||
|
mSrc.mSPrm = f;
|
||||||
|
}
|
||||||
|
void OnSPrm(u32 m) {
|
||||||
|
mSrc.mSPrm |= m;
|
||||||
|
}
|
||||||
|
void OffSPrm(u32 m) {
|
||||||
|
mSrc.mSPrm &= ~m;
|
||||||
|
}
|
||||||
|
u32 MskAtHitSPrm(u32 m) const {
|
||||||
|
return mAtHitSrc.mSPrm & m;
|
||||||
|
}
|
||||||
|
void SetAtHitSPrm(u32 f) {
|
||||||
|
mAtHitSrc.mSPrm = f;
|
||||||
|
}
|
||||||
|
void OnAtHitSPrm(u32 m) {
|
||||||
|
mAtHitSrc.mSPrm |= m;
|
||||||
|
}
|
||||||
|
void OffAtHitSPrm(u32 m) {
|
||||||
|
mAtHitSrc.mSPrm &= ~m;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cCcD_SrcGObjTg &GetSrc() const {
|
||||||
|
return mSrc;
|
||||||
|
}
|
||||||
|
void SetAtHitSrc(const cCcD_SrcGObjAt &src) {
|
||||||
|
mAtHitSrc = src;
|
||||||
|
}
|
||||||
|
const cCcD_SrcGObjAt &GetAtHitSrc() const {
|
||||||
|
return mAtHitSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Set_0x4B(u8 val) {
|
||||||
|
mField_0x4B = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
/* 0x1C */ cCcD_SrcGObjTg mSrc;
|
||||||
|
/* 0x2C */ mVec3_c mField_0x2C;
|
||||||
|
/* 0x38 */ mVec3_c mHitPos;
|
||||||
|
/* 0x44 */ s16 *mShieldFrontRangeYAngle;
|
||||||
|
/* 0x48 */ s16 mShieldRange;
|
||||||
|
/* 0x4A */ u8 mField_0x4A;
|
||||||
|
/* 0x4B */ u8 mField_0x4B;
|
||||||
|
/* 0x4C */ u32 mField_0x4C;
|
||||||
|
/* 0x50 */ u32 mField_0x50;
|
||||||
|
/* 0x54 */ cCcD_ShieldChkCallback mField_0x54;
|
||||||
|
/* 0x58 */ cCcD_SrcGObjAt mAtHitSrc;
|
||||||
|
/* 0x6C */ mVec3_c mField_0x6C;
|
||||||
|
/* 0x78 */ cCcD_HitCallback mField_0x78;
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_ObjCo : public cCcD_GAtTgCoCommonBase {
|
||||||
|
public:
|
||||||
|
cCcD_ObjCo();
|
||||||
|
virtual ~cCcD_ObjCo();
|
||||||
|
void Set(const cCcD_SrcGObjCo &);
|
||||||
|
void SetCoFlag(u32);
|
||||||
|
void AdjustHitPos(f32, f32);
|
||||||
|
|
||||||
|
void ClrSet() {
|
||||||
|
OffSPrm(1);
|
||||||
|
}
|
||||||
|
u32 ChkSet() {
|
||||||
|
return MskSPrm(1);
|
||||||
|
}
|
||||||
|
u32 MskSPrm(u32 m) const {
|
||||||
|
return mSrc.mSPrm & m;
|
||||||
|
}
|
||||||
|
void SetSPrm(u32 f) {
|
||||||
|
mSrc.mSPrm = f;
|
||||||
|
}
|
||||||
|
void OnSPrm(u32 m) {
|
||||||
|
mSrc.mSPrm |= m;
|
||||||
|
}
|
||||||
|
void OffSPrm(u32 m) {
|
||||||
|
mSrc.mSPrm &= ~m;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cCcD_SrcGObjCo &GetSrc() const {
|
||||||
|
return mSrc;
|
||||||
|
}
|
||||||
|
void SetCoHitSrc(const cCcD_SrcGObjCo &src) {
|
||||||
|
mCoHitSrc = src;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
/* 0x1C */ cCcD_SrcGObjCo mSrc;
|
||||||
|
/* 0x20 */ u32 mGrp;
|
||||||
|
/* 0x24 */ cCcD_SrcGObjCo mCoHitSrc;
|
||||||
|
/* 0x28 */ cCcD_HitCallback mField_0x28_callback;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Maybe ?
|
||||||
|
class cCcD_ObjInf {
|
||||||
|
public:
|
||||||
|
/* 0x000 */ cCcD_ObjAt mObjAt;
|
||||||
|
/* 0x05C */ cCcD_ObjTg mObjTg;
|
||||||
|
/* 0x0D8 */ cCcD_ObjCo mObjCo;
|
||||||
|
};
|
||||||
|
|
||||||
|
class cCcD_Obj {
|
||||||
|
public:
|
||||||
|
/* 0x000 */ cCcD_ObjAt mAt;
|
||||||
|
/* 0x05C */ cCcD_ObjTg mTg;
|
||||||
|
/* 0x0D8 */ cCcD_ObjCo mCo;
|
||||||
|
/* 0x104 */ cCcD_Stts *mStts;
|
||||||
|
/* 0x108 */ u32 mField_0x108;
|
||||||
|
|
||||||
|
public:
|
||||||
|
cCcD_Obj();
|
||||||
|
virtual ~cCcD_Obj();
|
||||||
|
virtual cCcD_ShapeAttr *GetShapeAttr() = 0;
|
||||||
|
virtual cCcD_ObjInf *GetGObjInfo();
|
||||||
|
void ClrSet();
|
||||||
|
void Set(const cCcD_SrcGObj &);
|
||||||
|
void ClrAtHit();
|
||||||
|
void ClrTgHit();
|
||||||
|
void ClrCoHit();
|
||||||
|
|
||||||
|
const mVec3_c &GetAtHitPos() const;
|
||||||
|
mVec3_c &GetAtHitPos();
|
||||||
|
bool GetAtFlag0x2() const;
|
||||||
|
bool GetAtFlag0x4() const;
|
||||||
|
bool GetAtFlag0x8() const;
|
||||||
|
|
||||||
|
const mVec3_c &GetTgHitPos() const;
|
||||||
|
mVec3_c &GetTgHitPos();
|
||||||
|
bool GetTgFlag0x4() const;
|
||||||
|
bool GetTgFlag0x8() const;
|
||||||
|
|
||||||
|
bool ChkAtClawshot() const;
|
||||||
|
bool ChkAtClawshotDebug() const;
|
||||||
|
bool ChkAtElectrified() const;
|
||||||
|
bool ChkAtElectrifiedExtra() const;
|
||||||
|
bool ChkAtWhippable() const;
|
||||||
|
bool ChkAtBit24() const;
|
||||||
|
bool ChkAtArrowStick() const;
|
||||||
|
bool ChkAtWaterScaleBonk() const;
|
||||||
|
bool ChkAtSwordBonk() const;
|
||||||
|
dAcObjBase_c *GetAtActor();
|
||||||
|
|
||||||
|
bool ChkTgAtHitType(u32) const;
|
||||||
|
u32 GetTg_0x58() const;
|
||||||
|
bool ChkTgBit14() const;
|
||||||
|
u8 GetTgDamage() const;
|
||||||
|
u16 GetTgDamageFlags() const;
|
||||||
|
bool ChkTgSkywardStrike() const;
|
||||||
|
bool ChkTgBit17() const;
|
||||||
|
bool ChkTgBit18() const;
|
||||||
|
bool ChkTgBit19() const;
|
||||||
|
bool ChkTgBit20() const;
|
||||||
|
bool ChkTgBit23() const;
|
||||||
|
bool ChkTgBit24() const;
|
||||||
|
bool ChkTgBit25() const;
|
||||||
|
u16 GetTgSoundID() const;
|
||||||
|
s16 GetTg_0x6A() const;
|
||||||
|
bool ChkTgBit8() const;
|
||||||
|
u8 GetTg_0x4A() const;
|
||||||
|
dAcObjBase_c *GetTgActor();
|
||||||
|
const mVec3_c &GetTg_0x2C() const;
|
||||||
|
|
||||||
|
dAcObjBase_c *GetCoActor();
|
||||||
|
bool ChkCoBit4() const;
|
||||||
|
|
||||||
|
void SetAtFlagsUpper(u32);
|
||||||
|
bool ChkTgBit1() const;
|
||||||
|
|
||||||
|
void AdjustHitPos(f32, f32);
|
||||||
|
|
||||||
|
static bool fn_80328ad0(dAcObjBase_c *pObj, u32 attype);
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
cCcD_Stts* GetStts() {
|
||||||
|
return mStts;
|
||||||
|
}
|
||||||
|
void SetStts(cCcD_Stts &stts) { mStts = &stts; }
|
||||||
|
|
||||||
|
void SetAtVec(const mVec3_c &vec) { mAt.SetVec(vec); }
|
||||||
|
|
||||||
|
|
||||||
|
void OnTgCoFlag(u32 f) {
|
||||||
|
mTg.OnSPrm(f);
|
||||||
|
mCo.OnSPrm(f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetTgFlag(u32 flag) {
|
||||||
|
mTg.SetType(flag);
|
||||||
|
}
|
||||||
|
void SetAtFlag(u32 flag) {
|
||||||
|
mAt.SetSPrm(flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetTgFlag_0xA(u16 flag) {
|
||||||
|
mTg.SetFlag_0xA(flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ChkTgHit() {
|
||||||
|
return mTg.MskSPrm(1) != 0 && mTg.GetActor() != nullptr;
|
||||||
|
}
|
||||||
|
bool ChkAtHit() {
|
||||||
|
return mAt.MskSPrm(1) != 0 && mAt.GetActor() != nullptr;
|
||||||
|
}
|
||||||
|
bool ChkCoHit() {
|
||||||
|
return mCo.MskSPrm(1) != 0 && mCo.GetActor() != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
dAcObjBase_c *GetAc() {
|
||||||
|
if (mStts == nullptr) {
|
||||||
|
return nullptr;
|
||||||
|
} else {
|
||||||
|
return mStts->mpActor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClrCoSet() {
|
||||||
|
mCo.ClrSet();
|
||||||
|
}
|
||||||
|
void ClrAtSet() {
|
||||||
|
mAt.ClrSet();
|
||||||
|
}
|
||||||
|
void ClrTgSet() {
|
||||||
|
mTg.ClrSet();
|
||||||
|
}
|
||||||
|
u32 ChkCoSet() {
|
||||||
|
return mCo.ChkSet();
|
||||||
|
}
|
||||||
|
u32 ChkAtSet() {
|
||||||
|
return mAt.ChkSet();
|
||||||
|
}
|
||||||
|
u32 ChkTgSet() {
|
||||||
|
return mTg.ChkSet();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ChkAtEffCounter() { return mAt.ChkEffCounter(); }
|
||||||
|
bool ChkTgEffCounter() { return mTg.ChkEffCounter(); }
|
||||||
|
void ClrAtEffCounter() { mAt.ClrEffCounter(); }
|
||||||
|
void ClrTgEffCounter() { mTg.ClrEffCounter(); }
|
||||||
|
void ClrCoEffCounter() { mCo.ClrEffCounter(); }
|
||||||
|
void SetAtEffCounterTimer() { mAt.SetEffCounterTimer(); }
|
||||||
|
void SetTgEffCounterTimer() { mTg.SetEffCounterTimer(); }
|
||||||
|
void SubtractAtEffCounter() { mAt.SubtractEffCounter(); }
|
||||||
|
void SubtractTgEffCounter() { mTg.SubtractEffCounter(); }
|
||||||
|
void SubtractCoEffCounter() { mCo.SubtractEffCounter(); }
|
||||||
|
|
||||||
|
void SetTg_0x4C(u32 f) {
|
||||||
|
mTg.Set_0x4C(f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetAtCallback(cCcD_HitCallback cb) {
|
||||||
|
mAt.SetCallback(cb);
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 ChkTgNoAtHitInfSet() const {
|
||||||
|
return mTg.MskSPrm(0x40);
|
||||||
|
}
|
||||||
|
u32 ChkAtNoTgHitInfSet() const {
|
||||||
|
return mAt.MskSPrm(0x40);
|
||||||
|
}
|
||||||
|
u32 ChkCoNoCoHitInfSet() const {
|
||||||
|
return mCo.MskSPrm(0x800);
|
||||||
|
}
|
||||||
|
|
||||||
|
// At
|
||||||
|
|
||||||
|
u32 ChkAtNoMass() const {
|
||||||
|
return mAt.MskSPrm(0x400);
|
||||||
|
}
|
||||||
|
u32 GetAtGrp() const {
|
||||||
|
return mAt.MskSPrm(0x3E);
|
||||||
|
}
|
||||||
|
u32 ChkAtNoConHit() const {
|
||||||
|
return mAt.MskSPrm(0x80);
|
||||||
|
}
|
||||||
|
u32 ChkAtStopNoConHit() const {
|
||||||
|
return mAt.MskSPrm(0x200);
|
||||||
|
}
|
||||||
|
u32 ChkAtNoGaurd() const {
|
||||||
|
return mAt.MskSPrm(0x200000);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tg
|
||||||
|
|
||||||
|
u32 GetTgGrp() const {
|
||||||
|
return mTg.MskSPrm(0x3E);
|
||||||
|
}
|
||||||
|
u32 ChkTgNoConHit() const {
|
||||||
|
return mTg.MskSPrm(0x100);
|
||||||
|
}
|
||||||
|
u32 ChkTgStopNoConHit() const {
|
||||||
|
return mTg.MskSPrm(0x100000);
|
||||||
|
}
|
||||||
|
u32 ChkTgShieldFrontRange() const {
|
||||||
|
return mTg.MskSPrm(0x400);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetTg_0x4B(u8 val) {
|
||||||
|
mTg.Set_0x4B(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Co
|
||||||
|
|
||||||
|
u32 ChkCoSet2() const {
|
||||||
|
return mCo.MskSPrm(0x800);
|
||||||
|
}
|
||||||
|
u32 ChkCoNoCamHit() const {
|
||||||
|
return mCo.MskSPrm(0x4000);
|
||||||
|
}
|
||||||
|
u32 ChkCoSameActorHit() const {
|
||||||
|
return mCo.MskSPrm(0x1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SET HIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Actor Objs
|
||||||
|
void SetAtHit(cCcD_Obj *other) {
|
||||||
|
mAt.SetHitActor(other->GetAc());
|
||||||
|
}
|
||||||
|
void SetTgHit(cCcD_Obj *other) {
|
||||||
|
mTg.SetHitActor(other->GetAc());
|
||||||
|
}
|
||||||
|
void SetCoHit(cCcD_Obj *other) {
|
||||||
|
mCo.SetHitActor(other->GetAc());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hit Positions
|
||||||
|
void SetAtHitPos(mVec3_c &pos) {
|
||||||
|
mAt.SetHitPos(pos);
|
||||||
|
}
|
||||||
|
void SetTgHitPos(mVec3_c &pos) {
|
||||||
|
mTg.SetHitPos(pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SET SOURCES
|
||||||
|
*/
|
||||||
|
|
||||||
|
void SetAtTgHitSrc(cCcD_Obj *tg) {
|
||||||
|
mAt.SetTgHitSrc(tg->mTg.GetSrc());
|
||||||
|
}
|
||||||
|
void SetTgAtHitSrc(cCcD_Obj *at) {
|
||||||
|
mTg.SetAtHitSrc(at->mAt.GetSrc());
|
||||||
|
}
|
||||||
|
void SetCoCoHitSrc(cCcD_Obj *co) {
|
||||||
|
mCo.SetCoHitSrc(co->mCo.GetSrc());
|
||||||
|
}
|
||||||
|
|
||||||
|
// clang-format on
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,20 @@
|
|||||||
#ifndef C_CC_S_H
|
#ifndef C_CC_S_H
|
||||||
#define C_CC_S_H
|
#define C_CC_S_H
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
#include "d/col/c/c_cc_d.h"
|
#include "d/col/c/c_cc_d.h"
|
||||||
|
#include "m/m_mtx.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This still seems to be exist, but looks like was heavily revised.
|
||||||
|
* No more virtual functions
|
||||||
|
* a couple more entry arrays (a Matrix one and a model one)
|
||||||
|
*
|
||||||
|
* This file is largely here to support future changes?
|
||||||
|
* - dCcS copies and pastes the content. Otherwise the ctor is weird
|
||||||
|
*/
|
||||||
|
|
||||||
enum WeightType {
|
enum WeightType {
|
||||||
WeightType_0 = 0,
|
WeightType_0 = 0,
|
||||||
@ -9,52 +22,53 @@ enum WeightType {
|
|||||||
WeightType_2 = 2,
|
WeightType_2 = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
// class cCcS {
|
class cCcS {
|
||||||
// public:
|
public:
|
||||||
// /* 0x0000 */ cCcD_Obj *mpObjAt[0x100];
|
/* 0x0000 */ cCcD_Obj *mpObjAt[0x200];
|
||||||
// /* 0x0400 */ cCcD_Obj *mpObjTg[0x300];
|
/* 0x0800 */ cCcD_Obj *mpObjTg[0x300];
|
||||||
// /* 0x1000 */ cCcD_Obj *mpObjCo[0x100];
|
/* 0x1400 */ cCcD_Obj *mpObjCo[0x200];
|
||||||
// /* 0x1400 */ cCcD_Obj *mpObj[0x500];
|
/* 0x1c00 */ cCcD_Obj *mpObj[0x340];
|
||||||
// /* 0x2800 */ u16 mObjAtCount;
|
/* 0x2900 */ UNKTYPE *mpUnk[0x100];
|
||||||
// /* 0x2802 */ u16 mObjTgCount;
|
/* 0x2D00 */ u16 mObjAtCount;
|
||||||
// /* 0x2804 */ u16 mObjCoCount;
|
/* 0x2d02 */ u16 mObjTgCount;
|
||||||
// /* 0x2806 */ u16 mObjCount;
|
/* 0x2D04 */ u16 mObjCoCount;
|
||||||
// /* 0x2808 */ cCcD_DivideArea mDivideArea;
|
/* 0x2D06 */ u16 mObjCount;
|
||||||
// /* 0x2848 vtable */
|
/* 0x2D08 */ u32 mUnkCount;
|
||||||
|
/* 0x2D0C */ cCcD_DivideArea mDivideArea;
|
||||||
|
/* 0x2D4C */ bool mbAreaSet;
|
||||||
|
/* 0x2D50 */ mMtx_c mAreas[16][2]; // could be a structure?
|
||||||
|
/* 0x3350 */ int mAreaCount;
|
||||||
|
|
||||||
// /* 80264A6C */ cCcS();
|
cCcS() {}
|
||||||
// /* 80264A94 */ void Ct();
|
|
||||||
// /* 80264B60 */ void Dt();
|
void Ct();
|
||||||
// /* 80264B80 */ WeightType GetWt(u8) const;
|
void Dt();
|
||||||
// /* 80264BA8 */ void Set(cCcD_Obj *);
|
|
||||||
// /* 80264C5C */ void ClrCoHitInf();
|
void Set(cCcD_Obj *);
|
||||||
// /* 80264CF0 */ void ClrTgHitInf();
|
|
||||||
// /* 80264D90 */ void ClrAtHitInf();
|
void ChkCo(mVec3_c *, dAcObjBase_c *);
|
||||||
// /* 80264E2C */ bool ChkNoHitAtTg(cCcD_Obj *, cCcD_Obj *);
|
bool fn_80357c90(mVec3_c *, mVec3_c *, u32, UNKTYPE *);
|
||||||
// /* 80264F40 */ void ChkAtTg();
|
|
||||||
// /* 8026515C */ bool ChkNoHitCo(cCcD_Obj *, cCcD_Obj *);
|
// WeightType GetWt(u8) const;
|
||||||
// /* 80265230 */ void ChkCo();
|
// void ClrCoHitInf();
|
||||||
// /* 802653A0 vt[2] */ virtual void CalcTgPlusDmg(cCcD_Obj *, cCcD_Obj *, cCcD_Stts *, cCcD_Stts *);
|
// void ClrTgHitInf();
|
||||||
// /* 802653C8 */ void SetAtTgCommonHitInf(cCcD_Obj *, cCcD_Obj *, cXyz *);
|
// void ClrAtHitInf();
|
||||||
// /* 802655E4 */ void SetCoCommonHitInf(cCcD_Obj *, cXyz *, cCcD_Obj *, cXyz *, f32);
|
// bool ChkNoHitAtTg(cCcD_Obj *, cCcD_Obj *);
|
||||||
// /* 80265750 vt[3]*/ virtual void SetPosCorrect(cCcD_Obj *, cXyz *, cCcD_Obj *, cXyz *, f32);
|
// void ChkAtTg();
|
||||||
// /* 80265BB4 */ void CalcArea();
|
// bool ChkNoHitCo(cCcD_Obj *, cCcD_Obj *);
|
||||||
// /* 80265CCC */ void Move();
|
// void CalcTgPlusDmg(cCcD_Obj *, cCcD_Obj *, cCcD_Stts *, cCcD_Stts *);
|
||||||
// /* 80265D30 */ void DrawClear();
|
// void SetAtTgCommonHitInf(cCcD_Obj *, cCcD_Obj *, cXyz *);
|
||||||
// /* 80265DF8 vt[4] */ virtual void
|
// void SetCoCommonHitInf(cCcD_Obj *, cXyz *, cCcD_Obj *, cXyz *, f32);
|
||||||
// SetCoGObjInf(bool, bool, cCcD_GObjInf *, cCcD_GObjInf *, cCcD_Stts *, cCcD_Stts *, cCcD_GStts *, cCcD_GStts *);
|
// void SetPosCorrect(cCcD_Obj *, cXyz *, cCcD_Obj *, cXyz *, f32);
|
||||||
// /* 80265DFC vt[5] */ virtual void
|
// void CalcArea();
|
||||||
// SetAtTgGObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *, cCcD_GObjInf *, cCcD_GObjInf *, cCcD_Stts *, cCcD_Stts *,
|
// void Move();
|
||||||
// cCcD_GStts *, cCcD_GStts *, cXyz *);
|
// void DrawClear();
|
||||||
// /* 80265E00 vt[6] */ virtual bool
|
// void SetCoGObjInf(bool, bool, cCcD_ObjInf *, cCcD_ObjInf *, cCcD_Stts *, cCcD_Stts *, cCcD_GStts *, cCcD_GStts
|
||||||
// ChkNoHitGAtTg(cCcD_GObjInf const *, cCcD_GObjInf const *, cCcD_GStts *, cCcD_GStts *);
|
// *); void SetAtTgGObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *, cCcD_ObjInf *, cCcD_ObjInf *, cCcD_Stts *,
|
||||||
// /* 80265E08 vt[7] */ virtual bool
|
// cCcD_Stts *, cCcD_GStts *, cCcD_GStts *, cXyz *); bool ChkNoHitGAtTg(cCcD_ObjInf const *, cCcD_ObjInf const *,
|
||||||
// ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const *, cCcD_GObjInf const *, cCcD_Stts *, cCcD_Stts *, cCcD_GStts *,
|
// cCcD_GStts *, cCcD_GStts *); bool ChkAtTgHitAfterCross(bool, bool, cCcD_ObjInf const *, cCcD_ObjInf const *,
|
||||||
// cCcD_GStts *);
|
// cCcD_Stts *, cCcD_Stts *, cCcD_GStts *, cCcD_GStts *); bool ChkNoHitGCo(cCcD_Obj *, cCcD_Obj *); ~cCcS() {} void
|
||||||
// /* 80265E10 vt[8] */ virtual bool ChkNoHitGCo(cCcD_Obj *, cCcD_Obj *);
|
// MoveAfterCheck(); void SetCoGCorrectProc(cCcD_Obj *, cCcD_Obj *);
|
||||||
// /* 80030BDC vt[9] */ virtual ~cCcS() {}
|
};
|
||||||
// /* 80265E18 vt[10] */ virtual void MoveAfterCheck();
|
|
||||||
// /* 80265DF4 vt[11] */ virtual void SetCoGCorrectProc(cCcD_Obj *, cCcD_Obj *);
|
|
||||||
// }; // Size = 0x284C
|
|
||||||
|
|
||||||
#endif /* C_CC_S_H */
|
#endif /* C_CC_S_H */
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "nw4r/math.h"
|
#include "nw4r/math.h" // IWYU pragma: export
|
||||||
|
#include "nw4r/types_nw4r.h"
|
||||||
|
|
||||||
class cM3dGAab;
|
class cM3dGAab;
|
||||||
class cM3dGCps;
|
class cM3dGCps;
|
||||||
@ -19,64 +20,69 @@ struct cM3d_Range;
|
|||||||
extern const f32 G_CM3D_F_ABS_MIN;
|
extern const f32 G_CM3D_F_ABS_MIN;
|
||||||
|
|
||||||
bool cM3d_Len2dSqPntAndSegLine(f32, f32, f32, f32, f32, f32, f32 *, f32 *, f32 *);
|
bool cM3d_Len2dSqPntAndSegLine(f32, f32, f32, f32, f32, f32, f32 *, f32 *, f32 *);
|
||||||
bool cM3d_Len3dSqPntAndSegLine(const cM3dGLin *, const nw4r::math::VEC3 *, nw4r::math::VEC3 *, f32 *, f32 *);
|
bool cM3d_Len3dSqPntAndSegLine(const cM3dGLin &, const nw4r::math::VEC3 &, nw4r::math::VEC3 *, f32 *, f32 *);
|
||||||
f32 cM3d_SignedLenPlaAndPos(const cM3dGPla *, const nw4r::math::VEC3 *);
|
f32 cM3d_SignedLenPlaAndPos(const cM3dGPla &, const nw4r::math::VEC3 *);
|
||||||
void cM3d_CalcPla(const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, nw4r::math::VEC3 *, f32 *);
|
void cM3d_CalcPla(const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, nw4r::math::VEC3 *, f32 *);
|
||||||
int cM3d_Check_LinLin(const cM3dGLin *, const cM3dGLin *, f32 *, f32 *);
|
int cM3d_Check_LinLin(const cM3dGLin &, const cM3dGLin *, f32 *, f32 *);
|
||||||
bool cM3d_Cross_LinPla(const cM3dGLin *, const cM3dGPla *, nw4r::math::VEC3 *, bool, bool);
|
bool cM3d_Cross_LinPla(const cM3dGLin &, const cM3dGPla *, nw4r::math::VEC3 *, bool, bool);
|
||||||
bool cM3d_Cross_MinMaxBoxLine(const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *);
|
bool cM3d_Cross_MinMaxBoxLine(const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *);
|
||||||
bool cM3d_InclusionCheckPosIn3PosBox3d(
|
bool cM3d_InclusionCheckPosIn3PosBox3d(
|
||||||
const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, f32
|
const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, f32
|
||||||
);
|
);
|
||||||
bool cM3d_CrossX_Tri(const cM3dGTri *, const nw4r::math::VEC3 *, f32);
|
bool cM3d_CrossX_Tri(const cM3dGTri &, const nw4r::math::VEC3 *, f32);
|
||||||
bool cM3d_CrossX_Tri(const cM3dGTri *, const nw4r::math::VEC3 *);
|
bool cM3d_CrossX_Tri(const cM3dGTri &, const nw4r::math::VEC3 *);
|
||||||
bool cM3d_CrossY_Tri(const cM3dGTri *, const nw4r::math::VEC3 *);
|
bool cM3d_CrossY_Tri(const cM3dGTri &, const nw4r::math::VEC3 *);
|
||||||
bool cM3d_CrossY_Tri_Front(const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 *);
|
bool cM3d_CrossY_Tri_Front(const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 *);
|
||||||
bool cM3d_CrossY_Tri(const cM3dGTri *, const nw4r::math::VEC3 *, f32 *);
|
bool cM3d_CrossY_Tri(const cM3dGTri &, const nw4r::math::VEC3 *, f32 *);
|
||||||
bool cM3d_CrossY_Tri(const cM3dGTri *, const nw4r::math::VEC3 *, f32);
|
bool cM3d_CrossY_Tri(const cM3dGTri &, const nw4r::math::VEC3 *, f32);
|
||||||
bool cM3d_CrossY_Tri(const cM3dGTri *, const nw4r::math::VEC3 *, const cM3d_Range *, f32 *);
|
bool cM3d_CrossY_Tri(const cM3dGTri &, const nw4r::math::VEC3 *, const cM3d_Range *, f32 *);
|
||||||
bool cM3d_CrossZ_Tri(const cM3dGTri *, const nw4r::math::VEC3 *, f32);
|
bool cM3d_CrossZ_Tri(const cM3dGTri &, const nw4r::math::VEC3 *, f32);
|
||||||
bool cM3d_CrossZ_Tri(const cM3dGTri *, const nw4r::math::VEC3 *);
|
bool cM3d_CrossZ_Tri(const cM3dGTri &, const nw4r::math::VEC3 *);
|
||||||
bool cM3d_CrossZ_Tri(const cM3dGTri *, const nw4r::math::VEC3 *, f32 *);
|
bool cM3d_CrossZ_Tri(const cM3dGTri &, const nw4r::math::VEC3 *, f32 *);
|
||||||
bool cM3d_Cross_LinTri(const cM3dGLin *, const cM3dGTri *, nw4r::math::VEC3 *, bool, bool);
|
bool cM3d_Cross_LinTri(const cM3dGLin &, const cM3dGTri &, nw4r::math::VEC3 *, bool, bool);
|
||||||
bool cM3d_Cross_LinTri(
|
bool cM3d_Cross_LinTri(
|
||||||
const cM3dGLin *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, const cM3dGPla *,
|
const cM3dGLin &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const cM3dGPla *,
|
||||||
nw4r::math::VEC3 *, bool, bool
|
nw4r::math::VEC3 *, bool, bool
|
||||||
);
|
);
|
||||||
bool cM3d_Cross_LinTri_Easy(const cM3dGTri *, const nw4r::math::VEC3 *);
|
bool cM3d_Cross_LinTri_Easy(const cM3dGTri *, const nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_SphPnt(const cM3dGSph *, const nw4r::math::VEC3 *);
|
bool cM3d_Cross_SphPnt(const cM3dGSph &, const nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_LinSph(const cM3dGLin *, const cM3dGSph *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_LinSph(const cM3dGLin &, const cM3dGSph &, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_LinSph_CrossPos(const cM3dGSph &, const cM3dGLin &, nw4r::math::VEC3 *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_LinSph_CrossPos(const cM3dGSph &, const cM3dGLin &, nw4r::math::VEC3 *, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_CylSph(const cM3dGCyl *, const cM3dGSph *, f32 *);
|
bool cM3d_Cross_CylSph(const cM3dGCyl &, const cM3dGSph &, f32 *);
|
||||||
bool cM3d_Cross_CylSph(const cM3dGCyl *, const cM3dGSph *, nw4r::math::VEC3 *, f32 *);
|
bool cM3d_Cross_CylSph(const cM3dGCyl &, const cM3dGSph &, nw4r::math::VEC3 *, f32 *);
|
||||||
bool cM3d_Cross_SphSph(const cM3dGSph *, const cM3dGSph *, f32 *);
|
bool cM3d_Cross_SphSph(const cM3dGSph &, const cM3dGSph &, f32 *);
|
||||||
bool cM3d_Cross_SphSph(const cM3dGSph *, const cM3dGSph *, f32 *, f32 *);
|
bool cM3d_Cross_SphSph(const cM3dGSph &, const cM3dGSph &, f32 *, f32 *);
|
||||||
bool cM3d_Cross_SphSph(const cM3dGSph *, const cM3dGSph *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_SphSph(const cM3dGSph &, const cM3dGSph &, nw4r::math::VEC3 *);
|
||||||
void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph *, const cM3dGTri *, nw4r::math::VEC3 *);
|
void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph &, const cM3dGTri &, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_SphTri(const cM3dGSph *, const cM3dGTri *, nw4r::math::VEC3 *, f32 *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_SphTri(const cM3dGSph &, const cM3dGTri &, nw4r::math::VEC3 *, f32 *, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_CylCyl(const cM3dGCyl *, const cM3dGCyl *, f32 *);
|
bool cM3d_Cross_CylCyl(const cM3dGCyl &, const cM3dGCyl &, f32 *);
|
||||||
bool cM3d_Cross_CylCyl(const cM3dGCyl *, const cM3dGCyl *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_CylCyl(const cM3dGCyl &, const cM3dGCyl &, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_CylTri(const cM3dGCyl *, const cM3dGTri *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_CylTri(const cM3dGCyl &, const cM3dGTri &, nw4r::math::VEC3 *);
|
||||||
int cM3d_Cross_CylLin(const cM3dGCyl *, const cM3dGLin *, nw4r::math::VEC3 *, nw4r::math::VEC3 *);
|
int cM3d_Cross_CylLin(const cM3dGCyl &, const cM3dGLin &, nw4r::math::VEC3 *, nw4r::math::VEC3 *);
|
||||||
int cM3d_Cross_CylPntPnt(const cM3dGCyl *, const nw4r::math::VEC3 *, const nw4r::math::VEC3 *, nw4r::math::VEC3 *, nw4r::math::VEC3 *);
|
int cM3d_Cross_CylPntPnt(const cM3dGCyl &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, nw4r::math::VEC3 *, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_CylPnt(const cM3dGCyl *, const nw4r::math::VEC3 *);
|
bool cM3d_Cross_CylPnt(const cM3dGCyl &, const nw4r::math::VEC3 &);
|
||||||
|
bool cM3d_Cross_CpsCps(const cM3dGCps &, const cM3dGCps &, nw4r::math::VEC3 *, f32 *, f32 *);
|
||||||
|
bool cM3d_Cross_CpsCyl(const cM3dGCps &, const cM3dGCyl &, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_CpsSph_CrossPos(const cM3dGCps &, const cM3dGSph &, const nw4r::math::VEC3 &, nw4r::math::VEC3 *);
|
bool cM3d_Cross_CpsSph_CrossPos(const cM3dGCps &, const cM3dGSph &, const nw4r::math::VEC3 &, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_CpsSph(const cM3dGCps &, const cM3dGSph &, nw4r::math::VEC3 *);
|
bool cM3d_Cross_CpsSph(const cM3dGCps &, const cM3dGSph &, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_TriTri(const cM3dGTri &, const cM3dGTri &, nw4r::math::VEC3 *);
|
bool cM3d_Cross_TriTri(const cM3dGTri &, const cM3dGTri &, nw4r::math::VEC3 *);
|
||||||
bool cM3d_Cross_CpsTri(const cM3dGCps &, cM3dGTri, nw4r::math::VEC3 *);
|
bool cM3d_Cross_CpsTri(const cM3dGCps &, const cM3dGTri &, nw4r::math::VEC3 *);
|
||||||
void cM3d_CalcVecZAngle(const nw4r::math::VEC3 &, mAng3_c *);
|
void cM3d_CalcVecZAngle(const nw4r::math::VEC3 &, mAng3_c *);
|
||||||
void cM3d_PlaneCrossLineProcWork(f32, f32, f32, f32, f32, f32, f32, f32 *, f32 *);
|
void cM3d_PlaneCrossLineProcWork(f32, f32, f32, f32, f32, f32, f32, f32 *, f32 *);
|
||||||
int cM3d_2PlaneCrossLine(const cM3dGPla &, const cM3dGPla &, cM3dGLin *);
|
int cM3d_2PlaneCrossLine(const cM3dGPla &, const cM3dGPla &, cM3dGLin *);
|
||||||
bool cM3d_3PlaneCrossPos(const cM3dGPla &, const cM3dGPla &, const cM3dGPla &, nw4r::math::VEC3 *);
|
bool cM3d_3PlaneCrossPos(const cM3dGPla &, const cM3dGPla &, const cM3dGPla &, nw4r::math::VEC3 *);
|
||||||
f32 cM3d_lineVsPosSuisenCross(const cM3dGLin *, const nw4r::math::VEC3 *, nw4r::math::VEC3 *);
|
f32 cM3d_lineVsPosSuisenCross(const cM3dGLin &, const nw4r::math::VEC3 &, nw4r::math::VEC3 *);
|
||||||
f32 cM3d_lineVsPosSuisenCross(const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, nw4r::math::VEC3 *);
|
f32 cM3d_lineVsPosSuisenCross(const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, const nw4r::math::VEC3 &, nw4r::math::VEC3 *);
|
||||||
|
|
||||||
bool fn_803354e0(cM3dGUnk *, cM3dGUnk *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_UnkTri(const cM3dGUnk &, cM3dGTri &, nw4r::math::VEC3 *);
|
||||||
bool fn_80336110(cM3dGCyl *, cM3dGUnk *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_CylUnk(const cM3dGCyl &, cM3dGUnk &, nw4r::math::VEC3 *);
|
||||||
bool fn_803364e0(cM3dGCyl *, cM3dGUnk *, f32 *);
|
bool cM3d_Cross_CylUnk(const cM3dGCyl &, cM3dGUnk &, f32 *);
|
||||||
bool fn_80336d90(cM3dGCps *, cM3dGUnk *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_CpsUnk(const cM3dGCps &, cM3dGUnk &, nw4r::math::VEC3 *);
|
||||||
bool fn_80337690(cM3dGUnk *, cM3dGSph *, nw4r::math::VEC3 *);
|
bool cM3d_Cross_UnkSph(const cM3dGUnk &, cM3dGSph &, nw4r::math::VEC3 *);
|
||||||
bool fn_80337780(cM3dGUnk *, cM3dGSph *, f32 *);
|
bool cM3d_Cross_UnkSph(const cM3dGUnk &, cM3dGSph &, f32 *);
|
||||||
|
|
||||||
|
bool cM3d_Normalize(nw4r::math::VEC3 *);
|
||||||
|
void cM3d_Normalize_Ex(nw4r::math::VEC3 *);
|
||||||
|
|
||||||
inline bool cM3d_IsZero(f32 f) {
|
inline bool cM3d_IsZero(f32 f) {
|
||||||
return fabsf(f) < G_CM3D_F_ABS_MIN;
|
return fabsf(f) < G_CM3D_F_ABS_MIN;
|
||||||
@ -89,9 +95,9 @@ inline bool cM3d_IsZero_inverted(f32 param_0) {
|
|||||||
|
|
||||||
inline void
|
inline void
|
||||||
cM3d_InDivPos1(const nw4r::math::VEC3 *pVecA, const nw4r::math::VEC3 *pVecB, f32 pF, nw4r::math::VEC3 *pOut) {
|
cM3d_InDivPos1(const nw4r::math::VEC3 *pVecA, const nw4r::math::VEC3 *pVecB, f32 pF, nw4r::math::VEC3 *pOut) {
|
||||||
nw4r::math::VEC3 tmp;
|
nw4r::math::VEC3 tmp2;
|
||||||
VEC3Scale(&tmp, pVecB, pF);
|
VEC3Scale(&tmp2, pVecB, pF);
|
||||||
VEC3Add(pOut, &tmp, pVecA);
|
VEC3Add(pOut, &tmp2, pVecA);
|
||||||
}
|
}
|
||||||
inline void
|
inline void
|
||||||
cM3d_InDivPos2(const nw4r::math::VEC3 *pVecA, const nw4r::math::VEC3 *pVecB, f32 pF, nw4r::math::VEC3 *pOut) {
|
cM3d_InDivPos2(const nw4r::math::VEC3 *pVecA, const nw4r::math::VEC3 *pVecB, f32 pF, nw4r::math::VEC3 *pOut) {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#include "d/col/c/c_m3d.h"
|
#include "d/col/c/c_m3d.h"
|
||||||
#include "d/col/c/c_m3d_g_lin.h"
|
#include "d/col/c/c_m3d_g_lin.h"
|
||||||
#include "d/col/c/c_m3d_g_sph.h"
|
#include "d/col/c/c_m3d_g_sph.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
// Axis aligned bounding box
|
// Axis aligned bounding box
|
||||||
class cM3dGAab {
|
class cM3dGAab {
|
||||||
@ -23,7 +23,6 @@ public:
|
|||||||
bool CrossY(const mVec3_c &) const;
|
bool CrossY(const mVec3_c &) const;
|
||||||
bool UnderPlaneYUnder(f32) const;
|
bool UnderPlaneYUnder(f32) const;
|
||||||
bool TopPlaneYUnder(f32) const;
|
bool TopPlaneYUnder(f32) const;
|
||||||
void SetMinMax(const cM3dGAab &);
|
|
||||||
void SetMin(const mVec3_c &min);
|
void SetMin(const mVec3_c &min);
|
||||||
void SetMax(const mVec3_c &max);
|
void SetMax(const mVec3_c &max);
|
||||||
void CalcCenter(mVec3_c &) const;
|
void CalcCenter(mVec3_c &) const;
|
||||||
@ -32,6 +31,11 @@ public:
|
|||||||
void Set(const cM3dGSph &);
|
void Set(const cM3dGSph &);
|
||||||
bool Cross(const mVec3_c &) const;
|
bool Cross(const mVec3_c &) const;
|
||||||
|
|
||||||
|
void SetMinMax(const cM3dGAab &aab) {
|
||||||
|
SetMin(aab.mMin);
|
||||||
|
SetMax(aab.mMax);
|
||||||
|
}
|
||||||
|
|
||||||
void SetMinMax(const mVec3_c &minMax) {
|
void SetMinMax(const mVec3_c &minMax) {
|
||||||
SetMin(minMax);
|
SetMin(minMax);
|
||||||
SetMax(minMax);
|
SetMax(minMax);
|
||||||
@ -46,6 +50,19 @@ public:
|
|||||||
mMax.x = -1000000000.0f;
|
mMax.x = -1000000000.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const mVec3_c &GetMax() const {
|
||||||
|
return mMax;
|
||||||
|
}
|
||||||
|
mVec3_c &GetMax() {
|
||||||
|
return mMax;
|
||||||
|
}
|
||||||
|
const mVec3_c &GetMin() const {
|
||||||
|
return mMin;
|
||||||
|
}
|
||||||
|
mVec3_c &GetMin() {
|
||||||
|
return mMin;
|
||||||
|
}
|
||||||
|
|
||||||
const mVec3_c *GetMaxP(void) const {
|
const mVec3_c *GetMaxP(void) const {
|
||||||
return &mMax;
|
return &mMax;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public:
|
|||||||
void Set(const mVec3_c &, const mVec3_c &, f32);
|
void Set(const mVec3_c &, const mVec3_c &, f32);
|
||||||
void SetR(f32 r);
|
void SetR(f32 r);
|
||||||
void Set_0x1C(f32);
|
void Set_0x1C(f32);
|
||||||
bool fn_80337f30(cM3dGUnk *, mVec3_c *);
|
bool Cross(cM3dGUnk &, mVec3_c *);
|
||||||
bool fn_80337f40(const mVec3_c &) const;
|
bool fn_80337f40(const mVec3_c &) const;
|
||||||
|
|
||||||
f32 GetR() const {
|
f32 GetR() const {
|
||||||
|
@ -17,14 +17,23 @@ public:
|
|||||||
void SetH(f32);
|
void SetH(f32);
|
||||||
void SetR(f32);
|
void SetR(f32);
|
||||||
|
|
||||||
bool fn_803380e0(cM3dGUnk *, mVec3_c *);
|
bool Cross(cM3dGUnk &, mVec3_c *);
|
||||||
bool fn_803380f0(cM3dGUnk *, f32 *);
|
bool Cross(cM3dGUnk &, f32 *);
|
||||||
bool Cross(const mVec3_c &) const;
|
bool Cross(const mVec3_c &) const;
|
||||||
void Clamp(const mVec3_c &, mVec3_c &) const;
|
void Clamp(const mVec3_c &, mVec3_c &) const;
|
||||||
|
|
||||||
const mVec3_c &GetC() const {
|
const mVec3_c &GetC() const {
|
||||||
return mCenter;
|
return mCenter;
|
||||||
}
|
}
|
||||||
|
mVec3_c &GetC() {
|
||||||
|
return mCenter;
|
||||||
|
}
|
||||||
|
f32 GetH() const {
|
||||||
|
return mHeight;
|
||||||
|
}
|
||||||
|
f32 GetR() const {
|
||||||
|
return mRadius;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -3,14 +3,16 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
|
#include "nw4r/types_nw4r.h"
|
||||||
|
|
||||||
class cM3dGLin {
|
class cM3dGLin {
|
||||||
public:
|
public:
|
||||||
typedef nw4r::math::VEC3 VEC3;
|
typedef nw4r::math::VEC3 VEC3;
|
||||||
typedef EGG::Vector3f Vector3f;
|
typedef EGG::Vector3f Vector3f;
|
||||||
|
|
||||||
/* 0x00 */ mVec3_c mStart;
|
// Needs to be mutable for cCcD_CpsAttr::GetPos and cCcD_CpsAttr::GetShapeAccess
|
||||||
/* 0x0C */ mVec3_c mEnd;
|
/* 0x00 */ mutable mVec3_c mStart;
|
||||||
|
/* 0x0C */ mutable mVec3_c mEnd;
|
||||||
|
|
||||||
cM3dGLin() {}
|
cM3dGLin() {}
|
||||||
|
|
||||||
@ -32,34 +34,34 @@ public:
|
|||||||
mEnd = *pEnd;
|
mEnd = *pEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
nw4r::math::VEC3 &GetStart() {
|
mVec3_c &GetStart() {
|
||||||
return mStart;
|
return mStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
const nw4r::math::VEC3 &GetStart() const {
|
const mVec3_c &GetStart() const {
|
||||||
return mStart;
|
return mStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
nw4r::math::VEC3 *GetStartP(void) {
|
mVec3_c *GetStartP(void) {
|
||||||
return &mStart;
|
return &mStart;
|
||||||
}
|
}
|
||||||
const nw4r::math::VEC3 *GetStartP(void) const {
|
const mVec3_c *GetStartP(void) const {
|
||||||
return &mStart;
|
return &mStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
nw4r::math::VEC3 &GetEnd() {
|
mVec3_c &GetEnd() {
|
||||||
return mEnd;
|
return mEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
const nw4r::math::VEC3 &GetEnd() const {
|
const mVec3_c &GetEnd() const {
|
||||||
return mEnd;
|
return mEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
nw4r::math::VEC3 *GetEndP(void) {
|
mVec3_c *GetEndP(void) {
|
||||||
return &mEnd;
|
return &mEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
const nw4r::math::VEC3 *GetEndP(void) const {
|
const mVec3_c *GetEndP(void) const {
|
||||||
return &mEnd;
|
return &mEnd;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "c/c_math.h"
|
#include "c/c_math.h"
|
||||||
#include "d/col/c/c_m3d.h"
|
#include "d/col/c/c_m3d.h"
|
||||||
|
#include "m/m_angle.h"
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
// Plane with a normal
|
// Plane with a normal
|
||||||
@ -36,6 +37,12 @@ public:
|
|||||||
const mVec3_c *GetNP() const {
|
const mVec3_c *GetNP() const {
|
||||||
return &mNormal;
|
return &mNormal;
|
||||||
}
|
}
|
||||||
|
mVec3_c &GetN() {
|
||||||
|
return mNormal;
|
||||||
|
}
|
||||||
|
const mVec3_c &GetN() const {
|
||||||
|
return mNormal;
|
||||||
|
}
|
||||||
f32 GetD() const {
|
f32 GetD() const {
|
||||||
return mD;
|
return mD;
|
||||||
}
|
}
|
||||||
@ -46,13 +53,13 @@ public:
|
|||||||
return ((-mNormal.x * param_1->x - mNormal.z * param_1->z) - mD) / mNormal.y;
|
return ((-mNormal.x * param_1->x - mNormal.z * param_1->z) - mD) / mNormal.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 GetAngleY() const {
|
|
||||||
return cM::atan2s(mNormal.x, mNormal.z);
|
|
||||||
}
|
|
||||||
|
|
||||||
f32 GetXZDist() const {
|
f32 GetXZDist() const {
|
||||||
return EGG::Math<f32>::sqrt(mNormal.x * mNormal.x + mNormal.z * mNormal.z);
|
return EGG::Math<f32>::sqrt(mNormal.x * mNormal.x + mNormal.z * mNormal.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mAng GetAngleY() const {
|
||||||
|
return cM::atan2s(mNormal.x, mNormal.z);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,14 +20,17 @@ public:
|
|||||||
bool Cross(const cM3dGTri *, f32 *, mVec3_c *);
|
bool Cross(const cM3dGTri *, f32 *, mVec3_c *);
|
||||||
void Clamp(const mVec3_c &, mVec3_c &) const;
|
void Clamp(const mVec3_c &, mVec3_c &) const;
|
||||||
|
|
||||||
bool fn_80338750(cM3dGUnk *, mVec3_c *);
|
bool Cross(cM3dGUnk &, mVec3_c *);
|
||||||
bool fn_80338760(cM3dGUnk *, f32 *);
|
bool Cross(cM3dGUnk &, f32 *);
|
||||||
|
|
||||||
void SetRatio(f32);
|
void SetRatio(f32);
|
||||||
|
|
||||||
const mVec3_c &GetC() const {
|
const mVec3_c &GetC() const {
|
||||||
return mCenter;
|
return mCenter;
|
||||||
}
|
}
|
||||||
|
mVec3_c &GetC() {
|
||||||
|
return mCenter;
|
||||||
|
}
|
||||||
|
|
||||||
const f32 &GetR() const {
|
const f32 &GetR() const {
|
||||||
return mRadius;
|
return mRadius;
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "d/col/c/c_m3d_g_pla.h"
|
#include "d/col/c/c_m3d_g_pla.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
class cM3dGTri : public cM3dGPla {
|
class cM3dGTri : public cM3dGPla {
|
||||||
typedef nw4r::math::VEC3 VecType;
|
typedef nw4r::math::VEC3 VecType;
|
||||||
@ -12,13 +13,23 @@ public:
|
|||||||
/* 0x1C */ VecType mB;
|
/* 0x1C */ VecType mB;
|
||||||
/* 0x28 */ VecType mC;
|
/* 0x28 */ VecType mC;
|
||||||
|
|
||||||
|
const mVec3_c &GetPntA() const {
|
||||||
|
return *(mVec3_c *)&mA;
|
||||||
|
}
|
||||||
|
const mVec3_c &GetPntB() const {
|
||||||
|
return *(mVec3_c *)&mB;
|
||||||
|
}
|
||||||
|
const mVec3_c &GetPntC() const {
|
||||||
|
return *(mVec3_c *)&mC;
|
||||||
|
}
|
||||||
|
|
||||||
cM3dGTri() {}
|
cM3dGTri() {}
|
||||||
void SetPos(const VecType *, const VecType *, const VecType *);
|
void SetPos(const VecType *, const VecType *, const VecType *);
|
||||||
|
|
||||||
void SetBg(const VecType *, const VecType *, const VecType *, const cM3dGPla *pla);
|
void SetBg(const VecType *, const VecType *, const VecType *, const cM3dGPla *pla);
|
||||||
|
|
||||||
bool cross(const cM3dGLin *lin, VecType *xyz, bool param_2, bool param_3) const {
|
bool cross(const cM3dGLin &lin, VecType *xyz, bool param_2, bool param_3) const {
|
||||||
return cM3d_Cross_LinTri(lin, this, xyz, param_2, param_3);
|
return cM3d_Cross_LinTri(lin, *this, xyz, param_2, param_3);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,10 +2,11 @@
|
|||||||
#define C_M3D_G_UNK_H
|
#define C_M3D_G_UNK_H
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "d/col/c/c_m3d.h"
|
||||||
|
#include "d/col/c/c_m3d_g_lin.h"
|
||||||
#include "m/m_mtx.h"
|
#include "m/m_mtx.h"
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
|
|
||||||
struct cM3dGCps;
|
struct cM3dGCps;
|
||||||
struct cM3dGCyl;
|
struct cM3dGCyl;
|
||||||
struct cM3dGSph;
|
struct cM3dGSph;
|
||||||
@ -16,8 +17,7 @@ public:
|
|||||||
/* 0x30 */ mMtx_c mInvMtx;
|
/* 0x30 */ mMtx_c mInvMtx;
|
||||||
/* 0x60 */ mVec3_c mMin;
|
/* 0x60 */ mVec3_c mMin;
|
||||||
/* 0x6C */ mVec3_c mMax;
|
/* 0x6C */ mVec3_c mMax;
|
||||||
/* 0x78 */ mVec3_c mField_0x78;
|
/* 0x78 */ cM3dGLin mLin;
|
||||||
/* 0x84 */ mVec3_c mField_0x84;
|
|
||||||
/* 0x90 */ mVec3_c mField_0x90;
|
/* 0x90 */ mVec3_c mField_0x90;
|
||||||
/* 0x9C */ mVec3_c mField_0x9C;
|
/* 0x9C */ mVec3_c mField_0x9C;
|
||||||
/* 0xA8 */ mVec3_c mField_0xA8;
|
/* 0xA8 */ mVec3_c mField_0xA8;
|
||||||
@ -34,13 +34,13 @@ public:
|
|||||||
void Update();
|
void Update();
|
||||||
void GetStartEnd(mVec3_c &, mVec3_c &);
|
void GetStartEnd(mVec3_c &, mVec3_c &);
|
||||||
|
|
||||||
void fn_80338c30(cM3dGCps *, mVec3_c *);
|
bool Cross(cM3dGCps &, mVec3_c *);
|
||||||
bool fn_80338c40(cM3dGUnk *, mVec3_c *);
|
bool Cross(cM3dGTri &, mVec3_c *);
|
||||||
bool fn_80338ca0(/* TODO */);
|
bool Cross(cM3dGUnk &, mVec3_c *);
|
||||||
bool fn_80338cb0(cM3dGCyl *, mVec3_c *);
|
bool Cross(cM3dGCyl &, mVec3_c *);
|
||||||
bool fn_80338cc0(cM3dGCyl *, f32 *);
|
bool Cross(cM3dGCyl &, f32 *);
|
||||||
bool fn_80338cd0(cM3dGSph *, mVec3_c *);
|
bool Cross(cM3dGSph &, mVec3_c *);
|
||||||
bool fn_80338ce0(cM3dGSph *, f32 *);
|
bool Cross(cM3dGSph &, f32 *);
|
||||||
|
|
||||||
void Set(const mMtx_c &);
|
void Set(const mMtx_c &);
|
||||||
void Set(const mVec3_c &, const mAng &);
|
void Set(const mVec3_c &, const mAng &);
|
||||||
|
@ -1,517 +1,89 @@
|
|||||||
#ifndef D_CC_D_H
|
#ifndef D_CC_D_H
|
||||||
#define D_CC_D_H
|
#define D_CC_D_H
|
||||||
|
|
||||||
#include "d/a/d_a_base.h"
|
#include "d/col/c/c_cc_d.h"
|
||||||
#include "d/col/c/c_m3d_g_aab.h"
|
#include "d/col/c/c_m3d.h"
|
||||||
#include "d/col/c/c_m3d_g_cps.h"
|
|
||||||
#include "d/col/c/c_m3d_g_cyl.h"
|
|
||||||
#include "d/col/c/c_m3d_g_sph.h"
|
|
||||||
#include "d/col/c/c_m3d_g_unk.h"
|
|
||||||
#include "f/f_base_id.h"
|
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
// Largely modeled off
|
struct dCcD_SrcCps {
|
||||||
// https://github.com/zeldaret/tp/blob/main/include/SSystem/SComponent/c_cc_d.h
|
/* 0x00 */ cCcD_SrcGObj mObjInf;
|
||||||
// https://github.com/zeldaret/tp/blob/main/include/d/cc/d_cc_d.h
|
/* 0x44 */ cCcD_SrcCpsAttr mCpsInf;
|
||||||
// - 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 {
|
// Capsule
|
||||||
private:
|
class dCcD_Cps : public cCcD_Obj, public cCcD_CpsAttr {
|
||||||
/* 0x00 */ u32 mXDivInfo;
|
|
||||||
/* 0x04 */ u32 mYDivInfo;
|
|
||||||
/* 0x08 */ u32 mZDivInfo;
|
|
||||||
/* 0x0C vtable */
|
|
||||||
public:
|
public:
|
||||||
/* 80328120 */ dCcD_DivideInfo();
|
dCcD_Cps();
|
||||||
/* 80328130 */ virtual ~dCcD_DivideInfo();
|
virtual ~dCcD_Cps();
|
||||||
// void Set(u32, u32, u32);
|
|
||||||
// bool Chk(dCcD_DivideInfo const &) const;
|
|
||||||
}; // Size = 0x10
|
|
||||||
|
|
||||||
class dCcD_DivideArea : public cM3dGAab {
|
virtual cCcD_ShapeAttr *GetShapeAttr() override;
|
||||||
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;
|
|
||||||
|
|
||||||
|
void Set(const dCcD_SrcCps &src);
|
||||||
|
void unknownCalc();
|
||||||
|
};
|
||||||
|
|
||||||
|
struct dCcD_SrcTri {
|
||||||
|
/* 0x00 */ cCcD_SrcGObj mObjInf;
|
||||||
|
};
|
||||||
|
|
||||||
|
class dCcD_Tri : public cCcD_Obj, public cCcD_TriAttr {
|
||||||
public:
|
public:
|
||||||
/* vt at 0x3C */
|
dCcD_Tri();
|
||||||
dCcD_DivideArea();
|
virtual ~dCcD_Tri();
|
||||||
virtual ~dCcD_DivideArea();
|
|
||||||
/* 803281c0 */ void SetArea(cM3dGAab const &);
|
|
||||||
/* 803282d0 */ void CalcDivideInfo(dCcD_DivideInfo *, cM3dGAab const &, u32);
|
|
||||||
/* 80328470 */ void CalcDivideInfoOverArea(dCcD_DivideInfo *, cM3dGAab const &);
|
|
||||||
}; // Size = 0x40
|
|
||||||
|
|
||||||
class dCcD_GAtTgCoCommonBase {
|
virtual cCcD_ShapeAttr *GetShapeAttr() override;
|
||||||
protected:
|
|
||||||
/* 0x00 */ u32 field_0x00;
|
|
||||||
/* 0x04 */ s8 mEffCounter;
|
|
||||||
/* 0x08 */ dAcRef_c<dAcBase_c> mActor;
|
|
||||||
/* 0x14 */ u32 field_0x14;
|
|
||||||
|
|
||||||
|
void Set(const dCcD_SrcTri &src);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct dCcD_SrcCyl {
|
||||||
|
/* 0x00 */ cCcD_SrcGObj mObjInf;
|
||||||
|
/* 0x40 */ cCcD_SrcCylAttr mCylInf;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Cylinder
|
||||||
|
class dCcD_Cyl : public cCcD_Obj, public cCcD_CylAttr {
|
||||||
public:
|
public:
|
||||||
dCcD_GAtTgCoCommonBase();
|
dCcD_Cyl();
|
||||||
virtual ~dCcD_GAtTgCoCommonBase();
|
virtual ~dCcD_Cyl();
|
||||||
|
|
||||||
void resetEffCounter() {
|
virtual cCcD_ShapeAttr *GetShapeAttr() override;
|
||||||
mEffCounter = 0;
|
void Set(const dCcD_SrcCyl &src);
|
||||||
}
|
void setCenter(const mVec3_c &);
|
||||||
void resetField0x14() {
|
void moveCenter(const mVec3_c &);
|
||||||
field_0x14 = 0;
|
|
||||||
}
|
|
||||||
u32 getField0x14() {
|
|
||||||
return field_0x14;
|
|
||||||
}
|
|
||||||
void decreaseCount();
|
|
||||||
void unlink();
|
|
||||||
dAcBase_c *getActor();
|
|
||||||
void setActor(dAcBase_c *);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dCcD_SrcGAtTgCoCommonBase {
|
struct dCcD_SrcSph {
|
||||||
/* 0x0 */ u32 mGFlag;
|
/* 0x00 */ cCcD_SrcGObj mObjInf;
|
||||||
}; // Size: 0x4
|
/* 0x40 */ cCcD_SrcSphAttr mSphInf;
|
||||||
|
|
||||||
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 {
|
// Sphere
|
||||||
/* 0x00 */ dCcD_SrcGAtTgCoCommonBase base;
|
class dCcD_Sph : public cCcD_Obj, public cCcD_SphAttr {
|
||||||
/* 0x04 */ u32 field_0x04;
|
|
||||||
/* 0x08 */ u16 field_0x08;
|
|
||||||
/* 0x10 */ u16 field_0x0A;
|
|
||||||
/* 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:
|
public:
|
||||||
dCcD_GObjAt();
|
dCcD_Sph();
|
||||||
virtual ~dCcD_GObjAt();
|
virtual ~dCcD_Sph();
|
||||||
|
|
||||||
void clearFlag() {
|
virtual cCcD_ShapeAttr *GetShapeAttr() override;
|
||||||
mSrc.field_0x04 = mSrc.field_0x04 & 0xFFFFFFFE;
|
void Set(const dCcD_SrcSph &src);
|
||||||
}
|
void setCenter(const mVec3_c &);
|
||||||
mVec3_c *GetHitPosP() {
|
void moveCenter(const mVec3_c &);
|
||||||
return &mHitPos;
|
void setCenterAndAtVec(const mVec3_c &, const mVec3_c &);
|
||||||
}
|
|
||||||
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 {
|
struct dCcD_SrcUnk {
|
||||||
private:
|
/* 0x00 */ cCcD_SrcGObj mObjInf;
|
||||||
/* 0x1C */ dCcD_SrcGObjTg mSrc;
|
/* 0x40 */ cCcD_SrcUnkAttr mUnkInf;
|
||||||
/* 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 */ u32 field_0x58;
|
|
||||||
/* 0x5C */ u8 field_0x5C[0x6C - 0x5C];
|
|
||||||
/* 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 setSrcFlag(u32 flag) {
|
|
||||||
mSrc.base.mGFlag = flag;
|
|
||||||
}
|
|
||||||
void setSrc0x0A(u32 flag) {
|
|
||||||
mSrc.field_0x0A = flag;
|
|
||||||
}
|
|
||||||
u32 get0x58() {
|
|
||||||
return field_0x58;
|
|
||||||
}
|
|
||||||
void init(const dCcD_SrcGObjTg *);
|
|
||||||
void adjustHitPos(f32 dx, f32 dz);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase {
|
class dCcD_Unk : public cCcD_Obj, public cCcD_UnkAttr {
|
||||||
private:
|
|
||||||
/* 0x1C */ dCcD_SrcGObjCo mSrc;
|
|
||||||
/* 0x20 */ u32 field_0x20;
|
|
||||||
/* 0x24 */ u16 field_0x24;
|
|
||||||
/* 0x28 */ u32 field_0x28;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
dCcD_GObjCo();
|
dCcD_Unk();
|
||||||
virtual ~dCcD_GObjCo();
|
virtual ~dCcD_Unk();
|
||||||
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) {
|
virtual cCcD_ShapeAttr *GetShapeAttr() override;
|
||||||
mSrc.mBase.mGFlag = flag;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class dCcD_ShapeAttr {
|
void Set(const dCcD_SrcUnk &src);
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setField0x38(s32 val) {
|
|
||||||
field_0x38 = val;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// 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 void setTgFlag(u32 flag) {
|
|
||||||
mGObjTg.setSrcFlag(flag);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline mVec3_c *getAtVec() {
|
|
||||||
return mGObjAt.GetSomeVec();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool someInteractCheck() {
|
|
||||||
return ((mGObjTg.getField0x14() & 1) != 0 && mGObjTg.getActor() != nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setTgField0x0A(u32 val) {
|
|
||||||
mGObjTg.setSrc0x0A(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ResetAtHit();
|
|
||||||
void ResetTgHit();
|
|
||||||
void ResetCoHit();
|
|
||||||
|
|
||||||
mVec3_c *GetAtHitPosP();
|
|
||||||
mVec3_c *GetAtHitPosP2();
|
|
||||||
|
|
||||||
dAcBase_c *GetAtActor();
|
|
||||||
bool CheckCollidedMask(u32 mask);
|
|
||||||
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
|
|
||||||
|
|
||||||
struct dCcD_SrcAabbAttr {
|
|
||||||
/* 0x00 */ f32 minX, minY, minZ, maxX, maxY, maxZ;
|
|
||||||
}; // Size = 0x18
|
|
||||||
|
|
||||||
struct dCcD_SrcUnk1Attr {};
|
|
||||||
|
|
||||||
class cM3dGUnk1 {
|
|
||||||
public:
|
|
||||||
/* 0x00 */ cM3dGCps mCps;
|
|
||||||
/* 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 cM3dGUnk {
|
|
||||||
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
|
#endif
|
||||||
|
104
include/d/col/cc/d_cc_mass_s.h
Normal file
104
include/d/col/cc/d_cc_mass_s.h
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
|
#include "d/col/c/c_cc_d.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
|
typedef void (*dCcMassS_ObjCallback)(dAcObjBase_c *, mVec3_c *, u32);
|
||||||
|
|
||||||
|
class dCcMassS_Obj {
|
||||||
|
private:
|
||||||
|
/* 0x00 */ cCcD_Obj *mpObj;
|
||||||
|
/* 0x04 */ u8 mPriority;
|
||||||
|
/* 0x08 */ dCcMassS_ObjCallback mpCallback;
|
||||||
|
/* 0x0C */ cCcD_DivideInfo mDivideInfo;
|
||||||
|
/* 0x1C vtable*/
|
||||||
|
|
||||||
|
public:
|
||||||
|
dCcMassS_Obj();
|
||||||
|
virtual ~dCcMassS_Obj();
|
||||||
|
void Set(cCcD_Obj *p_obj, u8 priority, dCcMassS_ObjCallback callback);
|
||||||
|
void Clear();
|
||||||
|
|
||||||
|
cCcD_Obj *GetObj() {
|
||||||
|
return mpObj;
|
||||||
|
}
|
||||||
|
u8 GetPriority() const {
|
||||||
|
return mPriority;
|
||||||
|
}
|
||||||
|
dCcMassS_ObjCallback GetCallback() const {
|
||||||
|
return mpCallback;
|
||||||
|
}
|
||||||
|
cCcD_DivideInfo &GetDivideInfo() {
|
||||||
|
return mDivideInfo;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class dCcMassS_HitInf {
|
||||||
|
private:
|
||||||
|
/* 0x00 */ cCcD_Obj *mpArea;
|
||||||
|
/* 0x04 */ cCcD_Obj *mpAtObj;
|
||||||
|
/* 0x08 */ cCcD_Obj *mpCoObj;
|
||||||
|
/* 0x0C */ f32 mCoHitLen;
|
||||||
|
/* 0x10 vtable */
|
||||||
|
public:
|
||||||
|
dCcMassS_HitInf();
|
||||||
|
virtual ~dCcMassS_HitInf();
|
||||||
|
|
||||||
|
void ClearPointer();
|
||||||
|
void SetAreaHitObj(cCcD_Obj *obj) {
|
||||||
|
mpArea = obj;
|
||||||
|
}
|
||||||
|
void SetCoHitObj(cCcD_Obj *obj) {
|
||||||
|
mpCoObj = obj;
|
||||||
|
}
|
||||||
|
void SetAtHitObj(cCcD_Obj *obj) {
|
||||||
|
mpAtObj = obj;
|
||||||
|
}
|
||||||
|
void SetCoHitLen(f32 len) {
|
||||||
|
mCoHitLen = len;
|
||||||
|
}
|
||||||
|
cCcD_Obj *GetAtHitObj() const {
|
||||||
|
return mpAtObj;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class dCcMassS_Mng {
|
||||||
|
public:
|
||||||
|
/* 0x0000 */ cCcD_DivideArea mDivideArea;
|
||||||
|
/* 0x0040 */ s32 mMassObjCount;
|
||||||
|
/* 0x0044 */ dCcMassS_Obj mMassObjs[20];
|
||||||
|
/* 0x02C4 */ s32 mMassAreaCount;
|
||||||
|
/* 0x02C8 */ dCcMassS_Obj mMassAreas[5];
|
||||||
|
/* 0x0368 */ cCcD_CylAttr mCylAttr;
|
||||||
|
/* 0x03A8 */ u8 field_0x3A8;
|
||||||
|
/* 0x03A9 */ u8 field_0x3A9;
|
||||||
|
/* 0x03AA */ u8 field_0x3AA;
|
||||||
|
/* 0x03AB */ u8 mResultCam;
|
||||||
|
/* 0x03AC */ Vec mCamTopPos;
|
||||||
|
/* 0x03B8 */ f32 mCamTopDist;
|
||||||
|
/* 0x03BC */ Vec mCamBottomPos;
|
||||||
|
/* 0x03C8 */ f32 mCamBottomDist;
|
||||||
|
/* 0x03CC */ cCcD_CpsAttr mCpsAttr;
|
||||||
|
/* 0x042C */ cCcD_DivideInfo mDivideInfo;
|
||||||
|
/* 0x043C vtable */
|
||||||
|
|
||||||
|
public:
|
||||||
|
dCcMassS_Mng();
|
||||||
|
virtual ~dCcMassS_Mng();
|
||||||
|
|
||||||
|
void Ct();
|
||||||
|
|
||||||
|
void SetAttr(f32 radius, f32 height, u8 param_2, u8 param_3);
|
||||||
|
void Prepare();
|
||||||
|
u32 Chk(mVec3_c *p_xyz, dAcObjBase_c **p_actor, dCcMassS_HitInf *p_hitInf);
|
||||||
|
void Clear();
|
||||||
|
|
||||||
|
// Not original names, but made distinct for clarity (original was just one `Set)
|
||||||
|
void SetObj(cCcD_Obj *p_obj, u8 priority);
|
||||||
|
void SetArea(cCcD_Obj *p_obj, u8 priority, dCcMassS_ObjCallback callback);
|
||||||
|
|
||||||
|
// void SetCam(cM3dGCps const &cps);
|
||||||
|
// u8 GetResultCam() const;
|
||||||
|
// void GetCamTopPos(Vec *p_out);
|
||||||
|
};
|
@ -1,13 +0,0 @@
|
|||||||
#ifndef TOSORT_D_CC_MGR_H
|
|
||||||
#define TOSORT_D_CC_MGR_H
|
|
||||||
|
|
||||||
#include "d/col/cc/d_cc_d.h"
|
|
||||||
|
|
||||||
class ColliderManager {
|
|
||||||
public:
|
|
||||||
static ColliderManager *getColliderManager();
|
|
||||||
|
|
||||||
void addCollider(dCcD_GObjInf *collider);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
78
include/d/col/cc/d_cc_s.h
Normal file
78
include/d/col/cc/d_cc_s.h
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "d/col/c/c_cc_d.h"
|
||||||
|
#include "d/col/cc/d_cc_mass_s.h"
|
||||||
|
#include "m/m_angle.h"
|
||||||
|
#include "m/m_mtx.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
|
struct mMtxPair {
|
||||||
|
mMtx_c mMtx;
|
||||||
|
mMtx_c mInv;
|
||||||
|
};
|
||||||
|
|
||||||
|
class dCcS {
|
||||||
|
private:
|
||||||
|
/* 0x0000 */ cCcD_Obj *mpObjAt[0x200];
|
||||||
|
/* 0x0800 */ cCcD_Obj *mpObjTg[0x300];
|
||||||
|
/* 0x1400 */ cCcD_Obj *mpObjCo[0x200];
|
||||||
|
/* 0x1c00 */ cCcD_Obj *mpObj[0x340];
|
||||||
|
/* 0x2900 */ UNKTYPE *mpUnk[0x100];
|
||||||
|
/* 0x2D00 */ u16 mObjAtCount;
|
||||||
|
/* 0x2d02 */ u16 mObjTgCount;
|
||||||
|
/* 0x2D04 */ u16 mObjCoCount;
|
||||||
|
/* 0x2D06 */ u16 mObjCount;
|
||||||
|
/* 0x2D08 */ u32 mUnkCount;
|
||||||
|
/* 0x2D0C */ cCcD_DivideArea mDivideArea;
|
||||||
|
/* 0x2D4C */ bool mbAreaSet;
|
||||||
|
/* 0x2D50 */ mMtxPair mAreas[16]; // could be a structure?
|
||||||
|
/* 0x3350 */ int mAreaCount;
|
||||||
|
/* 0x3354*/ dCcMassS_Mng mMassMng;
|
||||||
|
|
||||||
|
public:
|
||||||
|
dCcS();
|
||||||
|
virtual ~dCcS();
|
||||||
|
|
||||||
|
// This is a remnant of cCcS, which dCcS::Ct calls. Idk the correct layout
|
||||||
|
void Ct_cCcS();
|
||||||
|
|
||||||
|
void Ct();
|
||||||
|
void Dt();
|
||||||
|
|
||||||
|
static bool ChkRemoveActor(dAcObjBase_c *pActor);
|
||||||
|
static bool ChkNoHitAtTg(cCcD_Obj *, cCcD_Obj *);
|
||||||
|
static bool ChkAtTgCommonHitInf(cCcD_Obj *, cCcD_Obj *);
|
||||||
|
void ChkAtTg();
|
||||||
|
|
||||||
|
static bool ChkNoHitCo(cCcD_Obj *, cCcD_Obj *);
|
||||||
|
static void SetCoCommonHitInf(cCcD_Obj *, mVec3_c *, cCcD_Obj *, mVec3_c *, f32);
|
||||||
|
void ChkCo();
|
||||||
|
|
||||||
|
static bool ChkSheildFrontRange(cCcD_Obj *, cCcD_Obj *);
|
||||||
|
static bool ChkShield(cCcD_Obj *, cCcD_Obj *, cCcD_ShieldChkCallback *);
|
||||||
|
static bool ChkAtTgHitAfterCross(bool, bool, cCcD_Obj *, cCcD_Obj *);
|
||||||
|
static void SetCoObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *);
|
||||||
|
static void SetPosCorrect(cCcD_Obj *, mVec3_c *, cCcD_Obj *, mVec3_c *, f32);
|
||||||
|
static void CalcParticleAngle(cCcD_Obj *, cCcD_Obj *, mAng3_c *, bool);
|
||||||
|
static void fn_80356fd0(mVec3_c *, cCcD_Obj *, cCcD_Obj *);
|
||||||
|
static u32 ProcAtTgHitmark(cCcD_Obj *, cCcD_Obj *, mVec3_c *, u32, mVec3_c *);
|
||||||
|
static void SetAtTgObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *, mVec3_c *, bool);
|
||||||
|
|
||||||
|
bool ChkCamera(mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32);
|
||||||
|
bool
|
||||||
|
ChkCameraPoint(const mVec3_c &, const mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32);
|
||||||
|
|
||||||
|
bool ChkCo(const mVec3_c &, dAcObjBase_c *);
|
||||||
|
bool fn_80357c90(const mVec3_c &, const mVec3_c &, u32, UNKTYPE **);
|
||||||
|
void Set(cCcD_Obj *);
|
||||||
|
void MoveAfterCheck();
|
||||||
|
void RemoveDeadObj();
|
||||||
|
void CalcArea();
|
||||||
|
void Move();
|
||||||
|
void MassClear();
|
||||||
|
void SetArea(mMtx_c *);
|
||||||
|
void ClearArea();
|
||||||
|
void AdjustHitPos();
|
||||||
|
|
||||||
|
static dCcS *GetInstance();
|
||||||
|
static dCcS *sInstance;
|
||||||
|
};
|
@ -1,89 +0,0 @@
|
|||||||
#ifndef D_CC_SHAPE_COLLIDERS_H
|
|
||||||
#define D_CC_SHAPE_COLLIDERS_H
|
|
||||||
|
|
||||||
#include "d/col/cc/d_cc_d.h"
|
|
||||||
#include "m/m_vec.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
|
|
9
include/d/d_shadow.h
Normal file
9
include/d/d_shadow.h
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#include "m/m3d/m_shadow.h"
|
||||||
|
|
||||||
|
// This is unofficial, idk if this is close, but this is a common shadow extension.
|
||||||
|
//
|
||||||
|
class dShadowCircle_c : public m3d::mShadowCircle_c {
|
||||||
|
public:
|
||||||
|
dShadowCircle_c() {}
|
||||||
|
virtual ~dShadowCircle_c() {}
|
||||||
|
};
|
@ -2,7 +2,7 @@
|
|||||||
#define D_T_REACTION_H
|
#define D_T_REACTION_H
|
||||||
|
|
||||||
#include "d/a/obj/d_a_obj_base.h"
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
#include "d/col/cc/d_cc_shape_colliders.h"
|
#include "d/col/cc/d_cc_d.h"
|
||||||
#include "s/s_State.hpp"
|
#include "s/s_State.hpp"
|
||||||
#include "s/s_StateMgr.hpp"
|
#include "s/s_StateMgr.hpp"
|
||||||
#include "toBeSorted/dowsing_target.h"
|
#include "toBeSorted/dowsing_target.h"
|
||||||
@ -36,7 +36,7 @@ private:
|
|||||||
return params & 0xFF;
|
return params & 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getParam0x08() {
|
u32 getParam0x08() {
|
||||||
return (params >> 8) & 0xFF;
|
return (params >> 8) & 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define EGG_MATH_H
|
#define EGG_MATH_H
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "math.h"
|
||||||
|
|
||||||
namespace EGG {
|
namespace EGG {
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
#include "egg/math/eggQuat.h"
|
#include "egg/math/eggQuat.h"
|
||||||
#include "egg/math/eggVector.h"
|
#include "egg/math/eggVector.h"
|
||||||
|
|
||||||
|
|
||||||
namespace EGG {
|
namespace EGG {
|
||||||
|
|
||||||
struct Matrix34f {
|
struct Matrix34f {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#ifndef M_ANGLE_H
|
#ifndef M_ANGLE_H
|
||||||
#define M_ANGLE_H
|
#define M_ANGLE_H
|
||||||
|
|
||||||
|
#include "c/c_math.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "nw4r/math/math_triangular.h"
|
#include "nw4r/math/math_triangular.h"
|
||||||
|
|
||||||
@ -9,6 +10,10 @@ struct mAng {
|
|||||||
mAng(s16 s) : mVal(s) {}
|
mAng(s16 s) : mVal(s) {}
|
||||||
mAng(const mAng &other) : mVal(other.mVal) {}
|
mAng(const mAng &other) : mVal(other.mVal) {}
|
||||||
|
|
||||||
|
static mAng atan2s(f32 a, f32 b) {
|
||||||
|
return mAng(cM::atan2s(a, b));
|
||||||
|
}
|
||||||
|
|
||||||
operator s16() const {
|
operator s16() const {
|
||||||
return mVal;
|
return mVal;
|
||||||
}
|
}
|
||||||
@ -25,6 +30,10 @@ struct mAng {
|
|||||||
mVal += other.mVal;
|
mVal += other.mVal;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
mAng &operator-=(const mAng &other) {
|
||||||
|
mVal -= other.mVal;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
s32 step(s16 target, s32 steps, s16 max, s16 min);
|
s32 step(s16 target, s32 steps, s16 max, s16 min);
|
||||||
|
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
#include "egg/math/eggMatrix.h"
|
#include "egg/math/eggMatrix.h"
|
||||||
#include "m/m_angle.h"
|
#include "m/m_angle.h"
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
#include "nw4r/nw4r_types.h"
|
#include "nw4r/types_nw4r.h"
|
||||||
|
|
||||||
class mMtx_c {
|
class mMtx_c : public EGG::Matrix34f {
|
||||||
typedef f32 (*MtxRef)[4];
|
typedef f32 (*MtxRef)[4];
|
||||||
typedef const f32 (*MtxRefConst)[4];
|
typedef const f32 (*MtxRefConst)[4];
|
||||||
|
|
||||||
@ -17,16 +17,6 @@ public:
|
|||||||
mMtx_c(){};
|
mMtx_c(){};
|
||||||
mMtx_c(f32 xx, f32 xy, f32 xz, f32 xw, f32 yx, f32 yy, f32 yz, f32 yw, f32 zx, f32 zy, f32 zz, f32 zw);
|
mMtx_c(f32 xx, f32 xy, f32 xz, f32 xw, f32 yx, f32 yy, f32 yz, f32 yw, f32 zx, f32 zy, f32 zz, f32 zw);
|
||||||
|
|
||||||
// not sure if this breaks anything but we need a matrix type
|
|
||||||
// with an inline copy assignment operator
|
|
||||||
void set(const mMtx_c &r) {
|
|
||||||
for (int i = 0; i < 3; i++) {
|
|
||||||
for (int j = 0; j < 4; j++) {
|
|
||||||
m[i][j] = r.m[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
operator MtxRef() {
|
operator MtxRef() {
|
||||||
return (MtxRef)(this);
|
return (MtxRef)(this);
|
||||||
}
|
}
|
||||||
@ -36,15 +26,9 @@ public:
|
|||||||
operator nw4r::math::MTX34 *() {
|
operator nw4r::math::MTX34 *() {
|
||||||
return (nw4r::math::MTX34 *)(this);
|
return (nw4r::math::MTX34 *)(this);
|
||||||
}
|
}
|
||||||
operator EGG::Matrix34f *() {
|
|
||||||
return (EGG::Matrix34f *)(this);
|
|
||||||
}
|
|
||||||
operator nw4r::math::MTX34 &() {
|
operator nw4r::math::MTX34 &() {
|
||||||
return *(nw4r::math::MTX34 *)(this);
|
return *(nw4r::math::MTX34 *)(this);
|
||||||
}
|
}
|
||||||
operator EGG::Matrix34f &() {
|
|
||||||
return *(EGG::Matrix34f *)(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void XrotS(const mAng &angle); ///< Generates a rotation matrix for the X axis with the given angle.
|
void XrotS(const mAng &angle); ///< Generates a rotation matrix for the X axis with the given angle.
|
||||||
void XrotM(const mAng &angle); ///< Rotates the matrix on the X axis by the given angle.
|
void XrotM(const mAng &angle); ///< Rotates the matrix on the X axis by the given angle.
|
||||||
@ -53,15 +37,23 @@ public:
|
|||||||
void ZrotS(const mAng &angle); ///< Generates a rotation matrix for the Z axis with the given angle.
|
void ZrotS(const mAng &angle); ///< Generates a rotation matrix for the Z axis with the given angle.
|
||||||
void ZrotM(const mAng &angle); ///< Rotates the matrix on the Z axis by the given angle.
|
void ZrotM(const mAng &angle); ///< Rotates the matrix on the Z axis by the given angle.
|
||||||
|
|
||||||
void ZXYrotS(mAng xRot, mAng yRot,
|
void ZXYrotS(
|
||||||
mAng zRot); ///< Generates the matrix on the Y, X and Z axes by the given angles.
|
const mAng &xRot, const mAng &yRot,
|
||||||
void ZXYrotM(mAng xRot, mAng yRot,
|
const mAng &zRot
|
||||||
mAng zRot); ///< Rotates the matrix on the Y, X and Z axes by the given angles.
|
); ///< Generates the matrix on the Y, X and Z axes by the given angles.
|
||||||
void XYZrotS(mAng xRot, mAng yRot,
|
void ZXYrotM(
|
||||||
mAng zRot); ///< Generates the matrix on the Z, Y and X axes by the given angles.
|
const mAng &xRot, const mAng &yRot,
|
||||||
|
const mAng &zRot
|
||||||
|
); ///< Rotates the matrix on the Y, X and Z axes by the given angles.
|
||||||
|
void XYZrotS(
|
||||||
|
const mAng &xRot, const mAng &yRot,
|
||||||
|
const mAng &zRot
|
||||||
|
); ///< Generates the matrix on the Z, Y and X axes by the given angles.
|
||||||
|
|
||||||
void XYZrotM(mAng xRot, mAng yRot,
|
void XYZrotM(
|
||||||
mAng zRot); ///< Rotates the matrix on the Z, Y and X axes by the given angles.
|
const mAng &xRot, const mAng &yRot,
|
||||||
|
const mAng &zRot
|
||||||
|
); ///< Rotates the matrix on the Z, Y and X axes by the given angles.
|
||||||
|
|
||||||
void toRot(mAng3_c &out) const; ///< Converts the matrix to a rotation vector.
|
void toRot(mAng3_c &out) const; ///< Converts the matrix to a rotation vector.
|
||||||
|
|
||||||
@ -71,22 +63,6 @@ public:
|
|||||||
void rot(int, int); // does some werrd operation to rotate the matrix
|
void rot(int, int); // does some werrd operation to rotate the matrix
|
||||||
bool quatRelated();
|
bool quatRelated();
|
||||||
|
|
||||||
void SetTranslation(const mVec3_c &t) {
|
|
||||||
m[0][3] = t.x;
|
|
||||||
m[1][3] = t.y;
|
|
||||||
m[2][3] = t.z;
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
union {
|
|
||||||
f32 m[3][4];
|
|
||||||
struct {
|
|
||||||
f32 xx, xy, xz, xw;
|
|
||||||
f32 yx, yy, yz, yw;
|
|
||||||
f32 zx, zy, zz, zw;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static mMtx_c Identity;
|
static mMtx_c Identity;
|
||||||
};
|
};
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
#ifndef M_VEC_H
|
#ifndef M_VEC_H
|
||||||
#define M_VEC_H
|
#define M_VEC_H
|
||||||
|
|
||||||
|
#include "c/c_math.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "egg/math/eggVector.h"
|
#include "egg/math/eggVector.h"
|
||||||
#include "m/m_angle.h"
|
#include "m/m_angle.h"
|
||||||
|
#include "nw4r/types_nw4r.h"
|
||||||
|
|
||||||
|
class mAng;
|
||||||
|
|
||||||
class mVec3_c : public EGG::Vector3f {
|
class mVec3_c : public EGG::Vector3f {
|
||||||
public:
|
public:
|
||||||
@ -148,6 +152,12 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mVec3_c operator-(f32 f) const {
|
||||||
|
return mVec3_c(x - f, y - f, z - f);
|
||||||
|
}
|
||||||
|
mVec3_c operator+(f32 f) const {
|
||||||
|
return mVec3_c(x + f, y + f, z + f);
|
||||||
|
}
|
||||||
mVec3_c &operator-=(f32 f) {
|
mVec3_c &operator-=(f32 f) {
|
||||||
x -= f;
|
x -= f;
|
||||||
y -= f;
|
y -= f;
|
||||||
@ -207,6 +217,17 @@ public:
|
|||||||
|
|
||||||
void rotY(const mAng &angle);
|
void rotY(const mAng &angle);
|
||||||
|
|
||||||
|
// ???
|
||||||
|
s32 getAngleY() const {
|
||||||
|
return mAng(cM::atan2s(x, z));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CopyTo(nw4r::math::VEC3 *p) {
|
||||||
|
p->x = x;
|
||||||
|
p->y = y;
|
||||||
|
p->z = z;
|
||||||
|
}
|
||||||
|
|
||||||
static mVec3_c Zero;
|
static mVec3_c Zero;
|
||||||
static mVec3_c Ex;
|
static mVec3_c Ex;
|
||||||
static mVec3_c Ey;
|
static mVec3_c Ey;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#ifndef NW4R_MATH_ARITHMETIC_H
|
#ifndef NW4R_MATH_ARITHMETIC_H
|
||||||
#define NW4R_MATH_ARITHMETIC_H
|
#define NW4R_MATH_ARITHMETIC_H
|
||||||
|
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "nw4r/types_nw4r.h" // IWYU pragma: export
|
#include "nw4r/types_nw4r.h" // IWYU pragma: export
|
||||||
#include "rvl/OS.h" // IWYU pragma: export
|
#include "rvl/OS.h" // IWYU pragma: export
|
||||||
|
@ -1,189 +0,0 @@
|
|||||||
#ifndef NW4R_TYPES_H
|
|
||||||
#define NW4R_TYPES_H
|
|
||||||
|
|
||||||
namespace nw4r {
|
|
||||||
namespace ut {
|
|
||||||
template <typename T>
|
|
||||||
struct TextWriterBase;
|
|
||||||
template <typename T>
|
|
||||||
struct TagProcessorBase;
|
|
||||||
|
|
||||||
struct Color;
|
|
||||||
struct FileStream;
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
struct RuntimeTypeInfo;
|
|
||||||
}
|
|
||||||
} // namespace ut
|
|
||||||
|
|
||||||
namespace ef {
|
|
||||||
struct DrawOrder;
|
|
||||||
struct DrawInfo;
|
|
||||||
struct DrawStrategy;
|
|
||||||
struct DrawStrategyImpl;
|
|
||||||
struct DrawStrategyBuilder;
|
|
||||||
struct Effect;
|
|
||||||
struct EffectSystem;
|
|
||||||
struct EffectProject;
|
|
||||||
struct Emitter;
|
|
||||||
struct EmitterDrawSetting;
|
|
||||||
struct EmitFormBuilder;
|
|
||||||
struct ResEmitter;
|
|
||||||
struct EmitterResource;
|
|
||||||
struct EmitterForm;
|
|
||||||
struct EmitterInheritSetting;
|
|
||||||
struct Particle;
|
|
||||||
struct ParticleManager;
|
|
||||||
struct MemoryManager;
|
|
||||||
struct MemoryManagerBase;
|
|
||||||
} // namespace ef
|
|
||||||
|
|
||||||
namespace math {
|
|
||||||
class VEC2;
|
|
||||||
class VEC3;
|
|
||||||
class MTX33;
|
|
||||||
class MTX34;
|
|
||||||
class AABB;
|
|
||||||
class FRUSTUM;
|
|
||||||
} // namespace math
|
|
||||||
|
|
||||||
namespace snd {
|
|
||||||
struct FxBase;
|
|
||||||
struct SoundPlayer;
|
|
||||||
struct SoundHandle;
|
|
||||||
struct SeqSoundHandle;
|
|
||||||
struct SoundArchive;
|
|
||||||
struct SoundArchivePlayer;
|
|
||||||
struct Sound3DActor;
|
|
||||||
struct Sound3DListener;
|
|
||||||
struct Sound3DManager;
|
|
||||||
struct SoundHandle;
|
|
||||||
struct StrmSoundHandle;
|
|
||||||
struct WaveSoundHandle;
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
struct BasicSound;
|
|
||||||
struct BasicPlayer;
|
|
||||||
struct ChannelManager;
|
|
||||||
struct SeqSound;
|
|
||||||
struct SeqPlayer;
|
|
||||||
struct MmlParser;
|
|
||||||
struct MmlSeqTrack;
|
|
||||||
struct SeqTrack;
|
|
||||||
struct SeqTrackAllocator;
|
|
||||||
template <typename T>
|
|
||||||
struct SoundInstanceManager;
|
|
||||||
struct StrmBufferPool;
|
|
||||||
struct StrmSound;
|
|
||||||
struct NoteOnCallback;
|
|
||||||
struct PlayerHeap;
|
|
||||||
struct SoundArchiveFileReader;
|
|
||||||
struct SoundThread;
|
|
||||||
struct WaveSound;
|
|
||||||
struct StrmPlayer;
|
|
||||||
struct WsdPlayer;
|
|
||||||
} // namespace detail
|
|
||||||
} // namespace snd
|
|
||||||
|
|
||||||
namespace g3d {
|
|
||||||
struct AnmObjVis;
|
|
||||||
struct AnmObjVisNode;
|
|
||||||
struct AnmObjVisOR;
|
|
||||||
struct AnmObjVisRes;
|
|
||||||
struct AnmObj;
|
|
||||||
struct AnmObjChr;
|
|
||||||
struct FuncObjCalcWorld;
|
|
||||||
struct AnmScn;
|
|
||||||
struct AnmScnRes;
|
|
||||||
struct CameraAnmResult;
|
|
||||||
struct Draw1Mat1ShpSwap;
|
|
||||||
struct DrawResMdlReplacement;
|
|
||||||
struct FogAnmResult;
|
|
||||||
struct ResFile;
|
|
||||||
struct ResMdl;
|
|
||||||
struct ResPltt;
|
|
||||||
struct ResTex;
|
|
||||||
struct ResTexSrt;
|
|
||||||
struct ResMat;
|
|
||||||
struct ResTexPlttInfo;
|
|
||||||
struct ResShp;
|
|
||||||
struct ResFog;
|
|
||||||
struct ResAnmChr;
|
|
||||||
struct ResAnmVis;
|
|
||||||
struct ResAnmClr;
|
|
||||||
struct ResAnmTexPat;
|
|
||||||
struct ResAnmTexSrt;
|
|
||||||
struct ResAnmShp;
|
|
||||||
struct ResAnmScn;
|
|
||||||
struct ResAnmFog;
|
|
||||||
struct ResAnmCamera;
|
|
||||||
struct ResVtxPos;
|
|
||||||
struct ResVtxNrm;
|
|
||||||
struct ResVtxClr;
|
|
||||||
struct ResVtxTexCoord;
|
|
||||||
struct ClrAnmResult;
|
|
||||||
struct TexPatAnmResult;
|
|
||||||
struct TexSrtAnmResult;
|
|
||||||
struct ScnMdl1Mat1Shp;
|
|
||||||
struct TexSrt;
|
|
||||||
struct TexSrtTypedef;
|
|
||||||
struct LightObj;
|
|
||||||
struct LightAnmResult;
|
|
||||||
struct LightSet;
|
|
||||||
struct LightSetting;
|
|
||||||
struct LightSetData;
|
|
||||||
struct AmbLightObj;
|
|
||||||
struct AmbLightAnmResult;
|
|
||||||
struct Fog;
|
|
||||||
struct ScnRoot;
|
|
||||||
struct ScnProc;
|
|
||||||
struct ScnLeaf;
|
|
||||||
struct ScnObj;
|
|
||||||
struct ScnRfl;
|
|
||||||
struct ScnGroup;
|
|
||||||
struct ScnMdlSimple;
|
|
||||||
struct ScnMdl;
|
|
||||||
struct IScnObjGather;
|
|
||||||
struct IScnObjCallback;
|
|
||||||
|
|
||||||
namespace G3DState {
|
|
||||||
struct IndMtxOp;
|
|
||||||
}
|
|
||||||
} // namespace g3d
|
|
||||||
|
|
||||||
namespace lyt {
|
|
||||||
struct Size;
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
struct PaneBase;
|
|
||||||
struct TexCoordAry;
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
namespace res {
|
|
||||||
struct Group;
|
|
||||||
struct Pane;
|
|
||||||
struct Bounding;
|
|
||||||
struct AnimationBlock;
|
|
||||||
struct BinaryFileHeader;
|
|
||||||
} // namespace res
|
|
||||||
|
|
||||||
struct Group;
|
|
||||||
struct GroupContainer;
|
|
||||||
struct Pane;
|
|
||||||
struct DrawInfo;
|
|
||||||
struct AnimResource;
|
|
||||||
struct AnimTransform;
|
|
||||||
struct AnimTransformBasic;
|
|
||||||
struct AnimationLink;
|
|
||||||
struct ResourceAccessor;
|
|
||||||
struct ArcResourceAccessor;
|
|
||||||
struct FontRefLink;
|
|
||||||
struct Material;
|
|
||||||
struct Layout;
|
|
||||||
struct Bounding;
|
|
||||||
struct ResBlockSet;
|
|
||||||
struct TexMap;
|
|
||||||
} // namespace lyt
|
|
||||||
} // namespace nw4r
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,5 +1,6 @@
|
|||||||
#ifndef NW4R_TYPES_H
|
#ifndef NW4R_TYPES_H
|
||||||
#define NW4R_TYPES_H
|
#define NW4R_TYPES_H
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#define NW4R_BYTEORDER_BIG 0xFEFF
|
#define NW4R_BYTEORDER_BIG 0xFEFF
|
||||||
|
@ -1,14 +1,16 @@
|
|||||||
#ifndef RVL_SDK_OS_ERROR_H
|
#ifndef RVL_SDK_OS_ERROR_H
|
||||||
#define RVL_SDK_OS_ERROR_H
|
#define RVL_SDK_OS_ERROR_H
|
||||||
|
|
||||||
#include "__va_arg.h"
|
#include "__va_arg.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Forward declarations
|
// Forward declarations
|
||||||
typedef struct OSContext;
|
typedef struct OSContext OSContext;
|
||||||
|
|
||||||
#define OSError(...) OSPanic(__FILE__, __LINE__, __VA_ARGS__)
|
#define OSError(...) OSPanic(__FILE__, __LINE__, __VA_ARGS__)
|
||||||
#define OSAssert(exp, ...) \
|
#define OSAssert(exp, ...) \
|
||||||
|
@ -25,10 +25,8 @@
|
|||||||
mStateMgr.getStateID(); \
|
mStateMgr.getStateID(); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define UI_STATE_MGR_DECLARE(class_name) \
|
#define UI_STATE_MGR_DECLARE(class_name) sFStateMgr_c<class_name, sStateMethodUsr_FI_c> mStateMgr;
|
||||||
sFStateMgr_c<class_name, sStateMethodUsr_FI_c> mStateMgr;
|
|
||||||
|
|
||||||
#define STATE_MGR(class_name) \
|
#define STATE_MGR(class_name) sFStateMgr_c<class_name, sStateMethodUsr_FI_c>
|
||||||
sFStateMgr_c<class_name, sStateMethodUsr_FI_c>
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -18,6 +18,8 @@ public:
|
|||||||
mpOwner = owner;
|
mpOwner = owner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void remove(bool);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
u8 field_0x20[0x28 - 0x20];
|
u8 field_0x20[0x28 - 0x20];
|
||||||
/* 0x28 */ dBase_c *mpOwner;
|
/* 0x28 */ dBase_c *mpOwner;
|
||||||
|
@ -1,9 +1,226 @@
|
|||||||
#include "d/a/d_a_bombf.h"
|
#include "d/a/d_a_bombf.h"
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "d/a/d_a_player.h"
|
||||||
|
#include "d/col/bg/d_bg_s.h"
|
||||||
|
#include "d/col/bg/d_bg_s_lin_chk.h"
|
||||||
|
#include "d/flag/sceneflag_manager.h"
|
||||||
|
#include "m/m_mtx.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
#include "toBeSorted/time_area_mgr.h"
|
||||||
|
|
||||||
SPECIAL_ACTOR_PROFILE(BOMBF, dAcBombf_c, fProfile::BOMBF, 0x129, 0, 4099);
|
SPECIAL_ACTOR_PROFILE(BOMBF, dAcBombf_c, fProfile::BOMBF, 0x129, 0, 4099);
|
||||||
|
|
||||||
STATE_DEFINE(dAcBombf_c, Wait);
|
STATE_DEFINE(dAcBombf_c, Wait);
|
||||||
|
|
||||||
|
bool dAcBombf_c::createHeap() {
|
||||||
|
nw4r::g3d::ResFile resFile = getOarcResFile("FlowerBomb");
|
||||||
|
nw4r::g3d::ResMdl resMdl = resFile.GetResMdl("LeafBomb");
|
||||||
|
return mModel.create(resMdl, &heap_allocator, 0x120, 1, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
int dAcBombf_c::actorCreate() {
|
||||||
|
mDespawnSceneFlag = (params >> 8) & 0xFF;
|
||||||
|
field_0x3D4 = (params >> 16) & 0xF;
|
||||||
|
if (SceneflagManager::sInstance->checkBoolFlag(roomid, mDespawnSceneFlag)) {
|
||||||
|
return FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
CREATE_ALLOCATOR(dAcBombf_c);
|
||||||
|
|
||||||
|
field_0x3D2 = (params >> 4) & 0xF;
|
||||||
|
field_0x3D0 = field_0x3D2 == 1;
|
||||||
|
if (field_0x3D0) {
|
||||||
|
mModel.setPriorityDraw(0x82, 0x7F);
|
||||||
|
}
|
||||||
|
|
||||||
|
mStts.SetDefaultRank();
|
||||||
|
forwardAccel = -2.0f;
|
||||||
|
forwardMaxSpeed = -80.0f;
|
||||||
|
mStateMgr.changeState(StateID_Wait);
|
||||||
|
boundingBox.Set(mVec3_c(-80.0, -50.0f, -80.0f), mVec3_c(80.0, 60.0f, 80.0f));
|
||||||
|
angle = rotation;
|
||||||
|
if (mDespawnSceneFlag < 0xFF) {
|
||||||
|
actor_properties = (actor_properties & ~1) | 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dAcBombf_c::actorPostCreate() {
|
||||||
|
// Preamble problem
|
||||||
|
mMtx_c mtx;
|
||||||
|
mtx.ZXYrotS(rotation.x, rotation.y, rotation.z);
|
||||||
|
mVec3_c v;
|
||||||
|
PSMTXMultVecSR(mtx, mVec3_c::Ey, v);
|
||||||
|
mVec3_c v3 = position + v * 10.0f;
|
||||||
|
mVec3_c v4 = position - v * 10.0f;
|
||||||
|
|
||||||
|
if (dBgS_ObjLinChk::LineCross(&v3, &v4, this)) {
|
||||||
|
position = dBgS_ObjLinChk::GetInstance().GetLinEnd();
|
||||||
|
if (rotation.x == 0 && rotation.z == 0 && dBgS_ObjLinChk::ChkGround()) {
|
||||||
|
cM3dGPla pla;
|
||||||
|
dBgS::GetInstance()->GetTriPla(dBgS_ObjLinChk::GetInstance(), &pla);
|
||||||
|
rotation.x = pla.GetAngle(rotation.y);
|
||||||
|
rotation.z = pla.GetAngle(rotation.y - 0x4000);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dBgS::GetInstance()->ChkMoveBG(dBgS_ObjLinChk::GetInstance(), false)) {
|
||||||
|
field_0x398.SetPolyInfo(dBgS_ObjLinChk::GetInstance());
|
||||||
|
actor_properties = (actor_properties & ~1) | 4;
|
||||||
|
}
|
||||||
|
mLightingInfo.mLightingCode = dBgS::GetInstance()->GetLightingCode(dBgS_ObjLinChk::GetInstance());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (field_0x3D2 == 0 || field_0x3D2 == 2) {
|
||||||
|
bool b = dTimeAreaMgr_c::sInstance->fn_800B9B60(roomid, position);
|
||||||
|
if (b) {
|
||||||
|
mTimeAreaStruct.field_0x00 = 1.0f;
|
||||||
|
}
|
||||||
|
if ((b && field_0x3D2 == 2) || (!b && field_0x3D2 == 0)) {
|
||||||
|
mModel.setScale(0.0001f, 0.0001f, 0.0001f);
|
||||||
|
if (mBombRef.get() != nullptr) {
|
||||||
|
mBombRef.get()->mField_0xA50 = 0.0001f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
updateMatrix();
|
||||||
|
mModel.setLocalMtx(mWorldMtx);
|
||||||
|
regrowBomb();
|
||||||
|
if (mBombRef.get() != nullptr) {
|
||||||
|
mBombRef.get()->mScale.set(0.95f, 0.95f, 0.95f);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dAcBombf_c::doDelete() {
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dAcBombf_c::actorExecute() {
|
||||||
|
if (field_0x3D3 != 0) {
|
||||||
|
mMtx_c &mtx = mWorldMtx;
|
||||||
|
mtx.getTranslation(position);
|
||||||
|
dAcBomb_c *bomb = mBombRef.get();
|
||||||
|
if (bomb != nullptr) {
|
||||||
|
bomb->setTransformFromFlower(mtx);
|
||||||
|
}
|
||||||
|
mModel.setLocalMtx(mWorldMtx);
|
||||||
|
poscopy2 = position;
|
||||||
|
poscopy3 = position;
|
||||||
|
field_0x3D3 = 0;
|
||||||
|
} else {
|
||||||
|
if (dBgS::GetInstance()->ChkMoveBG(field_0x398, true)) {
|
||||||
|
dBgS::GetInstance()->MoveBgTransPos(field_0x398, true, &position, &angle, &rotation);
|
||||||
|
updateMatrix();
|
||||||
|
dAcBomb_c *bomb = mBombRef.get();
|
||||||
|
if (bomb != nullptr) {
|
||||||
|
bomb->setTransformFromFlower(mWorldMtx);
|
||||||
|
}
|
||||||
|
mModel.setLocalMtx(mWorldMtx);
|
||||||
|
poscopy2 = position;
|
||||||
|
poscopy3 = position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mStateMgr.executeState();
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dAcBombf_c::draw() {
|
||||||
|
if (field_0x3D0 != 0 && (dAcPy_c::LINK->mActionFlagsCont & 0x400000) == 0) {
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
drawModelType1(&mModel);
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dAcBombf_c::regrowBomb() {
|
||||||
|
// These params are hell
|
||||||
|
s8 viewclip_idx = (actor_properties & 1) != 0 ? viewclip_index : -1;
|
||||||
|
u32 actorParams1;
|
||||||
|
actorParams1 = 1;
|
||||||
|
if (field_0x3D0) {
|
||||||
|
actorParams1 = 2;
|
||||||
|
}
|
||||||
|
dAcObjBase_c *ac = dAcObjBase_c::create(
|
||||||
|
"Bomb", roomid, actorParams1, &position, nullptr, nullptr, 0xFFFFFFFF, 0xFFFF, viewclip_idx
|
||||||
|
);
|
||||||
|
mBombRef.link(static_cast<dAcBomb_c *>(ac));
|
||||||
|
dAcBomb_c *bomb = mBombRef.get();
|
||||||
|
if (bomb != nullptr) {
|
||||||
|
field_0x394 = 0x3C;
|
||||||
|
bomb->setTransformFromFlower(mWorldMtx);
|
||||||
|
if ((actor_properties & 1) != 0) {
|
||||||
|
bomb->actor_properties |= 1;
|
||||||
|
}
|
||||||
|
if (field_0x3D4 == 0) {
|
||||||
|
bomb->mField_0xA44 *= 1.5f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void dAcBombf_c::initializeState_Wait() {}
|
void dAcBombf_c::initializeState_Wait() {}
|
||||||
void dAcBombf_c::executeState_Wait() {}
|
|
||||||
|
extern "C" void fn_800298B0(u16, mVec3_c *, mVec3_c *, u32, u32, u32, u32, u32);
|
||||||
|
extern "C" u16 lbl_8057A750;
|
||||||
|
|
||||||
|
void dAcBombf_c::executeState_Wait() {
|
||||||
|
// Stack problems
|
||||||
|
if (SceneflagManager::sInstance->checkBoolFlag(roomid, mDespawnSceneFlag)) {
|
||||||
|
deleteRequest();
|
||||||
|
dAcBomb_c *bomb = mBombRef.get();
|
||||||
|
if (bomb != nullptr) {
|
||||||
|
bomb->deleteRequest();
|
||||||
|
bomb->mEffect1.remove(true);
|
||||||
|
bomb->mEffect2.remove(true);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
f32 scaleFactor = mScale.x;
|
||||||
|
if (field_0x3D2 == 0 || field_0x3D2 == 2) {
|
||||||
|
mVec3_c m;
|
||||||
|
PSMTXMultVecSR(mWorldMtx, mVec3_c::Ey, m);
|
||||||
|
|
||||||
|
mVec3_c m3 = position + (m * 30.0f);
|
||||||
|
|
||||||
|
if (mTimeAreaStruct.check(roomid, m3, 0, 30.0f, 0.1f) && field_0x3D4 != 1) {
|
||||||
|
if (mTimeAreaStruct.field_0x04 == 1) {
|
||||||
|
playSound(0xC0A);
|
||||||
|
} else {
|
||||||
|
playSound(0xC0B);
|
||||||
|
}
|
||||||
|
fn_800298B0(lbl_8057A750, &position, nullptr, 0, 0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
scaleFactor *= mTimeAreaStruct.field_0x00;
|
||||||
|
if (field_0x3D2 == 2) {
|
||||||
|
scaleFactor = 1.0f - scaleFactor;
|
||||||
|
}
|
||||||
|
scaleFactor = nw4r::ut::Max(scaleFactor, 0.0001f);
|
||||||
|
mModel.setScale(scaleFactor, scaleFactor, scaleFactor);
|
||||||
|
}
|
||||||
|
dAcBomb_c *bomb = mBombRef.get();
|
||||||
|
if (bomb != nullptr) {
|
||||||
|
if (!bomb->mStateMgr.isState(dAcBomb_c::StateID_FlowerWait) && field_0x3D0 == 0) {
|
||||||
|
mBombRef.unlink();
|
||||||
|
field_0x394 = 0x3C;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (field_0x394 != 0) {
|
||||||
|
field_0x394--;
|
||||||
|
} else if (field_0x3D0 == 0 || dAcPy_c::LINK->getSquareDistanceTo(position) > 22500.0f) {
|
||||||
|
regrowBomb();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bomb = mBombRef.get();
|
||||||
|
if (bomb != nullptr) {
|
||||||
|
bomb->mField_0xA50 = scaleFactor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void dAcBombf_c::finalizeState_Wait() {}
|
void dAcBombf_c::finalizeState_Wait() {}
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#include "s/s_Math.h"
|
#include "s/s_Math.h"
|
||||||
|
|
||||||
|
|
||||||
SPECIAL_ACTOR_PROFILE(OBJ_MOLE_SOIL, dAcOmoleSoil_c, fProfile::OBJ_MOLE_SOIL, 0x008B, 0, 6);
|
SPECIAL_ACTOR_PROFILE(OBJ_MOLE_SOIL, dAcOmoleSoil_c, fProfile::OBJ_MOLE_SOIL, 0x008B, 0, 6);
|
||||||
|
|
||||||
STATE_DEFINE(dAcOmoleSoil_c, Wait);
|
STATE_DEFINE(dAcOmoleSoil_c, Wait);
|
||||||
@ -24,10 +23,6 @@ bool dAcOmoleSoil_c::createHeap() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool intToBool(int a) {
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
int dAcOmoleSoil_c::create() {
|
int dAcOmoleSoil_c::create() {
|
||||||
CREATE_ALLOCATOR(dAcOmoleSoil_c);
|
CREATE_ALLOCATOR(dAcOmoleSoil_c);
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ int dAcOPoolCock_c::actorExecute() {
|
|||||||
mStateMgr.executeState();
|
mStateMgr.executeState();
|
||||||
calcVelocity();
|
calcVelocity();
|
||||||
position += velocity;
|
position += velocity;
|
||||||
position += mCCdStruct.posIncrements;
|
position += mStts.mCcMove;
|
||||||
updateMatrix();
|
updateMatrix();
|
||||||
mMtx_c mdl1Transform;
|
mMtx_c mdl1Transform;
|
||||||
mMtx_c mdl2Transform;
|
mMtx_c mdl2Transform;
|
||||||
|
@ -39,7 +39,7 @@ int dAcOring_c::actorExecute() {
|
|||||||
mStateMgr.executeState();
|
mStateMgr.executeState();
|
||||||
calcVelocity();
|
calcVelocity();
|
||||||
position += velocity;
|
position += velocity;
|
||||||
position += mCCdStruct.posIncrements;
|
position += mStts.mCcMove;
|
||||||
updateMatrix();
|
updateMatrix();
|
||||||
mModel.setLocalMtx(mWorldMtx);
|
mModel.setLocalMtx(mWorldMtx);
|
||||||
return SUCCEEDED;
|
return SUCCEEDED;
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
#include "d/a/obj/d_a_obj_spike.h"
|
#include "d/a/obj/d_a_obj_spike.h"
|
||||||
|
|
||||||
#include "d/col/cc/d_cc_mgr.h"
|
#include "d/col/cc/d_cc_s.h"
|
||||||
|
|
||||||
|
|
||||||
SPECIAL_ACTOR_PROFILE(OBJ_SPIKE, dAcOspike_c, fProfile::OBJ_SPIKE, 0x1D9, 0, 2);
|
SPECIAL_ACTOR_PROFILE(OBJ_SPIKE, dAcOspike_c, fProfile::OBJ_SPIKE, 0x1D9, 0, 2);
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
dCcD_SrcAabb dAcOspike_c::sCcSrc = {
|
dCcD_SrcUnk dAcOspike_c::sCcSrc = {
|
||||||
{{{0x400}, 0x2003F, 0, 1, 0, 0, 0, 0, 0},
|
{{0x400, 0x2003F, {0, 0, 0}, 1, 0, 0, 0, 0},
|
||||||
{{0xFEB77DFF}, 0x111, 0x06, 0x407, 0, 0},
|
{0xFEB77DFF, 0x111, 0x06, 0x407, 0, },
|
||||||
{0}},
|
{0}},
|
||||||
{-1.0f, -246.0f, -472.0f, 73.0f, 255.0f, 482.0f}};
|
{-1.0f, -246.0f, -472.0f, 73.0f, 255.0f, 482.0f}};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
@ -30,15 +29,15 @@ int dAcOspike_c::create() {
|
|||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
mCCdStruct.setField0x38ToMagicValue();
|
mStts.SetDefaultRank();
|
||||||
mCollision.init(sCcSrc);
|
mCollision.Set(sCcSrc);
|
||||||
mCollision.initUnk(mCCdStruct);
|
mCollision.SetStts(mStts);
|
||||||
|
|
||||||
updateMatrix();
|
updateMatrix();
|
||||||
mMdl.setLocalMtx(mWorldMtx);
|
mMdl.setLocalMtx(mWorldMtx);
|
||||||
mVec3_c tmp;
|
mVec3_c tmp;
|
||||||
PSMTXMultVecSR(mWorldMtx.m, mVec3_c::Ex, tmp);
|
PSMTXMultVecSR(mWorldMtx.m, mVec3_c::Ex, tmp);
|
||||||
mCollision.setAtVec(tmp);
|
mCollision.SetAtVec(tmp);
|
||||||
|
|
||||||
mMtx_c mtx;
|
mMtx_c mtx;
|
||||||
mtx.XrotS(rotation.x);
|
mtx.XrotS(rotation.x);
|
||||||
@ -63,7 +62,7 @@ int dAcOspike_c::create() {
|
|||||||
tmp3.z = copy;
|
tmp3.z = copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
mCollision.Set(tmp2, tmp3);
|
mCollision.cM3dGUnk::Set(tmp2, tmp3);
|
||||||
mStateMgr.changeState(StateID_Wait);
|
mStateMgr.changeState(StateID_Wait);
|
||||||
boundingBox.Set(mVec3_c(-10.0f, -250.0f, -480.0f), mVec3_c(80.0f, 260.0f, 490.0f));
|
boundingBox.Set(mVec3_c(-10.0f, -250.0f, -480.0f), mVec3_c(80.0f, 260.0f, 490.0f));
|
||||||
return SUCCEEDED;
|
return SUCCEEDED;
|
||||||
@ -75,8 +74,8 @@ int dAcOspike_c::doDelete() {
|
|||||||
|
|
||||||
int dAcOspike_c::actorExecute() {
|
int dAcOspike_c::actorExecute() {
|
||||||
mStateMgr.executeState();
|
mStateMgr.executeState();
|
||||||
mCollision.Set(position, rotation.y);
|
mCollision.cM3dGUnk::Set(position, rotation.y);
|
||||||
ColliderManager::getColliderManager()->addCollider(&mCollision);
|
dCcS::GetInstance()->Set(&mCollision);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
#include "d/a/obj/d_a_obj_toD3_stone_figure.h"
|
#include "d/a/obj/d_a_obj_toD3_stone_figure.h"
|
||||||
|
|
||||||
#include "d/col/cc/d_cc_mgr.h"
|
#include "d/col/cc/d_cc_s.h"
|
||||||
|
#include "d/flag/storyflag_manager.h"
|
||||||
#include "toBeSorted/attention.h"
|
#include "toBeSorted/attention.h"
|
||||||
#include "toBeSorted/event.h"
|
#include "toBeSorted/event.h"
|
||||||
#include "toBeSorted/event_manager.h"
|
#include "toBeSorted/event_manager.h"
|
||||||
#include "d/flag/storyflag_manager.h"
|
|
||||||
#include "toBeSorted/scgame.h"
|
#include "toBeSorted/scgame.h"
|
||||||
|
|
||||||
|
|
||||||
SPECIAL_ACTOR_PROFILE(OBJ_TOD3_STONE, dAcOtoD3StoneFigure_c, fProfile::OBJ_TOD3_STONE, 0x1B3, 0, 0);
|
SPECIAL_ACTOR_PROFILE(OBJ_TOD3_STONE, dAcOtoD3StoneFigure_c, fProfile::OBJ_TOD3_STONE, 0x1B3, 0, 0);
|
||||||
|
|
||||||
STATE_DEFINE(dAcOtoD3StoneFigure_c, OneEye);
|
STATE_DEFINE(dAcOtoD3StoneFigure_c, OneEye);
|
||||||
@ -18,10 +17,40 @@ f32 dAcOtoD3StoneFigure_c::sHeight = 290.0f;
|
|||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
dCcD_SrcCyl dAcOtoD3StoneFigure_c::sCcSrc = {
|
dCcD_SrcCyl dAcOtoD3StoneFigure_c::sCcSrc = {
|
||||||
{{{0}, 0, 0, 0, 0, 0, 0, 0, 0},
|
{
|
||||||
{{0xFEB77DFF}, 0x1000111, 0x06, 0x407, 0, 0},
|
{
|
||||||
{0xE9}},
|
0,
|
||||||
{dAcOtoD3StoneFigure_c::sRadius, dAcOtoD3StoneFigure_c::sHeight}
|
0,
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0xFEB77DFF,
|
||||||
|
0x1000111,
|
||||||
|
{
|
||||||
|
0x06,
|
||||||
|
0x407
|
||||||
|
},
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0xE9
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dAcOtoD3StoneFigure_c::sRadius,
|
||||||
|
dAcOtoD3StoneFigure_c::sHeight
|
||||||
|
}
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
@ -42,16 +71,15 @@ int dAcOtoD3StoneFigure_c::create() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mMdl.setLocalMtx(mWorldMtx);
|
mMdl.setLocalMtx(mWorldMtx);
|
||||||
mCCdStruct.setField0x38ToMagicValue();
|
mStts.SetDefaultRank();
|
||||||
mCollision.init(sCcSrc);
|
mCollision.Set(sCcSrc);
|
||||||
mCollision.initUnk(mCCdStruct);
|
mCollision.SetStts(mStts);
|
||||||
int zero = 0;
|
int zero = 0;
|
||||||
mCollision.SetC(position);
|
mCollision.SetC(position);
|
||||||
mCollision.SetR(dAcOtoD3StoneFigure_c::sRadius + zero);
|
mCollision.SetR(dAcOtoD3StoneFigure_c::sRadius + zero);
|
||||||
mCollision.SetH(dAcOtoD3StoneFigure_c::sHeight + zero);
|
mCollision.SetH(dAcOtoD3StoneFigure_c::sHeight + zero);
|
||||||
ColliderManager::getColliderManager()->addCollider(&mCollision);
|
dCcS::GetInstance()->Set(&mCollision);
|
||||||
// mCollision.clearCoFlag();
|
mCollision.OnTgCoFlag(1);
|
||||||
mCollision.setTgCoFlag(1);
|
|
||||||
|
|
||||||
// ???
|
// ???
|
||||||
f32 a, b, c;
|
f32 a, b, c;
|
||||||
@ -66,7 +94,7 @@ int dAcOtoD3StoneFigure_c::create() {
|
|||||||
poscopy3.y = b;
|
poscopy3.y = b;
|
||||||
poscopy3.z = c;
|
poscopy3.z = c;
|
||||||
// poscopy3 = poscopy2;
|
// poscopy3 = poscopy2;
|
||||||
mCollision.setSomeDefendValue(0x2000);
|
mCollision.SetTg_0x4C(0x2000);
|
||||||
|
|
||||||
if (!mIsSkyKeepAlreadyOpen) {
|
if (!mIsSkyKeepAlreadyOpen) {
|
||||||
mStateMgr.changeState(StateID_OneEye);
|
mStateMgr.changeState(StateID_OneEye);
|
||||||
@ -83,7 +111,7 @@ int dAcOtoD3StoneFigure_c::doDelete() {
|
|||||||
|
|
||||||
int dAcOtoD3StoneFigure_c::actorExecute() {
|
int dAcOtoD3StoneFigure_c::actorExecute() {
|
||||||
mStateMgr.executeState();
|
mStateMgr.executeState();
|
||||||
ColliderManager::getColliderManager()->addCollider(&mCollision);
|
dCcS::GetInstance()->Set(&mCollision);
|
||||||
return SUCCEEDED;
|
return SUCCEEDED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
#include "d/a/obj/d_a_obj_triforce.h"
|
#include "d/a/obj/d_a_obj_triforce.h"
|
||||||
|
|
||||||
#include "c/c_math.h"
|
#include "c/c_math.h"
|
||||||
#include "d/col/cc/d_cc_mgr.h"
|
#include "d/col/cc/d_cc_s.h"
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
|
|
||||||
SPECIAL_ACTOR_PROFILE(OBJ_TRIFORCE, dAcOtriforce_c, fProfile::OBJ_TRIFORCE, 0x15D, 0, 4);
|
SPECIAL_ACTOR_PROFILE(OBJ_TRIFORCE, dAcOtriforce_c, fProfile::OBJ_TRIFORCE, 0x15D, 0, 4);
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
dCcD_SrcSph dAcOtriforce_c::sCcSrc = {
|
dCcD_SrcSph dAcOtriforce_c::sCcSrc = {
|
||||||
{{{0}, 0, 0, 0, 0, 0, 0, 0, 0},
|
{{0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||||
{{0xFEB77DFF}, 0x111, 0x06, 0x407, 0, 0},
|
{0xFEB77DFF, 0x111, 0x06, 0x407, 0, 0},
|
||||||
{0xE9}},
|
{0xE9}},
|
||||||
{150.0f}};
|
{150.0f}};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
@ -36,13 +35,13 @@ int dAcOtriforce_c::create() {
|
|||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
mCCdStruct.setField0x38ToMagicValue();
|
mStts.SetDefaultRank();
|
||||||
mCollision.init(sCcSrc);
|
mCollision.Set(sCcSrc);
|
||||||
mCollision.initUnk(mCCdStruct);
|
mCollision.SetStts(mStts);
|
||||||
mCollision.clearCoFlag();
|
mCollision.ClrCoSet();
|
||||||
mStartingOffset = cM::rndInt(sStartingOffsetRange);
|
mStartingOffset = cM::rndInt(sStartingOffsetRange);
|
||||||
mEffects.init(this);
|
mEffects.init(this);
|
||||||
mCollision.setSomeDefendValue(0x2000);
|
mCollision.SetTg_0x4C(0x2000);
|
||||||
updateMatrix();
|
updateMatrix();
|
||||||
mScale.x = sScale;
|
mScale.x = sScale;
|
||||||
mScale.y = sScale;
|
mScale.y = sScale;
|
||||||
@ -66,7 +65,7 @@ int dAcOtriforce_c::actorExecute() {
|
|||||||
|
|
||||||
mCollision.SetC(position.x, position.y + 90.0f + zero, position.z);
|
mCollision.SetC(position.x, position.y + 90.0f + zero, position.z);
|
||||||
|
|
||||||
ColliderManager::getColliderManager()->addCollider(&mCollision);
|
dCcS::GetInstance()->Set(&mCollision);
|
||||||
updateMatrix();
|
updateMatrix();
|
||||||
Mtx m;
|
Mtx m;
|
||||||
PSMTXScale(m, mScale.x, mScale.y, mScale.z);
|
PSMTXScale(m, mScale.x, mScale.y, mScale.z);
|
||||||
|
@ -4,10 +4,9 @@
|
|||||||
#include "c/c_math.h"
|
#include "c/c_math.h"
|
||||||
#include "d/a/d_a_player.h"
|
#include "d/a/d_a_player.h"
|
||||||
#include "d/a/obj/d_a_obj_item.h"
|
#include "d/a/obj/d_a_obj_item.h"
|
||||||
#include "d/col/cc/d_cc_mgr.h"
|
#include "d/col/cc/d_cc_s.h"
|
||||||
#include "d/flag/sceneflag_manager.h"
|
#include "d/flag/sceneflag_manager.h"
|
||||||
|
|
||||||
|
|
||||||
SPECIAL_ACTOR_PROFILE(TAG_REACTION, dTgReaction_c, fProfile::TAG_REACTION, 0x0151, 0, 0);
|
SPECIAL_ACTOR_PROFILE(TAG_REACTION, dTgReaction_c, fProfile::TAG_REACTION, 0x0151, 0, 0);
|
||||||
|
|
||||||
STATE_DEFINE(dTgReaction_c, Wait);
|
STATE_DEFINE(dTgReaction_c, Wait);
|
||||||
@ -19,8 +18,8 @@ const f32 dTgReaction_c::sHeight = 100.0f;
|
|||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
dCcD_SrcCyl dTgReaction_c::sCcSrc = {
|
dCcD_SrcCyl dTgReaction_c::sCcSrc = {
|
||||||
{{{0}, 0, 0, 0, 0, 0, 0, 0, 0},
|
{{0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||||
{{0x10000}, 0x213, 0, 0x8, 0x8, 0},
|
{0x10000, 0x213, 0, 0x8, 0x8,},
|
||||||
{0xE8}},
|
{0xE8}},
|
||||||
{dTgReaction_c::sRadius, dTgReaction_c::sHeight}
|
{dTgReaction_c::sRadius, dTgReaction_c::sHeight}
|
||||||
};
|
};
|
||||||
@ -43,7 +42,7 @@ int dTgReaction_c::create() {
|
|||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getReactType() != REACT_GUST_BELLOWS) {
|
if (getReactType() != REACT_UNDERWATER) {
|
||||||
if (getSceneFlag() >= 0xFF) {
|
if (getSceneFlag() >= 0xFF) {
|
||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
@ -74,29 +73,31 @@ int dTgReaction_c::create() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mCCdStruct.setField0x38(0);
|
mStts.SetRank(0);
|
||||||
mCollision.init(sCcSrc);
|
mCollision.Set(sCcSrc);
|
||||||
mCollision.initUnk(mCCdStruct);
|
mCollision.SetStts(mStts);
|
||||||
|
|
||||||
switch (getReactType()) {
|
switch (getReactType()) {
|
||||||
case REACT_BONK:
|
|
||||||
mCollision.setTgFlag(0x80);
|
|
||||||
mCollision.setTgField0x0A(0);
|
|
||||||
mCollision.SetR(sCcSrc.mCylAttr.mRadius * mScale.x);
|
|
||||||
mCollision.SetH(mScale.y * sCcSrc.mCylAttr.mHeight);
|
|
||||||
break;
|
|
||||||
case REACT_SLINGSHOT:
|
case REACT_SLINGSHOT:
|
||||||
mCollision.setTgFlag(0x10000);
|
mCollision.SetTgFlag(0x80);
|
||||||
mCollision.setTgField0x0A(8);
|
mCollision.SetTgFlag_0xA(0);
|
||||||
mCollision.SetR(sCcSrc.mCylAttr.mRadius * mScale.x);
|
mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x);
|
||||||
mCollision.SetH(mScale.y * sCcSrc.mCylAttr.mHeight);
|
mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y);
|
||||||
break;
|
break;
|
||||||
case REACT_GUST_BELLOWS:
|
case REACT_GUST_BELLOWS:
|
||||||
mCollision.setTgFlag(0x100000);
|
mCollision.SetTgFlag(0x10000);
|
||||||
mCollision.setTgField0x0A(0);
|
mCollision.SetTgFlag_0xA(8);
|
||||||
mCollision.SetR(sCcSrc.mCylAttr.mRadius * mScale.x);
|
mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x);
|
||||||
mCollision.SetH(mScale.y * sCcSrc.mCylAttr.mHeight);
|
mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y);
|
||||||
break;
|
break;
|
||||||
|
case REACT_UNDERWATER:
|
||||||
|
mCollision.SetTgFlag(0x100000);
|
||||||
|
mCollision.SetTgFlag_0xA(0);
|
||||||
|
mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x);
|
||||||
|
mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y);
|
||||||
|
break;
|
||||||
|
case REACT_BONK:
|
||||||
|
case REACT_4: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int item = getParam0x10();
|
int item = getParam0x10();
|
||||||
@ -111,8 +112,8 @@ int dTgReaction_c::create() {
|
|||||||
}
|
}
|
||||||
mVec3_c dwsOffset;
|
mVec3_c dwsOffset;
|
||||||
if (!getParam0x14()) {
|
if (!getParam0x14()) {
|
||||||
field_0x4E4 = mScale.y * sCcSrc.mCylAttr.mHeight * 0.5f;
|
field_0x4E4 = mScale.y * sCcSrc.mCylInf.mHeight * 0.5f;
|
||||||
dwsOffset = mVec3_c(0.0f, 0.5f * sCcSrc.mCylAttr.mHeight, 0.0f);
|
dwsOffset = mVec3_c(0.0f, sCcSrc.mCylInf.mHeight * 0.5f, 0.0f);
|
||||||
} else {
|
} else {
|
||||||
dwsOffset = mVec3_c::Zero;
|
dwsOffset = mVec3_c::Zero;
|
||||||
}
|
}
|
||||||
@ -210,14 +211,14 @@ void dTgReaction_c::checkForBonkItem() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dTgReaction_c::checkForBubble() {
|
void dTgReaction_c::checkForBubble() {
|
||||||
if (mCollision.someInteractCheck() && mCollision.CheckCollidedMask(0x100000)) {
|
if (mCollision.ChkTgHit() && mCollision.ChkTgAtHitType(0x100000)) {
|
||||||
if (dAcPy_c::LINK != nullptr && dAcPy_c::LINK->checkFlags0x350(0x40)) {
|
if (dAcPy_c::LINK != nullptr && dAcPy_c::LINK->checkFlags0x350(0x40)) {
|
||||||
mVec3_c spawnPos = position;
|
mVec3_c spawnPos = position;
|
||||||
dAcObjBase_c::create(fProfile::OBJ_BUBBLE, roomid, 0x4, &spawnPos, nullptr, nullptr, 0xFFFFFFFF);
|
dAcObjBase_c::create(fProfile::OBJ_BUBBLE, roomid, 0x4, &spawnPos, nullptr, nullptr, 0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mCollision.SetC(position);
|
mCollision.SetC(position);
|
||||||
ColliderManager::getColliderManager()->addCollider(&mCollision);
|
dCcS::GetInstance()->Set(&mCollision);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO move this somewhere
|
// TODO move this somewhere
|
||||||
@ -230,14 +231,15 @@ T rndRange(T min, T max) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dTgReaction_c::checkForSlingBellowsItem() {
|
void dTgReaction_c::checkForSlingBellowsItem() {
|
||||||
if (mCollision.someInteractCheck()) {
|
if (mCollision.ChkTgHit()) {
|
||||||
|
u8 p = getParam0x08();
|
||||||
u32 uVar3;
|
u32 uVar3;
|
||||||
// mVec3_c pos = position;
|
|
||||||
int p = getParam0x08();
|
|
||||||
if (p == 0) {
|
if (p == 0) {
|
||||||
uVar3 = 6;
|
uVar3 = 6;
|
||||||
|
} else if (uVar3 == 0xFF) {
|
||||||
|
uVar3 = 5;
|
||||||
} else {
|
} else {
|
||||||
uVar3 = p == 0xFF ? 5 : 6;
|
uVar3 = 6;
|
||||||
}
|
}
|
||||||
mVec3_c spawnPos = position;
|
mVec3_c spawnPos = position;
|
||||||
spawnPos.y += field_0x4E4;
|
spawnPos.y += field_0x4E4;
|
||||||
@ -248,7 +250,7 @@ void dTgReaction_c::checkForSlingBellowsItem() {
|
|||||||
onDelete();
|
onDelete();
|
||||||
}
|
}
|
||||||
mCollision.SetC(position);
|
mCollision.SetC(position);
|
||||||
ColliderManager::getColliderManager()->addCollider(&mCollision);
|
dCcS::GetInstance()->Set(&mCollision);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dTgReaction_c::onDelete() {
|
void dTgReaction_c::onDelete() {
|
||||||
|
@ -149,7 +149,7 @@ bool dTgSndAr_c::checkAlg3(const mVec3_c &pos) {
|
|||||||
|
|
||||||
unk.Set(b, c, mScale.x * 100.0f);
|
unk.Set(b, c, mScale.x * 100.0f);
|
||||||
f32 d;
|
f32 d;
|
||||||
if (cM3d_Len3dSqPntAndSegLine(&unk, &a, &q, &d, nullptr)) {
|
if (cM3d_Len3dSqPntAndSegLine(unk, a, q, &d, nullptr)) {
|
||||||
// At the cylindrical part of the capsule, just check the distance to
|
// At the cylindrical part of the capsule, just check the distance to
|
||||||
// the line
|
// the line
|
||||||
return d < radius;
|
return d < radius;
|
||||||
|
@ -424,7 +424,7 @@ f32 dAcBase_c::getSquareDistToPlayer() {
|
|||||||
// Some weirdness with the float registers being used
|
// Some weirdness with the float registers being used
|
||||||
// 8002d4b0
|
// 8002d4b0
|
||||||
void dAcBase_c::updateRoomId(f32 yOffset) {
|
void dAcBase_c::updateRoomId(f32 yOffset) {
|
||||||
if (getConnectParent()->profile_name != 701 /* fProfile::PROFILE_NAME_e::ROOM */) {
|
if (getConnectParent()->profile_name != fProfile::ROOM) {
|
||||||
mVec3_c actorPos(position.x, position.y + yOffset, position.z);
|
mVec3_c actorPos(position.x, position.y + yOffset, position.z);
|
||||||
|
|
||||||
if (checkCollision(&actorPos)) {
|
if (checkCollision(&actorPos)) {
|
||||||
|
131
src/d/a/obj/d_a_obj_arrow.cpp
Normal file
131
src/d/a/obj/d_a_obj_arrow.cpp
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
#include "d/a/obj/d_a_obj_arrow.h"
|
||||||
|
|
||||||
|
#include "c/c_math.h"
|
||||||
|
#include "d/a/d_a_player.h"
|
||||||
|
#include "d/col/c/c_cc_d.h"
|
||||||
|
|
||||||
|
SPECIAL_ACTOR_PROFILE(ARROW, dAcArrow_c, fProfile::ARROW, 0x126, 0, 0x80);
|
||||||
|
|
||||||
|
STATE_DEFINE(dAcArrow_c, Wait);
|
||||||
|
STATE_DEFINE(dAcArrow_c, Move);
|
||||||
|
STATE_DEFINE(dAcArrow_c, ActorStop);
|
||||||
|
STATE_DEFINE(dAcArrow_c, BgStop);
|
||||||
|
STATE_DEFINE(dAcArrow_c, Bound);
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
cCcD_SrcGObj dAcArrow_c::sCcSrcInf = {
|
||||||
|
|
||||||
|
{0x2000, 0x8BB, 0x15000000, 0, 0, 0, 0, 0, 0},
|
||||||
|
{0xFEB75C7F, 0x210, 0, 0x407, 0, 0},
|
||||||
|
{0},
|
||||||
|
};
|
||||||
|
|
||||||
|
dCcD_SrcCps dAcArrow_c::sCc1 = {
|
||||||
|
dAcArrow_c::sCcSrcInf,
|
||||||
|
{5.0f},
|
||||||
|
};
|
||||||
|
|
||||||
|
const dCcD_SrcSph dAcArrow_c::sCc2 = {
|
||||||
|
{{0x0, 0x0, 0x0, 0, 0, 0, 0, 0, 0},
|
||||||
|
{0x2, 0x211, 0, 0x407, 0, 0},
|
||||||
|
{0xC28}},
|
||||||
|
{100.0f},
|
||||||
|
};
|
||||||
|
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
bool hitCallback(dAcObjBase_c *i_actorA, cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB, cCcD_Obj *i_objInfB) {
|
||||||
|
static_cast<dAcArrow_c *>(i_actorA)->hitCallback(i_objInfA, i_actorB, i_objInfB);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool dAcArrow_c::createHeap() {
|
||||||
|
mResFile = getOarcResFile("Alink");
|
||||||
|
nw4r::g3d::ResMdl mdl(nullptr);
|
||||||
|
if ((mSubType & 0x10) != 0) {
|
||||||
|
mdl = mResFile.GetResMdl("EquipPachinkoBullet");
|
||||||
|
} else {
|
||||||
|
mdl = mResFile.GetResMdl("EquipArrow");
|
||||||
|
}
|
||||||
|
// ?
|
||||||
|
bool ok = mModel.create(mdl, &heap_allocator, 0x120);
|
||||||
|
if (!ok) {
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void fn_8025E5E0(void *);
|
||||||
|
|
||||||
|
int dAcArrow_c::create() {
|
||||||
|
mSubType = params & 0xFF;
|
||||||
|
CREATE_ALLOCATOR(dAcArrow_c);
|
||||||
|
|
||||||
|
field_0x67C |= 4;
|
||||||
|
mStts.SetRank(2);
|
||||||
|
mCcCps.Set(sCc1);
|
||||||
|
mCcCps.SetStts(mStts);
|
||||||
|
mCcCps.SetAtFlag(0x2000);
|
||||||
|
mCcCps.SetAtCallback(::hitCallback);
|
||||||
|
mCcSph.Set(sCc2);
|
||||||
|
mCcSph.SetStts(mStts);
|
||||||
|
|
||||||
|
if (mSubType == 0x11) {
|
||||||
|
mStateMgr.changeState(StateID_Move);
|
||||||
|
} else {
|
||||||
|
mStateMgr.changeState(StateID_Wait);
|
||||||
|
}
|
||||||
|
|
||||||
|
boundingBox.Set(mVec3_c(-6.0f, -6.0f, 0.0f), mVec3_c(6.0f, 6.0f, 110.0f));
|
||||||
|
field_0x684 = -1;
|
||||||
|
field_0x68A = 300;
|
||||||
|
f32 rnd = cM::rndF(20.0f);
|
||||||
|
field_0x688 = 50.0f - rnd;
|
||||||
|
field_0x6A8 = 80.0f;
|
||||||
|
mDespawnTimer = 10;
|
||||||
|
fn_8025E5E0(this);
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
dAcArrow_c::~dAcArrow_c() {}
|
||||||
|
|
||||||
|
void dAcArrow_c::hitCallback(cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB, cCcD_Obj *i_objInfB) {}
|
||||||
|
|
||||||
|
int dAcArrow_c::doDelete() {
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dAcArrow_c::actorExecute() {
|
||||||
|
mStateMgr.executeState();
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dAcArrow_c::draw() {
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dAcArrow_c::initializeState_Wait() {}
|
||||||
|
void dAcArrow_c::executeState_Wait() {}
|
||||||
|
void dAcArrow_c::finalizeState_Wait() {}
|
||||||
|
|
||||||
|
void dAcArrow_c::initializeState_Move() {}
|
||||||
|
void dAcArrow_c::executeState_Move() {}
|
||||||
|
void dAcArrow_c::finalizeState_Move() {}
|
||||||
|
|
||||||
|
void dAcArrow_c::initializeState_ActorStop() {}
|
||||||
|
void dAcArrow_c::executeState_ActorStop() {}
|
||||||
|
void dAcArrow_c::finalizeState_ActorStop() {}
|
||||||
|
|
||||||
|
void dAcArrow_c::initializeState_BgStop() {}
|
||||||
|
void dAcArrow_c::executeState_BgStop() {}
|
||||||
|
void dAcArrow_c::finalizeState_BgStop() {}
|
||||||
|
|
||||||
|
void dAcArrow_c::initializeState_Bound() {}
|
||||||
|
void dAcArrow_c::executeState_Bound() {}
|
||||||
|
void dAcArrow_c::finalizeState_Bound() {}
|
20
src/d/a/obj/d_a_obj_bomb.cpp
Normal file
20
src/d/a/obj/d_a_obj_bomb.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include "d/a/obj/d_a_obj_bomb.h"
|
||||||
|
|
||||||
|
#include "f/f_base.h"
|
||||||
|
#include "f/f_profile.h"
|
||||||
|
#include "f/f_profile_name.h"
|
||||||
|
#include "s/s_State.hpp"
|
||||||
|
|
||||||
|
SPECIAL_ACTOR_PROFILE(BOMB, dAcBomb_c, fProfile::BOMB, 0x128, 0, 2);
|
||||||
|
|
||||||
|
STATE_DEFINE(dAcBomb_c, Wait);
|
||||||
|
STATE_DEFINE(dAcBomb_c, FlowerWait);
|
||||||
|
STATE_DEFINE(dAcBomb_c, Explode);
|
||||||
|
STATE_DEFINE(dAcBomb_c, Carry);
|
||||||
|
STATE_DEFINE(dAcBomb_c, WindCarry);
|
||||||
|
|
||||||
|
bool dAcBomb_c::createHeap() {}
|
||||||
|
|
||||||
|
int dAcBomb_c::create() {
|
||||||
|
return SUCCEEDED;
|
||||||
|
}
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#include "d/a/d_a_player.h"
|
#include "d/a/d_a_player.h"
|
||||||
|
|
||||||
|
|
||||||
SPECIAL_ACTOR_PROFILE(OBJ_FAIRY, dAcObjFairy_c, fProfile::OBJ_FAIRY, 0x166, 0, 2);
|
SPECIAL_ACTOR_PROFILE(OBJ_FAIRY, dAcObjFairy_c, fProfile::OBJ_FAIRY, 0x166, 0, 2);
|
||||||
|
|
||||||
STATE_DEFINE(dAcObjFairy_c, Wait);
|
STATE_DEFINE(dAcObjFairy_c, Wait);
|
||||||
@ -53,7 +52,8 @@ int dAcObjFairy_c::draw() {
|
|||||||
|
|
||||||
if (!isCuring()) {
|
if (!isCuring()) {
|
||||||
static mQuat_c rot(0.0f, 0.0f, 0.0f, 10.0f);
|
static mQuat_c rot(0.0f, 0.0f, 0.0f, 10.0f);
|
||||||
drawShadow(mShadow, nullptr, mWorldMtx, &rot, -1, -1, -1, -1, -1, position.y - field_0x4B0);
|
f32 f = field_0x4B0;
|
||||||
|
drawShadow(mShadow, nullptr, mWorldMtx, &rot, -1, -1, -1, -1, -1, position.y - f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,14 +96,13 @@ void dAcObjFairy_c::executeState_CatchDemo() {
|
|||||||
}
|
}
|
||||||
void dAcObjFairy_c::finalizeState_CatchDemo() {
|
void dAcObjFairy_c::finalizeState_CatchDemo() {
|
||||||
field_0xB89 = 0;
|
field_0xB89 = 0;
|
||||||
// TODO collision
|
mObjectActorFlags &= ~0x00000200;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dAcObjFairy_c::shouldAvoidLink() const {
|
bool dAcObjFairy_c::shouldAvoidLink() const {
|
||||||
// TODO shuffles
|
// TODO shuffles
|
||||||
if (dAcPy_c::LINK->isUsingBugnet()) {
|
if (dAcPy_c::LINK->isUsingBugnet()) {
|
||||||
const mVec3_c &bugNetPos = dAcPy_c::LINK->getBugNetPos();
|
mVec3_c dist = dAcPy_c::LINK->getBugNetPos() - position;
|
||||||
const mVec3_c dist = bugNetPos - position;
|
|
||||||
bool isClose = false;
|
bool isClose = false;
|
||||||
if (dist.mag() < 100.0f && velocity.dot(dist) > 0.0f) {
|
if (dist.mag() < 100.0f && velocity.dot(dist) > 0.0f) {
|
||||||
isClose = true;
|
isClose = true;
|
||||||
|
@ -68,13 +68,13 @@ bool dAcOsw_c::createHeap() {
|
|||||||
nw4r::g3d::ResMdl resMdl = resFile.GetResMdl(SWITCH_TYPES[mSwitchType]);
|
nw4r::g3d::ResMdl resMdl = resFile.GetResMdl(SWITCH_TYPES[mSwitchType]);
|
||||||
TRY_CREATE(mModel.create(resMdl, &heap_allocator, 0x20, 1, nullptr));
|
TRY_CREATE(mModel.create(resMdl, &heap_allocator, 0x20, 1, nullptr));
|
||||||
|
|
||||||
field_0x5E8 = mScale.x *
|
field_0x5E8 = mScale.x * (resMdl.GetResNode("base").mNode.ref().VEC3_0x50.x -
|
||||||
(resMdl.GetResNode("base").mNode.ref().VEC3_0x50.x - resMdl.GetResNode("base").mNode.ref().VEC3_0x44.x);
|
resMdl.GetResNode("base").mNode.ref().VEC3_0x44.x);
|
||||||
cBgD_t *dbzData = (cBgD_t *)getOarcDZB(SWITCH_TYPES[mSwitchType], SWITCH_TYPES[mSwitchType]);
|
cBgD_t *dbzData = (cBgD_t *)getOarcDZB(SWITCH_TYPES[mSwitchType], SWITCH_TYPES[mSwitchType]);
|
||||||
PLC *plcData = (PLC *)getOarcPLC(SWITCH_TYPES[mSwitchType], SWITCH_TYPES[mSwitchType]);
|
PLC *plcData = (PLC *)getOarcPLC(SWITCH_TYPES[mSwitchType], SWITCH_TYPES[mSwitchType]);
|
||||||
mScale.set(1.0f, 0.8f, 1.0f);
|
mScale.set(1.0f, 0.8f, 1.0f);
|
||||||
updateMatrix();
|
updateMatrix();
|
||||||
field_0x5B8.set(mWorldMtx);
|
field_0x5B8.copyFrom(mWorldMtx);
|
||||||
mModel.setLocalMtx(mWorldMtx);
|
mModel.setLocalMtx(mWorldMtx);
|
||||||
|
|
||||||
bool set = mCollision.Set(dbzData, plcData, cBgW::MOVE_BG_e, &field_0x5B8, &mScale);
|
bool set = mCollision.Set(dbzData, plcData, cBgW::MOVE_BG_e, &field_0x5B8, &mScale);
|
||||||
@ -180,7 +180,7 @@ int dAcOsw_c::actorExecute() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateMatrix();
|
updateMatrix();
|
||||||
field_0x5B8.set(mWorldMtx);
|
field_0x5B8.copyFrom(mWorldMtx);
|
||||||
mMtx_c tmp;
|
mMtx_c tmp;
|
||||||
PSMTXTrans(tmp, 0.0f, mButtonCtrl.mElevation, 0.0f);
|
PSMTXTrans(tmp, 0.0f, mButtonCtrl.mElevation, 0.0f);
|
||||||
PSMTXConcat(field_0x5B8, tmp, field_0x5B8);
|
PSMTXConcat(field_0x5B8, tmp, field_0x5B8);
|
||||||
|
@ -492,8 +492,8 @@ void cBgW::RwgLineCheck(int polyIdx, cBgS_LinChk *pLine) {
|
|||||||
cBgD_Vtx_t *vtxTbl = mpVtxTbl;
|
cBgD_Vtx_t *vtxTbl = mpVtxTbl;
|
||||||
mVec3_c cross_pos;
|
mVec3_c cross_pos;
|
||||||
if (cM3d_Cross_LinTri(
|
if (cM3d_Cross_LinTri(
|
||||||
&pLine->mLin, &vtxTbl[triTbl[polyIdx].mVtxIdx0], &vtxTbl[triTbl[polyIdx].mVtxIdx1],
|
pLine->mLin, vtxTbl[triTbl[polyIdx].mVtxIdx0], vtxTbl[triTbl[polyIdx].mVtxIdx1],
|
||||||
&vtxTbl[triTbl[polyIdx].mVtxIdx2], &mpTri[polyIdx], &cross_pos, pLine->ChkFrontFlag(),
|
vtxTbl[triTbl[polyIdx].mVtxIdx2], &mpTri[polyIdx], cross_pos, pLine->ChkFrontFlag(),
|
||||||
pLine->ChkBackFlag()
|
pLine->ChkBackFlag()
|
||||||
)) {
|
)) {
|
||||||
dBgPc pc = *mpPolyCodes.GetDBgPc(mpBgd->mTriTbl[polyIdx].mId);
|
dBgPc pc = *mpPolyCodes.GetDBgPc(mpBgd->mTriTbl[polyIdx].mId);
|
||||||
|
@ -101,7 +101,7 @@ bool dBgWTime::LineCheck(cBgS_LinChk *pLine) {
|
|||||||
lin.Set(linStart, linEnd);
|
lin.Set(linStart, linEnd);
|
||||||
mVec3_c vec0;
|
mVec3_c vec0;
|
||||||
mVec3_c vec1;
|
mVec3_c vec1;
|
||||||
if (!cM3d_Cross_CylLin(&mCyl, &lin, vec0, vec1)) {
|
if (!cM3d_Cross_CylLin(mCyl, lin, vec0, vec1)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!fn_803537a0(&vec0, pLine)) {
|
if (!fn_803537a0(&vec0, pLine)) {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -14,6 +14,7 @@
|
|||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "nw4r/math/math_types.h"
|
#include "nw4r/math/math_types.h"
|
||||||
#include "rvl/MTX.h" // IWYU pragma: export
|
#include "rvl/MTX.h" // IWYU pragma: export
|
||||||
|
#include "rvl/MTX/vec.h"
|
||||||
|
|
||||||
using namespace nw4r::math;
|
using namespace nw4r::math;
|
||||||
using namespace EGG;
|
using namespace EGG;
|
||||||
@ -145,38 +146,40 @@ bool cM3d_Cross_LinSph_CrossPos(const cM3dGSph &, const cM3dGLin &, VEC3 *, VEC3
|
|||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool cM3d_Cross_CylSph(const cM3dGCyl *, const cM3dGSph *, f32 *) {
|
bool cM3d_Cross_CylSph(const cM3dGCyl &, const cM3dGSph &, f32 *) {
|
||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool cM3d_Cross_CylSph(const cM3dGCyl *, const cM3dGSph *, VEC3 *, f32 *) {
|
bool cM3d_Cross_CylSph(const cM3dGCyl &, const cM3dGSph &, VEC3 *, f32 *) {
|
||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool cM3d_Cross_SphSph(const cM3dGSph *, const cM3dGSph *, f32 *) {
|
bool cM3d_Cross_SphSph(const cM3dGSph &, const cM3dGSph &, f32 *) {
|
||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool cM3d_Cross_SphSph(const cM3dGSph *, const cM3dGSph *, f32 *, f32 *) {
|
bool cM3d_Cross_SphSph(const cM3dGSph &, const cM3dGSph &, f32 *, f32 *) {
|
||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool cM3d_Cross_SphSph(const cM3dGSph *, const cM3dGSph *, VEC3 *) {
|
bool cM3d_Cross_SphSph(const cM3dGSph &, const cM3dGSph &, VEC3 *) {
|
||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph *pSph, const cM3dGTri *pTri, VEC3 *pPnt) {
|
void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph &pSph, const cM3dGTri &pTri, VEC3 *pPnt) {
|
||||||
VEC3 scale, add;
|
VEC3 scale, add;
|
||||||
PSVECAdd(pTri->mA, pTri->mB, add);
|
PSVECAdd(pTri.mA, pTri.mB, add);
|
||||||
PSVECScale(add, scale, 0.5f);
|
PSVECScale(add, scale, 0.5f);
|
||||||
f32 mag = VEC3DistSq(&scale, &pSph->GetC());
|
const f32 mag = VEC3DistSq(&scale, &pSph.GetC());
|
||||||
if (cM3d_IsZero(mag)) {
|
if (cM3d_IsZero(mag)) {
|
||||||
*pPnt = pSph->GetC();
|
*pPnt = pSph.GetC();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
f32 a = pSph->GetR() / mag;
|
const f32 rad = pSph.GetR();
|
||||||
cM3d_InDivPos2(&pSph->GetC(), &scale, a, pPnt);
|
f32 a = rad / mag;
|
||||||
|
|
||||||
|
cM3d_InDivPos2(&pSph.GetC(), &scale, a, pPnt);
|
||||||
}
|
}
|
||||||
bool cM3d_Cross_SphTri(const cM3dGSph *, const cM3dGTri *, VEC3 *, f32 *, VEC3 *) {
|
bool cM3d_Cross_SphTri(const cM3dGSph *, const cM3dGTri *, VEC3 *, f32 *, VEC3 *) {
|
||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
@ -218,7 +221,7 @@ bool cM3d_Cross_TriTri(const cM3dGTri &, const cM3dGTri &, VEC3 *) {
|
|||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool cM3d_Cross_CpsTri(const cM3dGCps &, cM3dGTri, VEC3 *) {
|
bool cM3d_Cross_CpsTri(const cM3dGCps &, const cM3dGTri &, VEC3 *) {
|
||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -232,7 +235,7 @@ bool cM3d_3PlaneCrossPos(const cM3dGPla &, const cM3dGPla &, const cM3dGPla &, V
|
|||||||
// TODO - returns false to satisfy warning
|
// TODO - returns false to satisfy warning
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
f32 cM3d_lineVsPosSuisenCross(const cM3dGLin *, const VEC3 *, VEC3 *) {
|
f32 cM3d_lineVsPosSuisenCross(const cM3dGLin &, const VEC3 &, VEC3 *) {
|
||||||
// TODO - returns 0.0f to satisfy warning
|
// TODO - returns 0.0f to satisfy warning
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
}
|
}
|
||||||
@ -240,3 +243,23 @@ f32 cM3d_lineVsPosSuisenCross(const VEC3 &, const VEC3 &, const VEC3 &, VEC3 *)
|
|||||||
// TODO - returns 0.0f to satisfy warning
|
// TODO - returns 0.0f to satisfy warning
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cM3d_Normalize(nw4r::math::VEC3 *pPnt) {
|
||||||
|
f32 mag = PSVECMag(*pPnt);
|
||||||
|
if (cM3d_IsZero(mag)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
mag = 1.f / mag;
|
||||||
|
pPnt->x *= mag;
|
||||||
|
pPnt->y *= mag;
|
||||||
|
pPnt->z *= mag;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cM3d_Normalize_Ex(nw4r::math::VEC3 *pPnt) {
|
||||||
|
if (cM3d_Normalize(pPnt)) {
|
||||||
|
pPnt->x = 1.0f;
|
||||||
|
pPnt->y = 0.0f;
|
||||||
|
pPnt->z = 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -26,8 +26,8 @@ void cM3dGCps::Set(const mVec3_c &start, const mVec3_c &end, f32 r) {
|
|||||||
SetR(r);
|
SetR(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGCps::fn_80337f30(cM3dGUnk *unk, mVec3_c *vec) {
|
bool cM3dGCps::Cross(cM3dGUnk &unk, mVec3_c *vec) {
|
||||||
return fn_80336d90(this, unk, vec);
|
return cM3d_Cross_CpsUnk(*this, unk, vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGCps::fn_80337f40(const mVec3_c &v) const {
|
bool cM3dGCps::fn_80337f40(const mVec3_c &v) const {
|
||||||
@ -40,7 +40,7 @@ bool cM3dGCps::fn_80337f40(const mVec3_c &v) const {
|
|||||||
}
|
}
|
||||||
f32 tmp;
|
f32 tmp;
|
||||||
mVec3_c tmpv;
|
mVec3_c tmpv;
|
||||||
if (cM3d_Len3dSqPntAndSegLine(this, v, tmpv, &tmp, nullptr) && tmp <= r2) {
|
if (cM3d_Len3dSqPntAndSegLine(*this, v, tmpv, &tmp, nullptr) && tmp <= r2) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -27,12 +27,12 @@ void cM3dGCyl::SetR(f32 r) {
|
|||||||
mRadius = r;
|
mRadius = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGCyl::fn_803380e0(cM3dGUnk *unk, mVec3_c *vec) {
|
bool cM3dGCyl::Cross(cM3dGUnk &unk, mVec3_c *vec) {
|
||||||
return fn_80336110(this, unk, vec);
|
return cM3d_Cross_CylUnk(*this, unk, vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGCyl::fn_803380f0(cM3dGUnk *unk, f32 *vec) {
|
bool cM3dGCyl::Cross(cM3dGUnk &unk, f32 *vec) {
|
||||||
return fn_803364e0(this, unk, vec);
|
return cM3d_Cross_CylUnk(*this, unk, vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGCyl::Cross(const mVec3_c &pnt) const {
|
bool cM3dGCyl::Cross(const mVec3_c &pnt) const {
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#include "d/col/c/c_m3d_g_pla.h"
|
#include "d/col/c/c_m3d_g_pla.h"
|
||||||
|
|
||||||
#include "d/col/c/c_m3d.h"
|
#include "d/col/c/c_m3d.h"
|
||||||
|
#include "m/m_angle.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
bool cM3dGPla::CrossInfLin(const mVec3_c &start, const mVec3_c &end, mVec3_c &out) const {
|
bool cM3dGPla::CrossInfLin(const mVec3_c &start, const mVec3_c &end, mVec3_c &out) const {
|
||||||
f32 tmp1 = getPlaneFunc(start);
|
f32 tmp1 = getPlaneFunc(start);
|
||||||
@ -27,11 +29,11 @@ bool cM3dGPla::getCrossYLessD(const mVec3_c &point, f32 *out) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mAng cM3dGPla::GetAngle(mAng ang) const {
|
mAng cM3dGPla::GetAngle(mAng ang) const {
|
||||||
mAng angleY = GetAngleY();
|
mAng angleY = mNormal.getAngleY();
|
||||||
// Regswap
|
|
||||||
angleY = angleY - ang;
|
angleY = angleY - ang;
|
||||||
f32 dist = GetXZDist() * angleY.cos();
|
|
||||||
return cM::atan2s(dist, mNormal.y);
|
return cM::atan2s(GetXZDist() * angleY.cos(), mNormal.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
mAng cM3dGPla::GetNegativeAngle(mAng ang) const {
|
mAng cM3dGPla::GetNegativeAngle(mAng ang) const {
|
||||||
|
@ -27,12 +27,12 @@ void cM3dGSph::SetC(f32 x, f32 y, f32 z) {
|
|||||||
SetC(&c);
|
SetC(&c);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGSph::fn_80338750(cM3dGUnk *pUnk, mVec3_c *pOut) {
|
bool cM3dGSph::Cross(cM3dGUnk &pUnk, mVec3_c *pOut) {
|
||||||
return fn_80337690(pUnk, this, pOut);
|
return cM3d_Cross_UnkSph(pUnk, *this, pOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGSph::fn_80338760(cM3dGUnk *pUnk, f32 *pOut) {
|
bool cM3dGSph::Cross(cM3dGUnk &pUnk, f32 *pOut) {
|
||||||
return fn_80337780(pUnk, this, pOut);
|
return cM3d_Cross_UnkSph(pUnk, *this, pOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 cM3dGSph::GetYDist(f32 r) const {
|
f32 cM3dGSph::GetYDist(f32 r) const {
|
||||||
@ -44,7 +44,7 @@ f32 cM3dGSph::GetYDist(f32 r) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGSph::Cross(const cM3dGTri *pTri, f32 *p2, mVec3_c *p3) {
|
bool cM3dGSph::Cross(const cM3dGTri *pTri, f32 *p2, mVec3_c *p3) {
|
||||||
return cM3d_Cross_SphTri(this, pTri, nullptr, p2, p3);
|
return cM3d_Cross_SphTri(*this, *pTri, nullptr, p2, p3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cM3dGSph::Clamp(const mVec3_c &in, mVec3_c &out) const {
|
void cM3dGSph::Clamp(const mVec3_c &in, mVec3_c &out) const {
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
#include "d/col/c/c_m3d.h"
|
#include "d/col/c/c_m3d.h"
|
||||||
#include "d/col/c/c_m3d_g_aab.h"
|
#include "d/col/c/c_m3d_g_aab.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
#include "nw4r/types_nw4r.h"
|
||||||
|
|
||||||
cM3dGUnk::cM3dGUnk() {
|
cM3dGUnk::cM3dGUnk() {
|
||||||
mMin.set(0.0f, 0.0f, 0.0f);
|
mMin.set(0.0f, 0.0f, 0.0f);
|
||||||
mMax.set(0.0f, 0.0f, 0.0f);
|
mMax.set(0.0f, 0.0f, 0.0f);
|
||||||
mField_0x78.set(0.0f, 0.0f, 0.0f);
|
mLin.GetStart().set(0.0f, 0.0f, 0.0f);
|
||||||
mField_0x84.set(0.0f, 0.0f, 0.0f);
|
mLin.GetEnd().set(0.0f, 0.0f, 0.0f);
|
||||||
mField_0x90.set(0.0f, 0.0f, 0.0f);
|
mField_0x90.set(0.0f, 0.0f, 0.0f);
|
||||||
mField_0x9C.set(0.0f, 0.0f, 0.0f);
|
mField_0x9C.set(0.0f, 0.0f, 0.0f);
|
||||||
mField_0xA8.set(0.0f, 0.0f, 0.0f);
|
mField_0xA8.set(0.0f, 0.0f, 0.0f);
|
||||||
@ -22,9 +24,9 @@ void cM3dGUnk::Set(const mVec3_c &vA, const mVec3_c &vB) {
|
|||||||
mMin = vA;
|
mMin = vA;
|
||||||
mMax = vB;
|
mMax = vB;
|
||||||
|
|
||||||
mField_0x84 = (mMin + mMax) * 0.5f;
|
mLin.GetEnd() = (mMin + mMax) * 0.5f;
|
||||||
mField_0x90 = mMin - mField_0x84;
|
mField_0x90 = mMin - mLin.GetEnd();
|
||||||
mField_0x9C = mMax - mField_0x84;
|
mField_0x9C = mMax - mLin.GetEnd();
|
||||||
mField_0xA8 = (mMax - mMin) * 0.5f;
|
mField_0xA8 = (mMax - mMin) * 0.5f;
|
||||||
|
|
||||||
Update();
|
Update();
|
||||||
@ -34,9 +36,9 @@ void cM3dGUnk::Update() {
|
|||||||
mVec3_c a, b;
|
mVec3_c a, b;
|
||||||
PSMTXMultVec(mMtx, mMin, a);
|
PSMTXMultVec(mMtx, mMin, a);
|
||||||
PSMTXMultVec(mMtx, mMax, b);
|
PSMTXMultVec(mMtx, mMax, b);
|
||||||
mField_0x78.x = (a.x + b.x) * 0.5f;
|
mLin.GetStart().x = (a.x + b.x) * 0.5f;
|
||||||
mField_0x78.y = (a.y + b.y) * 0.5f;
|
mLin.GetStart().y = (a.y + b.y) * 0.5f;
|
||||||
mField_0x78.z = (a.z + b.z) * 0.5f;
|
mLin.GetStart().z = (a.z + b.z) * 0.5f;
|
||||||
if (!PSMTXInverse(mMtx, mInvMtx)) {
|
if (!PSMTXInverse(mMtx, mInvMtx)) {
|
||||||
PSMTXIdentity(mInvMtx);
|
PSMTXIdentity(mInvMtx);
|
||||||
}
|
}
|
||||||
@ -47,41 +49,41 @@ void cM3dGUnk::GetStartEnd(mVec3_c &start, mVec3_c &end) {
|
|||||||
end = mMax;
|
end = mMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cM3dGUnk::fn_80338c30(cM3dGCps *pCps, mVec3_c *pVec) {
|
bool cM3dGUnk::Cross(cM3dGCps &pCps, mVec3_c *pVec) {
|
||||||
fn_80336d90(pCps, this, pVec);
|
return cM3d_Cross_CpsUnk(pCps, *this, pVec);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGUnk::fn_80338c40(cM3dGUnk *pUnk, mVec3_c *pVec) {
|
bool cM3dGUnk::Cross(cM3dGTri &pUnk, mVec3_c *pVec) {
|
||||||
nw4r::math::VEC3 tmp;
|
nw4r::math::VEC3 tmp;
|
||||||
if (fn_803354e0(this, pUnk, &tmp)) {
|
if (cM3d_Cross_UnkTri(*this, pUnk, &tmp)) {
|
||||||
*pVec = tmp;
|
*pVec = tmp;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGUnk::fn_80338ca0() {
|
bool cM3dGUnk::Cross(cM3dGUnk &pUnk, mVec3_c *pVec) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGUnk::fn_80338cb0(cM3dGCyl *pCyl, mVec3_c *pVec) {
|
bool cM3dGUnk::Cross(cM3dGCyl &pCyl, mVec3_c *pVec) {
|
||||||
return fn_80336110(pCyl, this, pVec);
|
return cM3d_Cross_CylUnk(pCyl, *this, pVec);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGUnk::fn_80338cc0(cM3dGCyl *pCyl, f32 *pF) {
|
bool cM3dGUnk::Cross(cM3dGCyl &pCyl, f32 *pF) {
|
||||||
return fn_803364e0(pCyl, this, pF);
|
return cM3d_Cross_CylUnk(pCyl, *this, pF);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGUnk::fn_80338cd0(cM3dGSph *pSph, mVec3_c *pVec) {
|
bool cM3dGUnk::Cross(cM3dGSph &pSph, mVec3_c *pVec) {
|
||||||
return fn_80337690(this, pSph, pVec);
|
return cM3d_Cross_UnkSph(*this, pSph, pVec);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cM3dGUnk::fn_80338ce0(cM3dGSph *pSph, f32 *pF) {
|
bool cM3dGUnk::Cross(cM3dGSph &pSph, f32 *pF) {
|
||||||
return fn_80337780(this, pSph, pF);
|
return cM3d_Cross_UnkSph(*this, pSph, pF);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cM3dGUnk::Set(const mMtx_c &mtx) {
|
void cM3dGUnk::Set(const mMtx_c &mtx) {
|
||||||
mMtx.set(mtx);
|
mMtx.copyFrom(mtx);
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +91,7 @@ void cM3dGUnk::Set(const mVec3_c &vec, const mAng &ang) {
|
|||||||
mMtx_c mtx;
|
mMtx_c mtx;
|
||||||
PSMTXIdentity(mtx);
|
PSMTXIdentity(mtx);
|
||||||
mtx.YrotS(ang);
|
mtx.YrotS(ang);
|
||||||
mtx.SetTranslation(vec);
|
mtx.setTranslation(vec);
|
||||||
Set(mtx);
|
Set(mtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +129,7 @@ void cM3dGUnk::Clamp(const mVec3_c &in, mVec3_c &out) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void cM3dGUnk::fn_80338f30(f32 f0, f32 f1) {
|
void cM3dGUnk::fn_80338f30(f32 f0, f32 f1) {
|
||||||
mMtx.xw += f0;
|
mMtx(0, 3) += f0;
|
||||||
mMtx.zw += f1;
|
mMtx(2, 3) += f1;
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
@ -1,373 +1,92 @@
|
|||||||
#include "d/col/cc/d_cc_d.h"
|
#include "d/col/cc/d_cc_d.h"
|
||||||
|
|
||||||
#include "d/a/d_a_base.h"
|
#include "d/col/c/c_cc_d.h"
|
||||||
#include "f/f_base_id.h"
|
|
||||||
#include "m/m_vec.h"
|
#include "m/m_vec.h"
|
||||||
|
|
||||||
|
dCcD_Cps::dCcD_Cps() {}
|
||||||
|
dCcD_Cps::~dCcD_Cps() {}
|
||||||
|
|
||||||
inline bool cM3d_IsZero(f32 f);
|
void dCcD_Cps::Set(const dCcD_SrcCps &src) {
|
||||||
|
cCcD_Obj::Set(src.mObjInf);
|
||||||
mVec3_c dCcD_ShapeAttr::m_virtual_center = mVec3_c::Zero;
|
cCcD_CpsAttr::Set(src.mCpsInf);
|
||||||
|
|
||||||
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
|
cCcD_ShapeAttr *dCcD_Cps::GetShapeAttr() {
|
||||||
void dCcD_DivideArea::SetArea(cM3dGAab const &aab) {
|
return this;
|
||||||
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) {
|
void dCcD_Cps::unknownCalc() {
|
||||||
return fabsf(f) < FLT_EPSILON;
|
PSVECSubtract(mEnd, mStart, mAt.mVec);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 const l_base[32] = {
|
dCcD_Tri::dCcD_Tri() {}
|
||||||
0x00000001, 0x00000003, 0x00000007, 0x0000000F, 0x0000001F, 0x0000003F, 0x0000007F, 0x000000FF,
|
dCcD_Tri::~dCcD_Tri() {}
|
||||||
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
|
void dCcD_Tri::Set(const dCcD_SrcTri &src) {
|
||||||
|
cCcD_Obj::Set(src.mObjInf);
|
||||||
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() {
|
cCcD_ShapeAttr *dCcD_Tri::GetShapeAttr() {
|
||||||
field_0x04 = field_0x00;
|
return this;
|
||||||
field_0x00 = 0;
|
|
||||||
field_0x0C = field_0x08;
|
|
||||||
field_0x08 = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UnkCCDStruct::reset() {
|
dCcD_Cyl::dCcD_Cyl() {}
|
||||||
field_0x10 = mVec3_c::Zero;
|
dCcD_Cyl::~dCcD_Cyl() {}
|
||||||
field_0x1C = mVec3_c::Zero;
|
|
||||||
posIncrements = mVec3_c::Zero;
|
void dCcD_Cyl::Set(const dCcD_SrcCyl &src) {
|
||||||
|
cCcD_Obj::Set(src.mObjInf);
|
||||||
|
cCcD_CylAttr::Set(src.mCylInf);
|
||||||
}
|
}
|
||||||
|
|
||||||
fBaseID_e UnkCCDStruct::getId() {
|
cCcD_ShapeAttr *dCcD_Cyl::GetShapeAttr() {
|
||||||
if (field_0x34 != nullptr) {
|
return this;
|
||||||
return field_0x34->unique_ID;
|
|
||||||
}
|
|
||||||
return (fBaseID_e)0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 const sth[] = {0x4B, 0x5A, 0x64, 0x00};
|
void dCcD_Cyl::setCenter(const mVec3_c &c) {
|
||||||
|
SetAtVec(mVec3_c::Zero);
|
||||||
u32 UnkCCDStruct::getSomething(int arg) {
|
SetC(c);
|
||||||
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) {}
|
void dCcD_Cyl::moveCenter(const mVec3_c &c) {
|
||||||
|
SetAtVec(c - GetC());
|
||||||
dCcD_GAtTgCoCommonBase::~dCcD_GAtTgCoCommonBase() {
|
SetC(c);
|
||||||
unlink();
|
|
||||||
field_0x14 = 0;
|
|
||||||
unlink();
|
|
||||||
decreaseCount();
|
|
||||||
field_0x00 = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void dCcD_GAtTgCoCommonBase::unlink() {
|
dCcD_Sph::dCcD_Sph() {}
|
||||||
mActor.unlink();
|
dCcD_Sph::~dCcD_Sph() {}
|
||||||
|
|
||||||
|
void dCcD_Sph::Set(const dCcD_SrcSph &src) {
|
||||||
|
cCcD_Obj::Set(src.mObjInf);
|
||||||
|
cCcD_SphAttr::Set(src.mSphInf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dCcD_GAtTgCoCommonBase::setActor(dAcBase_c *actor) {
|
void dCcD_Sph::setCenter(const mVec3_c &c) {
|
||||||
field_0x14 |= 1;
|
SetAtVec(mVec3_c::Zero);
|
||||||
mActor.link(actor);
|
SetC(&c);
|
||||||
}
|
}
|
||||||
|
|
||||||
dAcBase_c *dCcD_GAtTgCoCommonBase::getActor() {
|
void dCcD_Sph::moveCenter(const mVec3_c &c) {
|
||||||
return mActor.get();
|
SetAtVec(c - GetC());
|
||||||
|
SetC(&c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dCcD_GAtTgCoCommonBase::decreaseCount() {
|
void dCcD_Sph::setCenterAndAtVec(const mVec3_c &a, const mVec3_c &b) {
|
||||||
if (mEffCounter <= 0) {
|
SetAtVec(b);
|
||||||
return;
|
SetC(&a);
|
||||||
}
|
|
||||||
mEffCounter--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dCcD_GObjInf::dCcD_GObjInf() {
|
cCcD_ShapeAttr *dCcD_Sph::GetShapeAttr() {
|
||||||
field_0x104 = nullptr;
|
return this;
|
||||||
field_0x108 = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dCcD_GObjInf::~dCcD_GObjInf() {
|
dCcD_Unk::dCcD_Unk() {}
|
||||||
field_0x104 = nullptr;
|
dCcD_Unk::~dCcD_Unk() {}
|
||||||
|
|
||||||
|
void dCcD_Unk::Set(const dCcD_SrcUnk &src) {
|
||||||
|
cCcD_Obj::Set(src.mObjInf);
|
||||||
|
cCcD_UnkAttr::Set(src.mUnkInf);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dCcD_GObjInf::weirdConditionCheck(dAcBase_c *ac, u32 arg) {
|
cCcD_ShapeAttr *dCcD_Unk::GetShapeAttr() {
|
||||||
return ac != nullptr && ac->isActorPlayer() && arg == 2;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool dCcD_GObjInf::CheckCollidedMask(u32 mask) {
|
|
||||||
return (mGObjTg.get0x58() & mask);
|
|
||||||
}
|
|
||||||
|
|
||||||
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) {
|
|
||||||
Set(mVec3_c(src.minX, src.minY, src.minZ), mVec3_c(src.maxX, src.maxY, src.maxZ));
|
|
||||||
}
|
|
||||||
|
|
||||||
mVec3_c *dCcD_ShapeAttr5::getVirtualCenter() {
|
|
||||||
return &mVirtCenter;
|
|
||||||
}
|
|
||||||
|
|
||||||
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) {}
|
|
||||||
|
276
src/d/col/cc/d_cc_mass_s.cpp
Normal file
276
src/d/col/cc/d_cc_mass_s.cpp
Normal file
@ -0,0 +1,276 @@
|
|||||||
|
#include "d/col/cc/d_cc_mass_s.h"
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "m/m_vec.h"
|
||||||
|
#include "rvl/MTX/vec.h"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Obj
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
dCcMassS_Obj::dCcMassS_Obj() {}
|
||||||
|
|
||||||
|
dCcMassS_Obj::~dCcMassS_Obj() {}
|
||||||
|
|
||||||
|
void dCcMassS_Obj::Set(cCcD_Obj *p_obj, u8 priority, dCcMassS_ObjCallback callback) {
|
||||||
|
mpObj = p_obj;
|
||||||
|
mPriority = priority;
|
||||||
|
mpCallback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcMassS_Obj::Clear() {
|
||||||
|
mpObj = nullptr;
|
||||||
|
mPriority = 5;
|
||||||
|
mpCallback = nullptr;
|
||||||
|
mDivideInfo.Set(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Hit Info
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
dCcMassS_HitInf::dCcMassS_HitInf() {}
|
||||||
|
|
||||||
|
dCcMassS_HitInf::~dCcMassS_HitInf() {}
|
||||||
|
|
||||||
|
void dCcMassS_HitInf::ClearPointer() {
|
||||||
|
mpArea = nullptr;
|
||||||
|
mpAtObj = nullptr;
|
||||||
|
mpCoObj = nullptr;
|
||||||
|
mCoHitLen = 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Manager
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
dCcMassS_Mng::dCcMassS_Mng() {
|
||||||
|
Ct();
|
||||||
|
}
|
||||||
|
|
||||||
|
dCcMassS_Mng ::~dCcMassS_Mng() {}
|
||||||
|
|
||||||
|
void dCcMassS_Mng::Ct() {
|
||||||
|
field_0x3AA = 0;
|
||||||
|
mResultCam = 0;
|
||||||
|
mCamTopPos.x = 0.0f;
|
||||||
|
mCamTopPos.y = -1000000000.0f;
|
||||||
|
mCamTopPos.z = 0.0f;
|
||||||
|
|
||||||
|
mCamBottomPos.x = 0.0f;
|
||||||
|
mCamBottomPos.y = -1000000000.0f;
|
||||||
|
mCamBottomPos.z = 0.0f;
|
||||||
|
|
||||||
|
Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcMassS_Mng::SetAttr(f32 radius, f32 height, u8 param_2, u8 param_3) {
|
||||||
|
mCylAttr.SetR(radius);
|
||||||
|
mCylAttr.SetH(height);
|
||||||
|
field_0x3A8 = param_2;
|
||||||
|
field_0x3A9 = param_3;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcMassS_Mng::Prepare() {
|
||||||
|
cM3dGAab aab;
|
||||||
|
aab.ClearForMinMax();
|
||||||
|
|
||||||
|
for (dCcMassS_Obj *pObj = mMassObjs; pObj < mMassObjs + mMassObjCount; ++pObj) {
|
||||||
|
cCcD_ShapeAttr *objShape = pObj->GetObj()->GetShapeAttr();
|
||||||
|
objShape->CalcAabBox();
|
||||||
|
aab.SetMinMax(objShape->GetWorkAab());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (dCcMassS_Obj *pObj = mMassAreas; pObj < mMassAreas + mMassAreaCount; ++pObj) {
|
||||||
|
cCcD_ShapeAttr *objShape = pObj->GetObj()->GetShapeAttr();
|
||||||
|
objShape->CalcAabBox();
|
||||||
|
aab.SetMinMax(objShape->GetWorkAab());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (field_0x3AA & 1) {
|
||||||
|
mCpsAttr.CalcAabBox();
|
||||||
|
aab.SetMinMax(mCpsAttr.GetWorkAab());
|
||||||
|
}
|
||||||
|
|
||||||
|
mDivideArea.SetArea(aab);
|
||||||
|
for (dCcMassS_Obj *pObj = mMassObjs; pObj < mMassObjs + mMassObjCount; ++pObj) {
|
||||||
|
cCcD_ShapeAttr *objShape = pObj->GetObj()->GetShapeAttr();
|
||||||
|
cCcD_DivideInfo *divideInfo = &pObj->GetDivideInfo();
|
||||||
|
mDivideArea.CalcDivideInfo(divideInfo, objShape->GetWorkAab());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (dCcMassS_Obj *pObj = mMassAreas; pObj < mMassAreas + mMassAreaCount; ++pObj) {
|
||||||
|
cCcD_ShapeAttr *objShape = pObj->GetObj()->GetShapeAttr();
|
||||||
|
cCcD_DivideInfo *divideInfo = &pObj->GetDivideInfo();
|
||||||
|
mDivideArea.CalcDivideInfo(divideInfo, objShape->GetWorkAab());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (field_0x3AA & 1) {
|
||||||
|
mDivideArea.CalcDivideInfo(&mDivideInfo, mCpsAttr.GetWorkAab());
|
||||||
|
}
|
||||||
|
|
||||||
|
mCamTopPos.x = 0.0f;
|
||||||
|
mCamTopPos.y = -1000000000.0f;
|
||||||
|
mCamTopPos.z = 0.0f;
|
||||||
|
mCamTopDist = 1000000000.0f;
|
||||||
|
|
||||||
|
mCamBottomPos.x = 0.0f;
|
||||||
|
mCamBottomPos.y = -1000000000.0f;
|
||||||
|
mCamBottomPos.z = 0.0f;
|
||||||
|
mCamBottomDist = 1000000000.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 dCcMassS_Mng::Chk(mVec3_c *p_xyz, dAcObjBase_c **p_actor, dCcMassS_HitInf *p_hitInf) {
|
||||||
|
cCcD_DivideInfo divideInfo;
|
||||||
|
u32 flagsMaybe = 0;
|
||||||
|
*p_actor = NULL;
|
||||||
|
|
||||||
|
mCylAttr.SetC(*p_xyz);
|
||||||
|
mCylAttr.CalcAabBox();
|
||||||
|
|
||||||
|
mDivideArea.CalcDivideInfoOverArea(÷Info, mCylAttr.GetWorkAab());
|
||||||
|
p_hitInf->ClearPointer();
|
||||||
|
|
||||||
|
if (field_0x3A8 & 8) {
|
||||||
|
for (dCcMassS_Obj *massObj = mMassAreas; massObj < mMassAreas + mMassAreaCount; ++massObj) {
|
||||||
|
if (massObj->GetDivideInfo().Chk(divideInfo)) {
|
||||||
|
cCcD_Obj *obj = massObj->GetObj();
|
||||||
|
cCcD_ShapeAttr *objShape = obj->GetShapeAttr();
|
||||||
|
f32 f;
|
||||||
|
if (obj->ChkCoSet() && mCylAttr.CrossCo(*objShape, &f)) {
|
||||||
|
flagsMaybe |= 4;
|
||||||
|
*p_actor = obj->GetStts()->GetAc();
|
||||||
|
if (p_hitInf != NULL) {
|
||||||
|
p_hitInf->SetAreaHitObj(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (massObj->GetCallback() != NULL) {
|
||||||
|
massObj->GetCallback()(obj->GetStts()->GetAc(), p_xyz, field_0x3A9);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (dCcMassS_Obj *massObj = mMassObjs; massObj < mMassObjs + mMassObjCount; ++massObj) {
|
||||||
|
if (massObj->GetDivideInfo().Chk(divideInfo)) {
|
||||||
|
cCcD_Obj *obj = massObj->GetObj();
|
||||||
|
cCcD_ShapeAttr *objShape = obj->GetShapeAttr();
|
||||||
|
mVec3_c unusedVec;
|
||||||
|
if (obj->ChkAtSet() && !obj->ChkAtNoMass() && (field_0x3A8 & 1)) {
|
||||||
|
*p_actor = obj->GetStts()->GetAc();
|
||||||
|
}
|
||||||
|
if (obj->ChkAtSet() && !obj->ChkAtNoMass() && mCylAttr.CrossAtTg(*objShape, &unusedVec) &&
|
||||||
|
(field_0x3A8 & 1)) {
|
||||||
|
flagsMaybe |= 1;
|
||||||
|
*p_actor = obj->GetStts()->GetAc();
|
||||||
|
if (p_hitInf != NULL) {
|
||||||
|
p_hitInf->SetAtHitObj(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f32 f;
|
||||||
|
if (obj->ChkCoSet() && mCylAttr.CrossCo(*objShape, &f) && (field_0x3A8 & 2)) {
|
||||||
|
flagsMaybe |= 2;
|
||||||
|
*p_actor = obj->GetStts()->GetAc();
|
||||||
|
|
||||||
|
if (field_0x3A8 & 0x10) {
|
||||||
|
mVec3_c vec;
|
||||||
|
PSVECSubtract((*p_actor)->GetPostion(), *p_xyz, vec);
|
||||||
|
vec.y = 0;
|
||||||
|
f32 vecMag = PSVECMag(vec);
|
||||||
|
if (cM3d_IsZero(vecMag)) {
|
||||||
|
vec.x = 1;
|
||||||
|
} else {
|
||||||
|
PSVECScale(vec, vec, f / vecMag);
|
||||||
|
}
|
||||||
|
obj->GetStts()->PlusCcMove(vec.x, vec.y, vec.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (p_hitInf != NULL) {
|
||||||
|
p_hitInf->SetCoHitObj(obj);
|
||||||
|
p_hitInf->SetCoHitLen(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f32 f;
|
||||||
|
if ((field_0x3AA & 1) && mDivideInfo.Chk(divideInfo) && mCylAttr.CrossCo(mCpsAttr, &f)) {
|
||||||
|
mResultCam |= 1;
|
||||||
|
mResultCam |= 1 << (field_0x3A9 + 1);
|
||||||
|
|
||||||
|
if ((mResultCam & 2) || (mResultCam & 8)) {
|
||||||
|
Vec tmpVec;
|
||||||
|
f32 plusH = p_xyz->y + mCylAttr.GetH();
|
||||||
|
tmpVec.x = p_xyz->x;
|
||||||
|
tmpVec.y = plusH;
|
||||||
|
tmpVec.z = p_xyz->z;
|
||||||
|
|
||||||
|
if (mCamTopPos.y < (20.0f + plusH)) {
|
||||||
|
f32 newCamTopDist = PSVECSquareDistance(&tmpVec, *mCpsAttr.GetStartP());
|
||||||
|
if (mCamTopDist > newCamTopDist) {
|
||||||
|
mCamTopDist = newCamTopDist;
|
||||||
|
mCamTopPos = tmpVec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mCamBottomPos.y < (20.0f + plusH)) {
|
||||||
|
f32 newCamBottomDist = PSVECSquareDistance(&tmpVec, *mCpsAttr.GetEndP());
|
||||||
|
if (mCamBottomDist > newCamBottomDist) {
|
||||||
|
mCamBottomDist = newCamBottomDist;
|
||||||
|
mCamBottomPos = tmpVec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return flagsMaybe;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcMassS_Mng::Clear() {
|
||||||
|
mMassObjCount = 0;
|
||||||
|
mMassAreaCount = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < (s32)ARRAY_LENGTH(mMassObjs); ++i) {
|
||||||
|
mMassObjs[i].Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < (s32)ARRAY_LENGTH(mMassAreas); ++i) {
|
||||||
|
mMassAreas[i].Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
mCylAttr.SetR(0.0f);
|
||||||
|
mCylAttr.SetH(0.0f);
|
||||||
|
field_0x3A8 = 0;
|
||||||
|
field_0x3A9 = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcMassS_Mng::SetObj(cCcD_Obj *p_obj, u8 priority) {
|
||||||
|
if (mMassObjCount >= (s32)ARRAY_LENGTH(mMassObjs)) {
|
||||||
|
for (int i = 0; i < (s32)ARRAY_LENGTH(mMassObjs); ++i) {
|
||||||
|
int prevPrio = mMassObjs[i].GetPriority();
|
||||||
|
if (prevPrio > priority || (prevPrio == priority)) {
|
||||||
|
mMassObjs[i].Set(p_obj, priority, nullptr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mMassObjs[mMassObjCount].Set(p_obj, priority, nullptr);
|
||||||
|
mMassObjCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcMassS_Mng::SetArea(cCcD_Obj *p_obj, u8 priority, dCcMassS_ObjCallback callback) {
|
||||||
|
if (mMassAreaCount >= (s32)ARRAY_LENGTH(mMassAreas)) {
|
||||||
|
for (int i = 0; i < (s32)ARRAY_LENGTH(mMassAreas); ++i) {
|
||||||
|
if (mMassAreas[i].GetPriority() > priority) {
|
||||||
|
mMassAreas[i].Set(p_obj, priority, callback);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mMassAreas[mMassAreaCount].Set(p_obj, priority, callback);
|
||||||
|
mMassAreaCount++;
|
||||||
|
}
|
||||||
|
}
|
180
src/d/col/cc/d_cc_s.cpp
Normal file
180
src/d/col/cc/d_cc_s.cpp
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
#include "d/col/cc/d_cc_s.h"
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "d/a/obj/d_a_obj_base.h"
|
||||||
|
#include "d/col/c/c_cc_d.h"
|
||||||
|
#include "d/col/c/c_m3d_g_aab.h"
|
||||||
|
#include "f/f_base.h"
|
||||||
|
#include "rvl/MTX/mtx.h"
|
||||||
|
|
||||||
|
dCcS *dCcS::sInstance;
|
||||||
|
|
||||||
|
dCcS *dCcS::GetInstance() {
|
||||||
|
return sInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcS::Ct_cCcS() {
|
||||||
|
for (cCcD_Obj **end = mpObjAt + ARRAY_LENGTH(mpObjAt), **obj = mpObjAt; obj < end; ++obj) {
|
||||||
|
*obj = nullptr;
|
||||||
|
}
|
||||||
|
mObjAtCount = 0;
|
||||||
|
|
||||||
|
for (cCcD_Obj **end = mpObjTg + ARRAY_LENGTH(mpObjTg), **obj = mpObjTg; obj < end; ++obj) {
|
||||||
|
*obj = nullptr;
|
||||||
|
}
|
||||||
|
mObjTgCount = 0;
|
||||||
|
|
||||||
|
for (cCcD_Obj **end = mpObjCo + ARRAY_LENGTH(mpObjCo), **obj = mpObjCo; obj < end; ++obj) {
|
||||||
|
*obj = nullptr;
|
||||||
|
}
|
||||||
|
mObjCoCount = 0;
|
||||||
|
|
||||||
|
for (cCcD_Obj **end = mpObj + ARRAY_LENGTH(mpObj), **obj = mpObj; obj < end; ++obj) {
|
||||||
|
*obj = nullptr;
|
||||||
|
}
|
||||||
|
mObjCount = 0;
|
||||||
|
|
||||||
|
for (UNKTYPE **end = mpUnk + ARRAY_LENGTH(mpUnk), **obj = mpUnk; obj < end; ++obj) {
|
||||||
|
*obj = nullptr;
|
||||||
|
}
|
||||||
|
mUnkCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dCcS::dCcS() {
|
||||||
|
sInstance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
dCcS::~dCcS() {
|
||||||
|
sInstance = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcS::Ct() {
|
||||||
|
Ct_cCcS();
|
||||||
|
mMassMng.Ct();
|
||||||
|
ClearArea();
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcS::Dt() {
|
||||||
|
Ct_cCcS();
|
||||||
|
ClearArea();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool dCcS::ChkRemoveActor(dAcObjBase_c *pActor) {
|
||||||
|
bool ret = false;
|
||||||
|
if (pActor && (pActor->delete_request || pActor->lifecycle_state == fBase_c::TO_BE_DELETED)) {
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool dCcS::ChkNoHitAtTg(cCcD_Obj *, cCcD_Obj *) {}
|
||||||
|
|
||||||
|
bool dCcS::ChkAtTgCommonHitInf(cCcD_Obj *, cCcD_Obj *) {}
|
||||||
|
|
||||||
|
void dCcS::ChkAtTg() {}
|
||||||
|
|
||||||
|
bool dCcS::ChkNoHitCo(cCcD_Obj *, cCcD_Obj *) {}
|
||||||
|
|
||||||
|
void dCcS::SetCoCommonHitInf(cCcD_Obj *, mVec3_c *, cCcD_Obj *, mVec3_c *, f32) {}
|
||||||
|
|
||||||
|
void dCcS::ChkCo() {}
|
||||||
|
|
||||||
|
bool dCcS::ChkSheildFrontRange(cCcD_Obj *, cCcD_Obj *) {}
|
||||||
|
|
||||||
|
bool dCcS::ChkShield(cCcD_Obj *, cCcD_Obj *, cCcD_ShieldChkCallback *) {}
|
||||||
|
|
||||||
|
bool dCcS::ChkAtTgHitAfterCross(bool, bool, cCcD_Obj *, cCcD_Obj *) {}
|
||||||
|
|
||||||
|
void dCcS::SetCoObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *) {}
|
||||||
|
|
||||||
|
void dCcS::SetPosCorrect(cCcD_Obj *, mVec3_c *, cCcD_Obj *, mVec3_c *, f32) {}
|
||||||
|
|
||||||
|
void dCcS::CalcParticleAngle(cCcD_Obj *, cCcD_Obj *, mAng3_c *, bool) {}
|
||||||
|
|
||||||
|
void dCcS::fn_80356fd0(mVec3_c *, cCcD_Obj *, cCcD_Obj *) {}
|
||||||
|
|
||||||
|
u32 dCcS::ProcAtTgHitmark(cCcD_Obj *, cCcD_Obj *, mVec3_c *, u32, mVec3_c *) {}
|
||||||
|
|
||||||
|
void dCcS::SetAtTgObjInf(bool, bool, cCcD_Obj *, cCcD_Obj *, mVec3_c *, bool) {}
|
||||||
|
|
||||||
|
bool dCcS::ChkCamera(mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32) {}
|
||||||
|
|
||||||
|
bool dCcS::ChkCameraPoint(
|
||||||
|
const mVec3_c &, const mVec3_c &, mVec3_c &, dAcObjBase_c *, dAcObjBase_c *, dAcObjBase_c *, f32
|
||||||
|
) {}
|
||||||
|
|
||||||
|
bool dCcS::ChkCo(const mVec3_c &, dAcObjBase_c *) {}
|
||||||
|
|
||||||
|
bool dCcS::fn_80357c90(const mVec3_c &, const mVec3_c &, u32, UNKTYPE **) {}
|
||||||
|
|
||||||
|
void dCcS::Set(cCcD_Obj *) {}
|
||||||
|
|
||||||
|
void dCcS::MoveAfterCheck() {}
|
||||||
|
|
||||||
|
void dCcS::RemoveDeadObj() {}
|
||||||
|
|
||||||
|
void dCcS::CalcArea() {
|
||||||
|
if (mbAreaSet) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cM3dGAab aab;
|
||||||
|
aab.ClearForMinMax();
|
||||||
|
for (cCcD_Obj **obj = mpObj; obj < mpObj + mObjCount; ++obj) {
|
||||||
|
cCcD_ShapeAttr *attr = (*obj)->GetShapeAttr();
|
||||||
|
attr->CalcAabBox();
|
||||||
|
aab.SetMinMax(attr->GetWorkAab());
|
||||||
|
}
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcS::Move() {
|
||||||
|
RemoveDeadObj();
|
||||||
|
CalcArea();
|
||||||
|
ChkAtTg();
|
||||||
|
ChkCo();
|
||||||
|
for (int i = 0; i < mObjTgCount; ++i) {
|
||||||
|
mpObjTg[i]->SetTg_0x4B(0);
|
||||||
|
}
|
||||||
|
MoveAfterCheck();
|
||||||
|
AdjustHitPos();
|
||||||
|
mObjAtCount = 0;
|
||||||
|
mObjTgCount = 0;
|
||||||
|
mObjCoCount = 0;
|
||||||
|
mObjCount = 0;
|
||||||
|
mUnkCount = 0;
|
||||||
|
mbAreaSet = false;
|
||||||
|
ClearArea();
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcS::MassClear() {
|
||||||
|
mMassMng.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcS::SetArea(mMtx_c *pMtx) {
|
||||||
|
if (mAreaCount >= 16) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// non-match: Huh
|
||||||
|
mAreas[mAreaCount].mInv = mAreas[mAreaCount].mMtx = *pMtx;
|
||||||
|
|
||||||
|
PSMTXInverse(mAreas[mAreaCount].mInv, mAreas[mAreaCount].mInv);
|
||||||
|
mAreaCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dCcS::ClearArea() {
|
||||||
|
mAreaCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void *STAGE_MANAGER;
|
||||||
|
extern "C" bool fn_8019A7A0(void *stg, f32 *, f32 *);
|
||||||
|
void dCcS::AdjustHitPos() {
|
||||||
|
f32 x, z;
|
||||||
|
if (STAGE_MANAGER && fn_8019A7A0(STAGE_MANAGER, &x, &z)) {
|
||||||
|
for (cCcD_Obj **obj = mpObj; obj < mpObj + mObjCount; ++obj) {
|
||||||
|
(*obj)->AdjustHitPos(x, z);
|
||||||
|
(*obj)->GetShapeAttr()->TranslateXZ(x, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,108 +0,0 @@
|
|||||||
#include "d/col/cc/d_cc_shape_colliders.h"
|
|
||||||
|
|
||||||
#include "d/col/cc/d_cc_d.h"
|
|
||||||
#include "m/m_vec.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(mCps.mEnd, mCps.mStart, *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;
|
|
||||||
}
|
|
@ -10,7 +10,6 @@
|
|||||||
#include "nw4r/g3d/g3d_scnmdlsmpl.h"
|
#include "nw4r/g3d/g3d_scnmdlsmpl.h"
|
||||||
#include "nw4r/g3d/g3d_state.h"
|
#include "nw4r/g3d/g3d_state.h"
|
||||||
|
|
||||||
|
|
||||||
// All of this is completely made up, as we don't have symbols for this TU
|
// All of this is completely made up, as we don't have symbols for this TU
|
||||||
// (contrary to the rest of m3d and most of nw4r::g3d)
|
// (contrary to the rest of m3d and most of nw4r::g3d)
|
||||||
|
|
||||||
@ -362,7 +361,7 @@ void mShadow_c::drawAllShadows() {
|
|||||||
GXSetCullMode(GX_CULL_BACK);
|
GXSetCullMode(GX_CULL_BACK);
|
||||||
GXSetDither(0);
|
GXSetDither(0);
|
||||||
GXSetClipMode(GX_CLIP_DISABLE);
|
GXSetClipMode(GX_CLIP_DISABLE);
|
||||||
GXLoadPosMtxImm(mMtx_c::Identity.m, 0);
|
GXLoadPosMtxImm(mMtx_c::Identity, 0);
|
||||||
GXSetCurrentMtx(0);
|
GXSetCurrentMtx(0);
|
||||||
Mtx44 mtx;
|
Mtx44 mtx;
|
||||||
C_MTXOrtho(mtx, 0.0f, wid, 0.0f, wid, 0.0f, 1.0f);
|
C_MTXOrtho(mtx, 0.0f, wid, 0.0f, wid, 0.0f, 1.0f);
|
||||||
@ -484,7 +483,7 @@ bool mShadowChild_c::addMdl(scnLeaf_c &mdl, const mQuat_c &quat) {
|
|||||||
if (mdl.getType() == 0) {
|
if (mdl.getType() == 0) {
|
||||||
mdl.getLocalMtx(mtx);
|
mdl.getLocalMtx(mtx);
|
||||||
} else {
|
} else {
|
||||||
mtx.set(static_cast<mCustomShadow_c &>(mdl).mMtx);
|
mtx.copyFrom(static_cast<mCustomShadow_c &>(mdl).mMtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO this copy is a bit weird (reads members in a different order)
|
// TODO this copy is a bit weird (reads members in a different order)
|
||||||
@ -614,7 +613,7 @@ void mCustomShadow_c::calc(mMtx_c mtx, mMtx_c &mtx2) {
|
|||||||
// TODO some shuffles
|
// TODO some shuffles
|
||||||
|
|
||||||
mVec3_c trans;
|
mVec3_c trans;
|
||||||
mtx2.set(mMtx);
|
mtx2.copyFrom(mMtx);
|
||||||
mVec3_c offset(0.0f, 0.0f, 0.0f);
|
mVec3_c offset(0.0f, 0.0f, 0.0f);
|
||||||
offset.y = field_0x48;
|
offset.y = field_0x48;
|
||||||
PSMTXMultVec(mtx2, offset, trans);
|
PSMTXMultVec(mtx2, offset, trans);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "m/m_angle.h"
|
#include "m/m_angle.h"
|
||||||
|
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
/** 80575c08 */
|
/** 80575c08 */
|
||||||
|
@ -21,7 +21,7 @@ src_dir = os.path.join(root_dir, "src")
|
|||||||
include_dirs = [
|
include_dirs = [
|
||||||
os.path.join(root_dir, "include"),
|
os.path.join(root_dir, "include"),
|
||||||
# Add additional include directories here
|
# Add additional include directories here
|
||||||
os.path.join(root_dir, "src"),
|
os.path.join(root_dir, "src"),
|
||||||
os.path.join(root_dir, "src", "PowerPC_EABI_Support", "MetroTRK"),
|
os.path.join(root_dir, "src", "PowerPC_EABI_Support", "MetroTRK"),
|
||||||
os.path.join(
|
os.path.join(
|
||||||
root_dir, "src", "PowerPC_EABI_Support", "MSL", "MSL_C", "MSL_Common", "Include"
|
root_dir, "src", "PowerPC_EABI_Support", "MSL", "MSL_C", "MSL_Common", "Include"
|
||||||
|
Loading…
Reference in New Issue
Block a user