diff --git a/config/GZ2E01/rels/d_a_obj_tatigi/symbols.txt b/config/GZ2E01/rels/d_a_obj_tatigi/symbols.txt index 7bd32d9c954..f6421aae33c 100644 --- a/config/GZ2E01/rels/d_a_obj_tatigi/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_tatigi/symbols.txt @@ -1,13 +1,13 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global -daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000078; // type:function size:0x88 scope:global -daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000100; // type:function size:0x288 scope:global -daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000388; // type:function size:0x8 scope:global -daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000390; // type:function size:0x88 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x00000418; // type:function size:0xAC scope:global -set_pos_check__FP16obj_tatigi_classi = .text:0x000004C4; // type:function size:0x1B4 scope:global -daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000678; // type:function size:0x3E8 scope:global +daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000078; // type:function size:0x88 scope:local +daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000100; // type:function size:0x288 scope:local +daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000388; // type:function size:0x8 scope:local +daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000390; // type:function size:0x88 scope:local +useHeapInit__FP10fopAc_ac_c = .text:0x00000418; // type:function size:0xAC scope:local +set_pos_check__FP16obj_tatigi_classi = .text:0x000004C4; // type:function size:0x1B4 scope:local +daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000678; // type:function size:0x3E8 scope:local __dt__5tg_ssFv = .text:0x00000A60; // type:function size:0xD4 scope:global __ct__5tg_ssFv = .text:0x00000B34; // type:function size:0x94 scope:global __dt__8cM3dGCylFv = .text:0x00000BC8; // type:function size:0x48 scope:global @@ -34,7 +34,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global @4076 = .rodata:0x00000058; // type:object size:0x8 scope:local @stringBase0 = .rodata:0x00000060; // type:object size:0x7 scope:local data:string_table cc_cyl_src$3986 = .data:0x00000000; // type:object size:0x44 scope:local -l_daObj_Tatigi_Method = .data:0x00000044; // type:object size:0x20 scope:global +l_daObj_Tatigi_Method = .data:0x00000044; // type:object size:0x20 scope:local g_profile_OBJ_TATIGI = .data:0x00000064; // type:object size:0x30 scope:global __vt__8cM3dGAab = .data:0x00000094; // type:object size:0xC scope:global __vt__8cM3dGCyl = .data:0x000000A0; // type:object size:0xC scope:global diff --git a/config/GZ2E01/rels/d_a_obj_toby/symbols.txt b/config/GZ2E01/rels/d_a_obj_toby/symbols.txt index ed4ef5d44f2..9583ab8c84d 100644 --- a/config/GZ2E01/rels/d_a_obj_toby/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_toby/symbols.txt @@ -4,22 +4,22 @@ _unresolved = .text:0x00000058; // type:function size:0x20 scope:global __register_global_object = .text:0x00000078; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global __ct__16daObj_Toby_HIO_cFv = .text:0x000000EC; // type:function size:0x24 scope:global -daObj_Toby_Draw__FP14obj_toby_class = .text:0x00000110; // type:function size:0xC0 scope:global -s_bomb_sub__FPvPv = .text:0x000001D0; // type:function size:0x18C scope:global +daObj_Toby_Draw__FP14obj_toby_class = .text:0x00000110; // type:function size:0xC0 scope:local +s_bomb_sub__FPvPv = .text:0x000001D0; // type:function size:0x18C scope:local __dt__4cXyzFv = .text:0x0000035C; // type:function size:0x3C scope:global -shot_b_sub__FPvPv = .text:0x00000398; // type:function size:0x84 scope:global -s_hz_sub__FPvPv = .text:0x0000041C; // type:function size:0x9C scope:global -yuka_ground__FP14obj_toby_classP6yuka_s = .text:0x000004B8; // type:function size:0x624 scope:global -yuka_fly__FP14obj_toby_classP6yuka_s = .text:0x00000ADC; // type:function size:0xE8 scope:global -yuka_mtxset__FP14obj_toby_classP6yuka_s = .text:0x00000BC4; // type:function size:0x120 scope:global -yuka_control__FP14obj_toby_class = .text:0x00000CE4; // type:function size:0x200 scope:global -demo_camera__FP14obj_toby_class = .text:0x00000EE4; // type:function size:0x28C scope:global -daObj_Toby_Execute__FP14obj_toby_class = .text:0x00001170; // type:function size:0x74 scope:global -daObj_Toby_IsDelete__FP14obj_toby_class = .text:0x000011E4; // type:function size:0x8 scope:global -daObj_Toby_Delete__FP14obj_toby_class = .text:0x000011EC; // type:function size:0x150 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x0000133C; // type:function size:0x1F8 scope:global -set_pos_check__FP14obj_toby_classi = .text:0x00001534; // type:function size:0x128 scope:global -daObj_Toby_Create__FP10fopAc_ac_c = .text:0x0000165C; // type:function size:0x7F8 scope:global +shot_b_sub__FPvPv = .text:0x00000398; // type:function size:0x84 scope:local +s_hz_sub__FPvPv = .text:0x0000041C; // type:function size:0x9C scope:local +yuka_ground__FP14obj_toby_classP6yuka_s = .text:0x000004B8; // type:function size:0x624 scope:local +yuka_fly__FP14obj_toby_classP6yuka_s = .text:0x00000ADC; // type:function size:0xE8 scope:local +yuka_mtxset__FP14obj_toby_classP6yuka_s = .text:0x00000BC4; // type:function size:0x120 scope:local +yuka_control__FP14obj_toby_class = .text:0x00000CE4; // type:function size:0x200 scope:local +demo_camera__FP14obj_toby_class = .text:0x00000EE4; // type:function size:0x28C scope:local +daObj_Toby_Execute__FP14obj_toby_class = .text:0x00001170; // type:function size:0x74 scope:local +daObj_Toby_IsDelete__FP14obj_toby_class = .text:0x000011E4; // type:function size:0x8 scope:local +daObj_Toby_Delete__FP14obj_toby_class = .text:0x000011EC; // type:function size:0x150 scope:local +useHeapInit__FP10fopAc_ac_c = .text:0x0000133C; // type:function size:0x1F8 scope:local +set_pos_check__FP14obj_toby_classi = .text:0x00001534; // type:function size:0x128 scope:local +daObj_Toby_Create__FP10fopAc_ac_c = .text:0x0000165C; // type:function size:0x7F8 scope:local __dt__6yuka_sFv = .text:0x00001E54; // type:function size:0x3C scope:global __ct__6yuka_sFv = .text:0x00001E90; // type:function size:0x4 scope:global __dt__16daObj_Toby_HIO_cFv = .text:0x00001E94; // type:function size:0x48 scope:global @@ -75,9 +75,9 @@ l_bmdidx$4530 = .rodata:0x00000094; // type:object size:0x8 scope:local @4761 = .rodata:0x000000C0; // type:object size:0x8 scope:local @4764 = .rodata:0x000000C8; // type:object size:0x8 scope:local @stringBase0 = .rodata:0x000000D0; // type:object size:0x19 scope:local data:string_table -r05yuka_image = .data:0x00000000; // type:object size:0xC0 scope:global -r11yuka_image = .data:0x000000C0; // type:object size:0xC0 scope:global data:byte -l_daObj_Toby_Method = .data:0x00000180; // type:object size:0x20 scope:global +r05yuka_image = .data:0x00000000; // type:object size:0xC0 scope:local +r11yuka_image = .data:0x000000C0; // type:object size:0xC0 scope:local data:byte +l_daObj_Toby_Method = .data:0x00000180; // type:object size:0x20 scope:local g_profile_OBJ_TOBY = .data:0x000001A0; // type:object size:0x30 scope:global __vt__16daObj_Toby_HIO_c = .data:0x000001D0; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @@ -98,11 +98,11 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @1012 = .bss:0x0000003C; // type:object size:0x1 scope:local @1010 = .bss:0x00000040; // type:object size:0x1 scope:local @1009 = .bss:0x00000044; // type:object size:0x1 scope:local -lbl_663_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte +l_HIOInit = .bss:0x00000045; // type:object size:0x1 scope:local data:byte @3801 = .bss:0x00000048; // type:object size:0xC scope:local -l_HIO = .bss:0x00000054; // type:object size:0xC scope:global data:byte -hz_check_pos_x = .bss:0x00000060; // type:object size:0x4 scope:global align:4 data:float -hz_check_pos_z = .bss:0x00000064; // type:object size:0x4 scope:global align:4 data:float +l_HIO = .bss:0x00000054; // type:object size:0xC scope:local data:byte +hz_check_pos_x = .bss:0x00000060; // type:object size:0x4 scope:local align:4 data:float +hz_check_pos_z = .bss:0x00000064; // type:object size:0x4 scope:local align:4 data:float @3946 = .bss:0x00000068; // type:object size:0xC scope:local sc$3945 = .bss:0x00000078; // type:object size:0xC scope:local @4167 = .bss:0x00000084; // type:object size:0xC scope:local diff --git a/config/GZ2J01/rels/d_a_obj_tatigi/symbols.txt b/config/GZ2J01/rels/d_a_obj_tatigi/symbols.txt index 7bd32d9c954..f6421aae33c 100644 --- a/config/GZ2J01/rels/d_a_obj_tatigi/symbols.txt +++ b/config/GZ2J01/rels/d_a_obj_tatigi/symbols.txt @@ -1,13 +1,13 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global -daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000078; // type:function size:0x88 scope:global -daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000100; // type:function size:0x288 scope:global -daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000388; // type:function size:0x8 scope:global -daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000390; // type:function size:0x88 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x00000418; // type:function size:0xAC scope:global -set_pos_check__FP16obj_tatigi_classi = .text:0x000004C4; // type:function size:0x1B4 scope:global -daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000678; // type:function size:0x3E8 scope:global +daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000078; // type:function size:0x88 scope:local +daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000100; // type:function size:0x288 scope:local +daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000388; // type:function size:0x8 scope:local +daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000390; // type:function size:0x88 scope:local +useHeapInit__FP10fopAc_ac_c = .text:0x00000418; // type:function size:0xAC scope:local +set_pos_check__FP16obj_tatigi_classi = .text:0x000004C4; // type:function size:0x1B4 scope:local +daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000678; // type:function size:0x3E8 scope:local __dt__5tg_ssFv = .text:0x00000A60; // type:function size:0xD4 scope:global __ct__5tg_ssFv = .text:0x00000B34; // type:function size:0x94 scope:global __dt__8cM3dGCylFv = .text:0x00000BC8; // type:function size:0x48 scope:global @@ -34,7 +34,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global @4076 = .rodata:0x00000058; // type:object size:0x8 scope:local @stringBase0 = .rodata:0x00000060; // type:object size:0x7 scope:local data:string_table cc_cyl_src$3986 = .data:0x00000000; // type:object size:0x44 scope:local -l_daObj_Tatigi_Method = .data:0x00000044; // type:object size:0x20 scope:global +l_daObj_Tatigi_Method = .data:0x00000044; // type:object size:0x20 scope:local g_profile_OBJ_TATIGI = .data:0x00000064; // type:object size:0x30 scope:global __vt__8cM3dGAab = .data:0x00000094; // type:object size:0xC scope:global __vt__8cM3dGCyl = .data:0x000000A0; // type:object size:0xC scope:global diff --git a/config/GZ2J01/rels/d_a_obj_toby/symbols.txt b/config/GZ2J01/rels/d_a_obj_toby/symbols.txt index ed4ef5d44f2..6a074d0c9b7 100644 --- a/config/GZ2J01/rels/d_a_obj_toby/symbols.txt +++ b/config/GZ2J01/rels/d_a_obj_toby/symbols.txt @@ -4,22 +4,22 @@ _unresolved = .text:0x00000058; // type:function size:0x20 scope:global __register_global_object = .text:0x00000078; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global __ct__16daObj_Toby_HIO_cFv = .text:0x000000EC; // type:function size:0x24 scope:global -daObj_Toby_Draw__FP14obj_toby_class = .text:0x00000110; // type:function size:0xC0 scope:global +daObj_Toby_Draw__FP14obj_toby_class = .text:0x00000110; // type:function size:0xC0 scope:local s_bomb_sub__FPvPv = .text:0x000001D0; // type:function size:0x18C scope:global __dt__4cXyzFv = .text:0x0000035C; // type:function size:0x3C scope:global -shot_b_sub__FPvPv = .text:0x00000398; // type:function size:0x84 scope:global -s_hz_sub__FPvPv = .text:0x0000041C; // type:function size:0x9C scope:global -yuka_ground__FP14obj_toby_classP6yuka_s = .text:0x000004B8; // type:function size:0x624 scope:global -yuka_fly__FP14obj_toby_classP6yuka_s = .text:0x00000ADC; // type:function size:0xE8 scope:global -yuka_mtxset__FP14obj_toby_classP6yuka_s = .text:0x00000BC4; // type:function size:0x120 scope:global -yuka_control__FP14obj_toby_class = .text:0x00000CE4; // type:function size:0x200 scope:global -demo_camera__FP14obj_toby_class = .text:0x00000EE4; // type:function size:0x28C scope:global -daObj_Toby_Execute__FP14obj_toby_class = .text:0x00001170; // type:function size:0x74 scope:global -daObj_Toby_IsDelete__FP14obj_toby_class = .text:0x000011E4; // type:function size:0x8 scope:global -daObj_Toby_Delete__FP14obj_toby_class = .text:0x000011EC; // type:function size:0x150 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x0000133C; // type:function size:0x1F8 scope:global -set_pos_check__FP14obj_toby_classi = .text:0x00001534; // type:function size:0x128 scope:global -daObj_Toby_Create__FP10fopAc_ac_c = .text:0x0000165C; // type:function size:0x7F8 scope:global +shot_b_sub__FPvPv = .text:0x00000398; // type:function size:0x84 scope:local +s_hz_sub__FPvPv = .text:0x0000041C; // type:function size:0x9C scope:local +yuka_ground__FP14obj_toby_classP6yuka_s = .text:0x000004B8; // type:function size:0x624 scope:local +yuka_fly__FP14obj_toby_classP6yuka_s = .text:0x00000ADC; // type:function size:0xE8 scope:local +yuka_mtxset__FP14obj_toby_classP6yuka_s = .text:0x00000BC4; // type:function size:0x120 scope:local +yuka_control__FP14obj_toby_class = .text:0x00000CE4; // type:function size:0x200 scope:local +demo_camera__FP14obj_toby_class = .text:0x00000EE4; // type:function size:0x28C scope:local +daObj_Toby_Execute__FP14obj_toby_class = .text:0x00001170; // type:function size:0x74 scope:local +daObj_Toby_IsDelete__FP14obj_toby_class = .text:0x000011E4; // type:function size:0x8 scope:local +daObj_Toby_Delete__FP14obj_toby_class = .text:0x000011EC; // type:function size:0x150 scope:local +useHeapInit__FP10fopAc_ac_c = .text:0x0000133C; // type:function size:0x1F8 scope:local +set_pos_check__FP14obj_toby_classi = .text:0x00001534; // type:function size:0x128 scope:local +daObj_Toby_Create__FP10fopAc_ac_c = .text:0x0000165C; // type:function size:0x7F8 scope:local __dt__6yuka_sFv = .text:0x00001E54; // type:function size:0x3C scope:global __ct__6yuka_sFv = .text:0x00001E90; // type:function size:0x4 scope:global __dt__16daObj_Toby_HIO_cFv = .text:0x00001E94; // type:function size:0x48 scope:global @@ -75,9 +75,9 @@ l_bmdidx$4530 = .rodata:0x00000094; // type:object size:0x8 scope:local @4761 = .rodata:0x000000C0; // type:object size:0x8 scope:local @4764 = .rodata:0x000000C8; // type:object size:0x8 scope:local @stringBase0 = .rodata:0x000000D0; // type:object size:0x19 scope:local data:string_table -r05yuka_image = .data:0x00000000; // type:object size:0xC0 scope:global -r11yuka_image = .data:0x000000C0; // type:object size:0xC0 scope:global data:byte -l_daObj_Toby_Method = .data:0x00000180; // type:object size:0x20 scope:global +r05yuka_image = .data:0x00000000; // type:object size:0xC0 scope:local +r11yuka_image = .data:0x000000C0; // type:object size:0xC0 scope:local data:byte +l_daObj_Toby_Method = .data:0x00000180; // type:object size:0x20 scope:local g_profile_OBJ_TOBY = .data:0x000001A0; // type:object size:0x30 scope:global __vt__16daObj_Toby_HIO_c = .data:0x000001D0; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @@ -98,11 +98,11 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @1012 = .bss:0x0000003C; // type:object size:0x1 scope:local @1010 = .bss:0x00000040; // type:object size:0x1 scope:local @1009 = .bss:0x00000044; // type:object size:0x1 scope:local -lbl_663_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte +l_HIOInit = .bss:0x00000045; // type:object size:0x1 data:byte scope:local @3801 = .bss:0x00000048; // type:object size:0xC scope:local -l_HIO = .bss:0x00000054; // type:object size:0xC scope:global data:byte -hz_check_pos_x = .bss:0x00000060; // type:object size:0x4 scope:global align:4 data:float -hz_check_pos_z = .bss:0x00000064; // type:object size:0x4 scope:global align:4 data:float +l_HIO = .bss:0x00000054; // type:object size:0xC scope:local data:byte +hz_check_pos_x = .bss:0x00000060; // type:object size:0x4 scope:local align:4 data:float +hz_check_pos_z = .bss:0x00000064; // type:object size:0x4 scope:local align:4 data:float @3946 = .bss:0x00000068; // type:object size:0xC scope:local sc$3945 = .bss:0x00000078; // type:object size:0xC scope:local @4167 = .bss:0x00000084; // type:object size:0xC scope:local diff --git a/config/GZ2P01/rels/d_a_obj_tatigi/symbols.txt b/config/GZ2P01/rels/d_a_obj_tatigi/symbols.txt index 7bd32d9c954..f6421aae33c 100644 --- a/config/GZ2P01/rels/d_a_obj_tatigi/symbols.txt +++ b/config/GZ2P01/rels/d_a_obj_tatigi/symbols.txt @@ -1,13 +1,13 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global -daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000078; // type:function size:0x88 scope:global -daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000100; // type:function size:0x288 scope:global -daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000388; // type:function size:0x8 scope:global -daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000390; // type:function size:0x88 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x00000418; // type:function size:0xAC scope:global -set_pos_check__FP16obj_tatigi_classi = .text:0x000004C4; // type:function size:0x1B4 scope:global -daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000678; // type:function size:0x3E8 scope:global +daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000078; // type:function size:0x88 scope:local +daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000100; // type:function size:0x288 scope:local +daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000388; // type:function size:0x8 scope:local +daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000390; // type:function size:0x88 scope:local +useHeapInit__FP10fopAc_ac_c = .text:0x00000418; // type:function size:0xAC scope:local +set_pos_check__FP16obj_tatigi_classi = .text:0x000004C4; // type:function size:0x1B4 scope:local +daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000678; // type:function size:0x3E8 scope:local __dt__5tg_ssFv = .text:0x00000A60; // type:function size:0xD4 scope:global __ct__5tg_ssFv = .text:0x00000B34; // type:function size:0x94 scope:global __dt__8cM3dGCylFv = .text:0x00000BC8; // type:function size:0x48 scope:global @@ -34,7 +34,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global @4076 = .rodata:0x00000058; // type:object size:0x8 scope:local @stringBase0 = .rodata:0x00000060; // type:object size:0x7 scope:local data:string_table cc_cyl_src$3986 = .data:0x00000000; // type:object size:0x44 scope:local -l_daObj_Tatigi_Method = .data:0x00000044; // type:object size:0x20 scope:global +l_daObj_Tatigi_Method = .data:0x00000044; // type:object size:0x20 scope:local g_profile_OBJ_TATIGI = .data:0x00000064; // type:object size:0x30 scope:global __vt__8cM3dGAab = .data:0x00000094; // type:object size:0xC scope:global __vt__8cM3dGCyl = .data:0x000000A0; // type:object size:0xC scope:global diff --git a/config/GZ2P01/rels/d_a_obj_toby/symbols.txt b/config/GZ2P01/rels/d_a_obj_toby/symbols.txt index ed4ef5d44f2..ae85d28c6ec 100644 --- a/config/GZ2P01/rels/d_a_obj_toby/symbols.txt +++ b/config/GZ2P01/rels/d_a_obj_toby/symbols.txt @@ -4,22 +4,22 @@ _unresolved = .text:0x00000058; // type:function size:0x20 scope:global __register_global_object = .text:0x00000078; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global __ct__16daObj_Toby_HIO_cFv = .text:0x000000EC; // type:function size:0x24 scope:global -daObj_Toby_Draw__FP14obj_toby_class = .text:0x00000110; // type:function size:0xC0 scope:global -s_bomb_sub__FPvPv = .text:0x000001D0; // type:function size:0x18C scope:global +daObj_Toby_Draw__FP14obj_toby_class = .text:0x00000110; // type:function size:0xC0 scope:local +s_bomb_sub__FPvPv = .text:0x000001D0; // type:function size:0x18C scope:local __dt__4cXyzFv = .text:0x0000035C; // type:function size:0x3C scope:global -shot_b_sub__FPvPv = .text:0x00000398; // type:function size:0x84 scope:global -s_hz_sub__FPvPv = .text:0x0000041C; // type:function size:0x9C scope:global -yuka_ground__FP14obj_toby_classP6yuka_s = .text:0x000004B8; // type:function size:0x624 scope:global -yuka_fly__FP14obj_toby_classP6yuka_s = .text:0x00000ADC; // type:function size:0xE8 scope:global -yuka_mtxset__FP14obj_toby_classP6yuka_s = .text:0x00000BC4; // type:function size:0x120 scope:global -yuka_control__FP14obj_toby_class = .text:0x00000CE4; // type:function size:0x200 scope:global -demo_camera__FP14obj_toby_class = .text:0x00000EE4; // type:function size:0x28C scope:global -daObj_Toby_Execute__FP14obj_toby_class = .text:0x00001170; // type:function size:0x74 scope:global -daObj_Toby_IsDelete__FP14obj_toby_class = .text:0x000011E4; // type:function size:0x8 scope:global -daObj_Toby_Delete__FP14obj_toby_class = .text:0x000011EC; // type:function size:0x150 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x0000133C; // type:function size:0x1F8 scope:global -set_pos_check__FP14obj_toby_classi = .text:0x00001534; // type:function size:0x128 scope:global -daObj_Toby_Create__FP10fopAc_ac_c = .text:0x0000165C; // type:function size:0x7F8 scope:global +shot_b_sub__FPvPv = .text:0x00000398; // type:function size:0x84 scope:local +s_hz_sub__FPvPv = .text:0x0000041C; // type:function size:0x9C scope:local +yuka_ground__FP14obj_toby_classP6yuka_s = .text:0x000004B8; // type:function size:0x624 scope:local +yuka_fly__FP14obj_toby_classP6yuka_s = .text:0x00000ADC; // type:function size:0xE8 scope:local +yuka_mtxset__FP14obj_toby_classP6yuka_s = .text:0x00000BC4; // type:function size:0x120 scope:local +yuka_control__FP14obj_toby_class = .text:0x00000CE4; // type:function size:0x200 scope:local +demo_camera__FP14obj_toby_class = .text:0x00000EE4; // type:function size:0x28C scope:local +daObj_Toby_Execute__FP14obj_toby_class = .text:0x00001170; // type:function size:0x74 scope:local +daObj_Toby_IsDelete__FP14obj_toby_class = .text:0x000011E4; // type:function size:0x8 scope:local +daObj_Toby_Delete__FP14obj_toby_class = .text:0x000011EC; // type:function size:0x150 scope:local +useHeapInit__FP10fopAc_ac_c = .text:0x0000133C; // type:function size:0x1F8 scope:local +set_pos_check__FP14obj_toby_classi = .text:0x00001534; // type:function size:0x128 scope:local +daObj_Toby_Create__FP10fopAc_ac_c = .text:0x0000165C; // type:function size:0x7F8 scope:local __dt__6yuka_sFv = .text:0x00001E54; // type:function size:0x3C scope:global __ct__6yuka_sFv = .text:0x00001E90; // type:function size:0x4 scope:global __dt__16daObj_Toby_HIO_cFv = .text:0x00001E94; // type:function size:0x48 scope:global @@ -75,9 +75,9 @@ l_bmdidx$4530 = .rodata:0x00000094; // type:object size:0x8 scope:local @4761 = .rodata:0x000000C0; // type:object size:0x8 scope:local @4764 = .rodata:0x000000C8; // type:object size:0x8 scope:local @stringBase0 = .rodata:0x000000D0; // type:object size:0x19 scope:local data:string_table -r05yuka_image = .data:0x00000000; // type:object size:0xC0 scope:global -r11yuka_image = .data:0x000000C0; // type:object size:0xC0 scope:global data:byte -l_daObj_Toby_Method = .data:0x00000180; // type:object size:0x20 scope:global +r05yuka_image = .data:0x00000000; // type:object size:0xC0 scope:local +r11yuka_image = .data:0x000000C0; // type:object size:0xC0 scope:local data:byte +l_daObj_Toby_Method = .data:0x00000180; // type:object size:0x20 scope:local g_profile_OBJ_TOBY = .data:0x000001A0; // type:object size:0x30 scope:global __vt__16daObj_Toby_HIO_c = .data:0x000001D0; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @@ -98,11 +98,11 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @1012 = .bss:0x0000003C; // type:object size:0x1 scope:local @1010 = .bss:0x00000040; // type:object size:0x1 scope:local @1009 = .bss:0x00000044; // type:object size:0x1 scope:local -lbl_663_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte +l_HIOInit = .bss:0x00000045; // type:object size:0x1 data:byte scope:local @3801 = .bss:0x00000048; // type:object size:0xC scope:local -l_HIO = .bss:0x00000054; // type:object size:0xC scope:global data:byte -hz_check_pos_x = .bss:0x00000060; // type:object size:0x4 scope:global align:4 data:float -hz_check_pos_z = .bss:0x00000064; // type:object size:0x4 scope:global align:4 data:float +l_HIO = .bss:0x00000054; // type:object size:0xC scope:local data:byte +hz_check_pos_x = .bss:0x00000060; // type:object size:0x4 scope:local align:4 data:float +hz_check_pos_z = .bss:0x00000064; // type:object size:0x4 scope:local align:4 data:float @3946 = .bss:0x00000068; // type:object size:0xC scope:local sc$3945 = .bss:0x00000078; // type:object size:0xC scope:local @4167 = .bss:0x00000084; // type:object size:0xC scope:local diff --git a/config/RZDE01_00/rels/d_a_obj_tatigi/symbols.txt b/config/RZDE01_00/rels/d_a_obj_tatigi/symbols.txt index 766a6f3b252..b1aa49fcdc3 100644 --- a/config/RZDE01_00/rels/d_a_obj_tatigi/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_tatigi/symbols.txt @@ -1,12 +1,12 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x4 scope:global -daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x0000005C; // type:function size:0x80 scope:global -daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x000000DC; // type:function size:0x2CC scope:global -daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x000003A8; // type:function size:0x8 scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x000003B0; // type:function size:0xA8 scope:global -daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000458; // type:function size:0x480 scope:global -daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x000008D8; // type:function size:0x88 scope:global +daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x0000005C; // type:function size:0x80 scope:local +daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x000000DC; // type:function size:0x2CC scope:local +daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x000003A8; // type:function size:0x8 scope:local +useHeapInit__FP10fopAc_ac_c = .text:0x000003B0; // type:function size:0xA8 scope:local +daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000458; // type:function size:0x480 scope:local +daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x000008D8; // type:function size:0x88 scope:local __ct__5tg_ssFv = .text:0x00000960; // type:function size:0x68 scope:global __dt__5tg_ssFv = .text:0x000009C8; // type:function size:0x5C scope:global _ctors = .ctors:0x00000000; // type:label scope:global @@ -28,5 +28,5 @@ _dtors = .dtors:0x00000000; // type:label scope:global @94608 = .rodata:0x00000038; // type:object size:0x8 scope:local lbl_654_data_0 = .data:0x00000000; // type:object size:0x8 cc_cyl_src$93474 = .data:0x00000008; // type:object size:0x44 scope:local -l_daObj_Tatigi_Method = .data:0x0000004C; // type:object size:0x20 scope:global +l_daObj_Tatigi_Method = .data:0x0000004C; // type:object size:0x20 scope:local g_profile_OBJ_TATIGI = .data:0x0000006C; // type:object size:0x30 scope:global diff --git a/config/ShieldD/rels/d_a_obj_tatigiD/symbols.txt b/config/ShieldD/rels/d_a_obj_tatigiD/symbols.txt index 407d827ad01..135fd31ab14 100644 --- a/config/ShieldD/rels/d_a_obj_tatigiD/symbols.txt +++ b/config/ShieldD/rels/d_a_obj_tatigiD/symbols.txt @@ -1,15 +1,15 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x20 scope:global -daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000080; // type:function size:0x90 scope:global +daObj_Tatigi_Draw__FP16obj_tatigi_class = .text:0x00000080; // type:function size:0x90 scope:local dComIfGp_entrySimpleModel__FP8J3DModeli = .text:0x00000110; // type:function size:0x3C scope:global -daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000150; // type:function size:0x314 scope:global -daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000470; // type:function size:0x8 scope:global -daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000480; // type:function size:0x94 scope:global +daObj_Tatigi_Execute__FP16obj_tatigi_class = .text:0x00000150; // type:function size:0x314 scope:local +daObj_Tatigi_IsDelete__FP16obj_tatigi_class = .text:0x00000470; // type:function size:0x8 scope:local +daObj_Tatigi_Delete__FP16obj_tatigi_class = .text:0x00000480; // type:function size:0x94 scope:local dComIfGp_removeSimpleModel__FP12J3DModelDatai = .text:0x00000520; // type:function size:0x3C scope:global -useHeapInit__FP10fopAc_ac_c = .text:0x00000560; // type:function size:0xE4 scope:global -set_pos_check__FP16obj_tatigi_classi = .text:0x00000650; // type:function size:0xF0 scope:global -daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000740; // type:function size:0x550 scope:global +useHeapInit__FP10fopAc_ac_c = .text:0x00000560; // type:function size:0xE4 scope:local +set_pos_check__FP16obj_tatigi_classi = .text:0x00000650; // type:function size:0xF0 scope:local +daObj_Tatigi_Create__FP10fopAc_ac_c = .text:0x00000740; // type:function size:0x550 scope:local dComIfGp_addSimpleModel__FP12J3DModelDataiUc = .text:0x00000C90; // type:function size:0x44 scope:global __ct__16obj_tatigi_classFv = .text:0x00000CE0; // type:function size:0x5C scope:global __dt__5tg_ssFv = .text:0x00000D40; // type:function size:0x7C scope:global @@ -46,7 +46,7 @@ lbl_642_rodata_50 = .rodata:0x00000050; // type:object size:0x14 @118546 = .data:0x00000108; // type:object size:0x23 scope:local data:string @118552 = .data:0x0000012C; // type:object size:0x34 scope:local @118555 = .data:0x00000160; // type:object size:0x35 scope:local -l_daObj_Tatigi_Method = .data:0x00000198; // type:object size:0x20 scope:global +l_daObj_Tatigi_Method = .data:0x00000198; // type:object size:0x20 scope:local g_profile_OBJ_TATIGI = .data:0x000001B8; // type:object size:0x30 scope:global @118618 = .data:0x000001F4; // type:object size:0x9 scope:local data:string @118619 = .data:0x00000214; // type:object size:0x9 scope:local data:string diff --git a/configure.py b/configure.py index bcdca9bb39f..22c0147423e 100755 --- a/configure.py +++ b/configure.py @@ -2130,7 +2130,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_obj_taFence"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_table"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_takaraDai"), - ActorRel(NonMatching, "d_a_obj_tatigi"), + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tatigi"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_ten"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_testcube"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tgake"), diff --git a/include/d/actor/d_a_e_hz.h b/include/d/actor/d_a_e_hz.h index 93f42a6c172..865302fcd02 100644 --- a/include/d/actor/d_a_e_hz.h +++ b/include/d/actor/d_a_e_hz.h @@ -11,6 +11,7 @@ * */ class daE_HZ_c : public fopEn_enemy_c { +public: /* 806EA690 */ void setBck(int, u8, f32, f32); /* 806EA734 */ void checkBck(int); /* 806EA790 */ void draw(); @@ -19,7 +20,7 @@ class daE_HZ_c : public fopEn_enemy_c { /* 806EAEDC */ void checkAttackStart(); /* 806EB05C */ void checkArrowCharge(); /* 806EB0A4 */ void setTgSetBit(int); - /* 806EB0FC */ void isWait(); + /* 806EB0FC */ bool isWait(); /* 806EB13C */ void checkFall(); /* 806EB2E8 */ void setCloseSmokeEffect(); /* 806EB3EC */ void executeWait(); diff --git a/include/d/actor/d_a_obj_tatigi.h b/include/d/actor/d_a_obj_tatigi.h index f94676e2b94..e58748ac911 100644 --- a/include/d/actor/d_a_obj_tatigi.h +++ b/include/d/actor/d_a_obj_tatigi.h @@ -1,12 +1,18 @@ #ifndef D_A_OBJ_TATIGI_H #define D_A_OBJ_TATIGI_H +#include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" struct tg_ss { public: - /* 80D083C0 */ ~tg_ss(); - /* 80D08494 */ tg_ss(); + /* 0x000 */ J3DModel* mModel; + /* 0x004 */ cXyz mPos; + /* 0x010 */ cXyz mScale; + /* 0x01C */ s16 mAngle; + /* 0x01E */ s16 field_0x1e; + /* 0x020 */ dCcD_Cyl mCyl; + /* 0x15C */ s8 mActive; }; /** @@ -17,9 +23,21 @@ public: * @details * */ -class obj_tatigi_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x1bc0 - 0x568]; +class obj_tatigi_class{ +public: + /* 0x0000 */ fopAc_ac_c mBase; + /* 0x0568 */ request_of_phase_process_class mPhase; + /* 0x0570 */ u8 field_0x570; + /* 0x0571 */ u8 field_0x571; + /* 0x0572 */ u8 field_0x572; + /* 0x0574 */ s16 field_0x574; + /* 0x0576 */ s16 field_0x576; + /* 0x0578 */ int field_0x578; + /* 0x057C */ tg_ss mTgs[16]; + /* 0x1B7C */ int mTgNum; + /* 0x1B80 */ dCcD_Stts mStts; + /* 0x1BBC */ u8 field_0x1bbc; + /* 0x1BBD */ bool mModelLoaded; }; STATIC_ASSERT(sizeof(obj_tatigi_class) == 0x1bc0); diff --git a/include/d/actor/d_a_obj_toby.h b/include/d/actor/d_a_obj_toby.h index 45cc2ba07ad..398b6d48a42 100644 --- a/include/d/actor/d_a_obj_toby.h +++ b/include/d/actor/d_a_obj_toby.h @@ -3,6 +3,29 @@ #include "f_op/f_op_actor_mng.h" +struct yuka_s { +public: + /* 0x00 */ J3DModel* mModel1; + /* 0x04 */ J3DModel* mModel2; + /* 0x08 */ cXyz mPos; + /* 0x14 */ cXyz mSpeed; + /* 0x20 */ csXyz mAngle; + /* 0x26 */ csXyz mAngleSpeed; + /* 0x2C */ int field_0x2c; + /* 0x30 */ f32 mScale; + /* 0x34 */ s8 field_0x34; + /* 0x36 */ s16 field_0x36; + /* 0x38 */ u8 field_0x38; + /* 0x39 */ s8 field_0x39; + /* 0x3A */ s8 field_0x3a; + /* 0x3C */ int field_0x3c; + /* 0x40 */ Mtx mMtx; + /* 0x70 */ dBgW* mBgW; + /* 0x74 */ int mParticle; +}; + +STATIC_ASSERT(sizeof(yuka_s) == 0x78); + /** * @ingroup actors-objects * @class obj_toby_class @@ -11,23 +34,44 @@ * @details * */ -class obj_toby_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x6374 - 0x568]; +class obj_toby_class { +public: + /* 0x0000 */ fopAc_ac_c mBase; + /* 0x0568 */ request_of_phase_process_class mPhase; + /* 0x0570 */ char* mArcName; + /* 0x0574 */ u8 field_0x574; + /* 0x0575 */ u8 field_0x575; + /* 0x0576 */ u8 field_0x576; + /* 0x0577 */ u8 field_0x577; + /* 0x0578 */ u8 mSwBit; + /* 0x0579 */ u8 field_0x579[0x57c - 0x579]; + /* 0x057C */ f32 field_0x57c; + /* 0x0580 */ s16 field_0x580; + /* 0x0582 */ s16 field_0x582; + /* 0x0584 */ s16 field_0x584; + /* 0x0586 */ s16 field_0x586[2]; + /* 0x058C */ yuka_s mYukas[200]; + /* 0x634C */ int mYukaNum; + /* 0x6350 */ s16 field_0x6350; + /* 0x6352 */ s16 field_0x6352; + /* 0x6354 */ cXyz field_0x6354; + /* 0x6360 */ cXyz field_0x6360; + /* 0x636C */ f32 field_0x636c; + /* 0x6370 */ u8 field_0x6370; + /* 0x6371 */ u8 field_0x6371; }; STATIC_ASSERT(sizeof(obj_toby_class) == 0x6374); -class daObj_Toby_HIO_c { +class daObj_Toby_HIO_c : public JORReflexible{ public: /* 80D1378C */ daObj_Toby_HIO_c(); - /* 80D15534 */ ~daObj_Toby_HIO_c(); -}; + /* 80D15534 */ virtual ~daObj_Toby_HIO_c() {} -struct yuka_s { -public: - /* 80D154F4 */ ~yuka_s(); - /* 80D15530 */ yuka_s(); + void genMessage(JORMContext*); + + /* 0x4 */ s8 field_0x4; + /* 0x8 */ f32 field_0x8; }; #endif /* D_A_OBJ_TOBY_H */ diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 3e48728a1b4..e970e61617f 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -934,6 +934,7 @@ public: void onForceAutoJump() { onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); } void onNotAutoJump() { onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); } void onNotHang() { onEndResetFlg0(ERFLG0_NOT_HANG); } + void onLeafSe() { onEndResetFlg0(ERFLG0_UNK_200000); } void onWolfFchainPull() { onEndResetFlg0(ERFLG0_WOLF_FCHAIN_PULL); } void onFishingRodGetFish() { onEndResetFlg0(ERFLG0_FISHING_ROD_GET_FISH); } void onShieldBackBone() { onEndResetFlg1(ERFLG1_GANON_FINISH); } diff --git a/src/d/actor/d_a_e_hz.cpp b/src/d/actor/d_a_e_hz.cpp index 6798fc12b48..a28af09eea3 100644 --- a/src/d/actor/d_a_e_hz.cpp +++ b/src/d/actor/d_a_e_hz.cpp @@ -649,7 +649,7 @@ void daE_HZ_c::setTgSetBit(int param_0) { } /* 806EB0FC-806EB13C 000BDC 0040+00 0/0 0/0 1/1 .text isWait__8daE_HZ_cFv */ -void daE_HZ_c::isWait() { +bool daE_HZ_c::isWait() { // NONMATCHING } diff --git a/src/d/actor/d_a_obj_tatigi.cpp b/src/d/actor/d_a_obj_tatigi.cpp index 238b1263c67..24eea77757d 100644 --- a/src/d/actor/d_a_obj_tatigi.cpp +++ b/src/d/actor/d_a_obj_tatigi.cpp @@ -5,303 +5,222 @@ #include "d/actor/d_a_obj_tatigi.h" #include "d/d_cc_d.h" +#include "d/d_cc_uty.h" +#include "d/d_s_play.h" +#include "d/d_com_inf_game.h" #include "dol2asm.h" - - -// -// Forward References: -// - -extern "C" static void daObj_Tatigi_Draw__FP16obj_tatigi_class(); -extern "C" static void daObj_Tatigi_Execute__FP16obj_tatigi_class(); -extern "C" static bool daObj_Tatigi_IsDelete__FP16obj_tatigi_class(); -extern "C" static void daObj_Tatigi_Delete__FP16obj_tatigi_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void set_pos_check__FP16obj_tatigi_classi(); -extern "C" static void daObj_Tatigi_Create__FP10fopAc_ac_c(); -extern "C" void __dt__5tg_ssFv(); -extern "C" void __ct__5tg_ssFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" extern char const* const d_a_obj_tatigi__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -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 addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc(); -extern "C" void removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai(); -extern "C" void entrySimpleModel__14dComIfG_play_cFP8J3DModeli(); -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 GroundCross__4cBgSFP11cBgS_GndChk(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkCoHit__12dCcD_GObjInfFv(); -extern "C" void GetCoHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void GetAc__8cCcD_ObjFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_rndF__Ff(); -extern "C" void cM_initRnd2__Fiii(); -extern "C" void cM_rndF2__Ff(); -extern "C" void SetPos__11cBgS_GndChkFPC3Vec(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void MtxTrans__FfffUc(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void MtxPush__Fv(); -extern "C" void MtxPull__Fv(); -extern "C" void __dl__FPv(); -extern "C" void __construct_array(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -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 sincosTable___5JMath[65536]; -extern "C" extern void* calc_mtx[1 + 1 /* padding */]; - -// -// Declarations: -// - /* 80D079D8-80D07A60 000078 0088+00 1/0 0/0 0/0 .text daObj_Tatigi_Draw__FP16obj_tatigi_class */ -static void daObj_Tatigi_Draw(obj_tatigi_class* param_0) { - // NONMATCHING +static int daObj_Tatigi_Draw(obj_tatigi_class* i_this) { + fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->mBase; + int roomNo = fopAcM_GetRoomNo(a_this); + tg_ss* pTg = i_this->mTgs; + for (int i = 0; i < i_this->mTgNum; i++, pTg++) { + if (pTg->mActive != 0) { + dComIfGp_entrySimpleModel(pTg->mModel, roomNo); + } + } + return 1; } -/* ############################################################################################## */ -/* 80D085C0-80D085C4 000000 0004+00 3/3 0/0 0/0 .rodata @3867 */ -SECTION_RODATA static f32 const lit_3867 = 30.0f; -COMPILER_STRIP_GATE(0x80D085C0, &lit_3867); - -/* 80D085C4-80D085C8 000004 0004+00 0/1 0/0 0/0 .rodata @3868 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3868 = 500.0f; -COMPILER_STRIP_GATE(0x80D085C4, &lit_3868); -#pragma pop - -/* 80D085C8-80D085CC 000008 0004+00 0/1 0/0 0/0 .rodata @3869 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3869 = 5.0f; -COMPILER_STRIP_GATE(0x80D085C8, &lit_3869); -#pragma pop - -/* 80D085CC-80D085D0 00000C 0004+00 0/1 0/0 0/0 .rodata @3870 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3870 = 7.0f; -COMPILER_STRIP_GATE(0x80D085CC, &lit_3870); -#pragma pop - -/* 80D085D0-80D085D8 000010 0008+00 0/1 0/0 0/0 .rodata @3872 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3872[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D085D0, &lit_3872); -#pragma pop - /* 80D07A60-80D07CE8 000100 0288+00 2/1 0/0 0/0 .text daObj_Tatigi_Execute__FP16obj_tatigi_class */ -static void daObj_Tatigi_Execute(obj_tatigi_class* param_0) { - // NONMATCHING +static int daObj_Tatigi_Execute(obj_tatigi_class* i_this) { + fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->mBase; + i_this->field_0x574++; + if (i_this->field_0x576 == 0) { + tg_ss* pTg = i_this->mTgs; + for (s32 i = 0; i < i_this->mTgNum; i++, pTg++) { + if (pTg->mActive != 0) { + mDoMtx_stack_c::transS(pTg->mPos.x, pTg->mPos.y, pTg->mPos.z); + mDoMtx_stack_c::YrotM(pTg->mAngle); + mDoMtx_stack_c::scaleM(pTg->mScale.x, pTg->mScale.y, pTg->mScale.z); + pTg->mModel->setBaseTRMtx(mDoMtx_stack_c::get()); + pTg->mCyl.SetC(pTg->mPos); + pTg->mCyl.SetR(pTg->mScale.x * (TREG_F(16) + 30.0f)); + pTg->mCyl.SetH(TREG_F(17) + 500.0f); + } + } + i_this->field_0x576 = 1; + } else { + tg_ss* pTg = i_this->mTgs; + s16 xRot; + s16 zRot; + int i; + for (i = 0; i < i_this->mTgNum; i++, pTg++) { + dComIfG_Ccsp()->Set(&pTg->mCyl); + if (pTg->field_0x1e == 0 && pTg->mCyl.ChkCoHit()) { + fopAc_ac_c* hitActor = dCc_GetAc(pTg->mCyl.GetCoHitObj()->GetAc()); + if (hitActor != NULL && hitActor->speedF >= 5.0f) { + pTg->field_0x1e = 20; + } + } + if (pTg->field_0x1e != 0) { + pTg->field_0x1e--; + xRot = ((TREG_F(18) + 7.0f) * (pTg->field_0x1e * cM_ssin(i_this->field_0x574 * (WREG_S(3) + 5000)))); + zRot = ((TREG_F(18) + 7.0f) * (pTg->field_0x1e * cM_ssin(i_this->field_0x574 * (WREG_S(4) + 6000)))); + mDoMtx_stack_c::transS(pTg->mPos.x, pTg->mPos.y, pTg->mPos.z); + mDoMtx_stack_c::YrotM(pTg->mAngle); + mDoMtx_stack_c::XrotM(xRot); + mDoMtx_stack_c::ZrotM(zRot); + mDoMtx_stack_c::scaleM(pTg->mScale.x, pTg->mScale.y, pTg->mScale.z); + pTg->mModel->setBaseTRMtx(mDoMtx_stack_c::get()); + } + } + } + return 1; } /* 80D07CE8-80D07CF0 000388 0008+00 1/0 0/0 0/0 .text daObj_Tatigi_IsDelete__FP16obj_tatigi_class */ -static bool daObj_Tatigi_IsDelete(obj_tatigi_class* param_0) { - return true; +static int daObj_Tatigi_IsDelete(obj_tatigi_class* param_0) { + return 1; } -/* ############################################################################################## */ -/* 80D08620-80D08620 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D08620 = "Obj_tg"; -#pragma pop - /* 80D07CF0-80D07D78 000390 0088+00 1/0 0/0 0/0 .text daObj_Tatigi_Delete__FP16obj_tatigi_class */ -static void daObj_Tatigi_Delete(obj_tatigi_class* param_0) { - // NONMATCHING +static int daObj_Tatigi_Delete(obj_tatigi_class* i_this) { + fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->mBase; + fopAcM_RegisterDeleteID(i_this, "Obj_Tatigi"); + if (i_this->mModelLoaded) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_tg", 3); + dComIfGp_removeSimpleModel(modelData, fopAcM_GetRoomNo(a_this)); + } + dComIfG_resDelete(&i_this->mPhase, "Obj_tg"); + return 1; } /* 80D07D78-80D07E24 000418 00AC+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING +static int useHeapInit(fopAc_ac_c* a_this) { + obj_tatigi_class* i_this = (obj_tatigi_class*)a_this; + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_tg", 3); + JUT_ASSERT(279, modelData != 0); + for (int i = 0; i < i_this->mTgNum; i++) { + i_this->mTgs[i].mModel = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084); + if (i_this->mTgs[i].mModel == NULL) { + return 0; + } + } + return 1; } -/* ############################################################################################## */ -/* 80D085D8-80D085E0 000018 0004+04 0/2 0/0 0/0 .rodata @3955 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3955[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D085D8, &lit_3955); -#pragma pop - -/* 80D085E0-80D085E8 000020 0008+00 0/1 0/0 0/0 .rodata @3956 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3956[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D085E0, &lit_3956); -#pragma pop - -/* 80D085E8-80D085F0 000028 0008+00 0/1 0/0 0/0 .rodata @3957 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3957[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D085E8, &lit_3957); -#pragma pop - -/* 80D085F0-80D085F8 000030 0008+00 0/1 0/0 0/0 .rodata @3958 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3958[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D085F0, &lit_3958); -#pragma pop - -/* 80D085F8-80D085FC 000038 0004+00 0/1 0/0 0/0 .rodata @3959 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3959 = 150.0f; -COMPILER_STRIP_GATE(0x80D085F8, &lit_3959); -#pragma pop - /* 80D07E24-80D07FD8 0004C4 01B4+00 1/1 0/0 0/0 .text set_pos_check__FP16obj_tatigi_classi */ -static void set_pos_check(obj_tatigi_class* param_0, int param_1) { - // NONMATCHING +static BOOL set_pos_check(obj_tatigi_class* i_this, int param_2) { + cXyz cStack_2c; + f32 dVar7 = KREG_F(7) + 150.0f; + for (int i = 0; i < param_2; i++) { + cStack_2c = i_this->mTgs[i].mPos - i_this->mTgs[param_2].mPos; + if (cStack_2c.abs() < dVar7) { + return 0; + } + } + return TRUE; } -/* ############################################################################################## */ -/* 80D085FC-80D08600 00003C 0004+00 0/1 0/0 0/0 .rodata @4068 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4068 = 65536.0f; -COMPILER_STRIP_GATE(0x80D085FC, &lit_4068); -#pragma pop - -/* 80D08600-80D08604 000040 0004+00 0/1 0/0 0/0 .rodata @4069 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4069 = 100.0f; -COMPILER_STRIP_GATE(0x80D08600, &lit_4069); -#pragma pop - -/* 80D08604-80D08608 000044 0004+00 0/1 0/0 0/0 .rodata @4070 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4070 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D08604, &lit_4070); -#pragma pop - -/* 80D08608-80D0860C 000048 0004+00 0/1 0/0 0/0 .rodata @4071 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4071 = 2.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D08608, &lit_4071); -#pragma pop - -/* 80D0860C-80D08610 00004C 0004+00 0/1 0/0 0/0 .rodata @4072 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4072 = 1.0f; -COMPILER_STRIP_GATE(0x80D0860C, &lit_4072); -#pragma pop - -/* 80D08610-80D08618 000050 0004+04 0/1 0/0 0/0 .rodata @4073 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4073[1 + 1 /* padding */] = { - 65535.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80D08610, &lit_4073); -#pragma pop - -/* 80D08618-80D08620 000058 0008+00 0/1 0/0 0/0 .rodata @4076 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4076[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D08618, &lit_4076); -#pragma pop - -/* 80D08628-80D0866C 000000 0044+00 1/1 0/0 0/0 .data cc_cyl_src$3986 */ -static dCcD_SrcCyl cc_cyl_src = { - { - {0x0, {{0x0, 0x0, 0x0}, {0xd8fbfdff, 0x11}, 0x79}}, // mObj - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_METAL, 0x2, 0x0, 0x0, 0x3}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {0.0f, 0.0f, 0.0f}, // mCenter - 35.0f, // mRadius - 120.0f // mHeight - } // mCyl -}; - /* 80D07FD8-80D083C0 000678 03E8+00 1/0 0/0 0/0 .text daObj_Tatigi_Create__FP10fopAc_ac_c */ -static void daObj_Tatigi_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int daObj_Tatigi_Create(fopAc_ac_c* a_this) { + static dCcD_SrcCyl cc_cyl_src = { + { + {0x0, {{0x0, 0x0, 0x0}, {0xd8fbfdff, 0x11}, 0x79}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_METAL, 0x2, 0x0, 0x0, 0x3}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {0.0f, 0.0f, 0.0f}, // mCenter + 35.0f, // mRadius + 120.0f // mHeight + } // mCyl + }; + + obj_tatigi_class* i_this = (obj_tatigi_class*)a_this; + fopAcM_SetupActor(&i_this->mBase, obj_tatigi_class); + + int rv = dComIfG_resLoad(&i_this->mPhase, "Obj_tg"); + if (rv == cPhs_COMPLEATE_e) { + OS_REPORT("OBJ_TATIGI PARAM %x\n", fopAcM_GetParam(a_this)); + i_this->field_0x570 = fopAcM_GetParam(a_this) & 0xff; + i_this->field_0x571 = (fopAcM_GetParam(a_this) & 0xff00) >> 8; + i_this->field_0x572 = (fopAcM_GetParam(a_this) & 0xff0000) >> 16; + if (i_this->field_0x572 == 0xff) { + i_this->field_0x572 = 0; + } + + i_this->mTgNum = i_this->field_0x570 + 1; + if (i_this->mTgNum > 16) { + i_this->mTgNum = 16; + } + + OS_REPORT("OBJ_TATIGI//////////////OBJ_TATIGI SET 1 !!\n"); + + if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x4b000)) { + OS_REPORT("//////////////OBJ_TATIGI SET NON !!\n"); + return cPhs_ERROR_e; + } + + OS_REPORT("//////////////OBJ_TATIGI SET 2 !!\n"); + + MtxTrans(a_this->current.pos.x, a_this->current.pos.y, a_this->current.pos.z, 0); + cXyz cStack_80(0.0f, 0.0f, 0.0f); + Vec local_8c; + dBgS_GndChk gndCheck; + int local_94 = 0; + cM_initRnd2(13, 123, 33); + for (int i = 0; i < i_this->mTgNum; i++) { + MtxPush(); + cMtx_YrotM(*calc_mtx, cM_rndF2(65536.0f)); + MtxPosition(&cStack_80, &i_this->mTgs[i].mPos); + MtxPull(); + local_8c.x = i_this->mTgs[i].mPos.x; + local_8c.y = i_this->mTgs[i].mPos.y + 100.0f; + local_8c.z = i_this->mTgs[i].mPos.z; + gndCheck.SetPos(&local_8c); + i_this->mTgs[i].mPos.y = dComIfG_Bgsp().GroundCross(&gndCheck); + i_this->mTgs[i].mAngle = cM_rndF2(65536.0f); + if (set_pos_check(i_this, i)) { + i_this->mTgs[i].mActive = 1; + i_this->mTgs[i].mScale.x = i_this->mTgs[i].mScale.z = cM_rndF2(0.4f) + 0.6f; + i_this->mTgs[i].mScale.y = cM_rndF2(0.4f) + 0.6f; + } else { + i--; + local_94++; + if (local_94 > 10000) { + // The designated area for the standing tree is too narrow to place it. + OS_REPORT(" 立ち木の指定範囲が狭すぎて置けません!!!!\n"); + return cPhs_ERROR_e; + } + } + cStack_80.z = cM_rndF2(1.0f); + cStack_80.z = 1.0f - cStack_80.z * cStack_80.z; + cStack_80.z = cStack_80.z * (i_this->field_0x571 * 100.0f); + } + + i_this->field_0x574 = cM_rndF(65535.0f); + i_this->mStts.Init(0xff, 0, a_this); + for (int i = 0; i < i_this->mTgNum; i++) { + i_this->mTgs[i].mCyl.Set(cc_cyl_src); + i_this->mTgs[i].mCyl.SetStts(&i_this->mStts); + } + daObj_Tatigi_Execute(i_this); + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_tg", 3); + JUT_ASSERT(476, modelData != 0); + if (dComIfGp_addSimpleModel(modelData, fopAcM_GetRoomNo(a_this), 0) == -1) { + // Standing tree: simple model registration failed. + OS_REPORT("\x1B" "[43;30m立ち木:シンプルモデル登録失敗しました。\n" "\x1B" "[m"); + } + i_this->mModelLoaded = true; + } + return rv; } /* ############################################################################################## */ /* 80D0866C-80D0868C -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Tatigi_Method */ static actor_method_class l_daObj_Tatigi_Method = { - (process_method_func)daObj_Tatigi_Create__FP10fopAc_ac_c, - (process_method_func)daObj_Tatigi_Delete__FP16obj_tatigi_class, - (process_method_func)daObj_Tatigi_Execute__FP16obj_tatigi_class, - (process_method_func)daObj_Tatigi_IsDelete__FP16obj_tatigi_class, - (process_method_func)daObj_Tatigi_Draw__FP16obj_tatigi_class, + (process_method_func)daObj_Tatigi_Create, + (process_method_func)daObj_Tatigi_Delete, + (process_method_func)daObj_Tatigi_Execute, + (process_method_func)daObj_Tatigi_IsDelete, + (process_method_func)daObj_Tatigi_Draw, }; /* 80D0868C-80D086BC -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_TATIGI */ @@ -322,40 +241,4 @@ extern actor_process_profile_definition g_profile_OBJ_TATIGI = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80D086BC-80D086C8 000094 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80D086C8-80D086D4 0000A0 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80D083C0-80D08494 000A60 00D4+00 1/1 0/0 0/0 .text __dt__5tg_ssFv */ -tg_ss::~tg_ss() { - // NONMATCHING -} - -/* 80D08494-80D08528 000B34 0094+00 1/1 0/0 0/0 .text __ct__5tg_ssFv */ -tg_ss::tg_ss() { - // NONMATCHING -} - -/* 80D08528-80D08570 000BC8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80D08570-80D085B8 000C10 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - /* 80D08620-80D08620 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_toby.cpp b/src/d/actor/d_a_obj_toby.cpp index 82401084ea9..3efefcaceaa 100644 --- a/src/d/actor/d_a_obj_toby.cpp +++ b/src/d/actor/d_a_obj_toby.cpp @@ -4,119 +4,21 @@ */ #include "d/actor/d_a_obj_toby.h" +#include "d/actor/d_a_e_hz.h" +#include "d/actor/d_a_player.h" +#include "d/d_bg_w.h" +#include "d/d_bomb.h" +#include "d/d_com_inf_game.h" +#include "Z2AudioLib/Z2Instances.h" + +#ifdef DEBUG +#include "d/d_debug_viewer.h" +#endif + #include "dol2asm.h" -#include "d/d_camera.h" - -// -// Forward References: -// - -extern "C" void __ct__16daObj_Toby_HIO_cFv(); -extern "C" static void daObj_Toby_Draw__FP14obj_toby_class(); -extern "C" static void s_bomb_sub__FPvPv(); -extern "C" void __dt__4cXyzFv(); -extern "C" static void shot_b_sub__FPvPv(); -extern "C" static void s_hz_sub__FPvPv(); -extern "C" static void yuka_ground__FP14obj_toby_classP6yuka_s(); -extern "C" static void yuka_fly__FP14obj_toby_classP6yuka_s(); -extern "C" static void yuka_mtxset__FP14obj_toby_classP6yuka_s(); -extern "C" static void yuka_control__FP14obj_toby_class(); -extern "C" static void demo_camera__FP14obj_toby_class(); -extern "C" static void daObj_Toby_Execute__FP14obj_toby_class(); -extern "C" static bool daObj_Toby_IsDelete__FP14obj_toby_class(); -extern "C" static void daObj_Toby_Delete__FP14obj_toby_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void set_pos_check__FP14obj_toby_classi(); -extern "C" static void daObj_Toby_Create__FP10fopAc_ac_c(); -extern "C" void __dt__6yuka_sFv(); -extern "C" void __ct__6yuka_sFv(); -extern "C" void __dt__16daObj_Toby_HIO_cFv(); -extern "C" void __sinit_d_a_obj_toby_cpp(); -extern "C" void getLeftHandPos__9daPy_py_cCFv(); -extern "C" extern char const* const d_a_obj_toby__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc(); -extern "C" void removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai(); -extern "C" void entrySimpleModel__14dComIfG_play_cFP8J3DModeli(); -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 getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void create__19dPa_simpleEcallBackFP17JPAEmitterManagerUsUc(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void -set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -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 checkBoomerangCharge__9daPy_py_cFv(); -extern "C" void Start__9dCamera_cFv(); -extern "C" void Stop__9dCamera_cFv(); -extern "C" void SetTrimSize__9dCamera_cFl(); -extern "C" void Set__9dCamera_cF4cXyz4cXyzfs(); -extern "C" void Reset__9dCamera_cF4cXyz4cXyz(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __apl__5csXyzFR5csXyz(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void cM_rndFX__Ff(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __construct_array(); -extern "C" void _savegpr_21(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_21(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -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 isWait__8daE_HZ_cFv(); -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D155E8-80D155EC 000000 0004+00 9/9 0/0 0/0 .rodata @3806 */ -SECTION_RODATA static f32 const lit_3806 = 1.0f; -COMPILER_STRIP_GATE(0x80D155E8, &lit_3806); /* 80D156D4-80D15794 000000 00C0+00 1/1 0/0 0/0 .data r05yuka_image */ -SECTION_DATA static u8 r05yuka_image[192] = { +static s8 r05yuka_image[192] = { 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -132,7 +34,7 @@ SECTION_DATA static u8 r05yuka_image[192] = { }; /* 80D15794-80D15854 0000C0 00C0+00 1/1 0/0 0/0 .data r11yuka_image */ -SECTION_DATA static u8 r11yuka_image[192] = { +static s8 r11yuka_image[192] = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -147,13 +49,677 @@ SECTION_DATA static u8 r11yuka_image[192] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +/* 80D1378C-80D137B0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daObj_Toby_HIO_cFv */ +daObj_Toby_HIO_c::daObj_Toby_HIO_c() { + field_0x4 = -1; + field_0x8 = 1.0f; +} + +/* 80D137B0-80D13870 000110 00C0+00 1/0 0/0 0/0 .text daObj_Toby_Draw__FP14obj_toby_class + */ +static int daObj_Toby_Draw(obj_toby_class* i_this) { + fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->mBase; + g_env_light.settingTevStruct(0x10, &a_this->current.pos, &a_this->tevStr); + yuka_s* pYuka = i_this->mYukas; + int roomNo = fopAcM_GetRoomNo(a_this); + for (int i = 0; i < i_this->mYukaNum; i++, pYuka++) { + if (pYuka->field_0x34 != 0) { + if (pYuka->field_0x34 == 1) { + dComIfGp_entrySimpleModel(pYuka->mModel1, roomNo); + } else { + dComIfGp_entrySimpleModel(pYuka->mModel2, roomNo); + } + } + } + + #ifdef DEBUG + if (mDoCPd_c::getHoldY(PAD_2)) { + GXColor local_104; + local_104.r = 100; + local_104.g = 255; + local_104.b = 255; + local_104.a = 255; + + cXyz local_100; + cXyz acStack_f0[16]; + local_100.x = 0.0f; + local_100.y = 0.0f; + local_100.z = i_this->field_0x575 * 100.0f; + for (int i = 0; i < 16; i++) { + cMtx_YrotS(*calc_mtx, i << 12); + MtxPosition(&local_100, acStack_f0 + i); + acStack_f0[i] += a_this->current.pos; + } + + for (int i = 0; i < 16; i++) { + dDbVw_drawLineXlu(acStack_f0[i], acStack_f0[(i + 1) & 0xf], local_104, 1, 12); + } + } + #endif + return 1; +} + +/* 80D13870-80D139FC 0001D0 018C+00 1/1 0/0 0/0 .text s_bomb_sub__FPvPv */ +static void* s_bomb_sub(void* param_1, void* param_2) { + if (fopAcM_IsActor(param_1)) { + fopAc_ac_c* actor = (fopAc_ac_c*)param_1; + if (dBomb_c::checkBombActor(actor)) { + dBomb_c* bomb = (dBomb_c*)actor; + if (bomb->checkStateExplode()) { + cXyz acStack_28 = *(cXyz*)((u8*)param_2 + 8) - bomb->current.pos; + if (acStack_28.abs() < 350.0f) { + return param_1; + } + } + } + } + return NULL; +} + +/* 80D13A38-80D13ABC 000398 0084+00 1/1 0/0 0/0 .text shot_b_sub__FPvPv */ +static void* shot_b_sub(void* param_1, void* param_2) { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + if (fopAcM_IsActor(param_1)) { + if (fopAcM_GetName(param_1) == PROC_BOOMERANG && daPy_py_c::checkBoomerangCharge() && + fopAcM_GetParam(param_1) == 1) { + return param_1; + } + + if (fopAcM_GetName(param_1) == PROC_E_MK_BO && (((fopAc_ac_c*)param_1)->field_0x560 != 0)) + { + return param_1; + } + } + return NULL; +} + +UNK_REL_BSS + +/* 80D158F4-80D158F8 -00001 0004+00 2/2 0/0 0/0 .bss None */ +/* 80D158F4 0001+00 data_80D158F4 @1009 */ +/* 80D158F5 0003+00 data_80D158F5 None */ +static u8 l_HIOInit; + +/* 80D15904-80D15910 000054 000C+00 2/2 0/0 0/0 .bss l_HIO */ +static daObj_Toby_HIO_c l_HIO; + +/* 80D15910-80D15914 000060 0004+00 1/2 0/0 0/0 .bss hz_check_pos_x */ +static f32 hz_check_pos_x; + +/* 80D15914-80D15918 000064 0004+00 1/2 0/0 0/0 .bss hz_check_pos_z */ +static f32 hz_check_pos_z; + +/* 80D13ABC-80D13B58 00041C 009C+00 1/1 0/0 0/0 .text s_hz_sub__FPvPv */ +static void* s_hz_sub(void* param_1, void* param_2) { + if (fopAcM_IsActor(param_1)) { + if (fopAcM_GetName(param_1) == PROC_E_HZ) { + daE_HZ_c* hz = (daE_HZ_c*)param_1; + if (hz->isWait() == true) { + f32 xDiff = hz_check_pos_x - hz->current.pos.x; + f32 zDiff = hz_check_pos_z - hz->current.pos.z; + if (xDiff * xDiff + zDiff * zDiff < 1600.0f) { + return param_1; + } + } + + } + } + return NULL; +} + +/* 80D13B58-80D1417C 0004B8 0624+00 1/1 0/0 0/0 .text yuka_ground__FP14obj_toby_classP6yuka_s */ +static void yuka_ground(obj_toby_class* i_this, yuka_s* pYuka) { + fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->mBase; + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + if (i_this->field_0x577 == 1) { + fopAc_ac_c* bomb = (fopAc_ac_c*)fpcM_Search(s_bomb_sub, pYuka); + if (bomb != 0) { + cXyz local_78 = pYuka->mPos - bomb->current.pos; + pYuka->mAngle.y = cM_atan2s(local_78.x, local_78.z); + pYuka->field_0x39 = 2; + } + cXyz cStack_84 = player->current.pos - pYuka->mPos; + if (cStack_84.abs() < 80.0f) { + player->onLeafSe(); + } + } else { + hz_check_pos_x = pYuka->mPos.x; + hz_check_pos_z = pYuka->mPos.z; + if (fpcM_Search(s_hz_sub, i_this) != NULL) { + pYuka->field_0x34 = 0; + } + } + + cXyz local_90; + f32 var_f31; + if (pYuka->field_0x3a == 0) { + if (i_this->field_0x577 == 1 && daPy_getPlayerActorClass()->checkWolfDig()) { + pYuka->field_0x3a = 20; + } else { + fopAc_ac_c* boomerang = (fopAc_ac_c*)fpcM_Search(shot_b_sub, i_this); + if (boomerang == NULL) { + return; + } + local_90 = boomerang->current.pos - pYuka->mPos; + var_f31 = 100.0f; + } + } else { + pYuka->field_0x3a--; + local_90 = daPy_getLinkPlayerActorClass()->getLeftHandPos(); + local_90 -= pYuka->mPos; + f32 dVar12 = 50.0f; + if (JMAFastSqrt(local_90.x * local_90.x + local_90.z * local_90.z) < dVar12) { + if ((pYuka->field_0x3a & 3) == 0) { + pYuka->mAngle.y = cM_rndF(65536.0f); + } + + if (pYuka->field_0x3a == 19) { + f32 scale = pYuka->mScale; + static cXyz sc(scale, scale, scale); + dComIfGp_particle_set(0x8272, &pYuka->mPos, &a_this->tevStr, &player->shape_angle, &sc); + Z2GetAudioMgr()->seStart(Z2SE_OBJ_PEEL_OFF_LEAVES, &pYuka->mPos, 0, + dComIfGp_getReverb(fopAcM_GetRoomNo(a_this)), 1.0f, 1.0f, + -1.0f, -1.0f, 0); + } + if (pYuka->field_0x3a == 0) { + pYuka->field_0x34 = 0; + } + } + return; + } + + if (local_90.y > -50.0f && local_90.y < 400.0f && + JMAFastSqrt(local_90.x * local_90.x + local_90.z * local_90.z) < var_f31) + { + if (i_this->field_0x577 == 1) { + if (i_this->mSwBit != 0xff) { + dComIfGs_onSwitch(i_this->mSwBit, fopAcM_GetRoomNo(a_this)); + for (int i = 0; i < i_this->mYukaNum; i++) { + if (i_this->mYukas[i].field_0x34 != 0) { + i_this->mYukas[i].field_0x39 = 1; + } + } + i_this->field_0x6350 = 1; + } else { + pYuka->field_0x39 = 1; + } + } else { + pYuka->field_0x34 = 2; + pYuka->field_0x38 = cM_rndF(30.0f) + 60.0f; + pYuka->mAngleSpeed.y = -(cM_rndF(500.0f) + 4000.0f); + pYuka->mAngleSpeed.x = cM_rndFX(2000.0f); + pYuka->mAngleSpeed.z = cM_rndFX(2000.0f); + pYuka->mSpeed.x = cM_rndFX(2.0f); + pYuka->mSpeed.y = cM_rndF(10.0f); + pYuka->mSpeed.z = cM_rndFX(2.0f); + + dComIfG_Bgsp().Release(pYuka->mBgW); + pYuka->mBgW = NULL; + Z2GetAudioMgr()->seStart(Z2SE_OBJ_PEEL_OFF_TILE, &pYuka->mPos, 0, + dComIfGp_getReverb(fopAcM_GetRoomNo(a_this)), 1.0f, 1.0f, + -1.0f, -1.0f, 0); + if (i_this->mSwBit != 0xff) { + dComIfGs_onSwitch(i_this->mSwBit, fopAcM_GetRoomNo(a_this)); + } + } + } +} + +/* 80D1417C-80D14264 000ADC 00E8+00 1/1 0/0 0/0 .text yuka_fly__FP14obj_toby_classP6yuka_s */ +static void yuka_fly(obj_toby_class* i_this, yuka_s* pYuka) { + pYuka->mAngle += pYuka->mAngleSpeed; + pYuka->mPos += pYuka->mSpeed; + pYuka->mSpeed.y += 5.0f; + if (pYuka->mSpeed.y > 50.0f) { + pYuka->mSpeed.y = 50.0f; + } + if (pYuka->field_0x38 == 0) { + pYuka->field_0x34 = 0; + } + pYuka->mParticle = dComIfGp_particle_set(pYuka->mParticle, 0x8343, &pYuka->mPos, 0, 0); +} + +/* 80D14264-80D14384 000BC4 0120+00 1/1 0/0 0/0 .text yuka_mtxset__FP14obj_toby_classP6yuka_s */ +static void yuka_mtxset(obj_toby_class* i_this, yuka_s* pYuka) { + mDoMtx_stack_c::transS(pYuka->mPos.x, pYuka->mPos.y, pYuka->mPos.z); + mDoMtx_stack_c::YrotM(pYuka->mAngle.y); + mDoMtx_stack_c::XrotM(pYuka->mAngle.x); + mDoMtx_stack_c::ZrotM(pYuka->mAngle.z); + mDoMtx_stack_c::scaleM(pYuka->mScale, 1.0, pYuka->mScale); + if (i_this->field_0x577 == 0 && pYuka->field_0x34 == 1) { + pYuka->mModel1->setBaseTRMtx(mDoMtx_stack_c::get()); + cXyz cStack_28 = dComIfGp_getPlayer(0)->current.pos - pYuka->mPos; + MTXCopy(mDoMtx_stack_c::get(), pYuka->mMtx); + pYuka->mBgW->Move(); + } else { + pYuka->mModel2->setBaseTRMtx(mDoMtx_stack_c::get()); + } +} + +/* 80D14384-80D14584 000CE4 0200+00 1/1 0/0 0/0 .text yuka_control__FP14obj_toby_class */ +static void yuka_control(obj_toby_class* i_this) { + fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + yuka_s* pYuka = i_this->mYukas; + for (int i = 0; i < i_this->mYukaNum; i++, pYuka++) { + if (pYuka->field_0x34 != 0) { + if (pYuka->field_0x38 != 0) { + pYuka->field_0x38--; + } + + if (pYuka->field_0x34 == 1) { + yuka_ground(i_this, pYuka); + } else { + yuka_fly(i_this, pYuka); + } + yuka_mtxset(i_this, pYuka); + if (pYuka->field_0x39 != 0) { + pYuka->field_0x34 = 0; + f32 scale = pYuka->mScale; + static cXyz sc(scale, scale, scale); + if (pYuka->field_0x39 == 1) { + dComIfGp_particle_set(0x8254, &pYuka->mPos, &a_this->tevStr, &pYuka->mAngle, + &sc); + } else { + dComIfGp_particle_set(0x8255, &pYuka->mPos, &a_this->tevStr, &pYuka->mAngle, + &sc); + } + Z2GetAudioMgr()->seStart(Z2SE_OBJ_PEEL_OFF_LEAVES, &pYuka->mPos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this)), 1.0f, 1.0f, -1.0f, -1.0f, + 0); + } + } + } +} + +/* 80D14584-80D14810 000EE4 028C+00 1/1 0/0 0/0 .text demo_camera__FP14obj_toby_class */ +static void demo_camera(obj_toby_class* i_this) { + fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + cXyz acStack_2c; + cXyz cStack_38; + cXyz cStack_44; + cXyz cStack_50; + + switch (i_this->field_0x6350) { + case 0: + break; + case 1: + if (!a_this->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(a_this, 2, 0xffff, 0); + a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + return; + } + camera->mCamera.Stop(); + i_this->field_0x6350 = 2; + i_this->field_0x6352 = 0; + i_this->field_0x636c = 55.0f; + camera->mCamera.SetTrimSize(3); + // fallthrough + case 2: + i_this->field_0x6360 = a_this->current.pos; + i_this->field_0x6360.y += 50.0f; + i_this->field_0x6354 = a_this->current.pos; + i_this->field_0x6354.x += 800.0f; + i_this->field_0x6354.y += 200.0f; + i_this->field_0x6354.z += 600.0f; + cLib_addCalc2(&i_this->field_0x636c, 30.0f, 0.1f, 0.5f); + if (i_this->field_0x6352 == 40) { + mDoAud_seStart(Z2SE_READ_RIDDLE_A, 0, 0, 0); + } + if (i_this->field_0x6352 == 110) { + camera->mCamera.Reset(i_this->field_0x6360, i_this->field_0x6354); + camera->mCamera.Start(); + camera->mCamera.SetTrimSize(0); + dComIfGp_event_reset(); + i_this->field_0x6350 = 0; + } + break; + } + + if (i_this->field_0x6350 != 0) { + cXyz cStack_5c(i_this->field_0x6360); + cXyz cStack_68(i_this->field_0x6354); + camera->mCamera.Set(cStack_5c, cStack_68, i_this->field_0x636c, 0); + i_this->field_0x6352 = i_this->field_0x6352 + 1; + } +} + +/* 80D14810-80D14884 001170 0074+00 2/1 0/0 0/0 .text daObj_Toby_Execute__FP14obj_toby_class */ +static int daObj_Toby_Execute(obj_toby_class* i_this) { + i_this->field_0x580++; + for (int i = 0; i < 2; i++) { + if (i_this->field_0x586[i] != 0) { + i_this->field_0x586[i]--; + } + } + yuka_control(i_this); + demo_camera(i_this); + return 1; +} + +/* 80D14884-80D1488C 0011E4 0008+00 1/0 0/0 0/0 .text daObj_Toby_IsDelete__FP14obj_toby_class */ +static int daObj_Toby_IsDelete(obj_toby_class* param_0) { + return 1; +} + +/* 80D1488C-80D149DC 0011EC 0150+00 1/0 0/0 0/0 .text daObj_Toby_Delete__FP14obj_toby_class */ +static int daObj_Toby_Delete(obj_toby_class* i_this) { + static int const l_bmdidx[2] = {4, 5}; + fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + fopAcM_GetID(i_this); + if (i_this->field_0x6371 != 0) { + if (i_this->field_0x577 == 0) { + for (u32 i = 0; i < 2; i++) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, l_bmdidx[i]); + dComIfGp_removeSimpleModel(modelData, fopAcM_GetRoomNo(a_this)); + } + yuka_s* pYuka = i_this->mYukas; + for (int i = 0; i < i_this->mYukaNum; i++, pYuka++) { + if (pYuka->mBgW != NULL) { + dComIfG_Bgsp().Release(pYuka->mBgW); + } + } + } else if (i_this->field_0x577 == 1) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 6); + dComIfGp_removeSimpleModel(modelData, fopAcM_GetRoomNo(a_this)); + } + i_this->field_0x6371 = 0; + } + dComIfG_resDelete(&i_this->mPhase, i_this->mArcName); + if (i_this->field_0x6370 != 0) { + l_HIOInit = 0; + mDoHIO_DELETE_CHILD(l_HIO.field_0x4); + } + return 1; +} + +/* 80D149DC-80D14BD4 00133C 01F8+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +// nonmatching - regalloc +static int useHeapInit(fopAc_ac_c* a_this) { + obj_toby_class* i_this = (obj_toby_class*)a_this; + J3DModelData* modelData; + J3DModelData* modelData2; + yuka_s* pYuka; + + if (i_this->field_0x577 == 0) { + modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 4); + JUT_ASSERT(868, modelData != 0); + modelData2 = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 5); + // !@bug assert on wrong variable. not really meaningful. + JUT_ASSERT(872, modelData != 0); + pYuka = i_this->mYukas; + for (int i = 0; i < i_this->mYukaNum; i++, pYuka++) { + i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084); + if (i_this->mYukas[i].mModel1 == NULL) { + return 0; + } + + i_this->mYukas[i].mModel2 = mDoExt_J3DModel__create(modelData2, 0x20000, 0x11000084); + if (i_this->mYukas[i].mModel2 == NULL) { + return 0; + } + + pYuka->mBgW = new dBgW(); + if (pYuka->mBgW == NULL) { + return 0; + } + if (pYuka->mBgW->Set((cBgD_t*)dComIfG_getObjectRes(i_this->mArcName, 9), 1, &pYuka->mMtx) == 1) { + return 0; + } + } + } else if (i_this->field_0x577 == 1) { + a_this->field_0x567 = 1; + modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 6); + JUT_ASSERT(907, modelData != 0); + + for (int i = 0; i < i_this->mYukaNum; i++) { + i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084); + if (i_this->mYukas[i].mModel1 == NULL) { + return 0; + } + i_this->mYukas[i].mModel2 = i_this->mYukas[i].mModel1; + } + } + return 1; +} + +/* 80D14BD4-80D14CFC 001534 0128+00 1/1 0/0 0/0 .text set_pos_check__FP14obj_toby_classi + */ +static int set_pos_check(obj_toby_class* i_this, int param_2) { + fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + for (int i = 0; i < param_2; i++) { + f32 fVar5 = i_this->mYukas[i].mPos.x - i_this->mYukas[param_2].mPos.x; + f32 fVar6 = i_this->mYukas[i].mPos.z - i_this->mYukas[param_2].mPos.z; + f32 dVar10 = JMAFastSqrt(fVar5 * fVar5 + fVar6 * fVar6); + if (dVar10 < i_this->field_0x57c * 0.6f) { + return 0; + } + + if (dVar10 < i_this->field_0x57c * 1.0f) { + i_this->mYukas[param_2].mPos.y = i_this->mYukas[i].mPos.y + 0.1f; + if (i_this->mYukas[param_2].mPos.y > a_this->current.pos.y + 8.0f) { + i_this->mYukas[param_2].mPos.y = + (a_this->current.pos.y + 2.5f) + cM_rndF(4.0f); + } + } + } + return 1; +} + +/* 80D14CFC-80D154F4 00165C 07F8+00 1/0 0/0 0/0 .text daObj_Toby_Create__FP10fopAc_ac_c + */ +static int daObj_Toby_Create(fopAc_ac_c* a_this) { + static u32 const l_bmdidx[2] = {4, 5}; + + fopAcM_SetupActor(a_this, obj_toby_class); + obj_toby_class* i_this = (obj_toby_class*)a_this; + if (strcmp(dComIfGp_getStartStageName(), "D_MN07") == 0) { + i_this->mArcName = "Obj_Tob7"; + } else { + i_this->mArcName = "Obj_Toby"; + } + + int rv = dComIfG_resLoad(&i_this->mPhase, i_this->mArcName); + if (rv == cPhs_COMPLEATE_e) { + OS_REPORT("OBJ_TOBY PARAM %x\n", fopAcM_GetParam(a_this)); + i_this->field_0x574 = fopAcM_GetParam(a_this) & 0xff; + i_this->field_0x575 = (fopAcM_GetParam(a_this) & 0xff00) >> 8; + i_this->field_0x576 = (fopAcM_GetParam(a_this) >> 16) & 0xf; + if (i_this->field_0x576 == 15) { + i_this->field_0x576 = 0; + } + i_this->field_0x577 = (fopAcM_GetParam(a_this) >> 20) & 0xf; + if (i_this->field_0x577 == 15) { + i_this->field_0x577 = 0; + } + i_this->mSwBit = (fopAcM_GetParam(a_this) & 0xff000000) >> 24; + + cXyz cStack_38(a_this->home.pos); + if (i_this->field_0x577 == 3) { + i_this->mYukaNum = 0; + s8* local_64; + if (fopAcM_GetRoomNo(a_this) == 5) { + local_64 = r05yuka_image; + } else { + local_64 = r11yuka_image; + } + for (int i = 0; i < 192; i++) { + if (local_64[i] != 0) { + i_this->mYukaNum++; + } + } + i_this->field_0x577 = 0; + + OS_REPORT("OBJ_TOBY//////////////OBJ_TOBY SET 1 !!\n"); + + if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x8004b000)) { + OS_REPORT("//////////////OBJ_TOBY SET NON !!\n"); + return cPhs_ERROR_e; + } + OS_REPORT("//////////////OBJ_TOBY SET 2 !!\n"); + yuka_s* pYuka = i_this->mYukas; + for (int i = 0; i < i_this->mYukaNum; i++, pYuka++) + { + if (pYuka->mBgW != NULL) { + if (dComIfG_Bgsp().Regist(pYuka->mBgW, a_this) != 0) { + return cPhs_ERROR_e; + } + } + } + a_this->home.pos.y += 15.0f; + int yukaIndex = 0; + cXyz local_44; + local_44.y = 0.0f; + for (int i = 0; (int)i < 192; i ++) { + if (local_64[i] != 0) { + local_44.x = (i & 0xf) * 150.0f; + local_44.z = ((i >> 4) & 0xf) * 150.0f; + i_this->mYukas[yukaIndex].field_0x34 = 1; + i_this->mYukas[yukaIndex].mPos = a_this->home.pos + local_44; + i_this->mYukas[yukaIndex].field_0x36 = cM_rndF(65536.0f); + i_this->mYukas[yukaIndex].mScale = 1.0f; + yukaIndex++; + } + } + } else { + if (i_this->field_0x577 == 0) { + i_this->mYukaNum = i_this->field_0x574 * i_this->field_0x575; + } else if (i_this->field_0x576 == 1) { + i_this->mYukaNum = i_this->field_0x575 * 1.5f; + } else { + i_this->mYukaNum = i_this->field_0x575 * 3; + } + if (i_this->field_0x576 == 1) { + i_this->mYukaNum <<= 2; + } + if (i_this->mYukaNum > 200) { + i_this->mYukaNum = 200; + } + + OS_REPORT("OBJ_TOBY//////////////OBJ_TOBY SET 1 !!\n"); + + if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x8004b000)) { + OS_REPORT("//////////////OBJ_TOBY SET NON !!\n"); + return cPhs_ERROR_e; + } + + OS_REPORT("//////////////OBJ_TOBY SET 2 !!\n"); + + if (!l_HIOInit) { + i_this->field_0x6370 = 1; + l_HIOInit = 1; + l_HIO.field_0x4 = mDoHIO_CREATE_CHILD("飛び床", &l_HIO); + } + + if (i_this->field_0x577 == 0) { + yuka_s* pYuka = i_this->mYukas; + for (int i = 0; i < i_this->mYukaNum; i++, pYuka++) + { + if (pYuka->mBgW != NULL) { + if (dComIfG_Bgsp().Regist(pYuka->mBgW, a_this) != 0) { + return cPhs_ERROR_e; + } + } + } + + int yukaIndex = 0; + int local_90; + if (i_this->field_0x576 == 1) { + i_this->field_0x57c = 75.0f; + a_this->home.pos.x -= 32.5f; + a_this->home.pos.z -= 32.5f; + local_90 = 2; + } else { + i_this->field_0x57c = 150.0f; + local_90 = 1; + } + a_this->home.pos.y += 15.0f; + for (int i = 0; i < i_this->field_0x574 * local_90; i++) { + for (int j = 0; j < i_this->field_0x575 * local_90; j++) { + i_this->mYukas[yukaIndex].field_0x34 = 1; + i_this->mYukas[yukaIndex].mPos.x = a_this->home.pos.x + i * i_this->field_0x57c; + i_this->mYukas[yukaIndex].mPos.y = a_this->home.pos.y; + i_this->mYukas[yukaIndex].mPos.z = a_this->home.pos.z + j * i_this->field_0x57c; + i_this->mYukas[yukaIndex].field_0x36 = cM_rndF(65536.0f); + if (i_this->field_0x576 == 1) { + i_this->mYukas[yukaIndex].mScale = 0.5f; + } else { + i_this->mYukas[yukaIndex].mScale = 1.0f; + } + yukaIndex++; + } + } + } else { + OS_REPORT("//////////////OBJ_TOBY SET MAX %d\n", i_this->mYukaNum); + if (i_this->field_0x576 == 1) { + i_this->field_0x57c = 155.0f; + } else { + i_this->field_0x57c = 250.0f; + } + cXyz cStack_50(0.0f, 0.2f, 0.0f); + int local_9c = 0; + for (int i = 0; i < i_this->mYukaNum; i++) { + cMtx_YrotS(*calc_mtx, cM_rndF(65536.0f)); + MtxPosition(&cStack_50, &i_this->mYukas[i].mPos); + i_this->mYukas[i].mPos += a_this->current.pos; + if (set_pos_check(i_this, i)) { + + i_this->mYukas[i].field_0x34 = 1; + i_this->mYukas[i].field_0x36 = cM_rndF(65536.0f); + if (i_this->field_0x576 == 1) { + i_this->mYukas[i].mScale = 0.5f; + } else { + i_this->mYukas[i].mScale = 1.0f; + } + i_this->mYukas[i].mAngle.y = cM_rndF(65536.0f); + i_this->mYukas[i].mScale *= cM_rndF(0.15f) + 1.0f; + } else { + i--; + local_9c++; + if (local_9c > 1000) { + // Designated area of leaves is too narrow to place + OS_REPORT(" 葉っぱの指定範囲が狭すぎて置けません!!!!\n"); + return cPhs_ERROR_e; + } + } + cStack_50.z = cM_rndF(i_this->field_0x575 * 100.0f); + } + OS_REPORT("//////////////OBJ_TOBY SET 4 !!\n"); + } + } + i_this->field_0x580 = fopAcM_GetID(a_this); + daObj_Toby_Execute(i_this); + if (i_this->field_0x577 == 0) { + for (u32 i = 0; i < 2; i++) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, l_bmdidx[i]); + JUT_ASSERT(1341, modelData != 0); + if (dComIfGp_addSimpleModel(modelData, fopAcM_GetRoomNo(a_this), 1) == -1) { + // Skipping floor: simple model registration failed + OS_REPORT("\x1B" "[43;30m飛び床:シンプルモデル登録失敗しました。\n" "\x1B" "[m"); + } + i_this->field_0x6371 = 1; + } + } else if (i_this->field_0x577 == 1) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 6); + JUT_ASSERT(1351, modelData != 0); + if (dComIfGp_addSimpleModel(modelData, fopAcM_GetRoomNo(a_this), 1) == -1) { + //Skipping leaves: simple model registration failed. + OS_REPORT("\x1B" "[43;30m飛び葉:シンプルモデル登録失敗しました。\n" "\x1B" "[m"); + } + i_this->field_0x6371 = 1; + } + } + return rv; +} + +AUDIO_INSTANCES; + /* 80D15854-80D15874 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Toby_Method */ static actor_method_class l_daObj_Toby_Method = { - (process_method_func)daObj_Toby_Create__FP10fopAc_ac_c, - (process_method_func)daObj_Toby_Delete__FP14obj_toby_class, - (process_method_func)daObj_Toby_Execute__FP14obj_toby_class, - (process_method_func)daObj_Toby_IsDelete__FP14obj_toby_class, - (process_method_func)daObj_Toby_Draw__FP14obj_toby_class, + (process_method_func)daObj_Toby_Create, + (process_method_func)daObj_Toby_Delete, + (process_method_func)daObj_Toby_Execute, + (process_method_func)daObj_Toby_IsDelete, + (process_method_func)daObj_Toby_Draw, }; /* 80D15874-80D158A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_TOBY */ @@ -174,766 +740,4 @@ extern actor_process_profile_definition g_profile_OBJ_TOBY = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80D158A4-80D158B0 0001D0 000C+00 2/2 0/0 0/0 .data __vt__16daObj_Toby_HIO_c */ -SECTION_DATA extern void* __vt__16daObj_Toby_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daObj_Toby_HIO_cFv, -}; - -/* 80D1378C-80D137B0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daObj_Toby_HIO_cFv */ -daObj_Toby_HIO_c::daObj_Toby_HIO_c() { - // NONMATCHING -} - -/* 80D137B0-80D13870 000110 00C0+00 1/0 0/0 0/0 .text daObj_Toby_Draw__FP14obj_toby_class - */ -static void daObj_Toby_Draw(obj_toby_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D155EC-80D155F0 000004 0004+00 0/4 0/0 0/0 .rodata @3880 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3880[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D155EC, &lit_3880); -#pragma pop - -/* 80D155F0-80D155F8 000008 0008+00 0/2 0/0 0/0 .rodata @3881 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3881[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D155F0, &lit_3881); -#pragma pop - -/* 80D155F8-80D15600 000010 0008+00 0/2 0/0 0/0 .rodata @3882 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3882[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D155F8, &lit_3882); -#pragma pop - -/* 80D15600-80D15608 000018 0008+00 0/2 0/0 0/0 .rodata @3883 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3883[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D15600, &lit_3883); -#pragma pop - -/* 80D15608-80D1560C 000020 0004+00 0/1 0/0 0/0 .rodata @3884 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3884 = 350.0f; -COMPILER_STRIP_GATE(0x80D15608, &lit_3884); -#pragma pop - -/* 80D13870-80D139FC 0001D0 018C+00 1/1 0/0 0/0 .text s_bomb_sub__FPvPv */ -static void s_bomb_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 80D139FC-80D13A38 00035C 003C+00 2/2 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80D13A38-80D13ABC 000398 0084+00 1/1 0/0 0/0 .text shot_b_sub__FPvPv */ -static void shot_b_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D1560C-80D15610 000024 0004+00 1/1 0/0 0/0 .rodata @3917 */ -SECTION_RODATA static f32 const lit_3917 = 1600.0f; -COMPILER_STRIP_GATE(0x80D1560C, &lit_3917); - -/* 80D158B8-80D158BC 000008 0001+03 2/2 0/0 0/0 .bss @1109 */ -static u8 lit_1109[1 + 3 /* padding */]; - -/* 80D158BC-80D158C0 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */ -#pragma push -#pragma force_active on -static u8 lit_1107[1 + 3 /* padding */]; -#pragma pop - -/* 80D158C0-80D158C4 000010 0001+03 0/0 0/0 0/0 .bss @1105 */ -#pragma push -#pragma force_active on -static u8 lit_1105[1 + 3 /* padding */]; -#pragma pop - -/* 80D158C4-80D158C8 000014 0001+03 0/0 0/0 0/0 .bss @1104 */ -#pragma push -#pragma force_active on -static u8 lit_1104[1 + 3 /* padding */]; -#pragma pop - -/* 80D158C8-80D158CC 000018 0001+03 0/0 0/0 0/0 .bss @1099 */ -#pragma push -#pragma force_active on -static u8 lit_1099[1 + 3 /* padding */]; -#pragma pop - -/* 80D158CC-80D158D0 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */ -#pragma push -#pragma force_active on -static u8 lit_1097[1 + 3 /* padding */]; -#pragma pop - -/* 80D158D0-80D158D4 000020 0001+03 0/0 0/0 0/0 .bss @1095 */ -#pragma push -#pragma force_active on -static u8 lit_1095[1 + 3 /* padding */]; -#pragma pop - -/* 80D158D4-80D158D8 000024 0001+03 0/0 0/0 0/0 .bss @1094 */ -#pragma push -#pragma force_active on -static u8 lit_1094[1 + 3 /* padding */]; -#pragma pop - -/* 80D158D8-80D158DC 000028 0001+03 0/0 0/0 0/0 .bss @1057 */ -#pragma push -#pragma force_active on -static u8 lit_1057[1 + 3 /* padding */]; -#pragma pop - -/* 80D158DC-80D158E0 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */ -#pragma push -#pragma force_active on -static u8 lit_1055[1 + 3 /* padding */]; -#pragma pop - -/* 80D158E0-80D158E4 000030 0001+03 0/0 0/0 0/0 .bss @1053 */ -#pragma push -#pragma force_active on -static u8 lit_1053[1 + 3 /* padding */]; -#pragma pop - -/* 80D158E4-80D158E8 000034 0001+03 0/0 0/0 0/0 .bss @1052 */ -#pragma push -#pragma force_active on -static u8 lit_1052[1 + 3 /* padding */]; -#pragma pop - -/* 80D158E8-80D158EC 000038 0001+03 0/0 0/0 0/0 .bss @1014 */ -#pragma push -#pragma force_active on -static u8 lit_1014[1 + 3 /* padding */]; -#pragma pop - -/* 80D158EC-80D158F0 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */ -#pragma push -#pragma force_active on -static u8 lit_1012[1 + 3 /* padding */]; -#pragma pop - -/* 80D158F0-80D158F4 000040 0001+03 0/0 0/0 0/0 .bss @1010 */ -#pragma push -#pragma force_active on -static u8 lit_1010[1 + 3 /* padding */]; -#pragma pop - -/* 80D158F4-80D158F8 -00001 0004+00 2/2 0/0 0/0 .bss None */ -/* 80D158F4 0001+00 data_80D158F4 @1009 */ -/* 80D158F5 0003+00 data_80D158F5 None */ -static u8 struct_80D158F4[4]; - -/* 80D158F8-80D15904 000048 000C+00 1/1 0/0 0/0 .bss @3801 */ -static u8 lit_3801[12]; - -/* 80D15904-80D15910 000054 000C+00 2/2 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[12]; - -/* 80D15910-80D15914 000060 0004+00 1/2 0/0 0/0 .bss hz_check_pos_x */ -static u8 hz_check_pos_x[4]; - -/* 80D15914-80D15918 000064 0004+00 1/2 0/0 0/0 .bss hz_check_pos_z */ -static u8 hz_check_pos_z[4]; - -/* 80D13ABC-80D13B58 00041C 009C+00 1/1 0/0 0/0 .text s_hz_sub__FPvPv */ -static void s_hz_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D15610-80D15614 000028 0004+00 0/1 0/0 0/0 .rodata @4077 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4077 = 80.0f; -COMPILER_STRIP_GATE(0x80D15610, &lit_4077); -#pragma pop - -/* 80D15614-80D15618 00002C 0004+00 0/2 0/0 0/0 .rodata @4078 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4078 = 100.0f; -COMPILER_STRIP_GATE(0x80D15614, &lit_4078); -#pragma pop - -/* 80D15618-80D1561C 000030 0004+00 0/3 0/0 0/0 .rodata @4079 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4079 = 50.0f; -COMPILER_STRIP_GATE(0x80D15618, &lit_4079); -#pragma pop - -/* 80D1561C-80D15620 000034 0004+00 0/2 0/0 0/0 .rodata @4080 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4080 = 65536.0f; -COMPILER_STRIP_GATE(0x80D1561C, &lit_4080); -#pragma pop - -/* 80D15620-80D15624 000038 0004+00 1/3 0/0 0/0 .rodata @4081 */ -SECTION_RODATA static f32 const lit_4081 = -1.0f; -COMPILER_STRIP_GATE(0x80D15620, &lit_4081); - -/* 80D15624-80D15628 00003C 0004+00 0/1 0/0 0/0 .rodata @4082 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4082 = -50.0f; -COMPILER_STRIP_GATE(0x80D15624, &lit_4082); -#pragma pop - -/* 80D15628-80D1562C 000040 0004+00 0/1 0/0 0/0 .rodata @4083 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4083 = 400.0f; -COMPILER_STRIP_GATE(0x80D15628, &lit_4083); -#pragma pop - -/* 80D1562C-80D15630 000044 0004+00 0/1 0/0 0/0 .rodata @4084 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4084 = 60.0f; -COMPILER_STRIP_GATE(0x80D1562C, &lit_4084); -#pragma pop - -/* 80D15630-80D15634 000048 0004+00 0/2 0/0 0/0 .rodata @4085 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4085 = 30.0f; -COMPILER_STRIP_GATE(0x80D15630, &lit_4085); -#pragma pop - -/* 80D15634-80D15638 00004C 0004+00 0/1 0/0 0/0 .rodata @4086 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4086 = 4000.0f; -COMPILER_STRIP_GATE(0x80D15634, &lit_4086); -#pragma pop - -/* 80D15638-80D1563C 000050 0004+00 0/1 0/0 0/0 .rodata @4087 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4087 = 500.0f; -COMPILER_STRIP_GATE(0x80D15638, &lit_4087); -#pragma pop - -/* 80D1563C-80D15640 000054 0004+00 0/1 0/0 0/0 .rodata @4088 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4088 = 2000.0f; -COMPILER_STRIP_GATE(0x80D1563C, &lit_4088); -#pragma pop - -/* 80D15640-80D15644 000058 0004+00 0/1 0/0 0/0 .rodata @4089 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4089 = 2.0f; -COMPILER_STRIP_GATE(0x80D15640, &lit_4089); -#pragma pop - -/* 80D15644-80D15648 00005C 0004+00 0/1 0/0 0/0 .rodata @4090 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4090 = 10.0f; -COMPILER_STRIP_GATE(0x80D15644, &lit_4090); -#pragma pop - -/* 80D15918-80D15928 000068 000C+04 0/1 0/0 0/0 .bss @3946 */ -#pragma push -#pragma force_active on -static u8 lit_3946[12 + 4 /* padding */]; -#pragma pop - -/* 80D15928-80D15934 000078 000C+00 0/1 0/0 0/0 .bss sc$3945 */ -#pragma push -#pragma force_active on -static u8 sc_3945[12]; -#pragma pop - -/* 80D13B58-80D1417C 0004B8 0624+00 1/1 0/0 0/0 .text yuka_ground__FP14obj_toby_classP6yuka_s */ -static void yuka_ground(obj_toby_class* param_0, yuka_s* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D15648-80D1564C 000060 0004+00 0/1 0/0 0/0 .rodata @4117 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4117 = 5.0f; -COMPILER_STRIP_GATE(0x80D15648, &lit_4117); -#pragma pop - -/* 80D1417C-80D14264 000ADC 00E8+00 1/1 0/0 0/0 .text yuka_fly__FP14obj_toby_classP6yuka_s */ -static void yuka_fly(obj_toby_class* param_0, yuka_s* param_1) { - // NONMATCHING -} - -/* 80D14264-80D14384 000BC4 0120+00 1/1 0/0 0/0 .text yuka_mtxset__FP14obj_toby_classP6yuka_s */ -static void yuka_mtxset(obj_toby_class* param_0, yuka_s* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D15934-80D15944 000084 000C+04 0/1 0/0 0/0 .bss @4167 */ -#pragma push -#pragma force_active on -static u8 lit_4167[12 + 4 /* padding */]; -#pragma pop - -/* 80D15944-80D15950 000094 000C+00 0/1 0/0 0/0 .bss sc$4166 */ -#pragma push -#pragma force_active on -static u8 sc_4166[12]; -#pragma pop - -/* 80D14384-80D14584 000CE4 0200+00 1/1 0/0 0/0 .text yuka_control__FP14obj_toby_class */ -static void yuka_control(obj_toby_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D1564C-80D15650 000064 0004+00 0/1 0/0 0/0 .rodata @4271 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4271 = 55.0f; -COMPILER_STRIP_GATE(0x80D1564C, &lit_4271); -#pragma pop - -/* 80D15650-80D15654 000068 0004+00 0/1 0/0 0/0 .rodata @4272 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4272 = 800.0f; -COMPILER_STRIP_GATE(0x80D15650, &lit_4272); -#pragma pop - -/* 80D15654-80D15658 00006C 0004+00 0/1 0/0 0/0 .rodata @4273 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4273 = 200.0f; -COMPILER_STRIP_GATE(0x80D15654, &lit_4273); -#pragma pop - -/* 80D15658-80D1565C 000070 0004+00 0/1 0/0 0/0 .rodata @4274 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4274 = 600.0f; -COMPILER_STRIP_GATE(0x80D15658, &lit_4274); -#pragma pop - -/* 80D1565C-80D15660 000074 0004+00 0/2 0/0 0/0 .rodata @4275 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4275 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80D1565C, &lit_4275); -#pragma pop - -/* 80D15660-80D15664 000078 0004+00 0/2 0/0 0/0 .rodata @4276 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4276 = 0.5f; -COMPILER_STRIP_GATE(0x80D15660, &lit_4276); -#pragma pop - -/* 80D14584-80D14810 000EE4 028C+00 1/1 0/0 0/0 .text demo_camera__FP14obj_toby_class */ -static void demo_camera(obj_toby_class* param_0) { - // NONMATCHING -} - -/* 80D14810-80D14884 001170 0074+00 2/1 0/0 0/0 .text daObj_Toby_Execute__FP14obj_toby_class */ -static void daObj_Toby_Execute(obj_toby_class* param_0) { - // NONMATCHING -} - -/* 80D14884-80D1488C 0011E4 0008+00 1/0 0/0 0/0 .text daObj_Toby_IsDelete__FP14obj_toby_class */ -static bool daObj_Toby_IsDelete(obj_toby_class* param_0) { - return true; -} - -/* ############################################################################################## */ -/* 80D15664-80D1566C 00007C 0008+00 1/1 0/0 0/0 .rodata l_bmdidx$4300 */ -SECTION_RODATA static u8 const l_bmdidx_4300[8] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, -}; -COMPILER_STRIP_GATE(0x80D15664, &l_bmdidx_4300); - -/* 80D1488C-80D149DC 0011EC 0150+00 1/0 0/0 0/0 .text daObj_Toby_Delete__FP14obj_toby_class */ -static void daObj_Toby_Delete(obj_toby_class* param_0) { - // NONMATCHING -} - -/* 80D149DC-80D14BD4 00133C 01F8+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D1566C-80D15670 000084 0004+00 0/1 0/0 0/0 .rodata @4422 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4422 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D1566C, &lit_4422); -#pragma pop - -/* 80D15670-80D15674 000088 0004+00 0/1 0/0 0/0 .rodata @4423 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4423 = 8.0f; -COMPILER_STRIP_GATE(0x80D15670, &lit_4423); -#pragma pop - -/* 80D15674-80D15678 00008C 0004+00 0/1 0/0 0/0 .rodata @4424 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4424 = 2.5f; -COMPILER_STRIP_GATE(0x80D15674, &lit_4424); -#pragma pop - -/* 80D15678-80D1567C 000090 0004+00 0/1 0/0 0/0 .rodata @4425 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4425 = 4.0f; -COMPILER_STRIP_GATE(0x80D15678, &lit_4425); -#pragma pop - -/* 80D14BD4-80D14CFC 001534 0128+00 1/1 0/0 0/0 .text set_pos_check__FP14obj_toby_classi - */ -static void set_pos_check(obj_toby_class* param_0, int param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D1567C-80D15684 000094 0008+00 0/1 0/0 0/0 .rodata l_bmdidx$4530 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_bmdidx_4530[8] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, -}; -COMPILER_STRIP_GATE(0x80D1567C, &l_bmdidx_4530); -#pragma pop - -/* 80D15684-80D15688 00009C 0004+00 0/1 0/0 0/0 .rodata @4751 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4751 = 15.0f; -COMPILER_STRIP_GATE(0x80D15684, &lit_4751); -#pragma pop - -/* 80D15688-80D1568C 0000A0 0004+00 0/1 0/0 0/0 .rodata @4752 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4752 = 150.0f; -COMPILER_STRIP_GATE(0x80D15688, &lit_4752); -#pragma pop - -/* 80D1568C-80D15690 0000A4 0004+00 0/1 0/0 0/0 .rodata @4753 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4753 = 1.5f; -COMPILER_STRIP_GATE(0x80D1568C, &lit_4753); -#pragma pop - -/* 80D15690-80D15694 0000A8 0004+00 0/1 0/0 0/0 .rodata @4754 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4754 = 75.0f; -COMPILER_STRIP_GATE(0x80D15690, &lit_4754); -#pragma pop - -/* 80D15694-80D15698 0000AC 0004+00 0/1 0/0 0/0 .rodata @4755 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4755 = 32.5f; -COMPILER_STRIP_GATE(0x80D15694, &lit_4755); -#pragma pop - -/* 80D15698-80D1569C 0000B0 0004+00 0/1 0/0 0/0 .rodata @4756 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4756 = 155.0f; -COMPILER_STRIP_GATE(0x80D15698, &lit_4756); -#pragma pop - -/* 80D1569C-80D156A0 0000B4 0004+00 0/1 0/0 0/0 .rodata @4757 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4757 = 250.0f; -COMPILER_STRIP_GATE(0x80D1569C, &lit_4757); -#pragma pop - -/* 80D156A0-80D156A4 0000B8 0004+00 0/1 0/0 0/0 .rodata @4758 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4758 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D156A0, &lit_4758); -#pragma pop - -/* 80D156A4-80D156A8 0000BC 0004+00 0/1 0/0 0/0 .rodata @4759 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4759 = 3.0f / 20.0f; -COMPILER_STRIP_GATE(0x80D156A4, &lit_4759); -#pragma pop - -/* 80D156A8-80D156B0 0000C0 0008+00 0/1 0/0 0/0 .rodata @4761 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4761[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D156A8, &lit_4761); -#pragma pop - -/* 80D156B0-80D156B8 0000C8 0008+00 0/1 0/0 0/0 .rodata @4764 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4764[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D156B0, &lit_4764); -#pragma pop - -/* 80D156B8-80D156B8 0000D0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D156B8 = "D_MN07"; -SECTION_DEAD static char const* const stringBase_80D156BF = "Obj_Tob7"; -SECTION_DEAD static char const* const stringBase_80D156C8 = "Obj_Toby"; -#pragma pop - -/* 80D14CFC-80D154F4 00165C 07F8+00 1/0 0/0 0/0 .text daObj_Toby_Create__FP10fopAc_ac_c - */ -static void daObj_Toby_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80D154F4-80D15530 001E54 003C+00 1/1 0/0 0/0 .text __dt__6yuka_sFv */ -yuka_s::~yuka_s() { - // NONMATCHING -} - -/* 80D15530-80D15534 001E90 0004+00 1/1 0/0 0/0 .text __ct__6yuka_sFv */ -yuka_s::yuka_s() { - /* empty function */ -} - -/* 80D15534-80D1557C 001E94 0048+00 2/1 0/0 0/0 .text __dt__16daObj_Toby_HIO_cFv */ -daObj_Toby_HIO_c::~daObj_Toby_HIO_c() { - // NONMATCHING -} - -/* 80D1557C-80D155B8 001EDC 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_toby_cpp */ -void __sinit_d_a_obj_toby_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80D1557C, __sinit_d_a_obj_toby_cpp); -#pragma pop - -/* 80D155B8-80D155D4 001F18 001C+00 1/1 0/0 0/0 .text getLeftHandPos__9daPy_py_cCFv */ -// void daPy_py_c::getLeftHandPos() const { -extern "C" void getLeftHandPos__9daPy_py_cCFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D15950-80D15954 0000A0 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80D15950[4]; -#pragma pop - -/* 80D15954-80D15958 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80D15954[4]; -#pragma pop - -/* 80D15958-80D1595C 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D15958[4]; -#pragma pop - -/* 80D1595C-80D15960 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D1595C[4]; -#pragma pop - -/* 80D15960-80D15964 0000B0 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D15960[4]; -#pragma pop - -/* 80D15964-80D15968 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D15964[4]; -#pragma pop - -/* 80D15968-80D1596C 0000B8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80D15968[4]; -#pragma pop - -/* 80D1596C-80D15970 0000BC 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80D1596C[4]; -#pragma pop - -/* 80D15970-80D15974 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80D15970[4]; -#pragma pop - -/* 80D15974-80D15978 0000C4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80D15974[4]; -#pragma pop - -/* 80D15978-80D1597C 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D15978[4]; -#pragma pop - -/* 80D1597C-80D15980 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D1597C[4]; -#pragma pop - -/* 80D15980-80D15984 0000D0 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D15980[4]; -#pragma pop - -/* 80D15984-80D15988 0000D4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D15984[4]; -#pragma pop - -/* 80D15988-80D1598C 0000D8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80D15988[4]; -#pragma pop - -/* 80D1598C-80D15990 0000DC 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80D1598C[4]; -#pragma pop - -/* 80D15990-80D15994 0000E0 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80D15990[4]; -#pragma pop - -/* 80D15994-80D15998 0000E4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80D15994[4]; -#pragma pop - -/* 80D15998-80D1599C 0000E8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80D15998[4]; -#pragma pop - -/* 80D1599C-80D159A0 0000EC 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D1599C[4]; -#pragma pop - -/* 80D159A0-80D159A4 0000F0 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80D159A0[4]; -#pragma pop - -/* 80D159A4-80D159A8 0000F4 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D159A4[4]; -#pragma pop - -/* 80D159A8-80D159AC 0000F8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D159A8[4]; -#pragma pop - -/* 80D159AC-80D159B0 0000FC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D159AC[4]; -#pragma pop - -/* 80D159B0-80D159B4 000100 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D159B0[4]; -#pragma pop - /* 80D156B8-80D156B8 0000D0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/tools/utilities/greg_calc.py b/tools/utilities/greg_calc.py index 40e10049076..03b372d6be5 100644 --- a/tools/utilities/greg_calc.py +++ b/tools/utilities/greg_calc.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + import sys REG_F = {