d_a_obj_cb almost matching (#2265)

* d_a_obj_cb almost matching

* d_a_obj_bubblePillar OK

* Work on d_a_obj_fchain

* d_a_obj_gb OK

* daTimeFire_c OK

* d_a_obj_toaru_maki OK

* d_a_obj_ten OK
This commit is contained in:
hatal175 2024-12-17 01:16:19 +02:00 committed by GitHub
parent ee992eb80c
commit c5ab943cfc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 2329 additions and 2572 deletions

View File

@ -18,10 +18,10 @@ initModeEffOn__13daBubbPilar_cFv = .text:0x00000974; // type:function size:0x24
modeEffOn__13daBubbPilar_cFv = .text:0x00000998; // type:function size:0x118 scope:global modeEffOn__13daBubbPilar_cFv = .text:0x00000998; // type:function size:0x118 scope:global
Draw__13daBubbPilar_cFv = .text:0x00000AB0; // type:function size:0xDC scope:global Draw__13daBubbPilar_cFv = .text:0x00000AB0; // type:function size:0xDC scope:global
Delete__13daBubbPilar_cFv = .text:0x00000B8C; // type:function size:0x30 scope:global Delete__13daBubbPilar_cFv = .text:0x00000B8C; // type:function size:0x30 scope:global
daBubbPilar_Draw__FP13daBubbPilar_c = .text:0x00000BBC; // type:function size:0x2C scope:global daBubbPilar_Draw__FP13daBubbPilar_c = .text:0x00000BBC; // type:function size:0x2C scope:local
daBubbPilar_Execute__FP13daBubbPilar_c = .text:0x00000BE8; // type:function size:0x20 scope:global daBubbPilar_Execute__FP13daBubbPilar_c = .text:0x00000BE8; // type:function size:0x20 scope:local
daBubbPilar_Delete__FP13daBubbPilar_c = .text:0x00000C08; // type:function size:0x20 scope:global daBubbPilar_Delete__FP13daBubbPilar_c = .text:0x00000C08; // type:function size:0x20 scope:local
daBubbPilar_Create__FP10fopAc_ac_c = .text:0x00000C28; // type:function size:0x20 scope:global daBubbPilar_Create__FP10fopAc_ac_c = .text:0x00000C28; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00000C48; // type:function size:0x48 scope:global __dt__10cCcD_GSttsFv = .text:0x00000C48; // type:function size:0x48 scope:global
__dt__17daBubbPilar_HIO_cFv = .text:0x00000C90; // type:function size:0x5C scope:global __dt__17daBubbPilar_HIO_cFv = .text:0x00000C90; // type:function size:0x5C scope:global
__sinit_d_a_obj_bubblePilar_cpp = .text:0x00000CEC; // type:function size:0x70 scope:local __sinit_d_a_obj_bubblePilar_cpp = .text:0x00000CEC; // type:function size:0x70 scope:local
@ -36,13 +36,13 @@ mCcDObjInfo__13daBubbPilar_c = .rodata:0x00000000; // type:object size:0x30 scop
particle_id$3953 = .rodata:0x0000003C; // type:object size:0x6 scope:local particle_id$3953 = .rodata:0x0000003C; // type:object size:0x6 scope:local
@stringBase0 = .rodata:0x00000044; // type:object size:0x8 scope:local data:string_table @stringBase0 = .rodata:0x00000044; // type:object size:0x8 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local ...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local
mCcDCyl__13daBubbPilar_c = .data:0x00000020; // type:object size:0x44 scope:global mCcDCyl__13daBubbPilar_c = .data:0x00000020; // type:object size:0x44 scope:global
@3843 = .data:0x00000064; // type:object size:0xC scope:local @3843 = .data:0x00000064; // type:object size:0xC scope:local
@3844 = .data:0x00000070; // type:object size:0xC scope:local @3844 = .data:0x00000070; // type:object size:0xC scope:local
mode_proc$3842 = .data:0x0000007C; // type:object size:0x18 scope:local mode_proc$3842 = .data:0x0000007C; // type:object size:0x18 scope:local
l_daBubbPilar_Method = .data:0x00000094; // type:object size:0x20 scope:global l_daBubbPilar_Method = .data:0x00000094; // type:object size:0x20 scope:local
g_profile_Obj_awaPlar = .data:0x000000B4; // type:object size:0x30 scope:global g_profile_Obj_awaPlar = .data:0x000000B4; // type:object size:0x30 scope:global
__vt__10cCcD_GStts = .data:0x000000E4; // type:object size:0xC scope:global __vt__10cCcD_GStts = .data:0x000000E4; // type:object size:0xC scope:global
__vt__10dCcD_GStts = .data:0x000000F0; // type:object size:0xC scope:global __vt__10dCcD_GStts = .data:0x000000F0; // type:object size:0xC scope:global
@ -53,5 +53,5 @@ __vt__17daBubbPilar_HIO_c = .data:0x0000013C; // type:object size:0xC scope:glob
__vt__14mDoHIO_entry_c = .data:0x00000148; // type:object size:0xC scope:global __vt__14mDoHIO_entry_c = .data:0x00000148; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
@3623 = .bss:0x00000008; // type:object size:0xC scope:local @3623 = .bss:0x00000008; // type:object size:0xC scope:local
l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local
lbl_416_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte init$1367 = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte

View File

@ -1,14 +1,14 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global
daObj_Gb_Draw__FP12obj_gb_class = .text:0x00000078; // type:function size:0xE0 scope:global daObj_Gb_Draw__FP12obj_gb_class = .text:0x00000078; // type:function size:0xE0 scope:local
daObj_Gb_Execute__FP12obj_gb_class = .text:0x00000158; // type:function size:0x394 scope:global daObj_Gb_Execute__FP12obj_gb_class = .text:0x00000158; // type:function size:0x394 scope:local
__dt__4cXyzFv = .text:0x000004EC; // type:function size:0x3C scope:global __dt__4cXyzFv = .text:0x000004EC; // type:function size:0x3C scope:global
daObj_Gb_IsDelete__FP12obj_gb_class = .text:0x00000528; // type:function size:0x8 scope:global daObj_Gb_IsDelete__FP12obj_gb_class = .text:0x00000528; // type:function size:0x8 scope:local
daObj_Gb_Delete__FP12obj_gb_class = .text:0x00000530; // type:function size:0x5C scope:global daObj_Gb_Delete__FP12obj_gb_class = .text:0x00000530; // type:function size:0x5C scope:local
useHeapInit__FP10fopAc_ac_c = .text:0x0000058C; // type:function size:0x26C scope:global useHeapInit__FP10fopAc_ac_c = .text:0x0000058C; // type:function size:0x26C scope:local
__dt__12J3DFrameCtrlFv = .text:0x000007F8; // type:function size:0x48 scope:global __dt__12J3DFrameCtrlFv = .text:0x000007F8; // type:function size:0x48 scope:global
daObj_Gb_Create__FP10fopAc_ac_c = .text:0x00000840; // type:function size:0x2D0 scope:global daObj_Gb_Create__FP10fopAc_ac_c = .text:0x00000840; // type:function size:0x2D0 scope:local
__ct__4cXyzFv = .text:0x00000B10; // type:function size:0x4 scope:global __ct__4cXyzFv = .text:0x00000B10; // type:function size:0x4 scope:global
_ctors = .ctors:0x00000000; // type:label scope:global _ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global
@ -26,12 +26,12 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@4088 = .rodata:0x00000028; // type:object size:0x8 scope:local @4088 = .rodata:0x00000028; // type:object size:0x8 scope:local
@stringBase0 = .rodata:0x00000030; // type:object size:0xF scope:local data:string_table @stringBase0 = .rodata:0x00000030; // type:object size:0xF scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local ...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local
bmd$3914 = .data:0x00000020; // type:object size:0x8 scope:local bmd$3914 = .data:0x00000020; // type:object size:0x8 scope:local
brk$3915 = .data:0x00000028; // type:object size:0x8 scope:local brk$3915 = .data:0x00000028; // type:object size:0x8 scope:local
btk$3916 = .data:0x00000030; // type:object size:0x8 scope:local btk$3916 = .data:0x00000030; // type:object size:0x8 scope:local
dzb$3917 = .data:0x00000038; // type:object size:0x8 scope:local dzb$3917 = .data:0x00000038; // type:object size:0x8 scope:local
l_daObj_Gb_Method = .data:0x00000040; // type:object size:0x20 scope:global l_daObj_Gb_Method = .data:0x00000040; // type:object size:0x20 scope:local
g_profile_OBJ_GB = .data:0x00000060; // type:object size:0x30 scope:global g_profile_OBJ_GB = .data:0x00000060; // type:object size:0x30 scope:global
__vt__12J3DFrameCtrl = .data:0x00000090; // type:object size:0xC scope:global __vt__12J3DFrameCtrl = .data:0x00000090; // type:object size:0xC scope:global

View File

@ -6,10 +6,10 @@ __destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:glob
__ct__14daObj_TenHIO_cFv = .text:0x000000EC; // type:function size:0x28 scope:global __ct__14daObj_TenHIO_cFv = .text:0x000000EC; // type:function size:0x28 scope:global
InitCcSph__10daObjTEN_cFv = .text:0x00000114; // type:function size:0x6C scope:global InitCcSph__10daObjTEN_cFv = .text:0x00000114; // type:function size:0x6C scope:global
SetCcSph__10daObjTEN_cFv = .text:0x00000180; // type:function size:0x58 scope:global SetCcSph__10daObjTEN_cFv = .text:0x00000180; // type:function size:0x58 scope:global
useHeapInit__FP10fopAc_ac_c = .text:0x000001D8; // type:function size:0x2CC scope:global useHeapInit__FP10fopAc_ac_c = .text:0x000001D8; // type:function size:0x2CC scope:local
__dt__12J3DFrameCtrlFv = .text:0x000004A4; // type:function size:0x48 scope:global __dt__12J3DFrameCtrlFv = .text:0x000004A4; // type:function size:0x48 scope:global
daObjTEN_Create__FP10fopAc_ac_c = .text:0x000004EC; // type:function size:0x20 scope:global daObjTEN_Create__FP10fopAc_ac_c = .text:0x000004EC; // type:function size:0x20 scope:local
daObjTEN_Delete__FP10daObjTEN_c = .text:0x0000050C; // type:function size:0x24 scope:global daObjTEN_Delete__FP10daObjTEN_c = .text:0x0000050C; // type:function size:0x24 scope:local
WaitAction__10daObjTEN_cFv = .text:0x00000530; // type:function size:0x184 scope:global WaitAction__10daObjTEN_cFv = .text:0x00000530; // type:function size:0x184 scope:global
WallCheck__10daObjTEN_cFv = .text:0x000006B4; // type:function size:0x22C scope:global WallCheck__10daObjTEN_cFv = .text:0x000006B4; // type:function size:0x22C scope:global
__dt__8cM3dGPlaFv = .text:0x000008E0; // type:function size:0x48 scope:global __dt__8cM3dGPlaFv = .text:0x000008E0; // type:function size:0x48 scope:global
@ -28,14 +28,14 @@ ObjHit__10daObjTEN_cFv = .text:0x000021E8; // type:function size:0x188 scope:glo
Z_BufferChk__10daObjTEN_cFv = .text:0x00002370; // type:function size:0x17C scope:global Z_BufferChk__10daObjTEN_cFv = .text:0x00002370; // type:function size:0x17C scope:global
Delete__10daObjTEN_cFv = .text:0x000024EC; // type:function size:0x68 scope:global Delete__10daObjTEN_cFv = .text:0x000024EC; // type:function size:0x68 scope:global
setBaseMtx__10daObjTEN_cFv = .text:0x00002554; // type:function size:0x68 scope:global setBaseMtx__10daObjTEN_cFv = .text:0x00002554; // type:function size:0x68 scope:global
daObjTEN_Draw__FP10daObjTEN_c = .text:0x000025BC; // type:function size:0xE0 scope:global daObjTEN_Draw__FP10daObjTEN_c = .text:0x000025BC; // type:function size:0xE0 scope:local
daObjTEN_Execute__FP10daObjTEN_c = .text:0x0000269C; // type:function size:0x20 scope:global daObjTEN_Execute__FP10daObjTEN_c = .text:0x0000269C; // type:function size:0x20 scope:local
CreateChk__10daObjTEN_cFv = .text:0x000026BC; // type:function size:0x1AC scope:global CreateChk__10daObjTEN_cFv = .text:0x000026BC; // type:function size:0x1AC scope:global
create__10daObjTEN_cFv = .text:0x00002868; // type:function size:0x7F8 scope:global create__10daObjTEN_cFv = .text:0x00002868; // type:function size:0x7F8 scope:global
__dt__12dBgS_ObjAcchFv = .text:0x00003060; // type:function size:0x70 scope:global __dt__12dBgS_ObjAcchFv = .text:0x00003060; // type:function size:0x70 scope:global
__dt__8cM3dGSphFv = .text:0x000030D0; // type:function size:0x48 scope:global __dt__8cM3dGSphFv = .text:0x000030D0; // type:function size:0x48 scope:global
__dt__8cM3dGAabFv = .text:0x00003118; // type:function size:0x48 scope:global __dt__8cM3dGAabFv = .text:0x00003118; // type:function size:0x48 scope:global
daObjTEN_IsDelete__FP10daObjTEN_c = .text:0x00003160; // type:function size:0x8 scope:global daObjTEN_IsDelete__FP10daObjTEN_c = .text:0x00003160; // type:function size:0x8 scope:local
__dt__14daObj_TenHIO_cFv = .text:0x00003168; // type:function size:0x48 scope:global __dt__14daObj_TenHIO_cFv = .text:0x00003168; // type:function size:0x48 scope:global
__sinit_d_a_obj_ten_cpp = .text:0x000031B0; // type:function size:0x3C scope:local __sinit_d_a_obj_ten_cpp = .text:0x000031B0; // type:function size:0x3C scope:local
@36@__dt__12dBgS_ObjAcchFv = .text:0x000031EC; // type:function size:0x8 scope:local @36@__dt__12dBgS_ObjAcchFv = .text:0x000031EC; // type:function size:0x8 scope:local
@ -45,7 +45,7 @@ __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 sc
_dtors = .dtors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local ...rodata.0 = .rodata:0x00000000; // type:label scope:local
@3775 = .rodata:0x00000000; // type:object size:0x4 scope:local @3775 = .rodata:0x00000000; // type:object size:0x4 scope:local
l_ten_itemno = .rodata:0x00000004; // type:object size:0x2 scope:global l_ten_itemno = .rodata:0x00000004; // type:object size:0x2 scope:local
ccSphSrc$3779 = .rodata:0x00000008; // type:object size:0x40 scope:local ccSphSrc$3779 = .rodata:0x00000008; // type:object size:0x40 scope:local
@3788 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float @3788 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float
@3939 = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float @3939 = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float
@ -80,13 +80,13 @@ ccSphSrc$3779 = .rodata:0x00000008; // type:object size:0x40 scope:local
@4675 = .rodata:0x000000D4; // type:object size:0x4 scope:local @4675 = .rodata:0x000000D4; // type:object size:0x4 scope:local
@4738 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float @4738 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float
@4739 = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float @4739 = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float
l_musiya_num = .rodata:0x000000E0; // type:object size:0x4 scope:global data:2byte l_musiya_num = .rodata:0x000000E0; // type:object size:0x4 scope:local data:2byte
@5101 = .rodata:0x000000E4; // type:object size:0x4 scope:local @5101 = .rodata:0x000000E4; // type:object size:0x4 scope:local
@5102 = .rodata:0x000000E8; // type:object size:0x4 scope:local @5102 = .rodata:0x000000E8; // type:object size:0x4 scope:local
@5103 = .rodata:0x000000EC; // type:object size:0x4 scope:local @5103 = .rodata:0x000000EC; // type:object size:0x4 scope:local
@5104 = .rodata:0x000000F0; // type:object size:0x4 scope:local @5104 = .rodata:0x000000F0; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x000000F4; // type:object size:0xE scope:local data:string_table @stringBase0 = .rodata:0x000000F4; // type:object size:0xE scope:local data:string_table
l_daObjTEN_Method = .data:0x00000000; // type:object size:0x20 scope:global l_daObjTEN_Method = .data:0x00000000; // type:object size:0x20 scope:local
g_profile_Obj_Ten = .data:0x00000020; // type:object size:0x30 scope:global g_profile_Obj_Ten = .data:0x00000020; // type:object size:0x30 scope:global
__vt__12dBgS_ObjAcch = .data:0x00000050; // type:object size:0x24 scope:global __vt__12dBgS_ObjAcch = .data:0x00000050; // type:object size:0x24 scope:global
__vt__8cM3dGSph = .data:0x00000074; // type:object size:0xC scope:global __vt__8cM3dGSph = .data:0x00000074; // type:object size:0xC scope:global
@ -96,6 +96,6 @@ __vt__8cM3dGPla = .data:0x00000098; // type:object size:0xC scope:global
__vt__12J3DFrameCtrl = .data:0x000000A4; // type:object size:0xC scope:global __vt__12J3DFrameCtrl = .data:0x000000A4; // type:object size:0xC scope:global
__vt__14daObj_TenHIO_c = .data:0x000000B0; // type:object size:0xC scope:global __vt__14daObj_TenHIO_c = .data:0x000000B0; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_654_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte data_80D0BAB8 = .bss:0x00000008; // type:object size:0x1 scope:local data:byte
@3770 = .bss:0x0000000C; // type:object size:0xC scope:local @3770 = .bss:0x0000000C; // type:object size:0xC scope:local
l_HIO = .bss:0x00000018; // type:object size:0x10 scope:global data:float l_HIO = .bss:0x00000018; // type:object size:0x10 scope:local data:float

View File

@ -14,10 +14,10 @@ Execute__12daTimeFire_cFv = .text:0x00000388; // type:function size:0x1E0 scope:
fireCheck__12daTimeFire_cFUc = .text:0x00000568; // type:function size:0x220 scope:global fireCheck__12daTimeFire_cFUc = .text:0x00000568; // type:function size:0x220 scope:global
Draw__12daTimeFire_cFv = .text:0x00000788; // type:function size:0x8 scope:global Draw__12daTimeFire_cFv = .text:0x00000788; // type:function size:0x8 scope:global
Delete__12daTimeFire_cFv = .text:0x00000790; // type:function size:0x28 scope:global Delete__12daTimeFire_cFv = .text:0x00000790; // type:function size:0x28 scope:global
daTimeFire_Draw__FP12daTimeFire_c = .text:0x000007B8; // type:function size:0x20 scope:global daTimeFire_Draw__FP12daTimeFire_c = .text:0x000007B8; // type:function size:0x20 scope:local
daTimeFire_Execute__FP12daTimeFire_c = .text:0x000007D8; // type:function size:0x20 scope:global daTimeFire_Execute__FP12daTimeFire_c = .text:0x000007D8; // type:function size:0x20 scope:local
daTimeFire_Delete__FP12daTimeFire_c = .text:0x000007F8; // type:function size:0x20 scope:global daTimeFire_Delete__FP12daTimeFire_c = .text:0x000007F8; // type:function size:0x20 scope:local
daTimeFire_Create__FP10fopAc_ac_c = .text:0x00000818; // type:function size:0x20 scope:global daTimeFire_Create__FP10fopAc_ac_c = .text:0x00000818; // type:function size:0x20 scope:local
__dt__16daTimeFire_HIO_cFv = .text:0x00000838; // type:function size:0x5C scope:global __dt__16daTimeFire_HIO_cFv = .text:0x00000838; // type:function size:0x5C scope:global
__sinit_d_a_obj_timeFire_cpp = .text:0x00000894; // type:function size:0x3C scope:local __sinit_d_a_obj_timeFire_cpp = .text:0x00000894; // type:function size:0x3C scope:local
_ctors = .ctors:0x00000000; // type:label scope:global _ctors = .ctors:0x00000000; // type:label scope:global
@ -29,10 +29,10 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@3707 = .rodata:0x00000010; // type:object size:0x4 scope:local @3707 = .rodata:0x00000010; // type:object size:0x4 scope:local
@3708 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float @3708 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
@3757 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float @3757 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
l_daTimeFire_Method = .data:0x00000000; // type:object size:0x20 scope:global l_daTimeFire_Method = .data:0x00000000; // type:object size:0x20 scope:local
g_profile_Obj_TimeFire = .data:0x00000020; // type:object size:0x30 scope:global g_profile_Obj_TimeFire = .data:0x00000020; // type:object size:0x30 scope:global
__vt__16daTimeFire_HIO_c = .data:0x00000050; // type:object size:0xC scope:global __vt__16daTimeFire_HIO_c = .data:0x00000050; // type:object size:0xC scope:global
__vt__14mDoHIO_entry_c = .data:0x0000005C; // type:object size:0xC scope:global __vt__14mDoHIO_entry_c = .data:0x0000005C; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
@3621 = .bss:0x00000008; // type:object size:0xC scope:local @3621 = .bss:0x00000008; // type:object size:0xC scope:local
l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local

View File

@ -1,7 +1,7 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global
daObjToaruMaki_c_createHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:global daObjToaruMaki_c_createHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:local
__ct__16daObjToaruMaki_cFv = .text:0x00000098; // type:function size:0x48 scope:global __ct__16daObjToaruMaki_cFv = .text:0x00000098; // type:function size:0x48 scope:global
__dt__16daObjToaruMaki_cFv = .text:0x000000E0; // type:function size:0x8C scope:global __dt__16daObjToaruMaki_cFv = .text:0x000000E0; // type:function size:0x8C scope:global
createHeap__16daObjToaruMaki_cFv = .text:0x0000016C; // type:function size:0x148 scope:global createHeap__16daObjToaruMaki_cFv = .text:0x0000016C; // type:function size:0x148 scope:global
@ -10,16 +10,16 @@ Delete__16daObjToaruMaki_cFv = .text:0x000003C0; // type:function size:0x7C scop
setModelMtx__16daObjToaruMaki_cFv = .text:0x0000043C; // type:function size:0x64 scope:global setModelMtx__16daObjToaruMaki_cFv = .text:0x0000043C; // type:function size:0x64 scope:global
draw__16daObjToaruMaki_cFv = .text:0x000004A0; // type:function size:0x84 scope:global data:4byte draw__16daObjToaruMaki_cFv = .text:0x000004A0; // type:function size:0x84 scope:global data:4byte
execute__16daObjToaruMaki_cFv = .text:0x00000524; // type:function size:0x24 scope:global execute__16daObjToaruMaki_cFv = .text:0x00000524; // type:function size:0x24 scope:global
daObjToaruMaki_create__FP16daObjToaruMaki_c = .text:0x00000548; // type:function size:0x54 scope:global daObjToaruMaki_create__FP16daObjToaruMaki_c = .text:0x00000548; // type:function size:0x54 scope:local
daObjToaruMaki_Delete__FP16daObjToaruMaki_c = .text:0x0000059C; // type:function size:0x20 scope:global daObjToaruMaki_Delete__FP16daObjToaruMaki_c = .text:0x0000059C; // type:function size:0x20 scope:local
daObjToaruMaki_execute__FP16daObjToaruMaki_c = .text:0x000005BC; // type:function size:0x20 scope:global daObjToaruMaki_execute__FP16daObjToaruMaki_c = .text:0x000005BC; // type:function size:0x20 scope:local
daObjToaruMaki_draw__FP16daObjToaruMaki_c = .text:0x000005DC; // type:function size:0x20 scope:global daObjToaruMaki_draw__FP16daObjToaruMaki_c = .text:0x000005DC; // type:function size:0x20 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global _ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global
l_bmdIdx = .rodata:0x00000000; // type:object size:0x8 scope:global l_bmdIdx = .rodata:0x00000000; // type:object size:0x8 scope:local
l_heapSize = .rodata:0x00000008; // type:object size:0x8 scope:global l_heapSize = .rodata:0x00000008; // type:object size:0x8 scope:local
@stringBase0 = .rodata:0x00000010; // type:object size:0x10 scope:local data:string_table @stringBase0 = .rodata:0x00000010; // type:object size:0x10 scope:local data:string_table
l_arcName = .data:0x00000000; // type:object size:0x8 scope:global l_arcName = .data:0x00000000; // type:object size:0x8 scope:local
daObjToaruMaki_METHODS = .data:0x00000008; // type:object size:0x20 scope:global daObjToaruMaki_METHODS = .data:0x00000008; // type:object size:0x20 scope:local
g_profile_Obj_ToaruMaki = .data:0x00000028; // type:object size:0x30 scope:global g_profile_Obj_ToaruMaki = .data:0x00000028; // type:object size:0x30 scope:global
__vt__16daObjToaruMaki_c = .data:0x00000058; // type:object size:0xC scope:global __vt__16daObjToaruMaki_c = .data:0x00000058; // type:object size:0xC scope:global

View File

@ -1781,9 +1781,9 @@ config.libs = [
ActorRel(Matching, "d_a_obj_boumato"), ActorRel(Matching, "d_a_obj_boumato"),
ActorRel(NonMatching, "d_a_obj_brg"), ActorRel(NonMatching, "d_a_obj_brg"),
ActorRel(Matching, "d_a_obj_bsGate"), ActorRel(Matching, "d_a_obj_bsGate"),
ActorRel(NonMatching, "d_a_obj_bubblePilar"), ActorRel(Matching, "d_a_obj_bubblePilar"),
ActorRel(Matching, "d_a_obj_catdoor"), ActorRel(Matching, "d_a_obj_catdoor"),
ActorRel(NonMatching, "d_a_obj_cb"), ActorRel(Equivalent, "d_a_obj_cb"),
ActorRel(NonMatching, "d_a_obj_cblock"), ActorRel(NonMatching, "d_a_obj_cblock"),
ActorRel(Matching, "d_a_obj_cdoor"), ActorRel(Matching, "d_a_obj_cdoor"),
ActorRel(Matching, "d_a_obj_chandelier"), ActorRel(Matching, "d_a_obj_chandelier"),
@ -1822,7 +1822,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_gadget"), ActorRel(NonMatching, "d_a_obj_gadget"),
ActorRel(NonMatching, "d_a_obj_ganonwall"), ActorRel(NonMatching, "d_a_obj_ganonwall"),
ActorRel(NonMatching, "d_a_obj_ganonwall2"), ActorRel(NonMatching, "d_a_obj_ganonwall2"),
ActorRel(NonMatching, "d_a_obj_gb"), ActorRel(Matching, "d_a_obj_gb"),
ActorRel(NonMatching, "d_a_obj_geyser"), ActorRel(NonMatching, "d_a_obj_geyser"),
ActorRel(NonMatching, "d_a_obj_glowSphere"), ActorRel(NonMatching, "d_a_obj_glowSphere"),
ActorRel(NonMatching, "d_a_obj_gm"), ActorRel(NonMatching, "d_a_obj_gm"),
@ -2019,15 +2019,15 @@ config.libs = [
ActorRel(Matching, "d_a_obj_table"), ActorRel(Matching, "d_a_obj_table"),
ActorRel(NonMatching, "d_a_obj_takaraDai"), ActorRel(NonMatching, "d_a_obj_takaraDai"),
ActorRel(NonMatching, "d_a_obj_tatigi"), ActorRel(NonMatching, "d_a_obj_tatigi"),
ActorRel(NonMatching, "d_a_obj_ten"), ActorRel(Matching, "d_a_obj_ten"),
ActorRel(Matching, "d_a_obj_testcube"), ActorRel(Matching, "d_a_obj_testcube"),
ActorRel(Matching, "d_a_obj_tgake"), ActorRel(Matching, "d_a_obj_tgake"),
ActorRel(NonMatching, "d_a_obj_thashi"), ActorRel(NonMatching, "d_a_obj_thashi"),
ActorRel(NonMatching, "d_a_obj_thdoor"), ActorRel(NonMatching, "d_a_obj_thdoor"),
ActorRel(NonMatching, "d_a_obj_timeFire"), ActorRel(Matching, "d_a_obj_timeFire"),
ActorRel(NonMatching, "d_a_obj_tks"), ActorRel(NonMatching, "d_a_obj_tks"),
ActorRel(Matching, "d_a_obj_tmoon"), ActorRel(Matching, "d_a_obj_tmoon"),
ActorRel(NonMatching, "d_a_obj_toaru_maki"), ActorRel(Matching, "d_a_obj_toaru_maki"),
ActorRel(NonMatching, "d_a_obj_toby"), ActorRel(NonMatching, "d_a_obj_toby"),
ActorRel(NonMatching, "d_a_obj_tobyhouse"), ActorRel(NonMatching, "d_a_obj_tobyhouse"),
ActorRel(NonMatching, "d_a_obj_togeTrap"), ActorRel(NonMatching, "d_a_obj_togeTrap"),

View File

@ -1,6 +1,8 @@
#ifndef D_A_OBJ_BUBBLEPILAR_H #ifndef D_A_OBJ_BUBBLEPILAR_H
#define D_A_OBJ_BUBBLEPILAR_H #define D_A_OBJ_BUBBLEPILAR_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h" #include "f_op/f_op_actor_mng.h"
/** /**
@ -11,32 +13,58 @@
* @details * @details
* *
*/ */
class daBubbPilar_c : public fopAc_ac_c { class daBubbPilar_c : public dBgS_MoveBgActor {
public: public:
typedef void (daBubbPilar_c::*modeProc)();
enum Mode {
MODE_WAIT,
MODE_EFF_ON,
};
/* 80BC3460 */ void setBaseMtx(); /* 80BC3460 */ void setBaseMtx();
/* 80BC3518 */ void CreateHeap(); /* 80BC3518 */ int CreateHeap();
/* 80BC35D0 */ void create(); /* 80BC35D0 */ int create();
/* 80BC3934 */ void Execute(f32 (**)[3][4]); /* 80BC3934 */ int Execute(Mtx**);
/* 80BC3AB8 */ void initModeWait(); /* 80BC3AB8 */ void initModeWait();
/* 80BC3AC4 */ void modeWait(); /* 80BC3AC4 */ void modeWait();
/* 80BC3C74 */ void initModeEffOn(); /* 80BC3C74 */ void initModeEffOn();
/* 80BC3C98 */ void modeEffOn(); /* 80BC3C98 */ void modeEffOn();
/* 80BC3DB0 */ void Draw(); /* 80BC3DB0 */ int Draw();
/* 80BC3E8C */ void Delete(); /* 80BC3E8C */ int Delete();
static u8 const mCcDObjInfo[48]; u8 getArg0() { return fopAcM_GetParamBit(this, 8, 4); }
static u8 mCcDCyl[68]; u8 getSw() { return fopAcM_GetParamBit(this, 0, 8); }
static dCcD_SrcGObjInf const mCcDObjInfo;
static dCcD_SrcCyl mCcDCyl;
private: private:
/* 0x568 */ u8 field_0x568[0x750 - 0x568]; /* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mModels[2];
/* 0x5B0 */ dCcD_Stts mStts;
/* 0x5EC */ dCcD_Cyl mCyl;
/* 0x728 */ u8 field_0x728;
/* 0x729 */ u8 mMode;
/* 0x72A */ u8 mSw;
/* 0x72B */ u8 mArg0;
/* 0x72C */ u8 mIsSw;
/* 0x72D */ u8 mModelMode;
/* 0x72E */ s16 field_0x72e;
/* 0x730 */ int mEmitterIds[3];
/* 0x73C */ int mEmitterId;
/* 0x740 */ JPABaseEmitter* mEmitters[4];
}; };
STATIC_ASSERT(sizeof(daBubbPilar_c) == 0x750); STATIC_ASSERT(sizeof(daBubbPilar_c) == 0x750);
class daBubbPilar_HIO_c { class daBubbPilar_HIO_c : public mDoHIO_entry_c {
public: public:
/* 80BC33EC */ daBubbPilar_HIO_c(); /* 80BC33EC */ daBubbPilar_HIO_c();
/* 80BC3F90 */ ~daBubbPilar_HIO_c(); /* 80BC3F90 */ virtual ~daBubbPilar_HIO_c() {};
u8 field_0x4;
u8 field_0x5;
}; };

View File

@ -1,6 +1,8 @@
#ifndef D_A_OBJ_CB_H #ifndef D_A_OBJ_CB_H
#define D_A_OBJ_CB_H #define D_A_OBJ_CB_H
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h" #include "f_op/f_op_actor_mng.h"
/** /**
@ -12,8 +14,27 @@
* *
*/ */
class obj_cb_class : public fopAc_ac_c { class obj_cb_class : public fopAc_ac_c {
private: public:
/* 0x568 */ u8 field_0x568[0x97c - 0x568]; /* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModel* mModel;
/* 0x574 */ Z2SoundObjSimple mSoundObj;
/* 0x594 */ s16 field_0x594;
/* 0x596 */ s16 field_0x596;
/* 0x598 */ s16 field_0x598[2];
/* 0x59C */ s16 field_0x59c;
/* 0x59E */ s16 field_0x59e;
/* 0x5A0 */ csXyz field_0x5a0;
/* 0x5A8 */ f32 field_0x5a8;
/* 0x5AC */ dBgS_AcchCir mAcchCir;
/* 0x5EC */ dBgS_ObjAcch mAcch;
/* 0x7C4 */ int field_0x7c4;
/* 0x7C8 */ Mtx mBgMtx;
/* 0x7F8 */ dBgW* mBgW;
/* 0x7FC */ dCcD_Stts mStts;
/* 0x838 */ dCcD_Sph mSph;
/* 0x970 */ u32 field_0x970;
/* 0x974 */ u32 field_0x974;
/* 0x978 */ u8 field_0x978;
}; };
STATIC_ASSERT(sizeof(obj_cb_class) == 0x97c); STATIC_ASSERT(sizeof(obj_cb_class) == 0x97c);
@ -21,7 +42,9 @@ STATIC_ASSERT(sizeof(obj_cb_class) == 0x97c);
class daObj_Cb_HIO_c { class daObj_Cb_HIO_c {
public: public:
/* 80BC4B2C */ daObj_Cb_HIO_c(); /* 80BC4B2C */ daObj_Cb_HIO_c();
/* 80BC573C */ ~daObj_Cb_HIO_c(); /* 80BC573C */ virtual ~daObj_Cb_HIO_c() {}
s8 field_0x4;
}; };

View File

@ -3,10 +3,10 @@
#include "f_op/f_op_actor_mng.h" #include "f_op/f_op_actor_mng.h"
class daObjFchain_shape_c { class daObjFchain_shape_c : public J3DPacket {
public: public:
/* 80BE7194 */ void draw(); /* 80BE7194 */ virtual void draw();
/* 80BE73D4 */ ~daObjFchain_shape_c(); /* 80BE73D4 */ virtual ~daObjFchain_shape_c() {}
}; };
/** /**
@ -19,16 +19,29 @@ public:
*/ */
class daObjFchain_c : public fopAc_ac_c { class daObjFchain_c : public fopAc_ac_c {
public: public:
/* 80BE5FF8 */ void createHeap(); /* 80BE5FF8 */ int createHeap();
/* 80BE6074 */ void create(); /* 80BE6074 */ int create();
/* 80BE63C8 */ ~daObjFchain_c(); /* 80BE63C8 */ ~daObjFchain_c();
/* 80BE64E0 */ void checkPlayerFoot(cXyz const*, cXyz const*, cXyz*); /* 80BE64E0 */ void checkPlayerFoot(cXyz const*, cXyz const*, cXyz*);
/* 80BE66B4 */ void setGroundVec(cXyz*, f32); /* 80BE66B4 */ void setGroundVec(cXyz*, f32);
/* 80BE6868 */ void execute(); /* 80BE6868 */ int execute();
/* 80BE7324 */ void draw(); /* 80BE7324 */ int draw();
cXyz* getPos() { return field_0x694; }
csXyz* getAngle() { return field_0x8a4; }
J3DModelData* getModelData() { return mModelData; }
private: private:
/* 0x568 */ u8 field_0x568[0x928 - 0x568]; /* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModelData* mModelData;
/* 0x574 */ daObjFchain_shape_c mShape;
/* 0x584 */ s16 field_0x584;
/* 0x586 */ u16 field_0x586;
/* 0x588 */ s16 field_0x588;
/* 0x58C */ cXyz field_0x58c[22];
/* 0x694 */ cXyz field_0x694[22];
/* 0x79C */ cXyz field_0x79c[22];
/* 0x8A4 */ csXyz field_0x8a4[22];
}; };
STATIC_ASSERT(sizeof(daObjFchain_c) == 0x928); STATIC_ASSERT(sizeof(daObjFchain_c) == 0x928);

View File

@ -1,7 +1,10 @@
#ifndef D_A_OBJ_GB_H #ifndef D_A_OBJ_GB_H
#define D_A_OBJ_GB_H #define D_A_OBJ_GB_H
#include "f_op/f_op_actor_mng.h" #include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_actor.h"
class dBgW;
/** /**
* @ingroup actors-objects * @ingroup actors-objects
@ -12,8 +15,23 @@
* *
*/ */
class obj_gb_class : public fopAc_ac_c { class obj_gb_class : public fopAc_ac_c {
private: public:
/* 0x568 */ u8 field_0x568[0x6bc - 0x568]; /* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModel* mModel;
/* 0x574 */ mDoExt_btkAnm* mBtk;
/* 0x578 */ mDoExt_brkAnm* mBrk;
/* 0x57C */ u8 field_0x57c;
/* 0x57D */ u8 mColorAlpha;
/* 0x580 */ int mSw1;
/* 0x584 */ int mSw2;
/* 0x588 */ s16 mIsFinalBattle;
/* 0x58A */ s16 field_0x58a[2];
/* 0x58E */ s16 field_0x58e;
/* 0x58E */ f32 mBrkFrame;
/* 0x594 */ cXyz field_0x594[20];
/* 0x684 */ f32 field_0x684;
/* 0x688 */ Mtx mBgMtx;
/* 0x6B8 */ dBgW* mpBgW;
}; };
STATIC_ASSERT(sizeof(obj_gb_class) == 0x6bc); STATIC_ASSERT(sizeof(obj_gb_class) == 0x6bc);

View File

@ -1,6 +1,10 @@
#ifndef D_A_OBJ_TEN_H #ifndef D_A_OBJ_TEN_H
#define D_A_OBJ_TEN_H #define D_A_OBJ_TEN_H
#include "d/actor/d_a_player.h"
#include "d/d_bg_s_acch.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_cc_d.h"
#include "d/d_insect.h" #include "d/d_insect.h"
/** /**
@ -11,12 +15,18 @@
* @details * @details
* *
*/ */
class daObjTEN_c : public fopAc_ac_c { class daObjTEN_c : public dInsect_c {
public: public:
enum Action {
ACTION_WAIT,
ACTION_MOVE,
ACTION_WALK,
};
/* 80D087F4 */ void InitCcSph(); /* 80D087F4 */ void InitCcSph();
/* 80D08860 */ void SetCcSph(); /* 80D08860 */ void SetCcSph();
/* 80D08C10 */ void WaitAction(); /* 80D08C10 */ void WaitAction();
/* 80D08D94 */ void WallCheck(); /* 80D08D94 */ BOOL WallCheck();
/* 80D09008 */ void SpeedSet(); /* 80D09008 */ void SpeedSet();
/* 80D09114 */ void WallWalk(); /* 80D09114 */ void WallWalk();
/* 80D09548 */ void WalkAction(); /* 80D09548 */ void WalkAction();
@ -24,19 +34,48 @@ public:
/* 80D09F58 */ void Action(); /* 80D09F58 */ void Action();
/* 80D0A01C */ void ShopAction(); /* 80D0A01C */ void ShopAction();
/* 80D0A0D8 */ void checkGroundPos(); /* 80D0A0D8 */ void checkGroundPos();
/* 80D0A13C */ void Insect_Release(); /* 80D0A13C */ virtual void Insect_Release();
/* 80D0A154 */ void ParticleSet(); /* 80D0A154 */ void ParticleSet();
/* 80D0A278 */ void BoomChk(); /* 80D0A278 */ void BoomChk();
/* 80D0A644 */ void Execute(); /* 80D0A644 */ int Execute();
/* 80D0A8C8 */ void ObjHit(); /* 80D0A8C8 */ void ObjHit();
/* 80D0AA50 */ void Z_BufferChk(); /* 80D0AA50 */ void Z_BufferChk();
/* 80D0ABCC */ void Delete(); /* 80D0ABCC */ int Delete();
/* 80D0AC34 */ void setBaseMtx(); /* 80D0AC34 */ void setBaseMtx();
/* 80D0AD9C */ void CreateChk(); /* 80D0AD9C */ bool CreateChk();
/* 80D0AF48 */ void create(); /* 80D0AF48 */ int create();
private: /* 0x590 */ dBgS_GndChk mGndChk;
/* 0x568 */ u8 field_0x568[0xa68 - 0x568]; /* 0x5E4 */ f32 field_0x5e4;
/* 0x5E8 */ u8 mAction;
/* 0x5E9 */ u8 field_0x5e9;
/* 0x5EA */ s16 field_0x5ea[3];
/* 0x5F0 */ f32 field_0x5f0;
/* 0x5F4 */ f32 field_0x5f4;
/* 0x5F8 */ s16 field_0x5f8;
/* 0x5EC */ u8 field_0x5fa[0x602 - 0x5fa];
/* 0x602 */ csXyz field_0x602;
/* 0x608 */ s16 field_0x608;
/* 0x60A */ s16 field_0x60a;
/* 0x60C */ u8 field_0x60c;
/* 0x60D */ u8 field_0x60d;
/* 0x610 */ mDoExt_brkAnm* mBrk;
/* 0x614 */ mDoExt_btkAnm* mBtk;
/* 0x618 */ f32 field_0x618;
/* 0x61C */ u32 field_0x61c;
/* 0x620 */ f32 mParticleScale;
/* 0x624 */ u8 field_0x624;
/* 0x628 */ dCcD_Stts mStts;
/* 0x664 */ dCcD_Sph mSph;
/* 0x79C */ daPy_boomerangMove_c mBoomerang;
/* 0x7A8 */ u8 field_0x7a8;
/* 0x7AC */ dBgS_ObjAcch mAcch;
/* 0x984 */ dBgS_AcchCir mAcchCir;
/* 0x9C4 */ Z2Creature mCreature;
/* 0xA54 */ int field_0xa54;
/* 0xA58 */ mDoExt_McaMorfSO* mMorf;
/* 0xA5C */ request_of_phase_process_class mPhase;
/* 0xA64 */ u8 field_0xa64;
}; };
STATIC_ASSERT(sizeof(daObjTEN_c) == 0xa68); STATIC_ASSERT(sizeof(daObjTEN_c) == 0xa68);
@ -44,7 +83,11 @@ STATIC_ASSERT(sizeof(daObjTEN_c) == 0xa68);
class daObj_TenHIO_c { class daObj_TenHIO_c {
public: public:
/* 80D087CC */ daObj_TenHIO_c(); /* 80D087CC */ daObj_TenHIO_c();
/* 80D0B848 */ ~daObj_TenHIO_c(); /* 80D0B848 */ virtual ~daObj_TenHIO_c() {}
s8 field_0x4;
f32 field_0x8;
f32 field_0xc;
}; };

View File

@ -14,25 +14,44 @@
class daTimeFire_c : public fopAc_ac_c { class daTimeFire_c : public fopAc_ac_c {
public: public:
/* 80D0E958 */ void setBaseMtx(); /* 80D0E958 */ void setBaseMtx();
/* 80D0E9B0 */ void create(); /* 80D0E9B0 */ int create();
/* 80D0EACC */ void lightInit(); /* 80D0EACC */ void lightInit();
/* 80D0EB40 */ void setLight(); /* 80D0EB40 */ void setLight();
/* 80D0EB64 */ void cutLight(); /* 80D0EB64 */ void cutLight();
/* 80D0EB88 */ void Execute(); /* 80D0EB88 */ int Execute();
/* 80D0ED68 */ void fireCheck(u8); /* 80D0ED68 */ bool fireCheck(u8);
/* 80D0EF88 */ bool Draw(); /* 80D0EF88 */ int Draw();
/* 80D0EF90 */ void Delete(); /* 80D0EF90 */ int Delete();
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getStartTime() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getEndTime() { return fopAcM_GetParamBit(this, 16, 8); }
u8 getScale() { return fopAcM_GetParamBit(this, 24, 8); }
private: private:
/* 0x568 */ u8 field_0x568[0x5c0 - 0x568]; /* 0x568 */ u8 field_0x568;
/* 0x569 */ u8 field_0x569;
/* 0x56A */ u8 mStartTime;
/* 0x56B */ u8 mEndTime;
/* 0x56C */ bool field_0x56c;
/* 0x56D */ bool field_0x56d;
/* 0x570 */ cXyz field_0x570;
/* 0x57C */ cXyz mParticleScale;
/* 0x588 */ int mParticleId1;
/* 0x58c */ int mParticleId2;
/* 0x590 */ int mParticleId3;
/* 0x594 */ cXyz field_0x594;
/* 0x5A0 */ LIGHT_INFLUENCE mLightInfluence;
}; };
STATIC_ASSERT(sizeof(daTimeFire_c) == 0x5c0); STATIC_ASSERT(sizeof(daTimeFire_c) == 0x5c0);
class daTimeFire_HIO_c { class daTimeFire_HIO_c : public mDoHIO_entry_c {
public: public:
/* 80D0E8EC */ daTimeFire_HIO_c(); /* 80D0E8EC */ daTimeFire_HIO_c();
/* 80D0F038 */ ~daTimeFire_HIO_c(); /* 80D0F038 */ virtual ~daTimeFire_HIO_c() {}
u8 field_0x4;
}; };

View File

@ -27,7 +27,7 @@ public:
private: private:
/* 0x574 */ J3DModel* mpModel; /* 0x574 */ J3DModel* mpModel;
/* 0x578 */ s32 field_0x578; /* 0x578 */ dBgW* mpBgW;
/* 0x57C */ Mtx mMtx; /* 0x57C */ Mtx mMtx;
}; };

View File

@ -463,7 +463,7 @@ public:
ERFLG0_UNK_80000000 = 0x80000000, ERFLG0_UNK_80000000 = 0x80000000,
ERFLG0_UNK_40000000 = 0x40000000, ERFLG0_UNK_40000000 = 0x40000000,
ERFLG0_UNK_20000000 = 0x20000000, ERFLG0_UNK_20000000 = 0x20000000,
ERFLG0_UNK_10000000 = 0x10000000, ERFLG0_WOLF_FCHAIN_PULL = 0x10000000,
ERFLG0_UNK_8000000 = 0x8000000, ERFLG0_UNK_8000000 = 0x8000000,
ERFLG0_UNK_4000000 = 0x4000000, ERFLG0_UNK_4000000 = 0x4000000,
ERFLG0_BOSS_ROOM_WAIT = 0x2000000, ERFLG0_BOSS_ROOM_WAIT = 0x2000000,
@ -920,6 +920,7 @@ public:
void onForceAutoJump() { onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); } void onForceAutoJump() { onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); }
void onNotAutoJump() { onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); } void onNotAutoJump() { onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); }
void onNotHang() { onEndResetFlg0(ERFLG0_NOT_HANG); } void onNotHang() { onEndResetFlg0(ERFLG0_NOT_HANG); }
void onWolfFchainPull() { onEndResetFlg0(ERFLG0_WOLF_FCHAIN_PULL); }
void onShieldBackBone() { onEndResetFlg1(ERFLG1_GANON_FINISH); } void onShieldBackBone() { onEndResetFlg1(ERFLG1_GANON_FINISH); }
void onWolfEyeKeep() { onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP); } void onWolfEyeKeep() { onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP); }
void onPortalWarpMidnaAtnKeep() { onEndResetFlg2(ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP); } void onPortalWarpMidnaAtnKeep() { onEndResetFlg2(ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP); }

View File

@ -26,7 +26,7 @@ public:
void setItemNo(u8 i_itemNo) { m_itemNo = i_itemNo; } void setItemNo(u8 i_itemNo) { m_itemNo = i_itemNo; }
void setSaveBitNo(s16 i_saveBitNo) { m_saveBitNo = i_saveBitNo; } void setSaveBitNo(s16 i_saveBitNo) { m_saveBitNo = i_saveBitNo; }
protected: public:
/* 0x56C */ u8 field_0x56C; /* 0x56C */ u8 field_0x56C;
/* 0x56D */ bool mDraw; /* 0x56D */ bool mDraw;
/* 0x570 */ u32 mParticleKey1; /* 0x570 */ u32 mParticleKey1;

View File

@ -14274,7 +14274,7 @@ void daAlink_c::posMove() {
} }
setFootSpeed(); setFootSpeed();
if (checkEndResetFlg0(ERFLG0_UNK_10000000)) { if (checkEndResetFlg0(ERFLG0_WOLF_FCHAIN_PULL)) {
speedF = 0.0f; speedF = 0.0f;
mNormalSpeed = 0.0f; mNormalSpeed = 0.0f;
} }

View File

@ -4,116 +4,18 @@
*/ */
#include "d/actor/d_a_obj_bubblePilar.h" #include "d/actor/d_a_obj_bubblePilar.h"
#include "dol2asm.h" #include "d/d_com_inf_game.h"
#include "d/d_bg_w.h"
//
// Forward References:
//
extern "C" void __ct__17daBubbPilar_HIO_cFv();
extern "C" void __dt__14mDoHIO_entry_cFv();
extern "C" void setBaseMtx__13daBubbPilar_cFv();
extern "C" void CreateHeap__13daBubbPilar_cFv();
extern "C" void create__13daBubbPilar_cFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void Execute__13daBubbPilar_cFPPA3_A4_f();
extern "C" void initModeWait__13daBubbPilar_cFv();
extern "C" void modeWait__13daBubbPilar_cFv();
extern "C" void initModeEffOn__13daBubbPilar_cFv();
extern "C" void modeEffOn__13daBubbPilar_cFv();
extern "C" void Draw__13daBubbPilar_cFv();
extern "C" void Delete__13daBubbPilar_cFv();
extern "C" static void daBubbPilar_Draw__FP13daBubbPilar_c();
extern "C" static void daBubbPilar_Execute__FP13daBubbPilar_c();
extern "C" static void daBubbPilar_Delete__FP13daBubbPilar_c();
extern "C" static void daBubbPilar_Create__FP10fopAc_ac_c();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" void __dt__17daBubbPilar_HIO_cFv();
extern "C" void __sinit_d_a_obj_bubblePilar_cpp();
extern "C" u8 const mCcDObjInfo__13daBubbPilar_c[48];
extern "C" extern char const* const d_a_obj_bubblePilar__stringBase0;
extern "C" u8 mCcDCyl__13daBubbPilar_c[68];
//
// External References:
//
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void scaleM__14mDoMtx_stack_cFfff();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__16dBgS_MoveBgActorFv();
extern "C" bool Create__16dBgS_MoveBgActorFv();
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
extern "C" void
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
extern "C" void GetTgHitGObj__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void dKy_camera_water_in_status_check__Fv();
extern "C" void dKy_bg_MAxx_proc__FPv();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void SetC__8cM3dGCylFRC4cXyz();
extern "C" void SetH__8cM3dGCylFf();
extern "C" void SetR__8cM3dGCylFf();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_24();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_CylAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 80BC40BC-80BC40C8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ /* 80BC40BC-80BC40C8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}; };
/* 80BC40C8-80BC40DC 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ /* 80BC40C8-80BC40DC 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push #pragma push
#pragma force_active on #pragma force_active on
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201, 0x02000201,
/* padding */ /* padding */
0x40080000, 0x40080000,
@ -123,51 +25,242 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
}; };
#pragma pop #pragma pop
/* 80BC4224-80BC422C 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static daBubbPilar_HIO_c l_HIO;
/* 80BC4070-80BC40A0 000000 0030+00 3/3 0/0 0/0 .rodata mCcDObjInfo__13daBubbPilar_c */
const dCcD_SrcGObjInf daBubbPilar_c::mCcDObjInfo = {
{0, {{0, 0, 0}, {0x20, 0x11}, {0}}},
{dCcD_SE_NONE, 0, 1, 0, 0},
{dCcD_SE_NONE, 0, 0, 0, 2},
{0},
};
/* 80BC40DC-80BC4120 000020 0044+00 2/2 0/0 0/0 .data mCcDCyl__13daBubbPilar_c */ /* 80BC40DC-80BC4120 000020 0044+00 2/2 0/0 0/0 .data mCcDCyl__13daBubbPilar_c */
SECTION_DATA u8 daBubbPilar_c::mCcDCyl[68] = { dCcD_SrcCyl daBubbPilar_c::mCcDCyl = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, daBubbPilar_c::mCcDObjInfo,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {{0.0f, 0.0f, 0.0f}, 0.0f, 0.0f}
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}; };
/* 80BC4120-80BC412C -00001 000C+00 0/1 0/0 0/0 .data @3843 */ /* 80BC33EC-80BC3418 0000EC 002C+00 1/1 0/0 0/0 .text __ct__17daBubbPilar_HIO_cFv */
#pragma push daBubbPilar_HIO_c::daBubbPilar_HIO_c() {
#pragma force_active on field_0x4 = 20;
SECTION_DATA static void* lit_3843[3] = { field_0x5 = 0;
(void*)NULL, }
(void*)0xFFFFFFFF,
(void*)modeWait__13daBubbPilar_cFv,
};
#pragma pop
/* 80BC412C-80BC4138 -00001 000C+00 0/1 0/0 0/0 .data @3844 */ /* 80BC3460-80BC3518 000160 00B8+00 2/2 0/0 0/0 .text setBaseMtx__13daBubbPilar_cFv */
#pragma push void daBubbPilar_c::setBaseMtx() {
#pragma force_active on mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
SECTION_DATA static void* lit_3844[3] = { mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
(void*)NULL, mDoMtx_stack_c::scaleM(scale.x, scale.y, scale.z);
(void*)0xFFFFFFFF, cXyz baseScale(1.0f, 1.0f, 1.0f);
(void*)modeEffOn__13daBubbPilar_cFv, mModels[mModelMode]->setBaseScale(baseScale);
}; mModels[mModelMode]->setBaseTRMtx(mDoMtx_stack_c::get());
#pragma pop }
/* 80BC4138-80BC4150 00007C 0018+00 0/1 0/0 0/0 .data mode_proc$3842 */ /* 80BC3518-80BC35D0 000218 00B8+00 1/0 0/0 0/0 .text CreateHeap__13daBubbPilar_cFv */
#pragma push int daBubbPilar_c::CreateHeap() {
#pragma force_active on J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("M_Crack", 4);
SECTION_DATA static u8 mode_proc[24] = { JUT_ASSERT(226, modelData != 0);
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, mModels[MODE_WAIT] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, if (mModels[MODE_WAIT] == NULL) {
return 0;
}
modelData = (J3DModelData*)dComIfG_getObjectRes("M_Crack", 5);
JUT_ASSERT(237, modelData != 0);
mModels[MODE_EFF_ON] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (mModels[MODE_EFF_ON] == NULL) {
return 0;
}
return 1;
}
/* 80BC35D0-80BC3848 0002D0 0278+00 1/1 0/0 0/0 .text create__13daBubbPilar_cFv */
int daBubbPilar_c::create() {
fopAcM_SetupActor(this, daBubbPilar_c);
int rv = dComIfG_resLoad(&mPhase, "M_Crack");
switch (rv) {
case cPhs_COMPLEATE_e:
if (MoveBGCreate("M_Crack", 8, dBgS_MoveBGProc_Typical, 0x1900, NULL) == cPhs_ERROR_e) {
return cPhs_ERROR_e;
}
mStts.Init(200, 0xff, this);
mCyl.Set(mCcDCyl);
mCyl.SetStts(&mStts);
mArg0 = getArg0();
mSw = getSw();
if (mArg0 != 0) {
if (mpBgW != NULL) {
dComIfG_Bgsp().Release(mpBgW);
}
mCyl.OffTgSetBit();
}
if (mSw == 0xff) {
initModeEffOn();
mModelMode = MODE_EFF_ON;
} else {
mIsSw = fopAcM_isSwitch(this, mSw);
if (mIsSw != 0) {
initModeEffOn();
mModelMode = MODE_EFF_ON;
} else {
initModeWait();
mModelMode = MODE_WAIT;
}
}
fopAcM_SetMtx(this, mModels[mModelMode]->getBaseTRMtx());
fopAcM_setCullSizeBox2(this, mModels[mModelMode]->getModelData());
setBaseMtx();
for (int i = 0; i < 4; i++) {
mEmitters[i] = NULL;
}
rv = cPhs_COMPLEATE_e;
break;
}
return rv;
}
/* 80BC3934-80BC3AB8 000634 0184+00 1/0 0/0 0/0 .text Execute__13daBubbPilar_cFPPA3_A4_f
*/
int daBubbPilar_c::Execute(Mtx** param_1) {
static daBubbPilar_c::modeProc const mode_proc[2] = {
&daBubbPilar_c::modeWait,
&daBubbPilar_c::modeEffOn,
}; };
#pragma pop if (mSw != 0xff) {
u8 prevIsSw = mIsSw;
mIsSw = fopAcM_isSwitch(this, mSw);
if (prevIsSw != mIsSw) {
if (mIsSw != 0) {
initModeEffOn();
} else {
initModeWait();
}
}
}
(this->*(mode_proc[mMode]))();
if (dKy_camera_water_in_status_check()) {
for (int i = 0; i < 4; i++) {
if (mEmitters[i] != NULL) {
mEmitters[i]->setGlobalAlpha(0xff);
}
}
} else {
for (int i = 0; i < 4; i++) {
if (mEmitters[i] != NULL) {
mEmitters[i]->setGlobalAlpha(0x20);
}
}
}
*param_1 = &mModels[mModelMode]->getBaseTRMtx();
setBaseMtx();
return 1;
}
/* 80BC3AB8-80BC3AC4 0007B8 000C+00 2/2 0/0 0/0 .text initModeWait__13daBubbPilar_cFv */
void daBubbPilar_c::initModeWait() {
mMode = 0;
}
/* 80BC3AC4-80BC3C74 0007C4 01B0+00 1/0 0/0 0/0 .text modeWait__13daBubbPilar_cFv */
void daBubbPilar_c::modeWait() {
if (mArg0 == 0) {
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStartLevel(Z2SE_OBJ_WTR_STREAM_S, &current.pos, 0, reverb);
mEmitterId = dComIfGp_particle_set(mEmitterId, 0x88bd, &current.pos, &shape_angle, &scale);
mEmitters[3] = (JPABaseEmitter*)dComIfGp_particle_getEmitter(mEmitterId);
if (mCyl.ChkTgHit()) {
if ((mCyl.GetTgHitGObj()->GetAtType() & AT_TYPE_BOMB) != 0) {
mModelMode = MODE_EFF_ON;
fopAcM_SetMtx(this, mModels[mModelMode]->getBaseTRMtx());
fopAcM_setCullSizeBox2(this, mModels[mModelMode]->getModelData());
fopAcM_onSwitch(this, mSw);
}
}
mCyl.SetR(100.0f);
mCyl.SetH(100.0f);
mCyl.SetC(current.pos);
dComIfG_Ccsp()->Set(&mCyl);
}
}
/* 80BC3C74-80BC3C98 000974 0024+00 2/2 0/0 0/0 .text initModeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::initModeEffOn() {
if (mArg0 == 0) {
mCyl.OffTgSetBit();
}
mMode = 1;
}
/* 80BC40AC-80BC40B4 00003C 0006+02 0/1 0/0 0/0 .rodata particle_id$3953 */
static u16 const particle_id[3] = {
0x88BE,
0x88BF,
0x88C0,
};
/* 80BC3C98-80BC3DB0 000998 0118+00 1/0 0/0 0/0 .text modeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::modeEffOn() {
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStartLevel(Z2SE_OBJ_WTR_STREAM, &current.pos, 0, reverb);
for (int i = 0; i < 3; i = i + 1) {
mEmitterIds[i] = dComIfGp_particle_set(
mEmitterIds[i],
particle_id[i],
&current.pos, &shape_angle,
&scale);
mEmitters[i] = dComIfGp_particle_getEmitter(mEmitterIds[i]);
}
}
/* 80BC3DB0-80BC3E8C 000AB0 00DC+00 1/0 0/0 0/0 .text Draw__13daBubbPilar_cFv */
int daBubbPilar_c::Draw() {
if (mArg0 == 0) {
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModels[mModelMode], &tevStr);
dKy_bg_MAxx_proc(mModels[mModelMode]);
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mModels[mModelMode]);
dComIfGd_setList();
}
return 1;
}
/* 80BC3E8C-80BC3EBC 000B8C 0030+00 1/0 0/0 0/0 .text Delete__13daBubbPilar_cFv */
int daBubbPilar_c::Delete() {
dComIfG_resDelete(&mPhase, "M_Crack");
return 1;
}
/* 80BC3EBC-80BC3EE8 000BBC 002C+00 1/0 0/0 0/0 .text daBubbPilar_Draw__FP13daBubbPilar_c
*/
static int daBubbPilar_Draw(daBubbPilar_c* i_this) {
return i_this->MoveBGDraw();
}
/* 80BC3EE8-80BC3F08 000BE8 0020+00 1/0 0/0 0/0 .text daBubbPilar_Execute__FP13daBubbPilar_c */
static int daBubbPilar_Execute(daBubbPilar_c* i_this) {
return i_this->MoveBGExecute();
}
/* 80BC3F08-80BC3F28 000C08 0020+00 1/0 0/0 0/0 .text daBubbPilar_Delete__FP13daBubbPilar_c */
static int daBubbPilar_Delete(daBubbPilar_c* i_this) {
return i_this->MoveBGDelete();
}
/* 80BC3F28-80BC3F48 000C28 0020+00 1/0 0/0 0/0 .text daBubbPilar_Create__FP10fopAc_ac_c
*/
static int daBubbPilar_Create(fopAc_ac_c* i_this) {
return static_cast<daBubbPilar_c*>(i_this)->create();
}
/* 80BC4150-80BC4170 -00001 0020+00 1/0 0/0 0/0 .data l_daBubbPilar_Method */ /* 80BC4150-80BC4170 -00001 0020+00 1/0 0/0 0/0 .data l_daBubbPilar_Method */
static actor_method_class l_daBubbPilar_Method = { static actor_method_class l_daBubbPilar_Method = {
(process_method_func)daBubbPilar_Create__FP10fopAc_ac_c, (process_method_func)daBubbPilar_Create,
(process_method_func)daBubbPilar_Delete__FP13daBubbPilar_c, (process_method_func)daBubbPilar_Delete,
(process_method_func)daBubbPilar_Execute__FP13daBubbPilar_c, (process_method_func)daBubbPilar_Execute,
0, NULL,
(process_method_func)daBubbPilar_Draw__FP13daBubbPilar_c, (process_method_func)daBubbPilar_Draw,
}; };
/* 80BC4170-80BC41A0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_awaPlar */ /* 80BC4170-80BC41A0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_awaPlar */
@ -188,246 +281,4 @@ extern actor_process_profile_definition g_profile_Obj_awaPlar = {
fopAc_CULLBOX_CUSTOM_e, // cullType fopAc_CULLBOX_CUSTOM_e, // cullType
}; };
/* 80BC41A0-80BC41AC 0000E4 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10cCcD_GSttsFv,
};
/* 80BC41AC-80BC41B8 0000F0 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dCcD_GSttsFv,
};
/* 80BC41B8-80BC41C4 0000FC 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 80BC41C4-80BC41D0 000108 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80BC41D0-80BC41F8 000114 0028+00 1/1 0/0 0/0 .data __vt__13daBubbPilar_c */
SECTION_DATA extern void* __vt__13daBubbPilar_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__13daBubbPilar_cFv,
(void*)Create__16dBgS_MoveBgActorFv,
(void*)Execute__13daBubbPilar_cFPPA3_A4_f,
(void*)Draw__13daBubbPilar_cFv,
(void*)Delete__13daBubbPilar_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80BC41F8-80BC4204 00013C 000C+00 2/2 0/0 0/0 .data __vt__17daBubbPilar_HIO_c */
SECTION_DATA extern void* __vt__17daBubbPilar_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__17daBubbPilar_HIO_cFv,
};
/* 80BC4204-80BC4210 000148 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */
SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14mDoHIO_entry_cFv,
};
/* 80BC33EC-80BC3418 0000EC 002C+00 1/1 0/0 0/0 .text __ct__17daBubbPilar_HIO_cFv */
daBubbPilar_HIO_c::daBubbPilar_HIO_c() {
// NONMATCHING
}
/* 80BC3418-80BC3460 000118 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */
// mDoHIO_entry_c::~mDoHIO_entry_c() {
extern "C" void __dt__14mDoHIO_entry_cFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC4070-80BC40A0 000000 0030+00 3/3 0/0 0/0 .rodata mCcDObjInfo__13daBubbPilar_c */
SECTION_RODATA u8 const daBubbPilar_c::mCcDObjInfo[48] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC4070, &daBubbPilar_c::mCcDObjInfo);
/* 80BC40A0-80BC40A4 000030 0004+00 1/3 0/0 0/0 .rodata @3654 */
SECTION_RODATA static f32 const lit_3654 = 1.0f;
COMPILER_STRIP_GATE(0x80BC40A0, &lit_3654);
/* 80BC3460-80BC3518 000160 00B8+00 2/2 0/0 0/0 .text setBaseMtx__13daBubbPilar_cFv */
void daBubbPilar_c::setBaseMtx() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC40B4-80BC40B4 000044 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BC40B4 = "M_Crack";
#pragma pop
/* 80BC3518-80BC35D0 000218 00B8+00 1/0 0/0 0/0 .text CreateHeap__13daBubbPilar_cFv */
void daBubbPilar_c::CreateHeap() {
// NONMATCHING
}
/* 80BC35D0-80BC3848 0002D0 0278+00 1/1 0/0 0/0 .text create__13daBubbPilar_cFv */
void daBubbPilar_c::create() {
// NONMATCHING
}
/* 80BC3848-80BC3890 000548 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80BC3890-80BC38D8 000590 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80BC38D8-80BC3934 0005D8 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
// dCcD_GStts::~dCcD_GStts() {
extern "C" void __dt__10dCcD_GSttsFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC4218-80BC4224 000008 000C+00 1/1 0/0 0/0 .bss @3623 */
static u8 lit_3623[12];
/* 80BC4224-80BC422C 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static u8 l_HIO[8];
/* 80BC422C-80BC4230 00001C 0004+00 1/1 0/0 0/0 .bss None */
static u8 data_80BC422C[4];
/* 80BC3934-80BC3AB8 000634 0184+00 1/0 0/0 0/0 .text Execute__13daBubbPilar_cFPPA3_A4_f
*/
void daBubbPilar_c::Execute(f32 (**param_0)[3][4]) {
// NONMATCHING
}
/* 80BC3AB8-80BC3AC4 0007B8 000C+00 2/2 0/0 0/0 .text initModeWait__13daBubbPilar_cFv */
void daBubbPilar_c::initModeWait() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC40A4-80BC40A8 000034 0004+00 0/2 0/0 0/0 .rodata @3939 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3939 = -1.0f;
COMPILER_STRIP_GATE(0x80BC40A4, &lit_3939);
#pragma pop
/* 80BC40A8-80BC40AC 000038 0004+00 0/1 0/0 0/0 .rodata @3940 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3940 = 100.0f;
COMPILER_STRIP_GATE(0x80BC40A8, &lit_3940);
#pragma pop
/* 80BC3AC4-80BC3C74 0007C4 01B0+00 1/0 0/0 0/0 .text modeWait__13daBubbPilar_cFv */
void daBubbPilar_c::modeWait() {
// NONMATCHING
}
/* 80BC3C74-80BC3C98 000974 0024+00 2/2 0/0 0/0 .text initModeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::initModeEffOn() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC40AC-80BC40B4 00003C 0006+02 0/1 0/0 0/0 .rodata particle_id$3953 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const particle_id[6 + 2 /* padding */] = {
0x88,
0xBE,
0x88,
0xBF,
0x88,
0xC0,
/* padding */
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BC40AC, &particle_id);
#pragma pop
/* 80BC3C98-80BC3DB0 000998 0118+00 1/0 0/0 0/0 .text modeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::modeEffOn() {
// NONMATCHING
}
/* 80BC3DB0-80BC3E8C 000AB0 00DC+00 1/0 0/0 0/0 .text Draw__13daBubbPilar_cFv */
void daBubbPilar_c::Draw() {
// NONMATCHING
}
/* 80BC3E8C-80BC3EBC 000B8C 0030+00 1/0 0/0 0/0 .text Delete__13daBubbPilar_cFv */
void daBubbPilar_c::Delete() {
// NONMATCHING
}
/* 80BC3EBC-80BC3EE8 000BBC 002C+00 1/0 0/0 0/0 .text daBubbPilar_Draw__FP13daBubbPilar_c
*/
static void daBubbPilar_Draw(daBubbPilar_c* param_0) {
// NONMATCHING
}
/* 80BC3EE8-80BC3F08 000BE8 0020+00 1/0 0/0 0/0 .text daBubbPilar_Execute__FP13daBubbPilar_c */
static void daBubbPilar_Execute(daBubbPilar_c* param_0) {
// NONMATCHING
}
/* 80BC3F08-80BC3F28 000C08 0020+00 1/0 0/0 0/0 .text daBubbPilar_Delete__FP13daBubbPilar_c */
static void daBubbPilar_Delete(daBubbPilar_c* param_0) {
// NONMATCHING
}
/* 80BC3F28-80BC3F48 000C28 0020+00 1/0 0/0 0/0 .text daBubbPilar_Create__FP10fopAc_ac_c
*/
static void daBubbPilar_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BC3F48-80BC3F90 000C48 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
extern "C" void __dt__10cCcD_GSttsFv() {
// NONMATCHING
}
/* 80BC3F90-80BC3FEC 000C90 005C+00 2/1 0/0 0/0 .text __dt__17daBubbPilar_HIO_cFv */
daBubbPilar_HIO_c::~daBubbPilar_HIO_c() {
// NONMATCHING
}
/* 80BC3FEC-80BC405C 000CEC 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_bubblePilar_cpp */
void __sinit_d_a_obj_bubblePilar_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80BC3FEC, __sinit_d_a_obj_bubblePilar_cpp);
#pragma pop
/* 80BC40B4-80BC40B4 000044 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ /* 80BC40B4-80BC40B4 000044 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

View File

@ -4,105 +4,248 @@
*/ */
#include "d/actor/d_a_obj_cb.h" #include "d/actor/d_a_obj_cb.h"
#include "dol2asm.h" #include "SSystem/SComponent/c_lib.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_com_inf_game.h"
#include "d/d_bg_w.h"
/* 80BC4B2C-80BC4B44 0000EC 0018+00 1/1 0/0 0/0 .text __ct__14daObj_Cb_HIO_cFv */
daObj_Cb_HIO_c::daObj_Cb_HIO_c() {
field_0x4 = -1;
}
/* 80BC4B44-80BC4BA8 000104 0064+00 1/0 0/0 0/0 .text daObj_Cb_Draw__FP12obj_cb_class */
static int daObj_Cb_Draw(obj_cb_class* i_this) {
g_env_light.settingTevStruct(0x10, &i_this->current.pos, &i_this->tevStr);
g_env_light.setLightTevColorType_MAJI(i_this->mModel, &i_this->tevStr);
mDoExt_modelUpdateDL(i_this->mModel);
return 1;
}
// /* 80BC4BA8-80BC4BB4 000168 000C+00 1/1 0/0 0/0 .text
// Forward References: * ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
// static void ride_call_back(dBgW* param_0, fopAc_ac_c* i_this, fopAc_ac_c* param_2) {
static_cast<obj_cb_class*>(i_this)->field_0x59c = 3;
}
extern "C" void __ct__14daObj_Cb_HIO_cFv(); /* 80BC4BB4-80BC51B8 000174 0604+00 1/1 0/0 0/0 .text action__FP12obj_cb_class */
extern "C" static void daObj_Cb_Draw__FP12obj_cb_class(); // NONMATCHING - i_this regalloc. Assigning i_this to a variable with a conversion
extern "C" static void ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c(); // fixes the regalloc but the assignment is in wrong place
extern "C" static void action__FP12obj_cb_class(); static void action(obj_cb_class* i_this) {
extern "C" static void daObj_Cb_Execute__FP12obj_cb_class(); cXyz local_60;
extern "C" static bool daObj_Cb_IsDelete__FP12obj_cb_class(); int local_78 = 0;
extern "C" static void daObj_Cb_Delete__FP12obj_cb_class(); switch(i_this->field_0x596) {
extern "C" static void useHeapInit__FP10fopAc_ac_c(); case 0:
extern "C" static void daObj_Cb_Create__FP10fopAc_ac_c(); if (i_this->field_0x59c != 0) {
extern "C" void __dt__8cM3dGSphFv(); i_this->field_0x59c--;
extern "C" void __dt__8cM3dGAabFv(); i_this->field_0x59e++;
extern "C" void __dt__12dBgS_ObjAcchFv(); f32 dist = (i_this->home.pos - i_this->current.pos).abs();
extern "C" void __dt__14daObj_Cb_HIO_cFv(); if ((i_this->field_0x59e & 4) != 0) {
extern "C" void __sinit_d_a_obj_cb_cpp(); local_78 = 0x100;
extern "C" static void func_80BC57C0(); } else {
extern "C" static void func_80BC57C8(); local_78 = -0x100;
extern "C" extern char const* const d_a_obj_cb__stringBase0; }
cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
local_60.x = 0.0f;
local_60.y = 0.0f;
local_60.z = i_this->speedF;
MtxPosition(&local_60, &i_this->speed);
i_this->current.pos += i_this->speed;
if (dist > 30.0f) {
cLib_addCalcAngleS2(&i_this->shape_angle.x, 0x2000, 2, 0x200);
}
cLib_addCalc2(&i_this->speedF, 5.0f, 1.0f, 0.5f);
if (dist > 60.0f) {
i_this->field_0x596 = 10;
local_60.x = 0.0f;
local_60.y = 0.0f;
local_60.z = 5.0f;
MtxPosition(&local_60, &i_this->speed);
i_this->field_0x5a0.x = 0x900;
dComIfG_Bgsp().Release(i_this->mBgW);
i_this->mBgW = 0;
Z2GetAudioMgr()->seStart(Z2SE_OBJ_CTL_ROCK_FALL, &i_this->current.pos, 0, 0, 1.0f,
1.0f, -1.0f, -1.0f, 0);
}
} else {
i_this->field_0x59e = 0;
cLib_addCalcAngleS2(&i_this->shape_angle.x, 0, 1, 0x1000);
}
break;
case 5:
if (fopAcM_searchPlayerDistanceXZ(i_this) < 90.0f) {
cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
i_this->field_0x596 = 10;
local_60.x = 0.0;
local_60.y = 0.0;
local_60.z = 20.0f;
MtxPosition(&local_60, &i_this->speed);
i_this->field_0x5a0.x = 0x900;
i_this->field_0x598[0] = 20;
Z2GetAudioMgr()->seStart(Z2SE_OBJ_CTL_ROCK_FALL, &i_this->current.pos, 0, 0, 1.0f, 1.0f,
-1.0f, -1.0f, 0);
}
break;
case 10:
i_this->current.pos += i_this->speed;
i_this->speed.y += -5.0f;
i_this->shape_angle.x += i_this->field_0x5a0.x;
i_this->shape_angle.y += i_this->field_0x5a0.y;
f32 speedY = i_this->speed.y;
i_this->mAcch.CrrPos(dComIfG_Bgsp());
if (i_this->field_0x598[0] == 0 && i_this->mAcch.ChkGroundHit()) {
if (speedY <= -30.0f) {
i_this->field_0x5a0.y = cM_rndFX(5000.0f);
i_this->field_0x5a0.x = cM_rndFX(5000.0f);
cMtx_YrotS(*calc_mtx, i_this->current.angle.y + (s16)cM_rndFX(7000.0f));
local_60.x = 0.0f;
local_60.y = 0.0f;
local_60.z = 15.0f + cM_rndF(10.0f);
MtxPosition(&local_60, &i_this->speed);
i_this->speed.y = -0.3f * speedY;
fopAcM_effSmokeSet1(&i_this->field_0x970, &i_this->field_0x974,
&i_this->current.pos, 0, 2.0f, &i_this->tevStr, 1);
} else {
i_this->field_0x5a0.set(0, 0, 0);
cLib_addCalcAngleS2(&i_this->shape_angle.y, 0, 1, 0x1000);
cLib_addCalcAngleS2(&i_this->shape_angle.x, 0, 1, 0x1000);
i_this->speed.set(0.0f, -5.0f, 0.0f);
// !@bug field_0x594 is never initialized
i_this->field_0x594++;
if (i_this->field_0x594 > 150) {
fopAcM_delete(i_this);
}
}
cLib_addCalc0(&i_this->field_0x5a8, 1.0f, 5.0f);
} else {
cLib_addCalc2(&i_this->field_0x5a8, -25.0f, 1.0f, 1.0f);
}
break;
}
// mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
// External References: mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
// mDoMtx_stack_c::XrotM(i_this->shape_angle.x);
mDoMtx_stack_c::transM(0.0f, i_this->field_0x5a8, 0.0f);
mDoMtx_stack_c::XrotM(local_78);
i_this->mModel->setBaseTRMtx(mDoMtx_stack_c::get());
mDoMtx_stack_c::XrotM(-local_78);
if (i_this->mBgW != NULL) {
MTXCopy(mDoMtx_stack_c::get(), i_this->mBgMtx);
i_this->mBgW->Move();
}
}
extern "C" void mDoMtx_XrotM__FPA4_fs(); /* 80BC51B8-80BC5240 000778 0088+00 2/1 0/0 0/0 .text daObj_Cb_Execute__FP12obj_cb_class
extern "C" void mDoMtx_YrotS__FPA4_fs(); */
extern "C" void mDoMtx_YrotM__FPA4_fs(); static int daObj_Cb_Execute(obj_cb_class* i_this) {
extern "C" void transM__14mDoMtx_stack_cFfff(); for (int i = 0; i < 2; i++) {
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); if (i_this->field_0x598[i] != 0) {
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); i_this->field_0x598[i]--;
extern "C" void __ct__10fopAc_ac_cFv(); }
extern "C" void fopAcM_delete__FP10fopAc_ac_c(); }
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); action(i_this);
extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(i_this));
extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci(); i_this->mSoundObj.framework(0, reverb);
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); return 1;
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); }
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void SetWall__12dBgS_AcchCirFff();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
extern "C" void __ct__4dBgWFv();
extern "C" void Move__4dBgWFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void cM_rndF__Ff();
extern "C" void cM_rndFX__Ff();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void cLib_addCalc0__FPfff();
extern "C" void cLib_addCalcAngleS2__FPssss();
extern "C" void MtxPosition__FP4cXyzP4cXyz();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void deleteObject__14Z2SoundObjBaseFv();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_SphAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
// /* 80BC5240-80BC5248 000800 0008+00 1/0 0/0 0/0 .text daObj_Cb_IsDelete__FP12obj_cb_class
// Declarations: */
// static int daObj_Cb_IsDelete(obj_cb_class* param_0) {
return 1;
}
/* 80BC58F8-80BC58FC 000008 0004+00 2/2 0/0 0/0 .bss None */
static u8 data_80BC58F8;
/* 80BC5248-80BC52CC 000808 0084+00 1/0 0/0 0/0 .text daObj_Cb_Delete__FP12obj_cb_class
*/
static int daObj_Cb_Delete(obj_cb_class* i_this) {
fopAcM_GetID(i_this);
dComIfG_resDelete(&i_this->mPhase, "Obj_cb");
if (i_this->field_0x978 != 0) {
data_80BC58F8 = 0;
}
if (i_this->mBgW != NULL) {
dComIfG_Bgsp().Release(i_this->mBgW);
}
if (i_this->heap != NULL) {
i_this->mSoundObj.deleteObject();
}
return 1;
}
/* 80BC52CC-80BC5408 00088C 013C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static int useHeapInit(fopAc_ac_c* actor) {
obj_cb_class* i_this = (obj_cb_class*)actor;
J3DModelData* modelData = (J3DModelData*) dComIfG_getObjectRes("Obj_cb", 4);
JUT_ASSERT(502, modelData != 0);
i_this->mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (i_this->mModel == NULL) {
return 0;
}
if (i_this->home.angle.x == 0) {
i_this->mBgW = new dBgW();
if (i_this->mBgW == NULL) {
return 0;
}
cBgD_t* bGd = (cBgD_t*)dComIfG_getObjectRes("Obj_cb", 7);
if (i_this->mBgW->Set(bGd, 1, &i_this->mBgMtx) == 1) {
return 0;
}
i_this->mBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
i_this->mBgW->SetRideCallback(ride_call_back);
}
i_this->mSoundObj.init(&i_this->current.pos, 1);
return 1;
}
/* 80BC5908-80BC5910 000018 0008+00 2/2 0/0 0/0 .bss l_HIO */
static daObj_Cb_HIO_c l_HIO;
/* 80BC5408-80BC563C 0009C8 0234+00 1/0 0/0 0/0 .text daObj_Cb_Create__FP10fopAc_ac_c */
static int daObj_Cb_Create(fopAc_ac_c* actor) {
fopAcM_SetupActor(actor, obj_cb_class);
obj_cb_class* i_this = (obj_cb_class*)actor;
int rv = dComIfG_resLoad(&i_this->mPhase, "Obj_cb");
if (rv == cPhs_COMPLEATE_e) {
OS_REPORT("OBJ_CB PARAM %x\n", fopAcM_GetParam(i_this));
if (i_this->home.angle.x != 0) {
i_this->field_0x596 = 5;
}
OS_REPORT("OBJ_CB//////////////OBJ_CB SET 1 !!\n");
if (fopAcM_entrySolidHeap(i_this, useHeapInit, 0x800) == 0) {
OS_REPORT("//////////////OBJ_CB SET NON !!\n");
return cPhs_ERROR_e;
}
OS_REPORT("//////////////OBJ_CB SET 2 !!\n");
if (i_this->home.angle.x == 0 && i_this->mBgW != NULL) {
if (dComIfG_Bgsp().Regist(i_this->mBgW, i_this) != 0) {
return cPhs_ERROR_e;
}
}
if (data_80BC58F8 == 0) {
i_this->field_0x978 = 1;
data_80BC58F8 = 1;
l_HIO.field_0x4 = -1;
}
fopAcM_SetMtx(i_this, i_this->mModel->getBaseTRMtx());
i_this->mAcch.Set(fopAcM_GetPosition_p(i_this), fopAcM_GetOldPosition_p(i_this), i_this, 1,
&i_this->mAcchCir, fopAcM_GetSpeed_p(i_this), NULL, NULL);
i_this->mAcchCir.SetWall(50.0f, 50.0f);
daObj_Cb_Execute(i_this);
}
return rv;
}
/* ############################################################################################## */
/* 80BC5854-80BC5874 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Cb_Method */ /* 80BC5854-80BC5874 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Cb_Method */
static actor_method_class l_daObj_Cb_Method = { static actor_method_class l_daObj_Cb_Method = {
(process_method_func)daObj_Cb_Create__FP10fopAc_ac_c, (process_method_func)daObj_Cb_Create,
(process_method_func)daObj_Cb_Delete__FP12obj_cb_class, (process_method_func)daObj_Cb_Delete,
(process_method_func)daObj_Cb_Execute__FP12obj_cb_class, (process_method_func)daObj_Cb_Execute,
(process_method_func)daObj_Cb_IsDelete__FP12obj_cb_class, (process_method_func)daObj_Cb_IsDelete,
(process_method_func)daObj_Cb_Draw__FP12obj_cb_class, (process_method_func)daObj_Cb_Draw,
}; };
/* 80BC5874-80BC58A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_CB */ /* 80BC5874-80BC58A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_CB */
@ -123,312 +266,4 @@ extern actor_process_profile_definition g_profile_OBJ_CB = {
fopAc_CULLBOX_0_e, // cullType fopAc_CULLBOX_0_e, // cullType
}; };
/* 80BC58A4-80BC58B0 000050 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGSphFv,
};
/* 80BC58B0-80BC58BC 00005C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80BC58BC-80BC58E0 000068 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_ObjAcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_80BC57C8,
(void*)NULL,
(void*)NULL,
(void*)func_80BC57C0,
};
/* 80BC58E0-80BC58EC 00008C 000C+00 2/2 0/0 0/0 .data __vt__14daObj_Cb_HIO_c */
SECTION_DATA extern void* __vt__14daObj_Cb_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14daObj_Cb_HIO_cFv,
};
/* 80BC4B2C-80BC4B44 0000EC 0018+00 1/1 0/0 0/0 .text __ct__14daObj_Cb_HIO_cFv */
daObj_Cb_HIO_c::daObj_Cb_HIO_c() {
// NONMATCHING
}
/* 80BC4B44-80BC4BA8 000104 0064+00 1/0 0/0 0/0 .text daObj_Cb_Draw__FP12obj_cb_class */
static void daObj_Cb_Draw(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC4BA8-80BC4BB4 000168 000C+00 1/1 0/0 0/0 .text
* ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
static void ride_call_back(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC57E4-80BC57EC 000000 0004+04 1/1 0/0 0/0 .rodata @3882 */
SECTION_RODATA static u8 const lit_3882[4 + 4 /* padding */] = {
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BC57E4, &lit_3882);
/* 80BC57EC-80BC57F4 000008 0008+00 0/1 0/0 0/0 .rodata @3883 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3883[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC57EC, &lit_3883);
#pragma pop
/* 80BC57F4-80BC57FC 000010 0008+00 0/1 0/0 0/0 .rodata @3884 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3884[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC57F4, &lit_3884);
#pragma pop
/* 80BC57FC-80BC5804 000018 0008+00 0/1 0/0 0/0 .rodata @3885 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3885[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC57FC, &lit_3885);
#pragma pop
/* 80BC5804-80BC5808 000020 0004+00 0/1 0/0 0/0 .rodata @3886 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3886 = 30.0f;
COMPILER_STRIP_GATE(0x80BC5804, &lit_3886);
#pragma pop
/* 80BC5808-80BC580C 000024 0004+00 0/1 0/0 0/0 .rodata @3887 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3887 = 5.0f;
COMPILER_STRIP_GATE(0x80BC5808, &lit_3887);
#pragma pop
/* 80BC580C-80BC5810 000028 0004+00 0/1 0/0 0/0 .rodata @3888 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3888 = 1.0f;
COMPILER_STRIP_GATE(0x80BC580C, &lit_3888);
#pragma pop
/* 80BC5810-80BC5814 00002C 0004+00 0/1 0/0 0/0 .rodata @3889 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3889 = 0.5f;
COMPILER_STRIP_GATE(0x80BC5810, &lit_3889);
#pragma pop
/* 80BC5814-80BC5818 000030 0004+00 0/1 0/0 0/0 .rodata @3890 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3890 = 60.0f;
COMPILER_STRIP_GATE(0x80BC5814, &lit_3890);
#pragma pop
/* 80BC5818-80BC581C 000034 0004+00 0/1 0/0 0/0 .rodata @3891 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3891 = -1.0f;
COMPILER_STRIP_GATE(0x80BC5818, &lit_3891);
#pragma pop
/* 80BC581C-80BC5820 000038 0004+00 0/1 0/0 0/0 .rodata @3892 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3892 = 90.0f;
COMPILER_STRIP_GATE(0x80BC581C, &lit_3892);
#pragma pop
/* 80BC5820-80BC5824 00003C 0004+00 0/1 0/0 0/0 .rodata @3893 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3893 = 20.0f;
COMPILER_STRIP_GATE(0x80BC5820, &lit_3893);
#pragma pop
/* 80BC5824-80BC5828 000040 0004+00 0/1 0/0 0/0 .rodata @3894 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3894 = -5.0f;
COMPILER_STRIP_GATE(0x80BC5824, &lit_3894);
#pragma pop
/* 80BC5828-80BC582C 000044 0004+00 0/1 0/0 0/0 .rodata @3895 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3895 = -30.0f;
COMPILER_STRIP_GATE(0x80BC5828, &lit_3895);
#pragma pop
/* 80BC582C-80BC5830 000048 0004+00 0/1 0/0 0/0 .rodata @3896 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3896 = 5000.0f;
COMPILER_STRIP_GATE(0x80BC582C, &lit_3896);
#pragma pop
/* 80BC5830-80BC5834 00004C 0004+00 0/1 0/0 0/0 .rodata @3897 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3897 = 7000.0f;
COMPILER_STRIP_GATE(0x80BC5830, &lit_3897);
#pragma pop
/* 80BC5834-80BC5838 000050 0004+00 0/1 0/0 0/0 .rodata @3898 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3898 = 15.0f;
COMPILER_STRIP_GATE(0x80BC5834, &lit_3898);
#pragma pop
/* 80BC5838-80BC583C 000054 0004+00 0/1 0/0 0/0 .rodata @3899 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3899 = 10.0f;
COMPILER_STRIP_GATE(0x80BC5838, &lit_3899);
#pragma pop
/* 80BC583C-80BC5840 000058 0004+00 0/1 0/0 0/0 .rodata @3900 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3900 = -3.0f / 10.0f;
COMPILER_STRIP_GATE(0x80BC583C, &lit_3900);
#pragma pop
/* 80BC5840-80BC5844 00005C 0004+00 0/1 0/0 0/0 .rodata @3901 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3901 = 2.0f;
COMPILER_STRIP_GATE(0x80BC5840, &lit_3901);
#pragma pop
/* 80BC5844-80BC5848 000060 0004+00 0/1 0/0 0/0 .rodata @3902 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3902 = -25.0f;
COMPILER_STRIP_GATE(0x80BC5844, &lit_3902);
#pragma pop
/* 80BC4BB4-80BC51B8 000174 0604+00 1/1 0/0 0/0 .text action__FP12obj_cb_class */
static void action(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC51B8-80BC5240 000778 0088+00 2/1 0/0 0/0 .text daObj_Cb_Execute__FP12obj_cb_class
*/
static void daObj_Cb_Execute(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC5240-80BC5248 000800 0008+00 1/0 0/0 0/0 .text daObj_Cb_IsDelete__FP12obj_cb_class
*/
static bool daObj_Cb_IsDelete(obj_cb_class* param_0) {
return true;
}
/* ############################################################################################## */
/* 80BC584C-80BC584C 000068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BC584C = "Obj_cb";
#pragma pop
/* 80BC58F8-80BC58FC 000008 0004+00 2/2 0/0 0/0 .bss None */
static u8 data_80BC58F8[4];
/* 80BC5248-80BC52CC 000808 0084+00 1/0 0/0 0/0 .text daObj_Cb_Delete__FP12obj_cb_class
*/
static void daObj_Cb_Delete(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC52CC-80BC5408 00088C 013C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static void useHeapInit(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC5848-80BC584C 000064 0004+00 1/1 0/0 0/0 .rodata @4038 */
SECTION_RODATA static f32 const lit_4038 = 50.0f;
COMPILER_STRIP_GATE(0x80BC5848, &lit_4038);
/* 80BC58FC-80BC5908 00000C 000C+00 1/1 0/0 0/0 .bss @3763 */
static u8 lit_3763[12];
/* 80BC5908-80BC5910 000018 0008+00 2/2 0/0 0/0 .bss l_HIO */
static u8 l_HIO[8];
/* 80BC5408-80BC563C 0009C8 0234+00 1/0 0/0 0/0 .text daObj_Cb_Create__FP10fopAc_ac_c */
static void daObj_Cb_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BC563C-80BC5684 000BFC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
// cM3dGSph::~cM3dGSph() {
extern "C" void __dt__8cM3dGSphFv() {
// NONMATCHING
}
/* 80BC5684-80BC56CC 000C44 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80BC56CC-80BC573C 000C8C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80BC573C-80BC5784 000CFC 0048+00 2/1 0/0 0/0 .text __dt__14daObj_Cb_HIO_cFv */
daObj_Cb_HIO_c::~daObj_Cb_HIO_c() {
// NONMATCHING
}
/* 80BC5784-80BC57C0 000D44 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_cb_cpp */
void __sinit_d_a_obj_cb_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80BC5784, __sinit_d_a_obj_cb_cpp);
#pragma pop
/* 80BC57C0-80BC57C8 000D80 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80BC57C0() {
// NONMATCHING
}
/* 80BC57C8-80BC57D0 000D88 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80BC57C8() {
// NONMATCHING
}
/* 80BC584C-80BC584C 000068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ /* 80BC584C-80BC584C 000068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

View File

@ -4,200 +4,336 @@
*/ */
#include "d/actor/d_a_obj_fchain.h" #include "d/actor/d_a_obj_fchain.h"
#include "dol2asm.h" #include "d/actor/d_a_player.h"
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_com_inf_game.h"
//
// Forward References:
//
extern "C" void createHeap__13daObjFchain_cFv();
extern "C" static void daObjFchain_createHeap__FP10fopAc_ac_c();
extern "C" void create__13daObjFchain_cFv();
extern "C" void __dt__5csXyzFv();
extern "C" void __ct__5csXyzFv();
extern "C" void __dt__4cXyzFv();
extern "C" void __ct__4cXyzFv();
extern "C" static void daObjFchain_Create__FP10fopAc_ac_c();
extern "C" void __dt__13daObjFchain_cFv();
extern "C" static void daObjFchain_Delete__FP13daObjFchain_c();
extern "C" void checkPlayerFoot__13daObjFchain_cFPC4cXyzPC4cXyzP4cXyz();
extern "C" void setGroundVec__13daObjFchain_cFP4cXyzf();
extern "C" void execute__13daObjFchain_cFv();
extern "C" static void daObjFchain_Execute__FP13daObjFchain_c();
extern "C" void draw__19daObjFchain_shape_cFv();
extern "C" void draw__13daObjFchain_cFv();
extern "C" static void daObjFchain_Draw__FP13daObjFchain_c();
extern "C" void __dt__19daObjFchain_shape_cFv();
extern "C" extern char const* const d_a_obj_fchain__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void transM__14mDoMtx_stack_cFRC4cXyz();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void getRunEventName__16dEvent_manager_cFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void dKy_setLight_again__Fv();
extern "C" void dKy_GxFog_tevstr_set__FP12dKy_tevstr_c();
extern "C" void __pl__4cXyzCFRC3Vec();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void __ml__4cXyzCFf();
extern "C" void normalizeZP__4cXyzFv();
extern "C" void atan2sX_Z__4cXyzCFv();
extern "C" void atan2sY_XZ__4cXyzCFv();
extern "C" void cM_atan2s__Fff();
extern "C" void cM_rnd__Fv();
extern "C" void cM_rndF__Ff();
extern "C" void cM_rndFX__Ff();
extern "C" void __dl__FPv();
extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer();
extern "C" void loadPreDrawSetting__8J3DShapeCFv();
extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_23();
extern "C" void _savegpr_24();
extern "C" void _restgpr_23();
extern "C" void _restgpr_24();
extern "C" extern void* __vt__9J3DPacket[5];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" f32 Zero__4cXyz[3];
extern "C" extern u32 g_whiteColor;
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 80BE7438-80BE7440 000000 0007+01 6/6 0/0 0/0 .rodata l_arcName */ /* 80BE7438-80BE7440 000000 0007+01 6/6 0/0 0/0 .rodata l_arcName */
SECTION_RODATA static u8 const l_arcName[7 + 1 /* padding */] = { static char const l_arcName[] = "Fchain";
0x46,
0x63,
0x68,
0x61,
0x69,
0x6E,
0x00,
/* padding */
0x00,
};
COMPILER_STRIP_GATE(0x80BE7438, &l_arcName);
/* 80BE5FF8-80BE6054 000078 005C+00 1/1 0/0 0/0 .text createHeap__13daObjFchain_cFv */ /* 80BE5FF8-80BE6054 000078 005C+00 1/1 0/0 0/0 .text createHeap__13daObjFchain_cFv */
void daObjFchain_c::createHeap() { int daObjFchain_c::createHeap() {
// NONMATCHING mModelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 3);
return mModelData != NULL ? 1 : 0;
} }
/* 80BE6054-80BE6074 0000D4 0020+00 1/1 0/0 0/0 .text daObjFchain_createHeap__FP10fopAc_ac_c */ /* 80BE6054-80BE6074 0000D4 0020+00 1/1 0/0 0/0 .text daObjFchain_createHeap__FP10fopAc_ac_c */
static void daObjFchain_createHeap(fopAc_ac_c* param_0) { static int daObjFchain_createHeap(fopAc_ac_c* i_this) {
// NONMATCHING return static_cast<daObjFchain_c*>(i_this)->createHeap();
} }
/* ############################################################################################## */ /* ############################################################################################## */
/* 80BE7440-80BE744C 000008 000C+00 0/1 0/0 0/0 .rodata localVec$3662 */ /* 80BE7440-80BE744C 000008 000C+00 0/1 0/0 0/0 .rodata localVec$3662 */
#pragma push static Vec const localVec = {
#pragma force_active on 0.0f, 0.0f, -9.0f,
SECTION_RODATA static u8 const localVec[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x10, 0x00, 0x00,
}; };
COMPILER_STRIP_GATE(0x80BE7440, &localVec);
#pragma pop
/* 80BE744C-80BE7450 000014 0004+00 0/2 0/0 0/0 .rodata @3710 */ /* 80BE6074-80BE6328 0000F4 02B4+00 1/1 0/0 0/0 .text create__13daObjFchain_cFv */
#pragma push int daObjFchain_c::create() {
#pragma force_active on fopAcM_SetupActor(this, daObjFchain_c);
SECTION_RODATA static f32 const lit_3710 = 3.0f; int rv = dComIfG_resLoad(&mPhase, l_arcName);
COMPILER_STRIP_GATE(0x80BE744C, &lit_3710); switch (rv) {
#pragma pop case cPhs_COMPLEATE_e:
if (fopAcM_entrySolidHeap(this, daObjFchain_createHeap,
0x10) == 0) {
return cPhs_ERROR_e;
}
tevStr.mRoomNo = dComIfGp_roomControl_getStayNo();
mShape.setUserArea((u32)this);
current.pos.y += 3.0f;
s16 local_58 = shape_angle.y;
cXyz* local_44 = &current.pos;
cXyz* local_48 = field_0x694;
csXyz* pdVar5 = field_0x8a4;
for (int i = 0; i < 22; i++) {
if ((i & 1) != 0) {
pdVar5->z = cM_rndFX(2048.0f) + 4096.0f;
} else {
pdVar5->z = cM_rndFX(2048.0f) + -4096.0f;
}
f32 fVar1;
if (cM_rnd() < 0.5f) {
fVar1 = 1.0f;
} else {
fVar1 = -1.0f;
}
pdVar5->y = local_58 + (fVar1 * (cM_rndF(3072.0f) + 1024.0f));
mDoMtx_stack_c::transS(*local_44);
mDoMtx_stack_c::YrotM(pdVar5->y);
mDoMtx_stack_c::multVec(&localVec, local_48);
local_58 = pdVar5->y;
local_44 = local_48;
pdVar5++;
local_48++;
}
rv = cPhs_COMPLEATE_e;
break;
}
return rv;
}
/* 80BE7450-80BE7454 000018 0004+00 0/2 0/0 0/0 .rodata @3711 */ /* 80BE63A8-80BE63C8 000428 0020+00 1/0 0/0 0/0 .text daObjFchain_Create__FP10fopAc_ac_c
#pragma push */
#pragma force_active on static int daObjFchain_Create(fopAc_ac_c* i_this) {
SECTION_RODATA static f32 const lit_3711 = 4096.0f; return static_cast<daObjFchain_c*>(i_this)->create();
COMPILER_STRIP_GATE(0x80BE7450, &lit_3711); }
#pragma pop
/* 80BE7454-80BE7458 00001C 0004+00 0/2 0/0 0/0 .rodata @3712 */ /* 80BE63C8-80BE64B8 000448 00F0+00 1/1 0/0 0/0 .text __dt__13daObjFchain_cFv */
#pragma push daObjFchain_c::~daObjFchain_c() {
#pragma force_active on dComIfG_resDelete(&mPhase,l_arcName);
SECTION_RODATA static f32 const lit_3712 = 2048.0f; }
COMPILER_STRIP_GATE(0x80BE7454, &lit_3712);
#pragma pop
/* 80BE7458-80BE745C 000020 0004+00 0/2 0/0 0/0 .rodata @3713 */ /* 80BE64B8-80BE64E0 000538 0028+00 1/0 0/0 0/0 .text daObjFchain_Delete__FP13daObjFchain_c */
#pragma push static int daObjFchain_Delete(daObjFchain_c* i_this) {
#pragma force_active on i_this->~daObjFchain_c();
SECTION_RODATA static f32 const lit_3713 = -4096.0f; return 1;
COMPILER_STRIP_GATE(0x80BE7458, &lit_3713); }
#pragma pop
/* 80BE745C-80BE7460 000024 0004+00 0/3 0/0 0/0 .rodata @3714 */ /* 80BE64E0-80BE66B4 000560 01D4+00 1/1 0/0 0/0 .text
#pragma push * checkPlayerFoot__13daObjFchain_cFPC4cXyzPC4cXyzP4cXyz */
#pragma force_active on void daObjFchain_c::checkPlayerFoot(cXyz const* param_1, cXyz const* param_2, cXyz* param_3) {
SECTION_RODATA static f32 const lit_3714 = 1.0f; cXyz local_24 = *param_1 - *param_2;
COMPILER_STRIP_GATE(0x80BE745C, &lit_3714); f32 dVar4 = local_24.absXZ();
#pragma pop if (fabsf(local_24.y) < 5.0f && dVar4 < 20.0f) {
local_24.y = 0.0f;
local_24.normalizeZP();
f32 fVar1 = 20.0f - dVar4;
param_3->x += local_24.x * fVar1;
param_3->z += local_24.z * fVar1;
}
}
/* 80BE7460-80BE7464 000028 0004+00 0/2 0/0 0/0 .rodata @3715 */ /* 80BE66B4-80BE6868 000734 01B4+00 1/1 0/0 0/0 .text setGroundVec__13daObjFchain_cFP4cXyzf */
#pragma push void daObjFchain_c::setGroundVec(cXyz* param_1, f32 param_2) {
#pragma force_active on f32 dVar6 = param_1->absXZ();
SECTION_RODATA static f32 const lit_3715 = -1.0f; param_1->y += param_2;
COMPILER_STRIP_GATE(0x80BE7460, &lit_3715); if (dVar6 < 0.1f) {
#pragma pop param_1->z += param_2;
} else {
f32 fVar1 = (1.0f / dVar6);
param_1->x += fVar1 * (param_2 * param_1->x);
param_1->z += fVar1 * (param_2 * param_1->z);
}
param_1->normalizeZP();
}
/* 80BE7464-80BE7468 00002C 0004+00 0/2 0/0 0/0 .rodata @3716 */ /* 80BE74A4-80BE74B0 00006C 000C+00 0/1 0/0 0/0 .rodata wolfChainBaseOffset$3862 */
#pragma push static Vec const wolfChainBaseOffset = {
#pragma force_active on 22.0f, 0.0f, -12.0f,
SECTION_RODATA static f32 const lit_3716 = 0.5f;
COMPILER_STRIP_GATE(0x80BE7464, &lit_3716);
#pragma pop
/* 80BE7468-80BE746C 000030 0004+00 0/1 0/0 0/0 .rodata @3717 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3717 = 1024.0f;
COMPILER_STRIP_GATE(0x80BE7468, &lit_3717);
#pragma pop
/* 80BE746C-80BE7470 000034 0004+00 0/1 0/0 0/0 .rodata @3718 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3718 = 3072.0f;
COMPILER_STRIP_GATE(0x80BE746C, &lit_3718);
#pragma pop
/* 80BE7470-80BE7478 000038 0008+00 0/2 0/0 0/0 .rodata @3720 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3720[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
}; };
COMPILER_STRIP_GATE(0x80BE7470, &lit_3720);
#pragma pop /* 80BE6868-80BE7174 0008E8 090C+00 1/1 0/0 0/0 .text execute__13daObjFchain_cFv */
// NONMATCHING - regalloc, stack
int daObjFchain_c::execute() {
if (dComIfGp_event_runCheck()) {
if (dComIfGp_getEventManager().getRunEventName() != NULL) {
if (strcmp("demo06_01", dComIfGp_getEventManager().getRunEventName()) == 0 &&
field_0x588 >= 0)
{
field_0x588++;
if (field_0x588 > 310) {
field_0x588 = -1;
}
}
}
} else {
field_0x588 = 0;
}
cXyz* local_148 = &current.pos;
cXyz local_54;
cXyz cStack_60;
if (field_0x586 != 0) {
field_0x586--;
}
cXyz* pcVar12 = field_0x694;
cXyz* local_150 = field_0x79c;
u32 isWolf = daPy_py_c::i_checkNowWolf();
daPy_py_c* player = daPy_getLinkPlayerActorClass();
for (int i = 0; i < 22; i++) {
local_54 = (*pcVar12 - *local_148) + *local_150;
local_54.y += -1.5f;
if (dComIfGs_isEventBit(0x510)) {
if (isWolf) {
checkPlayerFoot(pcVar12, player->getLeftHandPosP(), &local_54);
checkPlayerFoot(pcVar12, player->getRightHandPosP(), &local_54);
}
checkPlayerFoot(pcVar12, player->getLeftFootPosP(), &local_54);
checkPlayerFoot(pcVar12, player->getRightFootPosP(), &local_54);
}
cStack_60 = local_54;
local_54.normalizeZP();
*pcVar12 = *local_148 + (local_54 * 9.0f);
if (pcVar12->y < current.pos.y) {
setGroundVec(&cStack_60, current.pos.y - pcVar12->y);
*pcVar12 = *local_148 + (cStack_60 * 9.0f);
}
local_150++;
local_148 = pcVar12;
pcVar12++;
}
if (isWolf && !dComIfGs_isEventBit(0x510)) {
mDoMtx_multVec(
player->getModelJointMtx(17), &wolfChainBaseOffset,
&field_0x694[21]);
cXyz diff = (field_0x694[21] - current.pos);
f32 dVar13 = diff.abs();
if (dVar13 > 198.0f) {
s16 sVar10 = cM_atan2s(-local_54.x, -local_54.z);
player->setOutPower(dVar13 - 198.0f, sVar10, 0);
player->onWolfFchainPull();
cXyz* pcVar8 = field_0x694;
local_148 = &current.pos;
local_54 *= 9.0f / dVar13;
for (int i = 0; pcVar12 = pcVar8, i < 22; i++) {
*pcVar8 = *local_148 + local_54;
local_148 = pcVar8;
pcVar8++;
}
field_0x584 = 0;
} else {
cXyz* pcVar8 = &field_0x694[20];
local_150 = &field_0x79c[20];
local_148 = pcVar8 + 1;
for (int i = 20; i >= 0; i--) {
local_54 = (*pcVar8 - *local_148) + *local_150;
local_54.y += -1.5f;
cStack_60 = local_54;
local_54.normalizeZP();
*pcVar8 = *local_148 + (local_54 * 9.0f);
if (pcVar8->y < current.pos.y) {
setGroundVec(&cStack_60, current.pos.y - pcVar8->y);
*pcVar8 = *local_148 + (cStack_60 * 9.0f);
}
local_150--;
local_148 = pcVar8;
pcVar8--;
}
}
}
local_148 = &current.pos;
local_150 = field_0x694;
cXyz* pcVar8 = field_0x79c;
csXyz* local_15c = field_0x8a4;
cXyz* local_160 = field_0x58c;
s16 local_178 = 0;
for (int i = 0; i < 22; i++) {
*local_150 = (*pcVar8 - *local_160) * 0.3f;
*local_160 = *pcVar8;
local_54 = *local_148 - *pcVar8;
local_15c->x = local_54.atan2sY_XZ();
if (!(local_54.absXZ() < 3.5f)) {
local_15c->y = local_54.atan2sX_Z();
}
if (local_150->abs2() > 3.0f && field_0x586 == 0) {
f32 fVar1;
if (cM_rnd() < 0.5f) {
fVar1 = 1.0f;
} else {
fVar1 = -1.0f;
}
local_15c->z = local_178 + 0x4000 +
(fVar1 * (cM_rndF(4096.0f) + 1536.0f));
if (pcVar8->y <= current.pos.y + 2.0f) {
if ((local_15c->z >= 0 && local_15c->z < 0x4000) ||
(local_15c->z > -0x7fff && local_15c->z < -0x4000))
{
local_15c->z = cM_rndFX(2048.0f) + 4096.0f;
} else {
local_15c->z = cM_rndFX(2048.0f) + -4096.0f;
}
}
}
local_178 = local_15c->z;
local_150++;
local_15c++;
local_160++;
local_148 = pcVar8;
pcVar8++;
}
if (field_0x584 == 0) {
field_0x584 = 1;
local_150 = field_0x79c;
for (int i = 0; i < 22; i++) {
*local_150 = cXyz::Zero;
local_150++;
}
field_0x586 = 5;
}
return 1;
}
/* 80BE7174-80BE7194 0011F4 0020+00 1/0 0/0 0/0 .text daObjFchain_Execute__FP13daObjFchain_c */
static int daObjFchain_Execute(daObjFchain_c* i_this) {
return static_cast<daObjFchain_c*>(i_this)->execute();
}
/* 80BE7194-80BE7324 001214 0190+00 1/0 0/0 0/0 .text draw__19daObjFchain_shape_cFv */
void daObjFchain_shape_c::draw() {
daObjFchain_c* i_this = (daObjFchain_c*)getUserArea();
cXyz* pPos = i_this->getPos();
csXyz* pAngle = i_this->getAngle();
J3DModelData* modelData = i_this->getModelData();
J3DMaterial* material = modelData->getMaterialNodePointer(0);
dKy_tevstr_c* tevStr = &i_this->tevStr;
j3dSys.setVtxPos(modelData->getVtxPosArray());
j3dSys.setVtxNrm(modelData->getVtxNrmArray());
j3dSys.setVtxCol(modelData->getVtxColorArray(0));
J3DShape::resetVcdVatCache();
material->loadSharedDL();
material->getShape()->loadPreDrawSetting();
GXColor ambColor;
ambColor.r = tevStr->mColorC0.r;
ambColor.g = tevStr->mColorC0.g;
ambColor.b = tevStr->mColorC0.b;
ambColor.a = tevStr->mColorC0.a;
GXSetChanAmbColor(GX_COLOR0A0, ambColor);
GXSetChanMatColor(GX_COLOR0A0, g_whiteColor);
dKy_setLight_again();
dKy_GxFog_tevstr_set(tevStr);
GXLoadLightObjImm(&tevStr->mLightObj.mLightObj, GX_LIGHT0);
int local_30;
if (dComIfGs_isEventBit(0x510)) {
local_30 = 17;
} else {
local_30 = 22;
}
for (int i = 0; i < local_30; i++, pPos++, pAngle++) {
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
mDoMtx_stack_c::transM(*pPos);
mDoMtx_stack_c::ZXYrotM(*pAngle);
GXLoadPosMtxImm(mDoMtx_stack_c::get(), 0);
GXLoadNrmMtxImm(mDoMtx_stack_c::get(), 0);
material->getShape()->simpleDrawCache();
}
}
/* 80BE7324-80BE73B4 0013A4 0090+00 1/1 0/0 0/0 .text draw__13daObjFchain_cFv */
int daObjFchain_c::draw() {
if (field_0x584 != 0) {
g_env_light.settingTevStruct(0, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModelData, &tevStr);
if (field_0x588 > 0) {
return 1;
}
dComIfGd_getOpaListDark()->entryImm(&mShape, 0);
}
return 1;
}
/* 80BE73B4-80BE73D4 001434 0020+00 1/0 0/0 0/0 .text daObjFchain_Draw__FP13daObjFchain_c
*/
static int daObjFchain_Draw(daObjFchain_c* i_this) {
return static_cast<daObjFchain_c*>(i_this)->draw();
}
/* 80BE74D8-80BE74F8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjFchain_Method */ /* 80BE74D8-80BE74F8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjFchain_Method */
static actor_method_class l_daObjFchain_Method = { static actor_method_class l_daObjFchain_Method = {
(process_method_func)daObjFchain_Create__FP10fopAc_ac_c, (process_method_func)daObjFchain_Create,
(process_method_func)daObjFchain_Delete__FP13daObjFchain_c, (process_method_func)daObjFchain_Delete,
(process_method_func)daObjFchain_Execute__FP13daObjFchain_c, (process_method_func)daObjFchain_Execute,
0, NULL,
(process_method_func)daObjFchain_Draw__FP13daObjFchain_c, (process_method_func)daObjFchain_Draw,
}; };
/* 80BE74F8-80BE7528 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Fchain */ /* 80BE74F8-80BE7528 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Fchain */
@ -218,232 +354,4 @@ extern actor_process_profile_definition g_profile_Obj_Fchain = {
fopAc_CULLBOX_CUSTOM_e, // cullType fopAc_CULLBOX_CUSTOM_e, // cullType
}; };
/* 80BE7528-80BE753C 000050 0014+00 3/3 0/0 0/0 .data __vt__19daObjFchain_shape_c */
SECTION_DATA extern void* __vt__19daObjFchain_shape_c[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__19daObjFchain_shape_cFv,
(void*)__dt__19daObjFchain_shape_cFv,
};
/* 80BE6074-80BE6328 0000F4 02B4+00 1/1 0/0 0/0 .text create__13daObjFchain_cFv */
void daObjFchain_c::create() {
// NONMATCHING
}
/* 80BE6328-80BE6364 0003A8 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */
// csXyz::~csXyz() {
extern "C" void __dt__5csXyzFv() {
// NONMATCHING
}
/* 80BE6364-80BE6368 0003E4 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
// csXyz::csXyz() {
extern "C" void __ct__5csXyzFv() {
/* empty function */
}
/* 80BE6368-80BE63A4 0003E8 003C+00 2/2 0/0 0/0 .text __dt__4cXyzFv */
// cXyz::~cXyz() {
extern "C" void __dt__4cXyzFv() {
// NONMATCHING
}
/* 80BE63A4-80BE63A8 000424 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
// cXyz::cXyz() {
extern "C" void __ct__4cXyzFv() {
/* empty function */
}
/* 80BE63A8-80BE63C8 000428 0020+00 1/0 0/0 0/0 .text daObjFchain_Create__FP10fopAc_ac_c
*/
static void daObjFchain_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BE63C8-80BE64B8 000448 00F0+00 1/1 0/0 0/0 .text __dt__13daObjFchain_cFv */
daObjFchain_c::~daObjFchain_c() {
// NONMATCHING
}
/* 80BE64B8-80BE64E0 000538 0028+00 1/0 0/0 0/0 .text daObjFchain_Delete__FP13daObjFchain_c */
static void daObjFchain_Delete(daObjFchain_c* param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BE7478-80BE7480 000040 0004+04 0/3 0/0 0/0 .rodata @3809 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3809[4 + 4 /* padding */] = {
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BE7478, &lit_3809);
#pragma pop
/* 80BE7480-80BE7488 000048 0008+00 0/3 0/0 0/0 .rodata @3810 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3810[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE7480, &lit_3810);
#pragma pop
/* 80BE7488-80BE7490 000050 0008+00 0/3 0/0 0/0 .rodata @3811 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3811[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE7488, &lit_3811);
#pragma pop
/* 80BE7490-80BE7498 000058 0008+00 0/3 0/0 0/0 .rodata @3812 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3812[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE7490, &lit_3812);
#pragma pop
/* 80BE7498-80BE749C 000060 0004+00 0/1 0/0 0/0 .rodata @3813 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3813 = 5.0f;
COMPILER_STRIP_GATE(0x80BE7498, &lit_3813);
#pragma pop
/* 80BE749C-80BE74A0 000064 0004+00 0/1 0/0 0/0 .rodata @3814 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3814 = 20.0f;
COMPILER_STRIP_GATE(0x80BE749C, &lit_3814);
#pragma pop
/* 80BE64E0-80BE66B4 000560 01D4+00 1/1 0/0 0/0 .text
* checkPlayerFoot__13daObjFchain_cFPC4cXyzPC4cXyzP4cXyz */
void daObjFchain_c::checkPlayerFoot(cXyz const* param_0, cXyz const* param_1, cXyz* param_2) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BE74A0-80BE74A4 000068 0004+00 0/1 0/0 0/0 .rodata @3857 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3857 = 1.0f / 10.0f;
COMPILER_STRIP_GATE(0x80BE74A0, &lit_3857);
#pragma pop
/* 80BE66B4-80BE6868 000734 01B4+00 1/1 0/0 0/0 .text setGroundVec__13daObjFchain_cFP4cXyzf */
void daObjFchain_c::setGroundVec(cXyz* param_0, f32 param_1) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BE74A4-80BE74B0 00006C 000C+00 0/1 0/0 0/0 .rodata wolfChainBaseOffset$3862 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const wolfChainBaseOffset[12] = {
0x41, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x40, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE74A4, &wolfChainBaseOffset);
#pragma pop
/* 80BE74B0-80BE74B4 000078 0004+00 0/1 0/0 0/0 .rodata @4159 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4159 = -1.5f;
COMPILER_STRIP_GATE(0x80BE74B0, &lit_4159);
#pragma pop
/* 80BE74B4-80BE74B8 00007C 0004+00 0/1 0/0 0/0 .rodata @4160 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4160 = 9.0f;
COMPILER_STRIP_GATE(0x80BE74B4, &lit_4160);
#pragma pop
/* 80BE74B8-80BE74BC 000080 0004+00 0/1 0/0 0/0 .rodata @4161 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4161 = 198.0f;
COMPILER_STRIP_GATE(0x80BE74B8, &lit_4161);
#pragma pop
/* 80BE74BC-80BE74C0 000084 0004+00 0/1 0/0 0/0 .rodata @4162 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4162 = 3.0f / 10.0f;
COMPILER_STRIP_GATE(0x80BE74BC, &lit_4162);
#pragma pop
/* 80BE74C0-80BE74C4 000088 0004+00 0/1 0/0 0/0 .rodata @4163 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4163 = 3.5f;
COMPILER_STRIP_GATE(0x80BE74C0, &lit_4163);
#pragma pop
/* 80BE74C4-80BE74C8 00008C 0004+00 0/1 0/0 0/0 .rodata @4164 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4164 = 1536.0f;
COMPILER_STRIP_GATE(0x80BE74C4, &lit_4164);
#pragma pop
/* 80BE74C8-80BE74CC 000090 0004+00 0/1 0/0 0/0 .rodata @4165 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4165 = 2.0f;
COMPILER_STRIP_GATE(0x80BE74C8, &lit_4165);
#pragma pop
/* 80BE74CC-80BE74CC 000094 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BE74CC = "demo06_01";
#pragma pop
/* 80BE6868-80BE7174 0008E8 090C+00 1/1 0/0 0/0 .text execute__13daObjFchain_cFv */
void daObjFchain_c::execute() {
// NONMATCHING
}
/* 80BE7174-80BE7194 0011F4 0020+00 1/0 0/0 0/0 .text daObjFchain_Execute__FP13daObjFchain_c */
static void daObjFchain_Execute(daObjFchain_c* param_0) {
// NONMATCHING
}
/* 80BE7194-80BE7324 001214 0190+00 1/0 0/0 0/0 .text draw__19daObjFchain_shape_cFv */
void daObjFchain_shape_c::draw() {
// NONMATCHING
}
/* 80BE7324-80BE73B4 0013A4 0090+00 1/1 0/0 0/0 .text draw__13daObjFchain_cFv */
void daObjFchain_c::draw() {
// NONMATCHING
}
/* 80BE73B4-80BE73D4 001434 0020+00 1/0 0/0 0/0 .text daObjFchain_Draw__FP13daObjFchain_c
*/
static void daObjFchain_Draw(daObjFchain_c* param_0) {
// NONMATCHING
}
/* 80BE73D4-80BE7430 001454 005C+00 1/0 0/0 0/0 .text __dt__19daObjFchain_shape_cFv */
daObjFchain_shape_c::~daObjFchain_shape_c() {
// NONMATCHING
}
/* 80BE74CC-80BE74CC 000094 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ /* 80BE74CC-80BE74CC 000094 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

View File

@ -4,170 +4,123 @@
*/ */
#include "d/actor/d_a_obj_gb.h" #include "d/actor/d_a_obj_gb.h"
#include "dol2asm.h" #include "SSystem/SComponent/c_lib.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_bg_w.h"
// #include "d/d_com_inf_game.h"
// Forward References:
//
extern "C" static void daObj_Gb_Draw__FP12obj_gb_class();
extern "C" static void daObj_Gb_Execute__FP12obj_gb_class();
extern "C" void __dt__4cXyzFv();
extern "C" static bool daObj_Gb_IsDelete__FP12obj_gb_class();
extern "C" static void daObj_Gb_Delete__FP12obj_gb_class();
extern "C" static void useHeapInit__FP10fopAc_ac_c();
extern "C" void __dt__12J3DFrameCtrlFv();
extern "C" static void daObj_Gb_Create__FP10fopAc_ac_c();
extern "C" void __ct__4cXyzFv();
extern "C" extern char const* const d_a_obj_gb__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void scaleM__14mDoMtx_stack_cFfff();
extern "C" void play__14mDoExt_baseAnmFv();
extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
extern "C" void __ct__4dBgWFv();
extern "C" void Move__4dBgWFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void dKy_bg_MAxx_proc__FPv();
extern "C" void cM_rndF__Ff();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void MtxPosition__FP4cXyzP4cXyz();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void __construct_array();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
/* 80BF6318-80BF63F8 000078 00E0+00 1/0 0/0 0/0 .text daObj_Gb_Draw__FP12obj_gb_class */ /* 80BF6318-80BF63F8 000078 00E0+00 1/0 0/0 0/0 .text daObj_Gb_Draw__FP12obj_gb_class */
static void daObj_Gb_Draw(obj_gb_class* param_0) { static int daObj_Gb_Draw(obj_gb_class* i_this) {
// NONMATCHING g_env_light.settingTevStruct(0x10, &i_this->current.pos, &i_this->tevStr);
g_env_light.setLightTevColorType_MAJI(i_this->mModel, &i_this->tevStr);
J3DModelData* modelData = (J3DModelData*)i_this->mModel->getModelData();
for (u16 i = 0; i <= 1; i++) {
J3DMaterial* material = (J3DMaterial*)modelData->getMaterialNodePointer(i);
material->getTevKColor(1)->a = i_this->mColorAlpha;
} }
/* ############################################################################################## */ dKy_bg_MAxx_proc(i_this->mModel);
/* 80BF6DBC-80BF6DC0 000000 0004+00 2/2 0/0 0/0 .rodata @3890 */ i_this->mBtk->entry(modelData);
SECTION_RODATA static f32 const lit_3890 = 0.5f; i_this->mBrk->entry(modelData);
COMPILER_STRIP_GATE(0x80BF6DBC, &lit_3890); mDoExt_modelUpdateDL(i_this->mModel);
return 1;
/* 80BF6DC0-80BF6DC4 000004 0004+00 1/2 0/0 0/0 .rodata @3891 */ }
SECTION_RODATA static f32 const lit_3891 = 1.0f;
COMPILER_STRIP_GATE(0x80BF6DC0, &lit_3891);
/* 80BF6DC4-80BF6DC8 000008 0004+00 0/1 0/0 0/0 .rodata @3892 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3892 = -1.0f;
COMPILER_STRIP_GATE(0x80BF6DC4, &lit_3892);
#pragma pop
/* 80BF6DC8-80BF6DCC 00000C 0004+00 0/1 0/0 0/0 .rodata @3893 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3893 = 29.0f;
COMPILER_STRIP_GATE(0x80BF6DC8, &lit_3893);
#pragma pop
/* 80BF6DCC-80BF6DD0 000010 0004+00 1/3 0/0 0/0 .rodata @3894 */
SECTION_RODATA static u8 const lit_3894[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BF6DCC, &lit_3894);
/* 80BF6DD0-80BF6DD4 000014 0004+00 0/1 0/0 0/0 .rodata @3895 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3895 = -200.0f;
COMPILER_STRIP_GATE(0x80BF6DD0, &lit_3895);
#pragma pop
/* 80BF6DEC-80BF6DEC 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BF6DEC = "D_MN09B";
#pragma pop
/* 80BF63F8-80BF678C 000158 0394+00 2/1 0/0 0/0 .text daObj_Gb_Execute__FP12obj_gb_class /* 80BF63F8-80BF678C 000158 0394+00 2/1 0/0 0/0 .text daObj_Gb_Execute__FP12obj_gb_class
*/ */
static void daObj_Gb_Execute(obj_gb_class* param_0) { static int daObj_Gb_Execute(obj_gb_class* i_this) {
// NONMATCHING fopAc_ac_c* player = dComIfGp_getPlayer(0);
cXyz acStack_30;
cXyz cStack_3c;
i_this->field_0x58e++;
for (int i = 0; i < 2; i++) {
if (i_this->field_0x58a[i] != 0) {
i_this->field_0x58a[i]--;
} }
}
/* 80BF678C-80BF67C8 0004EC 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ switch(i_this->mIsFinalBattle) {
// cXyz::~cXyz() { case 0:
extern "C" void __dt__4cXyzFv() { if (i_this->field_0x57c == 0) {
// NONMATCHING for (int i = 0; i < 20; i++) {
if (i_this->mBrkFrame < 0.5f) {
Z2GetAudioMgr()->seStart(Z2SE_OBJ_GANON_BARRIER_APPR, &i_this->field_0x594[i],
0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_GANON_BARRIER, &i_this->field_0x594[i], 0, 0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
}
} else {
if (i_this->mBrkFrame < 0.5f) {
Z2GetAudioMgr()->seStart(Z2SE_OBJ_GANON_BARRIER_APPR, &i_this->current.pos, 0, 0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
}
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_GANON_BARRIER, &i_this->current.pos, 0, 0, 1.0f,
1.0f, -1.0f, -1.0f, 0);
}
cLib_addCalc2(&i_this->mBrkFrame, 29.0f, 1.0f, 1.0f);
if (strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) {
if (dComIfGs_isSwitch(i_this->mSw2, fopAcM_GetRoomNo(i_this)) ||
!dComIfGs_isSwitch(i_this->mSw1, fopAcM_GetRoomNo(i_this)))
{
i_this->mIsFinalBattle = 1;
}
}
break;
case 1:
cLib_addCalc2(&i_this->mBrkFrame, 0, 1.0f, 1.0f);
if (!dComIfGs_isSwitch(i_this->mSw2, fopAcM_GetRoomNo(i_this)) &&
dComIfGs_isSwitch(i_this->mSw1, fopAcM_GetRoomNo(i_this)))
{
i_this->mIsFinalBattle = 0;
}
break;
}
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
mDoMtx_stack_c::YrotM(i_this->current.angle.y);
if (i_this->field_0x57c == 0) {
mDoMtx_stack_c::scaleM(i_this->scale.x, i_this->scale.y, i_this->scale.x);
} else {
mDoMtx_stack_c::scaleM(i_this->scale.x, i_this->scale.y, 1.0f);
}
i_this->mModel->setBaseTRMtx(mDoMtx_stack_c::get());
i_this->mBtk->play();
i_this->mBrk->setFrame(i_this->mBrkFrame);
if (i_this->mBrkFrame < 1.0f) {
mDoMtx_stack_c::transM(0.0f, -200.0f, 0.0f);
mDoMtx_stack_c::scaleM(1.0f, 0.0f, 1.0f);
}
MTXCopy(mDoMtx_stack_c::get(), i_this->mBgMtx);
i_this->mpBgW->Move();
return 1;
} }
/* 80BF67C8-80BF67D0 000528 0008+00 1/0 0/0 0/0 .text daObj_Gb_IsDelete__FP12obj_gb_class /* 80BF67C8-80BF67D0 000528 0008+00 1/0 0/0 0/0 .text daObj_Gb_IsDelete__FP12obj_gb_class
*/ */
static bool daObj_Gb_IsDelete(obj_gb_class* param_0) { static int daObj_Gb_IsDelete(obj_gb_class* param_0) {
return true; return 1;
} }
/* ############################################################################################## */
/* 80BF6DEC-80BF6DEC 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BF6DF4 = "Obj_gb";
#pragma pop
/* 80BF67D0-80BF682C 000530 005C+00 1/0 0/0 0/0 .text daObj_Gb_Delete__FP12obj_gb_class /* 80BF67D0-80BF682C 000530 005C+00 1/0 0/0 0/0 .text daObj_Gb_Delete__FP12obj_gb_class
*/ */
static void daObj_Gb_Delete(obj_gb_class* param_0) { static int daObj_Gb_Delete(obj_gb_class* i_this) {
// NONMATCHING fopAcM_GetID(i_this);
dComIfG_resDelete(&i_this->mPhase, "Obj_gb");
if (i_this->mpBgW != NULL) {
dComIfG_Bgsp().Release(i_this->mpBgW);
}
return 1;
} }
/* ############################################################################################## */ /* ############################################################################################## */
/* 80BF6DFC-80BF6E08 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ /* 80BF6DFC-80BF6E08 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}; };
/* 80BF6E08-80BF6E1C 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ /* 80BF6E08-80BF6E1C 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push #pragma push
#pragma force_active on #pragma force_active on
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201, 0x02000201,
/* padding */ /* padding */
0x40080000, 0x40080000,
@ -178,44 +131,132 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
#pragma pop #pragma pop
/* 80BF6E1C-80BF6E24 000020 0008+00 0/1 0/0 0/0 .data bmd$3914 */ /* 80BF6E1C-80BF6E24 000020 0008+00 0/1 0/0 0/0 .data bmd$3914 */
#pragma push static int bmd[2] = {
#pragma force_active on 6, 7,
SECTION_DATA static u8 bmd[8] = {
0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07,
}; };
#pragma pop
/* 80BF6E24-80BF6E2C 000028 0008+00 0/1 0/0 0/0 .data brk$3915 */ /* 80BF6E24-80BF6E2C 000028 0008+00 0/1 0/0 0/0 .data brk$3915 */
#pragma push static int brk[2] = {
#pragma force_active on 10, 11,
SECTION_DATA static u8 brk[8] = {
0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B,
}; };
#pragma pop
/* 80BF6E2C-80BF6E34 000030 0008+00 0/1 0/0 0/0 .data btk$3916 */ /* 80BF6E2C-80BF6E34 000030 0008+00 0/1 0/0 0/0 .data btk$3916 */
#pragma push static int btk[2] = {
#pragma force_active on 14, 15,
SECTION_DATA static u8 btk[8] = {
0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F,
}; };
#pragma pop
/* 80BF6E34-80BF6E3C 000038 0008+00 0/1 0/0 0/0 .data dzb$3917 */ /* 80BF6E34-80BF6E3C 000038 0008+00 0/1 0/0 0/0 .data dzb$3917 */
#pragma push static int dzb[2] = {
#pragma force_active on 18, 19,
SECTION_DATA static u8 dzb[8] = {
0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13,
}; };
#pragma pop
/* 80BF682C-80BF6A98 00058C 026C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static int useHeapInit(fopAc_ac_c* actor) {
obj_gb_class* i_this = (obj_gb_class*)actor;
J3DModelData* modelData = (J3DModelData*) dComIfG_getObjectRes("Obj_gb", bmd[i_this->field_0x57c]);
JUT_ASSERT(324, modelData != 0);
i_this->mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
if (i_this->mModel == NULL) {
return 0;
}
i_this->mBtk = new mDoExt_btkAnm();
if (i_this->mBtk == NULL) {
return 0;
}
J3DAnmTextureSRTKey* anmTexture = (J3DAnmTextureSRTKey*) dComIfG_getObjectRes(
"Obj_gb", btk[i_this->field_0x57c]);
if (i_this->mBtk->init(i_this->mModel->getModelData(), anmTexture, 1, 2, 1.0f, 0, -1) == 0) {
return 0;
}
i_this->mBrk = new mDoExt_brkAnm();
if (i_this->mBrk== NULL) {
return 0;
}
J3DAnmTevRegKey* anmTevKey = (J3DAnmTevRegKey*)dComIfG_getObjectRes(
"Obj_gb", brk[i_this->field_0x57c]);
if (i_this->mBrk->init(i_this->mModel->getModelData(), anmTevKey, 1, 2, 0.0f, 0, -1) == 0) {
return 0;
}
i_this->mpBgW = new dBgW();
if (i_this->mpBgW == NULL) {
return 0;
}
cBgD_t* pbGd = (cBgD_t*)dComIfG_getObjectRes(
"Obj_gb", dzb[i_this->field_0x57c]);
return i_this->mpBgW->Set(pbGd, 1, &i_this->mBgMtx) == 1 ? 0 : 1;
}
/* 80BF6AE0-80BF6DB0 000840 02D0+00 1/0 0/0 0/0 .text daObj_Gb_Create__FP10fopAc_ac_c */
static int daObj_Gb_Create(fopAc_ac_c* actor) {
fopAcM_SetupActor(actor, obj_gb_class);
obj_gb_class* i_this = (obj_gb_class*)actor;
int rv = dComIfG_resLoad(&i_this->mPhase, "Obj_gb");
if (rv == cPhs_COMPLEATE_e) {
OS_REPORT("OBJ_GB PARAM %x\n", fopAcM_GetParam(i_this));
i_this->field_0x57c = fopAcM_GetParam(i_this);
if (i_this->field_0x57c == 0xff) {
i_this->field_0x57c = 0;
}
u8 local_47 = (fopAcM_GetParam(i_this) >> 8) & 0xff;
if (local_47 == 0xff) {
if (i_this->field_0x57c == 0) {
local_47 = 100;
} else {
local_47 = 10;
}
}
if (i_this->field_0x57c == 0) {
i_this->scale.x = local_47 * 0.01f;
} else {
i_this->scale.x = local_47 * 0.5f;
}
i_this->scale.y = ((fopAcM_GetParam(i_this) >> 16) & 0xff) * 0.333333f * 0.5f;
i_this->mColorAlpha = fopAcM_GetParam(i_this) >> 24;
i_this->mSw1 = i_this->current.angle.x & 0xff;
i_this->mSw2 = (i_this->current.angle.x & 0xff00) >> 8;
i_this->shape_angle.x = 0;
i_this->current.angle.x = 0;
OS_REPORT("OBJ_GB//////////////OBJ_GB SET 1 !!\n");
int heapSize;
if (i_this->field_0x57c == 0) {
heapSize = 0x1c40;
} else {
heapSize = 0x1320;
}
if (fopAcM_entrySolidHeap(i_this, useHeapInit, heapSize) == 0) {
OS_REPORT("//////////////OBJ_GB SET NON !!\n");
return cPhs_ERROR_e;
}
OS_REPORT("//////////////OBJ_GB SET 2 !!\n");
if (i_this->mpBgW != NULL) {
if (dComIfG_Bgsp().Regist(i_this->mpBgW, i_this) != 0) {
return cPhs_ERROR_e;
}
}
i_this->field_0x58e = cM_rndF(65536.0f);
if (strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) {
i_this->mIsFinalBattle = 1;
}
s16 local_44 = 0;
cXyz cStack_30(0.0f, 0.0f, i_this->scale.x * 1000.0f);
for (int i = 0; i < 20; i++, local_44 += 0xccc) {
cMtx_YrotS(*calc_mtx, local_44);
MtxPosition(&cStack_30, &i_this->field_0x594[i]);
i_this->field_0x594[i] += i_this->current.pos;
}
daObj_Gb_Execute(i_this);
}
return rv;
}
/* 80BF6E3C-80BF6E5C -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Gb_Method */ /* 80BF6E3C-80BF6E5C -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Gb_Method */
static actor_method_class l_daObj_Gb_Method = { static actor_method_class l_daObj_Gb_Method = {
(process_method_func)daObj_Gb_Create__FP10fopAc_ac_c, (process_method_func)daObj_Gb_Create,
(process_method_func)daObj_Gb_Delete__FP12obj_gb_class, (process_method_func)daObj_Gb_Delete,
(process_method_func)daObj_Gb_Execute__FP12obj_gb_class, (process_method_func)daObj_Gb_Execute,
(process_method_func)daObj_Gb_IsDelete__FP12obj_gb_class, (process_method_func)daObj_Gb_IsDelete,
(process_method_func)daObj_Gb_Draw__FP12obj_gb_class, (process_method_func)daObj_Gb_Draw,
}; };
/* 80BF6E5C-80BF6E8C -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_GB */ /* 80BF6E5C-80BF6E8C -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_GB */
@ -236,71 +277,4 @@ extern actor_process_profile_definition g_profile_OBJ_GB = {
fopAc_CULLBOX_CUSTOM_e, // cullType fopAc_CULLBOX_CUSTOM_e, // cullType
}; };
/* 80BF6E8C-80BF6E98 000090 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12J3DFrameCtrlFv,
};
/* 80BF682C-80BF6A98 00058C 026C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static void useHeapInit(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BF6A98-80BF6AE0 0007F8 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
// J3DFrameCtrl::~J3DFrameCtrl() {
extern "C" void __dt__12J3DFrameCtrlFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BF6DD4-80BF6DD8 000018 0004+00 0/1 0/0 0/0 .rodata @4083 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4083 = 1.0f / 100.0f;
COMPILER_STRIP_GATE(0x80BF6DD4, &lit_4083);
#pragma pop
/* 80BF6DD8-80BF6DDC 00001C 0004+00 0/1 0/0 0/0 .rodata @4084 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4084 = 0x3EAAAA9F;
COMPILER_STRIP_GATE(0x80BF6DD8, &lit_4084);
#pragma pop
/* 80BF6DDC-80BF6DE0 000020 0004+00 0/1 0/0 0/0 .rodata @4085 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4085 = 65536.0f;
COMPILER_STRIP_GATE(0x80BF6DDC, &lit_4085);
#pragma pop
/* 80BF6DE0-80BF6DE4 000024 0004+00 0/1 0/0 0/0 .rodata @4086 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4086 = 1000.0f;
COMPILER_STRIP_GATE(0x80BF6DE0, &lit_4086);
#pragma pop
/* 80BF6DE4-80BF6DEC 000028 0008+00 0/1 0/0 0/0 .rodata @4088 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4088[8] = {
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BF6DE4, &lit_4088);
#pragma pop
/* 80BF6AE0-80BF6DB0 000840 02D0+00 1/0 0/0 0/0 .text daObj_Gb_Create__FP10fopAc_ac_c */
static void daObj_Gb_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BF6DB0-80BF6DB4 000B10 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
// cXyz::cXyz() {
extern "C" void __ct__4cXyzFv() {
/* empty function */
}
/* 80BF6DEC-80BF6DEC 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ /* 80BF6DEC-80BF6DEC 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

File diff suppressed because it is too large Load Diff

View File

@ -4,68 +4,172 @@
*/ */
#include "d/actor/d_a_obj_timeFire.h" #include "d/actor/d_a_obj_timeFire.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h" #include "dol2asm.h"
/* 80D0E8EC-80D0E910 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daTimeFire_HIO_cFv */
daTimeFire_HIO_c::daTimeFire_HIO_c() {
field_0x4 = 20;
}
/* 80D0E958-80D0E9B0 000158 0058+00 1/1 0/0 0/0 .text setBaseMtx__12daTimeFire_cFv */
void daTimeFire_c::setBaseMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
}
// /* 80D0E9B0-80D0EACC 0001B0 011C+00 1/1 0/0 0/0 .text create__12daTimeFire_cFv */
// Forward References: int daTimeFire_c::create() {
// fopAcM_SetupActor(this, daTimeFire_c);
setBaseMtx();
field_0x570 = current.pos;
lightInit();
mStartTime = getStartTime();
mEndTime = getEndTime();
int scaleParam = getScale();
f32 fVar1 = scaleParam / 10.0f;
mParticleScale.set(fVar1, fVar1, fVar1);
field_0x56c = fireCheck(1);
if (!field_0x56c) {
cutLight();
field_0x56d = false;
} else {
setLight();
field_0x56d = true;
}
field_0x568 = 0;
field_0x569 = 0;
return cPhs_COMPLEATE_e;
}
extern "C" void __ct__16daTimeFire_HIO_cFv(); /* 80D0EACC-80D0EB40 0002CC 0074+00 1/1 0/0 0/0 .text lightInit__12daTimeFire_cFv */
extern "C" void __dt__14mDoHIO_entry_cFv(); void daTimeFire_c::lightInit() {
extern "C" void setBaseMtx__12daTimeFire_cFv(); field_0x594 = field_0x570;
extern "C" void create__12daTimeFire_cFv(); field_0x594.y += 10.0f;
extern "C" void lightInit__12daTimeFire_cFv(); mLightInfluence.mPosition = field_0x594;
extern "C" void setLight__12daTimeFire_cFv(); mLightInfluence.mColor.r = 0xbc;
extern "C" void cutLight__12daTimeFire_cFv(); mLightInfluence.mColor.g = 0x66;
extern "C" void Execute__12daTimeFire_cFv(); mLightInfluence.mColor.b = 0x42;
extern "C" void fireCheck__12daTimeFire_cFUc(); mLightInfluence.mPow = 500.0f;
extern "C" bool Draw__12daTimeFire_cFv(); mLightInfluence.mFluctuation = 1.0f;
extern "C" void Delete__12daTimeFire_cFv(); }
extern "C" static void daTimeFire_Draw__FP12daTimeFire_c();
extern "C" static void daTimeFire_Execute__FP12daTimeFire_c();
extern "C" static void daTimeFire_Delete__FP12daTimeFire_c();
extern "C" static void daTimeFire_Create__FP10fopAc_ac_c();
extern "C" void __dt__16daTimeFire_HIO_cFv();
extern "C" void __sinit_d_a_obj_timeFire_cpp();
// /* 80D0EB40-80D0EB64 000340 0024+00 2/2 0/0 0/0 .text setLight__12daTimeFire_cFv */
// External References: void daTimeFire_c::setLight() {
// dKy_plight_set(&mLightInfluence);
}
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); /* 80D0EB64-80D0EB88 000364 0024+00 2/2 0/0 0/0 .text cutLight__12daTimeFire_cFv */
extern "C" void __ct__10fopAc_ac_cFv(); void daTimeFire_c::cutLight() {
extern "C" void dComIfGp_getReverb__Fi(); dKy_plight_cut(&mLightInfluence);
extern "C" void isSwitch__10dSv_info_cCFii(); }
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void dKy_getdaytime_hour__Fv();
extern "C" void dKy_getdaytime_minute__Fv();
extern "C" void dKy_plight_set__FP15LIGHT_INFLUENCE();
extern "C" void dKy_plight_cut__FP15LIGHT_INFLUENCE();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
// /* 80D0EB88-80D0ED68 000388 01E0+00 1/1 0/0 0/0 .text Execute__12daTimeFire_cFv */
// Declarations: int daTimeFire_c::Execute() {
// bool prevFireCheck = field_0x56c;
field_0x56c = fireCheck(0);
if (prevFireCheck != field_0x56c) {
if (field_0x56c == 0) {
cutLight();
field_0x56d = false;
} else {
setLight();
field_0x56d = true;
}
}
if (field_0x56d) {
mParticleId1 = dComIfGp_particle_set(mParticleId1, 0x3ad, &field_0x570, NULL, &mParticleScale);
mParticleId2 = dComIfGp_particle_set(mParticleId2, 0x3af, &field_0x570, NULL, &mParticleScale);
mParticleId3 = dComIfGp_particle_set(mParticleId3, 0x3ae, &field_0x570, NULL, &mParticleScale);
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStartLevel(Z2SE_OBJ_FIRE_BURNING, &field_0x570, 0, reverb);
}
return 1;
}
/* 80D0ED68-80D0EF88 000568 0220+00 2/2 0/0 0/0 .text fireCheck__12daTimeFire_cFUc */
bool daTimeFire_c::fireCheck(u8 param_1) {
bool inTime = false;
BOOL isSw;
if (getSw() == 0xff) {
isSw = 1;
} else {
isSw = fopAcM_isSwitch(this, getSw()) & 0xff;
}
if (mStartTime > mEndTime) {
if (dKy_getdaytime_hour() >= mStartTime || dKy_getdaytime_hour() <= mEndTime) {
inTime = true;
}
} else {
if (dKy_getdaytime_hour() >= mStartTime && dKy_getdaytime_hour() <= mEndTime) {
inTime = true;
}
}
if (inTime && (isSw & 0xff) && dKy_getdaytime_hour() == mStartTime && dKy_getdaytime_minute() == 0 &&
field_0x569 == 0 && param_1 == 0)
{
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStart(Z2SE_OBJ_FIRE_IGNITION, &field_0x570, 0, reverb);
field_0x569 = 1;
}
if (inTime && (isSw & 0xff) && dKy_getdaytime_hour() == mEndTime && dKy_getdaytime_minute() == 0 &&
field_0x569 == 1 && param_1 == 0)
{
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStart(Z2SE_OBJ_FIRE_OFF, &field_0x570, 0, reverb);
field_0x569 = 2;
}
if (inTime && (isSw & 0xff)) {
return 1;
}
field_0x569 = 0;
return 0;
}
/* 80D0EF88-80D0EF90 000788 0008+00 1/1 0/0 0/0 .text Draw__12daTimeFire_cFv */
int daTimeFire_c::Draw() {
return 1;
}
/* 80D0EF90-80D0EFB8 000790 0028+00 1/1 0/0 0/0 .text Delete__12daTimeFire_cFv */
int daTimeFire_c::Delete() {
dKy_plight_cut(&mLightInfluence);
return 1;
}
/* 80D0EFB8-80D0EFD8 0007B8 0020+00 1/0 0/0 0/0 .text daTimeFire_Draw__FP12daTimeFire_c
*/
static int daTimeFire_Draw(daTimeFire_c* i_this) {
return i_this->Draw();
}
/* 80D0EFD8-80D0EFF8 0007D8 0020+00 1/0 0/0 0/0 .text daTimeFire_Execute__FP12daTimeFire_c */
static int daTimeFire_Execute(daTimeFire_c* i_this) {
return i_this->Execute();
}
/* 80D0EFF8-80D0F018 0007F8 0020+00 1/0 0/0 0/0 .text daTimeFire_Delete__FP12daTimeFire_c
*/
static int daTimeFire_Delete(daTimeFire_c* i_this) {
return i_this->Delete();
}
/* 80D0F018-80D0F038 000818 0020+00 1/0 0/0 0/0 .text daTimeFire_Create__FP10fopAc_ac_c
*/
static int daTimeFire_Create(fopAc_ac_c* i_this) {
return static_cast<daTimeFire_c*>(i_this)->create();
}
/* 80D0F17C-80D0F184 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static daTimeFire_HIO_c l_HIO;
/* ############################################################################################## */
/* 80D0F100-80D0F120 -00001 0020+00 1/0 0/0 0/0 .data l_daTimeFire_Method */ /* 80D0F100-80D0F120 -00001 0020+00 1/0 0/0 0/0 .data l_daTimeFire_Method */
static actor_method_class l_daTimeFire_Method = { static actor_method_class l_daTimeFire_Method = {
(process_method_func)daTimeFire_Create__FP10fopAc_ac_c, (process_method_func)daTimeFire_Create,
(process_method_func)daTimeFire_Delete__FP12daTimeFire_c, (process_method_func)daTimeFire_Delete,
(process_method_func)daTimeFire_Execute__FP12daTimeFire_c, (process_method_func)daTimeFire_Execute,
0, NULL,
(process_method_func)daTimeFire_Draw__FP12daTimeFire_c, (process_method_func)daTimeFire_Draw,
}; };
/* 80D0F120-80D0F150 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TimeFire */ /* 80D0F120-80D0F150 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TimeFire */
@ -85,150 +189,3 @@ extern actor_process_profile_definition g_profile_Obj_TimeFire = {
fopAc_ACTOR_e, // mActorType fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType fopAc_CULLBOX_CUSTOM_e, // cullType
}; };
/* 80D0F150-80D0F15C 000050 000C+00 2/2 0/0 0/0 .data __vt__16daTimeFire_HIO_c */
SECTION_DATA extern void* __vt__16daTimeFire_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16daTimeFire_HIO_cFv,
};
/* 80D0F15C-80D0F168 00005C 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */
SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14mDoHIO_entry_cFv,
};
/* 80D0E8EC-80D0E910 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daTimeFire_HIO_cFv */
daTimeFire_HIO_c::daTimeFire_HIO_c() {
// NONMATCHING
}
/* 80D0E910-80D0E958 000110 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */
// mDoHIO_entry_c::~mDoHIO_entry_c() {
extern "C" void __dt__14mDoHIO_entry_cFv() {
// NONMATCHING
}
/* 80D0E958-80D0E9B0 000158 0058+00 1/1 0/0 0/0 .text setBaseMtx__12daTimeFire_cFv */
void daTimeFire_c::setBaseMtx() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F0E4-80D0F0EC 000000 0004+04 2/2 0/0 0/0 .rodata @3686 */
SECTION_RODATA static f32 const lit_3686[1 + 1 /* padding */] = {
10.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80D0F0E4, &lit_3686);
/* 80D0F0EC-80D0F0F4 000008 0008+00 1/1 0/0 0/0 .rodata @3688 */
SECTION_RODATA static u8 const lit_3688[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D0F0EC, &lit_3688);
/* 80D0E9B0-80D0EACC 0001B0 011C+00 1/1 0/0 0/0 .text create__12daTimeFire_cFv */
void daTimeFire_c::create() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F0F4-80D0F0F8 000010 0004+00 0/1 0/0 0/0 .rodata @3707 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3707 = 500.0f;
COMPILER_STRIP_GATE(0x80D0F0F4, &lit_3707);
#pragma pop
/* 80D0F0F8-80D0F0FC 000014 0004+00 2/3 0/0 0/0 .rodata @3708 */
SECTION_RODATA static f32 const lit_3708 = 1.0f;
COMPILER_STRIP_GATE(0x80D0F0F8, &lit_3708);
/* 80D0EACC-80D0EB40 0002CC 0074+00 1/1 0/0 0/0 .text lightInit__12daTimeFire_cFv */
void daTimeFire_c::lightInit() {
// NONMATCHING
}
/* 80D0EB40-80D0EB64 000340 0024+00 2/2 0/0 0/0 .text setLight__12daTimeFire_cFv */
void daTimeFire_c::setLight() {
// NONMATCHING
}
/* 80D0EB64-80D0EB88 000364 0024+00 2/2 0/0 0/0 .text cutLight__12daTimeFire_cFv */
void daTimeFire_c::cutLight() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F0FC-80D0F100 000018 0004+00 2/2 0/0 0/0 .rodata @3757 */
SECTION_RODATA static f32 const lit_3757 = -1.0f;
COMPILER_STRIP_GATE(0x80D0F0FC, &lit_3757);
/* 80D0EB88-80D0ED68 000388 01E0+00 1/1 0/0 0/0 .text Execute__12daTimeFire_cFv */
void daTimeFire_c::Execute() {
// NONMATCHING
}
/* 80D0ED68-80D0EF88 000568 0220+00 2/2 0/0 0/0 .text fireCheck__12daTimeFire_cFUc */
void daTimeFire_c::fireCheck(u8 param_0) {
// NONMATCHING
}
/* 80D0EF88-80D0EF90 000788 0008+00 1/1 0/0 0/0 .text Draw__12daTimeFire_cFv */
bool daTimeFire_c::Draw() {
return true;
}
/* 80D0EF90-80D0EFB8 000790 0028+00 1/1 0/0 0/0 .text Delete__12daTimeFire_cFv */
void daTimeFire_c::Delete() {
// NONMATCHING
}
/* 80D0EFB8-80D0EFD8 0007B8 0020+00 1/0 0/0 0/0 .text daTimeFire_Draw__FP12daTimeFire_c
*/
static void daTimeFire_Draw(daTimeFire_c* param_0) {
// NONMATCHING
}
/* 80D0EFD8-80D0EFF8 0007D8 0020+00 1/0 0/0 0/0 .text daTimeFire_Execute__FP12daTimeFire_c */
static void daTimeFire_Execute(daTimeFire_c* param_0) {
// NONMATCHING
}
/* 80D0EFF8-80D0F018 0007F8 0020+00 1/0 0/0 0/0 .text daTimeFire_Delete__FP12daTimeFire_c
*/
static void daTimeFire_Delete(daTimeFire_c* param_0) {
// NONMATCHING
}
/* 80D0F018-80D0F038 000818 0020+00 1/0 0/0 0/0 .text daTimeFire_Create__FP10fopAc_ac_c
*/
static void daTimeFire_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80D0F038-80D0F094 000838 005C+00 2/1 0/0 0/0 .text __dt__16daTimeFire_HIO_cFv */
daTimeFire_HIO_c::~daTimeFire_HIO_c() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F170-80D0F17C 000008 000C+00 1/1 0/0 0/0 .bss @3621 */
static u8 lit_3621[12];
/* 80D0F17C-80D0F184 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static u8 l_HIO[8];
/* 80D0F094-80D0F0D0 000894 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_timeFire_cpp */
void __sinit_d_a_obj_timeFire_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80D0F094, __sinit_d_a_obj_timeFire_cpp);
#pragma pop

View File

@ -4,77 +4,148 @@
*/ */
#include "d/actor/d_a_obj_toaru_maki.h" #include "d/actor/d_a_obj_toaru_maki.h"
#include "dol2asm.h" #include "d/d_bg_w.h"
//
// Forward References:
//
extern "C" static void daObjToaruMaki_c_createHeap__FP10fopAc_ac_c();
extern "C" void __ct__16daObjToaruMaki_cFv();
extern "C" void __dt__16daObjToaruMaki_cFv();
extern "C" void createHeap__16daObjToaruMaki_cFv();
extern "C" void create__16daObjToaruMaki_cFv();
extern "C" void Delete__16daObjToaruMaki_cFv();
extern "C" void setModelMtx__16daObjToaruMaki_cFv();
extern "C" void draw__16daObjToaruMaki_cFv();
extern "C" void execute__16daObjToaruMaki_cFv();
extern "C" static void daObjToaruMaki_create__FP16daObjToaruMaki_c();
extern "C" static void daObjToaruMaki_Delete__FP16daObjToaruMaki_c();
extern "C" static void daObjToaruMaki_execute__FP16daObjToaruMaki_c();
extern "C" static void daObjToaruMaki_draw__FP16daObjToaruMaki_c();
extern "C" extern char const* const d_a_obj_toaru_maki__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_setupStageTexture__FP12J3DModelData();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
extern "C" void __ct__4dBgWFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void ChkUsed__9cBgW_BgIdCFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" u8 now__14mDoMtx_stack_c[48];
//
// Declarations:
//
/* 80D13078-80D13098 000078 0020+00 1/1 0/0 0/0 .text daObjToaruMaki_c_createHeap__FP10fopAc_ac_c /* 80D13078-80D13098 000078 0020+00 1/1 0/0 0/0 .text daObjToaruMaki_c_createHeap__FP10fopAc_ac_c
*/ */
static int daObjToaruMaki_c_createHeap(fopAc_ac_c* i_this) { static int daObjToaruMaki_c_createHeap(fopAc_ac_c* i_this) {
// NONMATCHING return static_cast<daObjToaruMaki_c*>(i_this)->createHeap();
} }
/* 80D13624-80D1362C -00001 0008+00 3/3 0/0 0/0 .data l_arcName */ /* 80D13624-80D1362C -00001 0008+00 3/3 0/0 0/0 .data l_arcName */
static char* l_arcName[2] = {"T_Maki1", "T_Maki2"}; static char* l_arcName[2] = {"T_Maki1", "T_Maki2"};
/* 80D13098-80D130E0 000098 0048+00 2/2 0/0 0/0 .text __ct__16daObjToaruMaki_cFv */
daObjToaruMaki_c::daObjToaruMaki_c() {
mpBgW = NULL;
mpModel = NULL;
}
/* 80D130E0-80D1316C 0000E0 008C+00 1/0 0/0 0/0 .text __dt__16daObjToaruMaki_cFv */
daObjToaruMaki_c::~daObjToaruMaki_c() {
dComIfG_resDelete(this, l_arcName[getNameArg_0()]);
}
/* 80D13604-80D1360C 000000 0008+00 1/1 0/0 0/0 .rodata l_bmdIdx */
static const u32 l_bmdIdx[2] = {4, 3};
/* 80D1316C-80D132B4 00016C 0148+00 1/1 0/0 0/0 .text createHeap__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::createHeap() {
u32 nameArg = getNameArg_0();
J3DModelData* a_model_data_p =
(J3DModelData*)dComIfG_getObjectRes(l_arcName[nameArg], l_bmdIdx[nameArg]);
JUT_ASSERT(101, a_model_data_p != 0);
mpModel = mDoExt_J3DModel__create(a_model_data_p, 0x80000, 0x11000084);
if (mpModel == NULL) {
return 0;
}
if (nameArg == 0) {
mpBgW = new dBgW();
if (mpBgW == NULL) {
return 0;
}
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
MTXCopy(mDoMtx_stack_c::get(), mMtx);
cBgD_t* cBgD = (cBgD_t*)dComIfG_getObjectRes(l_arcName[nameArg], 7);
if (mpBgW->Set(cBgD, 1, &mMtx) == 1) {
return 0;
}
}
return 1;
}
/* 80D1360C-80D13614 000008 0008+00 1/1 0/0 0/0 .rodata l_heapSize */
static const u32 l_heapSize[2] = {
0x2000,
0x0EB0,
};
/* 80D132B4-80D133C0 0002B4 010C+00 1/1 0/0 0/0 .text create__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::create() {
fopAcM_SetupActor(this, daObjToaruMaki_c);
u32 nameArg = getNameArg_0();
int rv = dComIfG_resLoad(this, l_arcName[nameArg]);
if (rv == cPhs_COMPLEATE_e) {
if (fopAcM_entrySolidHeap(this, daObjToaruMaki_c_createHeap, l_heapSize[nameArg]) == 0) {
return cPhs_ERROR_e;
}
mDoExt_setupStageTexture(mpModel->getModelData());
if (nameArg == 0) {
if (dComIfG_Bgsp().Regist(mpBgW, this) != 0) {
return cPhs_ERROR_e;
}
}
setModelMtx();
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
}
return rv;
}
/* 80D133C0-80D1343C 0003C0 007C+00 1/1 0/0 0/0 .text Delete__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::Delete() {
if (getNameArg_0() == 0 && mpBgW != NULL && mpBgW->ChkUsed()) {
dComIfG_Bgsp().Release(mpBgW);
}
this->~daObjToaruMaki_c();
return 1;
}
/* 80D1343C-80D134A0 00043C 0064+00 2/2 0/0 0/0 .text setModelMtx__16daObjToaruMaki_cFv
*/
void daObjToaruMaki_c::setModelMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80D134A0-80D13524 0004A0 0084+00 1/1 0/0 0/0 .text draw__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::draw() {
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
dComIfGd_setList();
mDoExt_modelUpdateDL(mpModel);
return 1;
}
/* 80D13524-80D13548 000524 0024+00 1/1 0/0 0/0 .text execute__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::execute() {
setModelMtx();
return 1;
}
/* 80D13548-80D1359C 000548 0054+00 1/0 0/0 0/0 .text daObjToaruMaki_create__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_create(daObjToaruMaki_c* i_this) {
// !@bug this setup is called twice. No adverse effects though.
fopAcM_SetupActor(i_this, daObjToaruMaki_c);
return i_this->create();
}
/* 80D1359C-80D135BC 00059C 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_Delete__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_Delete(daObjToaruMaki_c* i_this) {
return i_this->Delete();
}
/* 80D135BC-80D135DC 0005BC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_execute__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_execute(daObjToaruMaki_c* i_this) {
return i_this->execute();;
}
/* 80D135DC-80D135FC 0005DC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_draw__FP16daObjToaruMaki_c */
static int daObjToaruMaki_draw(daObjToaruMaki_c* i_this) {
return i_this->draw();
}
/* 80D1362C-80D1364C -00001 0020+00 1/0 0/0 0/0 .data daObjToaruMaki_METHODS */ /* 80D1362C-80D1364C -00001 0020+00 1/0 0/0 0/0 .data daObjToaruMaki_METHODS */
static actor_method_class daObjToaruMaki_METHODS = { static actor_method_class daObjToaruMaki_METHODS = {
(process_method_func)daObjToaruMaki_create__FP16daObjToaruMaki_c, (process_method_func)daObjToaruMaki_create,
(process_method_func)daObjToaruMaki_Delete__FP16daObjToaruMaki_c, (process_method_func)daObjToaruMaki_Delete,
(process_method_func)daObjToaruMaki_execute__FP16daObjToaruMaki_c, (process_method_func)daObjToaruMaki_execute,
0, NULL,
(process_method_func)daObjToaruMaki_draw__FP16daObjToaruMaki_c, (process_method_func)daObjToaruMaki_draw,
}; };
/* 80D1364C-80D1367C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_ToaruMaki */ /* 80D1364C-80D1367C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_ToaruMaki */
@ -94,83 +165,3 @@ extern actor_process_profile_definition g_profile_Obj_ToaruMaki = {
fopAc_ENV_e, // mActorType fopAc_ENV_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType fopAc_CULLBOX_CUSTOM_e, // cullType
}; };
/* 80D1367C-80D13688 000058 000C+00 2/2 0/0 0/0 .data __vt__16daObjToaruMaki_c */
SECTION_DATA extern void* __vt__16daObjToaruMaki_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16daObjToaruMaki_cFv,
};
/* 80D13098-80D130E0 000098 0048+00 2/2 0/0 0/0 .text __ct__16daObjToaruMaki_cFv */
daObjToaruMaki_c::daObjToaruMaki_c() {
// NONMATCHING
}
/* 80D130E0-80D1316C 0000E0 008C+00 1/0 0/0 0/0 .text __dt__16daObjToaruMaki_cFv */
daObjToaruMaki_c::~daObjToaruMaki_c() {
// NONMATCHING
}
/* 80D13604-80D1360C 000000 0008+00 1/1 0/0 0/0 .rodata l_bmdIdx */
static const u32 l_bmdIdx[2] = {4, 3};
/* 80D1316C-80D132B4 00016C 0148+00 1/1 0/0 0/0 .text createHeap__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::createHeap() {
// NONMATCHING
}
/* 80D1360C-80D13614 000008 0008+00 1/1 0/0 0/0 .rodata l_heapSize */
static const u32 l_heapSize[2] = {
0x2000,
0x0EB0,
};
/* 80D132B4-80D133C0 0002B4 010C+00 1/1 0/0 0/0 .text create__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::create() {
// NONMATCHING
}
/* 80D133C0-80D1343C 0003C0 007C+00 1/1 0/0 0/0 .text Delete__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::Delete() {
// NONMATCHING
}
/* 80D1343C-80D134A0 00043C 0064+00 2/2 0/0 0/0 .text setModelMtx__16daObjToaruMaki_cFv
*/
void daObjToaruMaki_c::setModelMtx() {
// NONMATCHING
}
/* 80D134A0-80D13524 0004A0 0084+00 1/1 0/0 0/0 .text draw__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::draw() {
// NONMATCHING
}
/* 80D13524-80D13548 000524 0024+00 1/1 0/0 0/0 .text execute__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::execute() {
// NONMATCHING
}
/* 80D13548-80D1359C 000548 0054+00 1/0 0/0 0/0 .text daObjToaruMaki_create__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_create(daObjToaruMaki_c* i_this) {
// NONMATCHING
}
/* 80D1359C-80D135BC 00059C 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_Delete__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_Delete(daObjToaruMaki_c* i_this) {
// NONMATCHING
}
/* 80D135BC-80D135DC 0005BC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_execute__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_execute(daObjToaruMaki_c* i_this) {
// NONMATCHING
}
/* 80D135DC-80D135FC 0005DC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_draw__FP16daObjToaruMaki_c */
static int daObjToaruMaki_draw(daObjToaruMaki_c* i_this) {
// NONMATCHING
}