npc_seira, npc_seira2, b_gnd, ni, npc_ne OK (#2697)

* npc_seira 44% done

* npc_seira 73% done

* npc_seira matching

* npc_seira2 OK

* b_gnd OK

* d_a_ni OK

* npc_ne OK

* daAlink_c::setSyncHorse OK
* Thanks robojumper!

* Update daNpc_Seira_c::getType
This commit is contained in:
YunataSavior 2025-09-25 17:47:58 -07:00 committed by GitHub
parent 80626def07
commit 083cea4770
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 2830 additions and 3835 deletions

View File

@ -6,22 +6,22 @@ __destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:glob
__ct__13daB_GND_HIO_cFv = .text:0x000000EC; // type:function size:0x48 scope:global
anm_init__FP11b_gnd_classifUcf = .text:0x00000134; // type:function size:0xB4 scope:global
h_anm_init__FP11b_gnd_classifUcf = .text:0x000001E8; // type:function size:0xB8 scope:global
nodeCallBack__FP8J3DJointi = .text:0x000002A0; // type:function size:0x1CC scope:global
h_nodeCallBack__FP8J3DJointi = .text:0x0000046C; // type:function size:0x16C scope:global
daB_GND_Draw__FP11b_gnd_class = .text:0x000005D8; // type:function size:0x46C scope:global
nodeCallBack__FP8J3DJointi = .text:0x000002A0; // type:function size:0x1CC scope:local
h_nodeCallBack__FP8J3DJointi = .text:0x0000046C; // type:function size:0x16C scope:local
daB_GND_Draw__FP11b_gnd_class = .text:0x000005D8; // type:function size:0x46C scope:local
__dt__4cXyzFv = .text:0x00000A44; // type:function size:0x3C scope:global
shot_s_sub__FPvPv = .text:0x00000A80; // type:function size:0x194 scope:global
shot_s_sub__FPvPv = .text:0x00000A80; // type:function size:0x194 scope:local
gake_check__FP11b_gnd_class = .text:0x00000C14; // type:function size:0x674 scope:global
saku_jump_check__FP11b_gnd_class = .text:0x00001288; // type:function size:0x30C scope:global
__dt__8cM3dGPlaFv = .text:0x00001594; // type:function size:0x48 scope:global
b_gnd_h_wait__FP11b_gnd_class = .text:0x000015DC; // type:function size:0x12C scope:global
b_gnd_h_wait2__FP11b_gnd_class = .text:0x00001708; // type:function size:0x228 scope:global
b_gnd_h_run_a__FP11b_gnd_class = .text:0x00001930; // type:function size:0xD14 scope:global
b_gnd_h_run_a__FP11b_gnd_class = .text:0x00001930; // type:function size:0xD14 scope:local
b_gnd_h_run_p__FP11b_gnd_class = .text:0x00002644; // type:function size:0x550 scope:global
b_gnd_h_jump__FP11b_gnd_class = .text:0x00002B94; // type:function size:0x1D0 scope:global
b_gnd_h_end__FP11b_gnd_class = .text:0x00002D64; // type:function size:0x34C scope:global
b_gnd_g_wait__FP11b_gnd_class = .text:0x000030B0; // type:function size:0x478 scope:global
b_gnd_g_attack__FP11b_gnd_class = .text:0x00003528; // type:function size:0x904 scope:global
b_gnd_g_wait__FP11b_gnd_class = .text:0x000030B0; // type:function size:0x478 scope:local
b_gnd_g_attack__FP11b_gnd_class = .text:0x00003528; // type:function size:0x904 scope:local
b_gnd_g_defence__FP11b_gnd_class = .text:0x00003E2C; // type:function size:0x494 scope:global
b_gnd_g_jump__FP11b_gnd_class = .text:0x000042C0; // type:function size:0x368 scope:global
b_gnd_g_side__FP11b_gnd_class = .text:0x00004628; // type:function size:0x298 scope:global
@ -32,26 +32,26 @@ b_gnd_g_end__FP11b_gnd_class = .text:0x00004F40; // type:function size:0x58 scop
damage_check__FP11b_gnd_class = .text:0x00004F98; // type:function size:0x2EC scope:global
eff_set_h__FP11b_gnd_class = .text:0x00005284; // type:function size:0x718 scope:global
eff_set__FP11b_gnd_class = .text:0x0000599C; // type:function size:0xE8 scope:global
s_fkdel_sub__FPvPv = .text:0x00005A84; // type:function size:0x4C scope:global
s_objgbdel_sub__FPvPv = .text:0x00005AD0; // type:function size:0x4C scope:global
s_fkdel_sub__FPvPv = .text:0x00005A84; // type:function size:0x4C scope:local
s_objgbdel_sub__FPvPv = .text:0x00005AD0; // type:function size:0x4C scope:local
h_damage_check__FP11b_gnd_class = .text:0x00005B1C; // type:function size:0x2DC scope:global
action__FP11b_gnd_class = .text:0x00005DF8; // type:function size:0x898 scope:global
action__FP11b_gnd_class = .text:0x00005DF8; // type:function size:0x898 scope:local
ball_bg_check__FP11b_gnd_classi = .text:0x00006690; // type:function size:0x100 scope:global
himo_control1__FP11b_gnd_classP4cXyziSc = .text:0x00006790; // type:function size:0x324 scope:global
himo_control2__FP11b_gnd_classP4cXyziSc = .text:0x00006AB4; // type:function size:0x20C scope:global
cam_3d_morf__FP11b_gnd_classf = .text:0x00006CC0; // type:function size:0xE4 scope:global
cam_spd_set__FP11b_gnd_class = .text:0x00006DA4; // type:function size:0xA0 scope:global
demo_camera__FP11b_gnd_class = .text:0x00006E44; // type:function size:0x233C scope:global
demo_camera__FP11b_gnd_class = .text:0x00006E44; // type:function size:0x233C scope:local
anm_se_set__FP11b_gnd_class = .text:0x00009180; // type:function size:0x1178 scope:global
daB_GND_Execute__FP11b_gnd_class = .text:0x0000A2F8; // type:function size:0x1DA0 scope:global
daB_GND_Execute__FP11b_gnd_class = .text:0x0000A2F8; // type:function size:0x1DA0 scope:local
multVecZero__14mDoMtx_stack_cFP3Vec = .text:0x0000C098; // type:function size:0x24 scope:global
setDownPos__13fopEn_enemy_cFPC4cXyz = .text:0x0000C0BC; // type:function size:0x1C scope:global
__as__5csXyzFRC5csXyz = .text:0x0000C0D8; // type:function size:0x1C scope:global
daB_GND_IsDelete__FP11b_gnd_class = .text:0x0000C0F4; // type:function size:0x8 scope:global
daB_GND_Delete__FP11b_gnd_class = .text:0x0000C0FC; // type:function size:0xB8 scope:global
useHeapInit__FP10fopAc_ac_c = .text:0x0000C1B4; // type:function size:0x954 scope:global
daB_GND_IsDelete__FP11b_gnd_class = .text:0x0000C0F4; // type:function size:0x8 scope:local
daB_GND_Delete__FP11b_gnd_class = .text:0x0000C0FC; // type:function size:0xB8 scope:local
useHeapInit__FP10fopAc_ac_c = .text:0x0000C1B4; // type:function size:0x954 scope:local
__dt__12J3DFrameCtrlFv = .text:0x0000CB08; // type:function size:0x48 scope:global
daB_GND_Create__FP10fopAc_ac_c = .text:0x0000CB50; // type:function size:0x4B0 scope:global
daB_GND_Create__FP10fopAc_ac_c = .text:0x0000CB50; // type:function size:0x4B0 scope:local
__ct__11b_gnd_classFv = .text:0x0000D000; // type:function size:0x3C4 scope:global
__ct__19mDoExt_3DlineMat1_cFv = .text:0x0000D3C4; // type:function size:0x1C scope:global
__dt__8g_himo_sFv = .text:0x0000D3E0; // type:function size:0x60 scope:global
@ -305,7 +305,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global
blur_model$8822 = .rodata:0x00000340; // type:object size:0x8 scope:local
@stringBase0 = .rodata:0x00000348; // type:object size:0x21 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_145_data_10 = .data:0x00000010; // type:object size:0x10
l_color$3983 = .data:0x00000020; // type:object size:0x4 scope:local
@ -331,7 +331,7 @@ cc_sph_src$9128 = .data:0x00000398; // type:object size:0x40 scope:local
at_sph_src$9129 = .data:0x000003D8; // type:object size:0x40 scope:local
def_sph_src$9130 = .data:0x00000418; // type:object size:0x40 scope:local
co_cyl_src$9131 = .data:0x00000458; // type:object size:0x44 scope:local
l_daB_GND_Method = .data:0x0000049C; // type:object size:0x20 scope:global
l_daB_GND_Method = .data:0x0000049C; // type:object size:0x20 scope:local
g_profile_B_GND = .data:0x000004BC; // type:object size:0x30 scope:global
__vt__12dBgS_AcchCir = .data:0x000004EC; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x000004F8; // type:object size:0xC scope:global
@ -362,13 +362,13 @@ __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_145_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
lbl_145_bss_45 = .bss:0x00000045; // type:object size:0x1 scope:local data:byte
@3810 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x1C scope:global data:byte
l_HIO = .bss:0x00000054; // type:object size:0x1C scope:local data:byte
@4187 = .bss:0x00000070; // type:object size:0xC scope:local
k_pos$4186 = .bss:0x00000080; // type:object size:0xC scope:local
@4509 = .bss:0x0000008C; // type:object size:0xC scope:local
b_path = .bss:0x00000098; // type:object size:0x60 scope:global align:4 data:float
b_path = .bss:0x00000098; // type:object size:0x60 scope:local align:4 data:float
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000FC; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000100; // type:object size:0x4 scope:global
sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x00000104; // type:object size:0x4 scope:global

View File

@ -6,12 +6,12 @@ __destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:glob
__ct__10daNi_HIO_cFv = .text:0x000000EC; // type:function size:0x7C scope:global
anm_init__FP8ni_classifUcf = .text:0x00000168; // type:function size:0xC0 scope:global
hane_set__FP8ni_classff = .text:0x00000228; // type:function size:0xF8 scope:global
nodeCallBack__FP8J3DJointi = .text:0x00000320; // type:function size:0x2B0 scope:global
daNi_Draw__FP8ni_class = .text:0x000005D0; // type:function size:0xF4 scope:global
nodeCallBack__FP8J3DJointi = .text:0x00000320; // type:function size:0x2B0 scope:local
daNi_Draw__FP8ni_class = .text:0x000005D0; // type:function size:0xF4 scope:local
__dt__4cXyzFv = .text:0x000006C4; // type:function size:0x3C scope:global
s_play_sub__FPvPv = .text:0x00000700; // type:function size:0x58 scope:global
s_play_sub__FPvPv = .text:0x00000700; // type:function size:0x58 scope:local
damage_check__FP8ni_class = .text:0x00000758; // type:function size:0x218 scope:global
s_t_sub__FPvPv = .text:0x00000970; // type:function size:0x70 scope:global
s_t_sub__FPvPv = .text:0x00000970; // type:function size:0x70 scope:local
search_test__FP8ni_class = .text:0x000009E0; // type:function size:0x168 scope:global
ni_carry_check__FP8ni_class = .text:0x00000B48; // type:function size:0x3C scope:global
move_gake_check__FP8ni_classf = .text:0x00000B84; // type:function size:0xF0 scope:global
@ -23,21 +23,21 @@ ni_fly__FP8ni_class = .text:0x00001C7C; // type:function size:0x130 scope:global
ni_drop__FP8ni_class = .text:0x00001DAC; // type:function size:0x120 scope:global
ni_return__FP8ni_class = .text:0x00001ECC; // type:function size:0x18C scope:global
ni_damage__FP8ni_class = .text:0x00002058; // type:function size:0x178 scope:global
s_b_sub__FPvPv = .text:0x000021D0; // type:function size:0x64 scope:global
s_b_sub__FPvPv = .text:0x000021D0; // type:function size:0x64 scope:local
ni_windspin__FP8ni_class = .text:0x00002234; // type:function size:0x15C scope:global
ni_demo0__FP8ni_class = .text:0x00002390; // type:function size:0x3E0 scope:global
ni_message__FP8ni_class = .text:0x00002770; // type:function size:0xC8 scope:global
playwallcheck__FP8ni_class = .text:0x00002838; // type:function size:0x184 scope:global
ni_play__FP8ni_class = .text:0x000029BC; // type:function size:0x894 scope:global
ni_play__FP8ni_class = .text:0x000029BC; // type:function size:0x894 scope:local
play_camera__FP8ni_class = .text:0x00003250; // type:function size:0x848 scope:global
action__FP8ni_class = .text:0x00003A98; // type:function size:0xCDC scope:global
action__FP8ni_class = .text:0x00003A98; // type:function size:0xCDC scope:local
message__FP8ni_class = .text:0x00004774; // type:function size:0x124 scope:global
daNi_Execute__FP8ni_class = .text:0x00004898; // type:function size:0x498 scope:global
daNi_IsDelete__FP8ni_class = .text:0x00004D30; // type:function size:0x8 scope:global
daNi_Delete__FP8ni_class = .text:0x00004D38; // type:function size:0x68 scope:global
useHeapInit__FP10fopAc_ac_c = .text:0x00004DA0; // type:function size:0x208 scope:global
daNi_Execute__FP8ni_class = .text:0x00004898; // type:function size:0x498 scope:local
daNi_IsDelete__FP8ni_class = .text:0x00004D30; // type:function size:0x8 scope:local
daNi_Delete__FP8ni_class = .text:0x00004D38; // type:function size:0x68 scope:local
useHeapInit__FP10fopAc_ac_c = .text:0x00004DA0; // type:function size:0x208 scope:local
__dt__12J3DFrameCtrlFv = .text:0x00004FA8; // type:function size:0x48 scope:global
daNi_Create__FP10fopAc_ac_c = .text:0x00004FF0; // type:function size:0x3D4 scope:global
daNi_Create__FP10fopAc_ac_c = .text:0x00004FF0; // type:function size:0x3D4 scope:local
__dt__8cM3dGSphFv = .text:0x000053C4; // type:function size:0x48 scope:global
__dt__8cM3dGAabFv = .text:0x0000540C; // type:function size:0x48 scope:global
__dt__10dCcD_GSttsFv = .text:0x00005454; // type:function size:0x5C scope:global
@ -136,7 +136,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@6035 = .rodata:0x00000158; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x0000015C; // type:object size:0x13 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_282_data_10 = .data:0x00000010; // type:object size:0x10
hane_id$3986 = .data:0x00000020; // type:object size:0x8 scope:local
@ -147,7 +147,7 @@ w_eff_id$5418 = .data:0x000000C4; // type:object size:0x8 scope:local
@5666 = .data:0x000000CC; // type:object size:0x40 scope:local
key_eno$5736 = .data:0x0000010C; // type:object size:0x4 scope:local
cc_sph_src$5915 = .data:0x00000110; // type:object size:0x40 scope:local
l_daNi_Method = .data:0x00000150; // type:object size:0x20 scope:global
l_daNi_Method = .data:0x00000150; // type:object size:0x20 scope:local
g_profile_NI = .data:0x00000170; // type:object size:0x30 scope:global
__vt__12dBgS_AcchCir = .data:0x000001A0; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x000001AC; // type:object size:0xC scope:global
@ -175,11 +175,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_282_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
lbl_282_bss_45 = .bss:0x00000045; // type:object size:0x1 scope:local data:byte
@3953 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x3C scope:global data:byte
target_info = .bss:0x00000090; // type:object size:0x28 scope:global
target_info_count = .bss:0x000000B8; // type:object size:0x4 scope:global data:4byte
l_HIO = .bss:0x00000054; // type:object size:0x3C scope:local data:byte
target_info = .bss:0x00000090; // type:object size:0x28 scope:local
target_info_count = .bss:0x000000B8; // type:object size:0x4 scope:local data:4byte
@5415 = .bss:0x000000BC; // type:object size:0xC scope:local
sc$5414 = .bss:0x000000CC; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000D8; // type:object size:0x4 scope:global

View File

@ -5,8 +5,8 @@ __register_global_object = .text:0x00000078; // type:function size:0x1C scope:gl
__destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global
__ct__14daNpc_Ne_HIO_cFv = .text:0x000000EC; // type:function size:0x48 scope:global
anm_init__FP12npc_ne_classifUcf = .text:0x00000134; // type:function size:0xAC scope:global
nodeCallBack__FP8J3DJointi = .text:0x000001E0; // type:function size:0x204 scope:global
daNpc_Ne_Draw__FP12npc_ne_class = .text:0x000003E4; // type:function size:0x19C scope:global
nodeCallBack__FP8J3DJointi = .text:0x000001E0; // type:function size:0x204 scope:local
daNpc_Ne_Draw__FP12npc_ne_class = .text:0x000003E4; // type:function size:0x19C scope:local
__dt__4cXyzFv = .text:0x00000580; // type:function size:0x3C scope:global
other_bg_check__FP10fopAc_ac_cP10fopAc_ac_c = .text:0x000005BC; // type:function size:0xFC scope:global
ne_carry_check__FP12npc_ne_class = .text:0x000006B8; // type:function size:0x3C scope:global
@ -14,24 +14,24 @@ way_bg_check__FP12npc_ne_classs = .text:0x000006F4; // type:function size:0x324
__dt__8cM3dGPlaFv = .text:0x00000A18; // type:function size:0x48 scope:global
water_check__FP12npc_ne_classf = .text:0x00000A60; // type:function size:0x180 scope:global
climb_angle_get__FP12npc_ne_class = .text:0x00000BE0; // type:function size:0x200 scope:global
s_bl_sub__FPvPv = .text:0x00000DE0; // type:function size:0x78 scope:global
s_ss_sub__FPvPv = .text:0x00000E58; // type:function size:0x78 scope:global
s_bl_sub__FPvPv = .text:0x00000DE0; // type:function size:0x78 scope:local
s_ss_sub__FPvPv = .text:0x00000E58; // type:function size:0x78 scope:local
search_bird__FP12npc_ne_class = .text:0x00000ED0; // type:function size:0x278 scope:global
way_check__FP12npc_ne_classs = .text:0x00001148; // type:function size:0x1CC scope:global
npc_ne_wait__FP12npc_ne_class = .text:0x00001314; // type:function size:0x340 scope:global
npc_ne_away__FP12npc_ne_class = .text:0x00001654; // type:function size:0x6C0 scope:global
ground_search__FP12npc_ne_class = .text:0x00001D14; // type:function size:0x1F4 scope:global
s_fish_sub__FPvPv = .text:0x00001F08; // type:function size:0x88 scope:global
npc_ne_tame__FP12npc_ne_class = .text:0x00001F90; // type:function size:0x9C0 scope:global
s_fish_sub__FPvPv = .text:0x00001F08; // type:function size:0x88 scope:local
npc_ne_tame__FP12npc_ne_class = .text:0x00001F90; // type:function size:0x9C0 scope:local
npc_ne_sanbasi__FP12npc_ne_class = .text:0x00002950; // type:function size:0xEC scope:global
npc_ne_bird__FP12npc_ne_class = .text:0x00002A3C; // type:function size:0x4E0 scope:global
npc_ne_ball__FP12npc_ne_class = .text:0x00002F1C; // type:function size:0x598 scope:global
npc_ne_ball__FP12npc_ne_class = .text:0x00002F1C; // type:function size:0x598 scope:local
npc_ne_pathwalk__FP12npc_ne_class = .text:0x000034B4; // type:function size:0x474 scope:global
npc_ne_jump__FP12npc_ne_class = .text:0x00003928; // type:function size:0x240 scope:global
npc_ne_s_jump__FP12npc_ne_class = .text:0x00003B68; // type:function size:0x1B0 scope:global
npc_ne_roof__FP12npc_ne_class = .text:0x00003D18; // type:function size:0x128 scope:global
home_path_search__FP12npc_ne_classi = .text:0x00003E40; // type:function size:0x244 scope:global
npc_ne_home__FP12npc_ne_class = .text:0x00004084; // type:function size:0x9A4 scope:global
npc_ne_home__FP12npc_ne_class = .text:0x00004084; // type:function size:0x9A4 scope:local
wall_angle_get__FP12npc_ne_class = .text:0x00004A28; // type:function size:0x1BC scope:global
search_ground_1__FP12npc_ne_class = .text:0x00004BE4; // type:function size:0x590 scope:global
__ct__4cXyzFv = .text:0x00005174; // type:function size:0x4 scope:global
@ -44,15 +44,15 @@ npc_ne_s_drop__FP12npc_ne_class = .text:0x00005F80; // type:function size:0x1F8
npc_ne_carry__FP12npc_ne_class = .text:0x00006178; // type:function size:0x3A4 scope:global
npc_ne_dish__FP12npc_ne_class = .text:0x0000651C; // type:function size:0xB4 scope:global
npc_ne_message__FP12npc_ne_class = .text:0x000065D0; // type:function size:0xC8 scope:global
action__FP12npc_ne_class = .text:0x00006698; // type:function size:0x1170 scope:global
action__FP12npc_ne_class = .text:0x00006698; // type:function size:0x1170 scope:local
demo_camera__FP12npc_ne_class = .text:0x00007808; // type:function size:0xA40 scope:global
message__FP12npc_ne_class = .text:0x00008248; // type:function size:0x1DC scope:global
daNpc_Ne_Execute__FP12npc_ne_class = .text:0x00008424; // type:function size:0x728 scope:global
daNpc_Ne_IsDelete__FP12npc_ne_class = .text:0x00008B4C; // type:function size:0x8 scope:global
daNpc_Ne_Delete__FP12npc_ne_class = .text:0x00008B54; // type:function size:0x64 scope:global
useHeapInit__FP10fopAc_ac_c = .text:0x00008BB8; // type:function size:0x3A8 scope:global
daNpc_Ne_Execute__FP12npc_ne_class = .text:0x00008424; // type:function size:0x728 scope:local
daNpc_Ne_IsDelete__FP12npc_ne_class = .text:0x00008B4C; // type:function size:0x8 scope:local
daNpc_Ne_Delete__FP12npc_ne_class = .text:0x00008B54; // type:function size:0x64 scope:local
useHeapInit__FP10fopAc_ac_c = .text:0x00008BB8; // type:function size:0x3A8 scope:local
__dt__12J3DFrameCtrlFv = .text:0x00008F60; // type:function size:0x48 scope:global
daNpc_Ne_Create__FP10fopAc_ac_c = .text:0x00008FA8; // type:function size:0x590 scope:global
daNpc_Ne_Create__FP10fopAc_ac_c = .text:0x00008FA8; // type:function size:0x590 scope:local
__ct__12npc_ne_classFv = .text:0x00009538; // type:function size:0x15C scope:global
__dt__8cM3dGSphFv = .text:0x00009694; // type:function size:0x48 scope:global
__dt__8cM3dGAabFv = .text:0x000096DC; // type:function size:0x48 scope:global
@ -170,7 +170,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@7659 = .rodata:0x000001AC; // type:object size:0x4 scope:local
@7660 = .rodata:0x000001B0; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x000001B4; // type:object size:0x1E scope:local data:string_table
home_path = .data:0x00000000; // type:object size:0x260 scope:global
home_path = .data:0x00000000; // type:object size:0x260 scope:local
@5010 = .data:0x00000260; // type:object size:0x30 scope:local
@5215 = .data:0x00000290; // type:object size:0x1C scope:local
@5659 = .data:0x000002AC; // type:object size:0x54 scope:local
@ -179,7 +179,7 @@ e_name$7147 = .data:0x00000354; // type:object size:0x4 scope:local
dish_bck$7371 = .data:0x00000358; // type:object size:0x8 scope:local
cc_sph_src$7518 = .data:0x00000360; // type:object size:0x40 scope:local
at_sph_src$7519 = .data:0x000003A0; // type:object size:0x40 scope:local
l_daNpc_Ne_Method = .data:0x000003E0; // type:object size:0x20 scope:global
l_daNpc_Ne_Method = .data:0x000003E0; // type:object size:0x20 scope:local
g_profile_NPC_NE = .data:0x00000400; // type:object size:0x30 scope:global
__vt__8cM3dGSph = .data:0x00000430; // type:object size:0xC scope:global
__vt__8cM3dGAab = .data:0x0000043C; // type:object size:0xC scope:global
@ -205,12 +205,12 @@ __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_340_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
lbl_340_bss_45 = .bss:0x00000045; // type:object size:0x1 scope:local data:byte
@3985 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x1C scope:global data:byte
target_info = .bss:0x00000070; // type:object size:0x14 scope:global
l_HIO = .bss:0x00000054; // type:object size:0x1C scope:local data:byte
target_info = .bss:0x00000070; // type:object size:0x14 scope:local
target_bgc = .bss:0x00000084; // type:object size:0x14 scope:global
target_info_count = .bss:0x00000098; // type:object size:0x4 scope:global data:4byte
target_info_count = .bss:0x00000098; // type:object size:0x4 scope:local data:4byte
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x0000009C; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000000A0; // type:object size:0x4 scope:global
sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x000000A4; // type:object size:0x4 scope:global

View File

@ -62,11 +62,11 @@ lookaround_wait__13daNpc_Seira_cFPv = .text:0x00003034; // type:function size:0x
smile__13daNpc_Seira_cFPv = .text:0x00003148; // type:function size:0x10C scope:global
talk__13daNpc_Seira_cFPv = .text:0x00003254; // type:function size:0x190 scope:global
shop__13daNpc_Seira_cFPv = .text:0x000033E4; // type:function size:0x224 scope:global
daNpc_Seira_Create__FPv = .text:0x00003608; // type:function size:0x20 scope:global
daNpc_Seira_Delete__FPv = .text:0x00003628; // type:function size:0x20 scope:global
daNpc_Seira_Execute__FPv = .text:0x00003648; // type:function size:0x20 scope:global
daNpc_Seira_Draw__FPv = .text:0x00003668; // type:function size:0x20 scope:global
daNpc_Seira_IsDelete__FPv = .text:0x00003688; // type:function size:0x8 scope:global
daNpc_Seira_Create__FPv = .text:0x00003608; // type:function size:0x20 scope:local
daNpc_Seira_Delete__FPv = .text:0x00003628; // type:function size:0x20 scope:local
daNpc_Seira_Execute__FPv = .text:0x00003648; // type:function size:0x20 scope:local
daNpc_Seira_Draw__FPv = .text:0x00003668; // type:function size:0x20 scope:local
daNpc_Seira_IsDelete__FPv = .text:0x00003688; // type:function size:0x8 scope:local
calc__11J3DTexNoAnmCFPUs = .text:0x00003690; // type:function size:0x30 scope:global
__dt__10cCcD_GSttsFv = .text:0x000036C0; // type:function size:0x48 scope:global
__dt__18daNpcT_ActorMngr_cFv = .text:0x00003708; // type:function size:0x48 scope:global
@ -149,15 +149,15 @@ m__19daNpc_Seira_Param_c = .rodata:0x00000000; // type:object size:0x8C scope:gl
@5212 = .rodata:0x00000108; // type:object size:0xC scope:local
@stringBase0 = .rodata:0x00000114; // type:object size:0x8A scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_356_data_10 = .data:0x00000010; // type:object size:0x10
l_bmdData = .data:0x00000020; // type:object size:0x10 scope:global data:4byte
l_bmdData = .data:0x00000020; // type:object size:0x10 scope:local data:4byte
l_evtList = .data:0x00000030; // type:object size:0x20 scope:global
l_resNameList = .data:0x00000050; // type:object size:0x14 scope:global
l_loadResPtrn0 = .data:0x00000064; // type:object size:0x4 scope:global
l_loadResPtrn1 = .data:0x00000068; // type:object size:0x3 scope:global
l_loadResPtrnList = .data:0x0000006C; // type:object size:0x1C scope:global
l_resNameList = .data:0x00000050; // type:object size:0x14 scope:local
l_loadResPtrn0 = .data:0x00000064; // type:object size:0x4 scope:local
l_loadResPtrn1 = .data:0x00000068; // type:object size:0x3 scope:local
l_loadResPtrnList = .data:0x0000006C; // type:object size:0x1C scope:local
l_faceMotionAnmData = .data:0x00000088; // type:object size:0x188 scope:global
l_motionAnmData = .data:0x00000210; // type:object size:0x2D8 scope:global
l_faceMotionSequenceData = .data:0x000004E8; // type:object size:0xE0 scope:global
@ -184,7 +184,7 @@ bottlAnmData$5085 = .data:0x000007F4; // type:object size:0xE0 scope:local
@5174 = .data:0x00000974; // type:object size:0xC scope:local
@5176 = .data:0x00000980; // type:object size:0xC scope:local
@5178 = .data:0x0000098C; // type:object size:0xC scope:local
daNpc_Seira_MethodTable = .data:0x00000998; // type:object size:0x20 scope:global
daNpc_Seira_MethodTable = .data:0x00000998; // type:object size:0x20 scope:local
g_profile_NPC_SEIRA = .data:0x000009B8; // type:object size:0x30 scope:global
__vt__11J3DTexNoAnm = .data:0x000009E8; // type:object size:0xC scope:global
__vt__12J3DFrameCtrl = .data:0x000009F4; // type:object size:0xC scope:global
@ -201,4 +201,4 @@ __vt__13daNpc_Seira_c = .data:0x00000A84; // type:object size:0xD0 scope:global
__vt__19daNpc_Seira_Param_c = .data:0x00000B54; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
@3872 = .bss:0x00000008; // type:object size:0xC scope:local
l_HIO = .bss:0x00000014; // type:object size:0x4 scope:global data:4byte
l_HIO = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte

View File

@ -54,11 +54,11 @@ lookaround__14daNpc_Seira2_cFPv = .text:0x000029E8; // type:function size:0x10C
smile__14daNpc_Seira2_cFPv = .text:0x00002AF4; // type:function size:0x10C scope:global
talk__14daNpc_Seira2_cFPv = .text:0x00002C00; // type:function size:0x170 scope:global
shop__14daNpc_Seira2_cFPv = .text:0x00002D70; // type:function size:0xD0 scope:global
daNpc_Seira2_Create__FPv = .text:0x00002E40; // type:function size:0x20 scope:global
daNpc_Seira2_Delete__FPv = .text:0x00002E60; // type:function size:0x20 scope:global
daNpc_Seira2_Execute__FPv = .text:0x00002E80; // type:function size:0x20 scope:global
daNpc_Seira2_Draw__FPv = .text:0x00002EA0; // type:function size:0x20 scope:global
daNpc_Seira2_IsDelete__FPv = .text:0x00002EC0; // type:function size:0x8 scope:global
daNpc_Seira2_Create__FPv = .text:0x00002E40; // type:function size:0x20 scope:local
daNpc_Seira2_Delete__FPv = .text:0x00002E60; // type:function size:0x20 scope:local
daNpc_Seira2_Execute__FPv = .text:0x00002E80; // type:function size:0x20 scope:local
daNpc_Seira2_Draw__FPv = .text:0x00002EA0; // type:function size:0x20 scope:local
daNpc_Seira2_IsDelete__FPv = .text:0x00002EC0; // type:function size:0x8 scope:local
calc__11J3DTexNoAnmCFPUs = .text:0x00002EC8; // type:function size:0x30 scope:global
__dt__10cCcD_GSttsFv = .text:0x00002EF8; // type:function size:0x48 scope:global
__dt__18daNpcT_ActorMngr_cFv = .text:0x00002F40; // type:function size:0x48 scope:global
@ -144,14 +144,14 @@ m__20daNpc_Seira2_Param_c = .rodata:0x00000000; // type:object size:0x8C scope:g
@5421 = .rodata:0x000000F8; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x000000FC; // type:object size:0x32 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_357_data_10 = .data:0x00000010; // type:object size:0x10
l_bmdData = .data:0x00000020; // type:object size:0x10 scope:global data:4byte
l_bmdData = .data:0x00000020; // type:object size:0x10 scope:local data:4byte
l_evtList = .data:0x00000030; // type:object size:0x10 scope:global
l_resNameList = .data:0x00000040; // type:object size:0x10 scope:global
l_loadResPtrn0 = .data:0x00000050; // type:object size:0x4 scope:global
l_loadResPtrnList = .data:0x00000054; // type:object size:0x1C scope:global
l_resNameList = .data:0x00000040; // type:object size:0x10 scope:local
l_loadResPtrn0 = .data:0x00000050; // type:object size:0x4 scope:local
l_loadResPtrnList = .data:0x00000054; // type:object size:0x1C scope:local
l_faceMotionAnmData = .data:0x00000070; // type:object size:0x188 scope:global
l_motionAnmData = .data:0x000001F8; // type:object size:0x2BC scope:global
l_faceMotionSequenceData = .data:0x000004B4; // type:object size:0xE0 scope:global
@ -173,7 +173,7 @@ bottlAnmData$5021 = .data:0x00000788; // type:object size:0xD8 scope:local
@5056 = .data:0x00000890; // type:object size:0xC scope:local
@5058 = .data:0x0000089C; // type:object size:0xC scope:local
@5060 = .data:0x000008A8; // type:object size:0xC scope:local
daNpc_Seira2_MethodTable = .data:0x000008B4; // type:object size:0x20 scope:global
daNpc_Seira2_MethodTable = .data:0x000008B4; // type:object size:0x20 scope:local
g_profile_NPC_SERA2 = .data:0x000008D4; // type:object size:0x30 scope:global
__vt__11J3DTexNoAnm = .data:0x00000904; // type:object size:0xC scope:global
__vt__12J3DFrameCtrl = .data:0x00000910; // type:object size:0xC scope:global
@ -190,4 +190,4 @@ __vt__14daNpc_Seira2_c = .data:0x000009A0; // type:object size:0xD0 scope:global
__vt__20daNpc_Seira2_Param_c = .data:0x00000A70; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
@3870 = .bss:0x00000008; // type:object size:0xC scope:local
l_HIO = .bss:0x00000014; // type:object size:0x4 scope:global data:4byte
l_HIO = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte

View File

@ -1672,7 +1672,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_b_ds"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_b_gg"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_b_gm"),
ActorRel(NonMatching, "d_a_b_gnd"),
ActorRel(MatchingFor("GZ2E01"), "d_a_b_gnd"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_b_go"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_b_gos"),
ActorRel(Equivalent, "d_a_b_mgn"), # extra mr/regalloc
@ -1808,8 +1808,8 @@ config.libs = [
ActorRel(NonMatching, "d_a_mg_fshop"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_mirror"),
ActorRel(NonMatching, "d_a_movie_player", extra_cflags=["-O3,p"]),
ActorRel(Equivalent, "d_a_myna"), # weird missing function issue
ActorRel(NonMatching, "d_a_ni"),
ActorRel(Equivalent, "d_a_myna"), # weird missing function issue
ActorRel(MatchingFor("GZ2E01"), "d_a_ni"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_aru"),
ActorRel(NonMatching, "d_a_npc_ash", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_ashB", extra_cflags=[DANPCF_C_HACK]),
@ -1867,7 +1867,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_moi"),
ActorRel(NonMatching, "d_a_npc_moir", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_myna2"),
ActorRel(NonMatching, "d_a_npc_ne"),
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_ne"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_p2"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_pachi_besu"),
ActorRel(NonMatching, "d_a_npc_pachi_maro"),
@ -1883,8 +1883,8 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_seib"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_seic"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_seid"),
ActorRel(NonMatching, "d_a_npc_seira"),
ActorRel(NonMatching, "d_a_npc_seira2"),
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_seira"),
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_seira2"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_seirei"),
ActorRel(Equivalent, "d_a_npc_shad", extra_cflags=[DANPCF_C_HACK]), # weak func order
ActorRel(NonMatching, "d_a_npc_shaman"),

View File

@ -192,19 +192,4 @@ public:
STATIC_ASSERT(sizeof(b_gnd_class) == 0x2790);
class daB_GND_HIO_c : public JORReflexible {
public:
/* 805F4A4C */ daB_GND_HIO_c();
/* 80602230 */ virtual ~daB_GND_HIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ s8 no;
/* 0x08 */ f32 model_size;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
};
#endif /* D_A_B_GND_H */

View File

@ -2,6 +2,7 @@
#define D_A_NPC_SEIRA_H
#include "d/actor/d_a_npc.h"
#include "d/d_shop_system.h"
/**
* @ingroup actors-npcs
@ -11,82 +12,114 @@
* @details
*
*/
class daNpc_Seira_c : public fopAc_ac_c {
class daNpc_Seira_c : public dShopSystem_c {
public:
typedef int (daNpc_Seira_c::*cutFunc)(int);
typedef int (daNpc_Seira_c::*actionFunc)(void*);
/* 80ACB7CC */ ~daNpc_Seira_c();
/* 80ACB918 */ void create();
/* 80ACBBD4 */ void CreateHeap();
/* 80ACC0FC */ void Delete();
/* 80ACC130 */ void Execute();
/* 80ACC21C */ void Draw();
/* 80ACC2B0 */ void createHeapCallBack(fopAc_ac_c*);
/* 80ACC2D0 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80ACC328 */ void getType();
/* 80ACC424 */ void getFlowNodeNo();
/* 80ACC440 */ void checkBottle();
/* 80ACC4A8 */ void getNpcType();
/* 80ACC4C8 */ bool isDelete();
/* 80ACB918 */ int create();
/* 80ACBBD4 */ int CreateHeap();
/* 80ACC0FC */ int Delete();
/* 80ACC130 */ int Execute();
/* 80ACC21C */ int Draw();
/* 80ACC2B0 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80ACC2D0 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80ACC328 */ u8 getType();
/* 80ACC424 */ int getFlowNodeNo();
/* 80ACC440 */ u8 checkBottle();
/* 80ACC4A8 */ u8 getNpcType();
/* 80ACC4C8 */ int isDelete();
/* 80ACC4D0 */ void reset();
/* 80ACC618 */ void afterJntAnm(int);
/* 80ACC69C */ void setParam();
/* 80ACC818 */ void checkChangeEvt();
/* 80ACC818 */ BOOL checkChangeEvt();
/* 80ACC8C0 */ void setAfterTalkMotion();
/* 80ACC980 */ void srchActors();
/* 80ACCA48 */ void evtTalk();
/* 80ACCBEC */ void evtCutProc();
/* 80ACCA48 */ BOOL evtTalk();
/* 80ACCBEC */ BOOL evtCutProc();
/* 80ACCCBC */ void action();
/* 80ACCE58 */ void beforeMove();
/* 80ACCED0 */ void setAttnPos();
/* 80ACD1D0 */ void setCollision();
/* 80ACD378 */ bool drawDbgInfo();
/* 80ACD378 */ BOOL drawDbgInfo();
/* 80ACD380 */ void drawOtherMdl();
/* 80ACD458 */ void setBottleAnm(int, int, f32, bool);
/* 80ACD538 */ void afterSetMotionAnm(int, int, f32, int);
/* 80ACD458 */ bool setBottleAnm(int, int, f32, bool);
/* 80ACD538 */ bool afterSetMotionAnm(int, int, f32, int);
/* 80ACD570 */ void changeAnm(int*, int*);
/* 80ACD600 */ void changeBck(int*, int*);
/* 80ACD6AC */ void changeBtp(int*, int*);
/* 80ACD744 */ void changeBtk(int*, int*);
/* 80ACD770 */ void selectAction();
/* 80ACD900 */ void chkAction(int (daNpc_Seira_c::*)(void*));
/* 80ACD92C */ void setAction(int (daNpc_Seira_c::*)(void*));
/* 80ACD9D4 */ void cutConversationAboutSaru(int);
/* 80ACDC6C */ void checkStageIsSeirasShop();
/* 80ACDCE4 */ void getShopItemType();
/* 80ACDD24 */ void wait(void*);
/* 80ACDE74 */ void sit(void*);
/* 80ACE098 */ void happy(void*);
/* 80ACE220 */ void worry(void*);
/* 80ACE4FC */ void sad(void*);
/* 80ACE608 */ void lookaround(void*);
/* 80ACE714 */ void lookaround_wait(void*);
/* 80ACE828 */ void smile(void*);
/* 80ACE934 */ void talk(void*);
/* 80ACEAC4 */ void shop(void*);
/* 80ACFB48 */ daNpc_Seira_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_evtData_c const*, char**);
/* 80ACFC14 */ u16 getEyeballMaterialNo();
/* 80ACFC1C */ s32 getHeadJointNo();
/* 80ACFC24 */ s32 getNeckJointNo();
/* 80ACFC2C */ bool getBackboneJointNo();
/* 80ACFC34 */ void checkChangeJoint(int);
/* 80ACFC44 */ void checkRemoveJoint(int);
/* 80ACD770 */ int selectAction();
/* 80ACD900 */ int chkAction(actionFunc);
/* 80ACD92C */ int setAction(actionFunc);
/* 80ACD9D4 */ int cutConversationAboutSaru(int);
/* 80ACDC6C */ BOOL checkStageIsSeirasShop();
/* 80ACDCE4 */ int getShopItemType();
/* 80ACDD24 */ int wait(void*);
/* 80ACDE74 */ int sit(void*);
/* 80ACE098 */ int happy(void*);
/* 80ACE220 */ int worry(void*);
/* 80ACE4FC */ int sad(void*);
/* 80ACE608 */ int lookaround(void*);
/* 80ACE714 */ int lookaround_wait(void*);
/* 80ACE828 */ int smile(void*);
/* 80ACE934 */ int talk(void*);
/* 80ACEAC4 */ int shop(void*);
/* 80ACFB48 */ daNpc_Seira_c(
daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
daNpcT_motionAnmData_c const* i_motionAnmData,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
// "|%06d:%x|daNpc_Seira_c -> Construct\n"
OS_REPORT("|%06d:%x|daNpc_Seira_c -> コンストラクト\n", g_Counter.mCounter0, this);
}
/* 80ACFC14 */ u16 getEyeballMaterialNo() { return 2; }
/* 80ACFC1C */ s32 getHeadJointNo() { return 4; }
/* 80ACFC24 */ s32 getNeckJointNo() { return 3; }
/* 80ACFC2C */ s32 getBackboneJointNo() { return true; }
/* 80ACFC34 */ BOOL checkChangeJoint(int val) { return val == 4; }
/* 80ACFC44 */ BOOL checkRemoveJoint(int val) { return val == 8; }
static void* mCutNameList[2];
static u8 mCutList[24];
static char* mCutNameList[2];
static cutFunc mCutList[2];
private:
/* 0x568 */ u8 field_0x568[0x1108 - 0x568];
/* 0x0F7C */ mDoExt_McaMorfSO* mpSeiraMorf;
/* 0x0F80 */ int field_0x0F80;
/* 0x0F80 */ dCcD_Cyl mCyl1;
/* 0x10C0 */ u8 mChkBottle;
/* 0x10C1 */ u8 mType;
/* 0x10C4 */ daNpcT_ActorMngr_c mActorMngr[3];
/* 0x10DC */ actionFunc mNextAction;
/* 0x10E8 */ actionFunc mActFunc_0;
/* 0x10F4 */ int mEventTimer;
/* 0x10F8 */ int mShopProcess;
/* 0x10FC */ u8 field_0x10fc;
/* 0x10FD */ u8 field_0x10fd;
/* 0x10FE */ u8 mNpcType;
/* 0x10FF */ u8 field_0x10FF;
/* 0x1100 */ u8 mEvtBit;
/* 0x1101 */ u8 field_0x1101[0x1104 - 0x1101];
/* 0x1104 */ u8 field_0x1104;
};
STATIC_ASSERT(sizeof(daNpc_Seira_c) == 0x1108);
struct daNpc_Seira_HIOParam {
/* 0x00 */ daNpcT_HIOParam common;
};
class daNpc_Seira_Param_c {
public:
/* 80ACFC54 */ ~daNpc_Seira_Param_c();
/* 80ACFC54 */ virtual ~daNpc_Seira_Param_c() {}
static u8 const m[140];
static const daNpc_Seira_HIOParam m;
};

View File

@ -2,6 +2,7 @@
#define D_A_NPC_SEIRA2_H
#include "d/actor/d_a_npc.h"
#include "d/d_shop_system.h"
/**
* @ingroup actors-npcs
@ -11,74 +12,104 @@
* @details
*
*/
class daNpc_Seira2_c : public fopAc_ac_c {
class daNpc_Seira2_c : public dShopSystem_c {
public:
typedef int (daNpc_Seira2_c::*cutFunc)(int);
typedef int (daNpc_Seira2_c::*actionFunc)(void*);
/* 80AD0C0C */ ~daNpc_Seira2_c();
/* 80AD0D58 */ void create();
/* 80AD0FF8 */ void CreateHeap();
/* 80AD1508 */ void Delete();
/* 80AD153C */ void Execute();
/* 80AD1610 */ void Draw();
/* 80AD16A4 */ void createHeapCallBack(fopAc_ac_c*);
/* 80AD16C4 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80AD171C */ void getType();
/* 80AD179C */ void getFlowNodeNo();
/* 80AD17B8 */ void getMaxNumItem();
/* 80AD17C4 */ void checkBottle();
/* 80AD182C */ bool isDelete();
/* 80AD0D58 */ int create();
/* 80AD0FF8 */ int CreateHeap();
/* 80AD1508 */ int Delete();
/* 80AD153C */ int Execute();
/* 80AD1610 */ int Draw();
/* 80AD16A4 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80AD16C4 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80AD171C */ u8 getType();
/* 80AD179C */ int getFlowNodeNo();
/* 80AD17B8 */ u8 getMaxNumItem();
/* 80AD17C4 */ u8 checkBottle();
/* 80AD182C */ int isDelete();
/* 80AD1834 */ void reset();
/* 80AD1968 */ void afterJntAnm(int);
/* 80AD19EC */ void setParam();
/* 80AD1B38 */ void setAfterTalkMotion();
/* 80AD1BF8 */ void srchActors();
/* 80AD1C60 */ void evtTalk();
/* 80AD1E04 */ void evtCutProc();
/* 80AD1C60 */ BOOL evtTalk();
/* 80AD1E04 */ BOOL evtCutProc();
/* 80AD1ED4 */ void action();
/* 80AD2030 */ void beforeMove();
/* 80AD20A8 */ void setAttnPos();
/* 80AD23A8 */ void setCollision();
/* 80AD2550 */ bool drawDbgInfo();
/* 80AD2550 */ BOOL drawDbgInfo();
/* 80AD2558 */ void drawOtherMdl();
/* 80AD2630 */ void setBottleAnm(int, int, f32, bool);
/* 80AD2710 */ void afterSetMotionAnm(int, int, f32, int);
/* 80AD2748 */ void selectAction();
/* 80AD2870 */ void chkAction(int (daNpc_Seira2_c::*)(void*));
/* 80AD289C */ void setAction(int (daNpc_Seira2_c::*)(void*));
/* 80AD2944 */ void checkStageIsSeira2sShop();
/* 80AD29BC */ void wait(void*);
/* 80AD2B68 */ void sit(void*);
/* 80AD2D8C */ void happy(void*);
/* 80AD2F14 */ void worry(void*);
/* 80AD31F0 */ void sad(void*);
/* 80AD3508 */ void lookaround(void*);
/* 80AD3614 */ void smile(void*);
/* 80AD3720 */ void talk(void*);
/* 80AD3890 */ void shop(void*);
/* 80AD47B8 */ daNpc_Seira2_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_evtData_c const*, char**);
/* 80AD4884 */ u16 getEyeballMaterialNo();
/* 80AD488C */ s32 getHeadJointNo();
/* 80AD4894 */ s32 getNeckJointNo();
/* 80AD489C */ bool getBackboneJointNo();
/* 80AD48A4 */ void checkChangeJoint(int);
/* 80AD48B4 */ void checkRemoveJoint(int);
/* 80AD2630 */ bool setBottleAnm(int, int, f32, bool);
/* 80AD2710 */ bool afterSetMotionAnm(int, int, f32, int);
/* 80AD2748 */ int selectAction();
/* 80AD2870 */ int chkAction(actionFunc);
/* 80AD289C */ int setAction(actionFunc);
/* 80AD2944 */ BOOL checkStageIsSeira2sShop();
/* 80AD29BC */ int wait(void*);
/* 80AD2B68 */ int sit(void*);
/* 80AD2D8C */ int happy(void*);
/* 80AD2F14 */ int worry(void*);
/* 80AD31F0 */ int sad(void*);
/* 80AD3508 */ int lookaround(void*);
/* 80AD3614 */ int smile(void*);
/* 80AD3720 */ int talk(void*);
/* 80AD3890 */ int shop(void*);
/* 80AD47B8 */ daNpc_Seira2_c(
daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
daNpcT_motionAnmData_c const* i_motionAnmData,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
// "|%06d:%x|daNpc_Seira2_c -> Construct\n"
OS_REPORT("|%06d:%x|daNpc_Seira2_c -> コンストラクト\n", g_Counter.mCounter0, this);
}
/* 80AD4884 */ u16 getEyeballMaterialNo() { return 2; }
/* 80AD488C */ s32 getHeadJointNo() { return 4; }
/* 80AD4894 */ s32 getNeckJointNo() { return 3; }
/* 80AD489C */ s32 getBackboneJointNo() { return true; }
/* 80AD48A4 */ BOOL checkChangeJoint(int val) { return val == 4; }
/* 80AD48B4 */ BOOL checkRemoveJoint(int val) { return val == 8; }
static void* mCutNameList;
static u8 mCutList[12];
static char* mCutNameList[1];
static cutFunc mCutList[1];
private:
/* 0x568 */ u8 field_0x568[0x10f4 - 0x568];
/* 0x0F7C */ mDoExt_McaMorfSO* mpSeiraMorf;
/* 0x0F80 */ int field_0x0F80;
/* 0x0F80 */ dCcD_Cyl mCyl1;
/* 0x10C0 */ u8 mChkBottle;
/* 0x10C1 */ u8 mType;
/* 0x10C4 */ daNpcT_ActorMngr_c mActorMngr[1];
/* 0x10CC */ actionFunc mNextAction;
/* 0x10D8 */ actionFunc mActFunc_0;
/* 0x10D4 */ int mEventTimer;
/* 0x10E8 */ int mShopProcess;
/* 0x10EC */ u8 field_0x10EC;
/* 0x10ED */ u8 field_0x10ED;
/* 0x10EE */ u8 mEvtBit;
/* 0x10EF */ u8 field_0x10EF[0x10F0 - 0x10EF];
/* 0x10F0 */ u8 field_0x10F0;
};
STATIC_ASSERT(sizeof(daNpc_Seira2_c) == 0x10f4);
STATIC_ASSERT(sizeof(daNpc_Seira2_c) == 0x10F4);
struct daNpc_Seira2_HIOParam {
/* 0x00 */ daNpcT_HIOParam common;
};
class daNpc_Seira2_Param_c {
public:
/* 80AD48C4 */ ~daNpc_Seira2_Param_c();
/* 80AD48C4 */ virtual ~daNpc_Seira2_Param_c() {}
static u8 const m[140];
static const daNpc_Seira2_HIOParam m;
};

View File

@ -687,7 +687,6 @@ BOOL daAlink_c::checkHorseServiceWaitAnime() {
}
/* 800EDEEC-800EE64C 0E882C 0760+00 1/1 0/0 0/0 .text setSyncHorse__9daAlink_cFi */
// NONMATCHING - missing stack space at 0x10
int daAlink_c::setSyncHorse(int param_0) {
daHorse_c* horse_p = dComIfGp_getHorseActor();
daPy_frameCtrl_c* sp24 = &mUnderFrameCtrl[0];
@ -699,7 +698,7 @@ int daAlink_c::setSyncHorse(int param_0) {
return 0;
}
daAlink_ANM sp8[2];
daAlink_ANM sp8[3];
getBaseHorseAnime(sp8);
if (fabsf(horse_p->speedF) < 0.001f) {

View File

@ -17,6 +17,21 @@
#include "Z2AudioLib/Z2Instances.h"
class daB_GND_HIO_c : public JORReflexible {
public:
/* 805F4A4C */ daB_GND_HIO_c();
/* 80602230 */ virtual ~daB_GND_HIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ s8 no;
/* 0x08 */ f32 model_size;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
};
enum B_GND_RES_FILE_ID { // IDs and indexes are synced
/* BCK */
B_GND_BCK_AL_EGND_TODOME=0x8,
@ -658,12 +673,12 @@ static void b_gnd_h_wait2(b_gnd_class* i_this) {
static cXyz b_path[8];
/* 805F6290-805F6FA4 001930 0D14+00 2/1 0/0 0/0 .text b_gnd_h_run_a__FP11b_gnd_class */
// NONMATCHING - regswap, equivalent
static void b_gnd_h_run_a(b_gnd_class* i_this) {
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
fopAc_ac_c* player = dComIfGp_getPlayer(0);
cXyz sp8C, sp80;
f32 var_f30;
f32 player_distxz = i_this->mPlayerDistXZ;
f32 speed_target = 0.0f;
f32 speed_step = 1.0f;
@ -833,7 +848,7 @@ static void b_gnd_h_run_a(b_gnd_class* i_this) {
if (i_this->mMoveMode < 20) {
sp8C = b_path[i_this->field_0xc60] - a_this->current.pos;
f32 var_f30 = JMAFastSqrt(sp8C.x * sp8C.x + sp8C.z * sp8C.z);
var_f30 = JMAFastSqrt(sp8C.x * sp8C.x + sp8C.z * sp8C.z);
if (var_f30 < 800.0f) {
sp8C = b_path[(i_this->field_0xc60 + 1) & 7] - a_this->current.pos;
@ -852,12 +867,11 @@ static void b_gnd_h_run_a(b_gnd_class* i_this) {
i_this->field_0x5cc = cM_atan2s(sp8C.x, sp8C.z);
if (i_this->field_0x1e0a >= 1 && i_this->mMoveMode <= 2) {
speed_target = (var_f30 - 800.0f) * (AREG_F(8) + 2.0f);
var_f30 = 7000.0f;
if (speed_target > 7000.0f) {
speed_target = 7000.0f;
} else if (speed_target < 0.0f) {
speed_target = 0.0f;
var_f30 = (var_f30 - 800.0f) * (AREG_F(8) + 2.0f);
if (var_f30 > 7000.0f) {
var_f30 = 7000.0f;
} else if (var_f30 < 0.0f) {
var_f30 = 0.0f;
}
i_this->field_0xc90 = i_this->field_0xc90 + i_this->field_0xc92;
@ -865,7 +879,7 @@ static void b_gnd_h_run_a(b_gnd_class* i_this) {
i_this->field_0xc92 = cM_rndF(600.0f) + 300.0f;
}
i_this->field_0x5cc += (s16)(speed_target * cM_ssin(i_this->field_0xc90));
i_this->field_0x5cc += (s16)(var_f30 * cM_ssin(i_this->field_0xc90));
}
if (i_this->field_0xc72 != 0) {
@ -5007,4 +5021,6 @@ extern actor_process_profile_definition g_profile_B_GND = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
static int unk_bss_0xF0;
AUDIO_INSTANCES;

View File

@ -3,16 +3,11 @@
// Translation Unit: d_a_ni
//
/**
* Basically entirely matching except for ONE float reg alloc in play_camera,
* and some extra dtors being emitted that shouldnt be after daNi_Create
*/
#include "d/dolzel_rel.h"
#include "d/d_msg_flow.h"
#include "d/d_s_play.h"
#include "dol2asm.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
#include "d/d_com_inf_game.h"
@ -36,191 +31,6 @@ enum Joint {
/* 0x8 */ JNT_WINGR,
};
//
// Forward References:
//
extern "C" void __ct__10daNi_HIO_cFv();
extern "C" static void anm_init__FP8ni_classifUcf();
extern "C" static void hane_set__FP8ni_classff();
extern "C" static void nodeCallBack__FP8J3DJointi();
extern "C" static void daNi_Draw__FP8ni_class();
extern "C" void __dt__4cXyzFv();
extern "C" static void s_play_sub__FPvPv();
extern "C" static void damage_check__FP8ni_class();
extern "C" static void s_t_sub__FPvPv();
extern "C" static void search_test__FP8ni_class();
extern "C" static void ni_carry_check__FP8ni_class();
extern "C" static void move_gake_check__FP8ni_classf();
extern "C" static void ni_normal__FP8ni_class();
extern "C" static void ni_away__FP8ni_class();
extern "C" static void ni_swim__FP8ni_class();
extern "C" static void ni_carry__FP8ni_class();
extern "C" static void ni_fly__FP8ni_class();
extern "C" static void ni_drop__FP8ni_class();
extern "C" static void ni_return__FP8ni_class();
extern "C" static void ni_damage__FP8ni_class();
extern "C" static void s_b_sub__FPvPv();
extern "C" static void ni_windspin__FP8ni_class();
extern "C" static void ni_demo0__FP8ni_class();
extern "C" static void ni_message__FP8ni_class();
extern "C" static void playwallcheck__FP8ni_class();
extern "C" static void ni_play__FP8ni_class();
extern "C" static void play_camera__FP8ni_class();
extern "C" static void action__FP8ni_class();
extern "C" static void message__FP8ni_class();
extern "C" static void daNi_Execute__FP8ni_class();
extern "C" static bool daNi_IsDelete__FP8ni_class();
extern "C" static void daNi_Delete__FP8ni_class();
extern "C" static void useHeapInit__FP10fopAc_ac_c();
extern "C" void __dt__12J3DFrameCtrlFv();
extern "C" static void daNi_Create__FP10fopAc_ac_c();
extern "C" void __dt__8cM3dGSphFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void __dt__12dBgS_AcchCirFv();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" void __dt__10daNi_HIO_cFv();
extern "C" void __sinit_d_a_ni_cpp();
extern "C" static void func_8095119C();
extern "C" static void func_809511A4();
extern "C" extern char const* const d_a_ni__stringBase0;
//
// External References:
//
extern "C" void fadeOut__13mDoGph_gInf_cFfR8_GXColor();
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 transM__14mDoMtx_stack_cFfff();
extern "C" void scaleM__14mDoMtx_stack_cFfff();
extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
extern "C" void
__ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl();
extern "C" void setAnm__14mDoExt_McaMorfFP15J3DAnmTransformiffffPv();
extern "C" void play__14mDoExt_McaMorfFP3VecUlSc();
extern "C" void entryDL__14mDoExt_McaMorfFv();
extern "C" void modelCalc__14mDoExt_McaMorfFv();
extern "C" void cDmrNowMidnaTalk__Fv();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAc_IsActor__FPv();
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs();
extern "C" void fopAcM_wayBgCheck__FPC10fopAc_ac_cff();
extern "C" void fopAcM_effHamonSet__FPUlPC4cXyzff();
extern "C" bool fopAcM_riverStream__FP4cXyzPsPff();
extern "C" void fopAcM_carryOffRevise__FP10fopAc_ac_c();
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
extern "C" void fpcEx_Search__FPFPvPv_PvPv();
extern "C" void fpcSch_JudgeForPName__FPvPv();
extern "C" void fpcSch_JudgeByID__FPvPv();
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
dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void forceOnEventMove__Q213dPa_control_c7level_cFUl();
extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void LineCross__4cBgSFP11cBgS_LinChk();
extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void SetWall__12dBgS_AcchCirFff();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void __ct__11dBgS_GndChkFv();
extern "C" void __dt__11dBgS_GndChkFv();
extern "C" void __ct__18dBgS_ObjGndChk_SplFv();
extern "C" void __dt__18dBgS_ObjGndChk_SplFv();
extern "C" void __ct__11dBgS_LinChkFv();
extern "C" void __dt__11dBgS_LinChkFv();
extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
extern "C" void __ct__14dBgS_CamLinChkFv();
extern "C" void __dt__14dBgS_CamLinChkFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Move__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
extern "C" void at_power_check__FP11dCcU_AtInfo();
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_cF4cXyz4cXyzfs();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void __ct__10dMsgFlow_cFv();
extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c();
extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void cM_atan2s__Fff();
extern "C" void cM_rndF__Ff();
extern "C" void cM_rndFX__Ff();
extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void __dt__8cM3dGCirFv();
extern "C" void SetC__8cM3dGSphFRC4cXyz();
extern "C" void SetR__8cM3dGSphFf();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void cLib_addCalc0__FPfff();
extern "C" void cLib_addCalcAngleS2__FPssss();
extern "C" void MtxPosition__FP4cXyzP4cXyz();
extern "C" void deleteObject__14Z2SoundObjBaseFv();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void checkPass__12J3DFrameCtrlFf();
extern "C" void _savegpr_22();
extern "C" void _savegpr_24();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_22();
extern "C" void _restgpr_24();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_SphAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
extern "C" u8 mCurrentMtx__6J3DSys[48];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" f32 mGroundY__11fopAcM_gc_c;
extern "C" void __register_global_object();
//
// Declarations:
//
/* 8094BC2C-8094BCA8 0000EC 007C+00 1/1 0/0 0/0 .text __ct__10daNi_HIO_cFv */
daNi_HIO_c::daNi_HIO_c() {
field_0x04 = -1;
@ -1381,7 +1191,7 @@ static int ni_play(ni_class* i_this) {
/* 8094ED90-8094F5D8 003250 0848+00 1/1 0/0 0/0 .text play_camera__FP8ni_class */
static void play_camera(ni_class* i_this) {
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; // necessary for reg alloc
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
camera_class* camera0 = (camera_class*)dComIfGp_getCamera(0);
@ -1393,8 +1203,15 @@ static void play_camera(ni_class* i_this) {
int var_r27 = 0;
f32 analog_l = i_this->mPadAnalogL;
f32 var_f31;
f32 var_f29;
f32 var_f28;
f32 var_f27;
f32 temp;
f32 var_f3;
f32 temp_f30_2;
f32 temp_f1_4;
f32 analog_l = i_this->mPadAnalogL;
BOOL hold_l = i_this->mPadHoldL;
cXyz sp208(0.0f, 0.0f, 0.0f);
@ -1435,16 +1252,16 @@ static void play_camera(ni_class* i_this) {
i_this->mPlayCamMode = 3;
i_this->mPlayCamModeTimer = 0;
// fallthrough
case 3:
case 3: {
var_r25 = 1;
i_this->field_0xaec = 55.0f;
sp1D8 = i_this->field_0xac8 - a_this->current.pos;
s16 var_r4_2 = cM_atan2s(-sp1D8.x, -sp1D8.z);
var_f31 = TREG_F(12) + 0.3f;
f32 var_f29 = i_this->field_0xafc;
f32 var_f28 = 180.0f;
f32 var_f27 = 100.0f;
var_f29 = i_this->field_0xafc;
var_f28 = 180.0f;
var_f27 = 100.0f;
if (analog_l > TREG_F(12) + 0.5f) {
var_r4_2 = a_this->shape_angle.y;
@ -1458,7 +1275,7 @@ static void play_camera(ni_class* i_this) {
i_this->field_0xafc = 500.0f;
}
} else {
f32 temp = i_this->mPadSubStickX;
temp = i_this->mPadSubStickX;
temp *= TREG_F(3) + 5000.0f;
i_this->field_0xaf4 += (s16)temp;
@ -1486,7 +1303,6 @@ static void play_camera(ni_class* i_this) {
cLib_addCalc2(&i_this->field_0xac8.x, sp1F0.x, var_f31, 1000.0f);
cLib_addCalc2(&i_this->field_0xac8.z, sp1F0.z, var_f31, 1000.0f);
f32 var_f3;
if (i_this->field_0xac8.y < sp1F0.y) {
var_f3 = 1000.0f;
} else {
@ -1518,20 +1334,21 @@ static void play_camera(ni_class* i_this) {
mDoGph_gInf_c::fadeOut(0.05f, g_blackColor);
}
break;
}
case 4:
var_r25 = 1;
if (i_this->mPlayCamModeTimer == 30) {
player = (daPy_py_c*)dComIfGp_getPlayer(0);
daPy_py_c* upc_pl = (daPy_py_c*)dComIfGp_getPlayer(0);
mDoGph_gInf_c::fadeOut(-0.05f, g_blackColor);
cMtx_YrotS(*calc_mtx, player->shape_angle.y);
cMtx_YrotS(*calc_mtx, upc_pl->shape_angle.y);
sp1D8.x = 0.0f;
sp1D8.y = JREG_F(1) + 200.0f;
sp1D8.z = JREG_F(2) + -250.0f;
MtxPosition(&sp1D8, &i_this->field_0xac8);
i_this->field_0xac8 += player->current.pos;
i_this->field_0xac8 += upc_pl->current.pos;
i_this->field_0xad4 = player->current.pos;
i_this->field_0xad4 = upc_pl->current.pos;
i_this->field_0xad4.y += 120.0f;
camera->mCamera.Reset(i_this->field_0xad4, i_this->field_0xac8, i_this->field_0xaec, 0);
@ -1539,7 +1356,7 @@ static void play_camera(ni_class* i_this) {
camera->mCamera.SetTrimSize(0);
dComIfGp_event_reset();
player->cancelOriginalDemo();
upc_pl->cancelOriginalDemo();
i_this->mPlayCamMode = 0;
i_this->mAction = ACTION_NORMAL_e;
@ -1581,11 +1398,10 @@ static void play_camera(ni_class* i_this) {
sp1E4.z = sp214.z;
gnd_chk.SetPos(&sp1E4);
f32 temp_f30_2 = dComIfG_Bgsp().GroundCross(&gnd_chk);
temp_f30_2 = temp_f30_2;
temp_f30_2 = dComIfG_Bgsp().GroundCross(&gnd_chk);
gnd_chk_spl.SetPos(&sp1E4);
f32 temp_f1_4 = dComIfG_Bgsp().GroundCross(&gnd_chk_spl);
temp_f1_4 = dComIfG_Bgsp().GroundCross(&gnd_chk_spl);
if (temp_f30_2 < temp_f1_4) {
sp214.y = temp_f1_4;
@ -2215,20 +2031,28 @@ static int daNi_Create(fopAc_ac_c* i_this) {
AUDIO_INSTANCES;
/* 80951480-809514A0 -00001 0020+00 1/0 0/0 0/0 .data l_daNi_Method */
SECTION_DATA static void* l_daNi_Method[8] = {
(void*)daNi_Create__FP10fopAc_ac_c,
(void*)daNi_Delete__FP8ni_class,
(void*)daNi_Execute__FP8ni_class,
(void*)daNi_IsDelete__FP8ni_class,
(void*)daNi_Draw__FP8ni_class,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daNi_Method = {
(process_method_func)daNi_Create,
(process_method_func)daNi_Delete,
(process_method_func)daNi_Execute,
(process_method_func)daNi_IsDelete,
(process_method_func)daNi_Draw,
};
/* 809514A0-809514D0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NI */
SECTION_DATA extern void* g_profile_NI[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD, (void*)0x01080000, (void*)&g_fpcLf_Method,
(void*)0x00000B0C, (void*)NULL, (void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02B70000, (void*)&l_daNi_Method, (void*)0x080C4000, (void*)0x04000000,
/* 80AD5464-80AD5494 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_SERA2 */
extern actor_process_profile_definition g_profile_NI = {
fpcLy_CURRENT_e, // mLayerID
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_NI, // mProcName
&g_fpcLf_Method.base, // sub_method
sizeof(ni_class), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
695, // mPriority
&l_daNi_Method, // sub_method
0x80c4000, // mStatus
fopAc_NPC_e, // mActorType
fopAc_ACTOR_e, // cullType
};

View File

@ -17,6 +17,7 @@
#include "f_op/f_op_camera_mng.h"
#include "f_op/f_op_kankyo_mng.h"
#include "c/c_damagereaction.h"
#include "Z2AudioLib/Z2Instances.h"
/* 80A925F0-80A92850 000000 0260+00 3/3 0/0 0/0 .data home_path */
static home_path_pnt home_path[38] = {
@ -3093,7 +3094,6 @@ static int daNpc_Ne_Delete(npc_ne_class* i_this) {
}
/* 80A91798-80A91B40 008BB8 03A8+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
// NONMATCHING: regalloc
static int useHeapInit(fopAc_ac_c* i_this) {
npc_ne_class* _this = static_cast<npc_ne_class*>(i_this);
_this->mpMorf =
@ -3119,7 +3119,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
if (_this->mpBtkAnm == NULL) {
return 0;
}
if (!_this->mpBtkAnm->init(_this->mpMorf->getModel()->getModelData(),
if (FALSE == _this->mpBtkAnm->init(_this->mpMorf->getModel()->getModelData(),
static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(_this->mResName, 32)), 1, 0, 1.0f, 0, -1)) {
return 0;
}
@ -3128,7 +3128,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
if (_this->mpBtpAnm == NULL) {
return 0;
}
if (!_this->mpBtpAnm->init(_this->mpMorf->getModel()->getModelData(),
if (FALSE == _this->mpBtpAnm->init(_this->mpMorf->getModel()->getModelData(),
static_cast<J3DAnmTexPattern*>(dComIfG_getObjectRes(_this->mResName, 35)), 1, 0, 1.0f, 0, -1)) {
return 0;
}
@ -3312,177 +3312,6 @@ npc_ne_class::npc_ne_class() {
/* empty function */
}
/* 80A92B1C-80A92B20 00009C 0004+00 0/0 0/0 0/0 .bss
* sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
#pragma push
#pragma force_active on
static u8 data_80A92B1C[4];
#pragma pop
/* 80A92B20-80A92B24 0000A0 0004+00 0/0 0/0 0/0 .bss
* sInstance__35JASGlobalInstance<14JASAudioThread> */
#pragma push
#pragma force_active on
static u8 data_80A92B20[4];
#pragma pop
/* 80A92B24-80A92B28 0000A4 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
#pragma push
#pragma force_active on
static u8 data_80A92B24[4];
#pragma pop
/* 80A92B28-80A92B2C 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
#pragma push
#pragma force_active on
static u8 data_80A92B28[4];
#pragma pop
/* 80A92B2C-80A92B30 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B2C[4];
#pragma pop
/* 80A92B30-80A92B34 0000B0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B30[4];
#pragma pop
/* 80A92B34-80A92B38 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B34[4];
#pragma pop
/* 80A92B38-80A92B3C 0000B8 0004+00 0/0 0/0 0/0 .bss
* sInstance__36JASGlobalInstance<15JAISoundStarter> */
#pragma push
#pragma force_active on
static u8 data_80A92B38[4];
#pragma pop
/* 80A92B3C-80A92B40 0000BC 0004+00 0/0 0/0 0/0 .bss
* sInstance__35JASGlobalInstance<14Z2SoundStarter> */
#pragma push
#pragma force_active on
static u8 data_80A92B3C[4];
#pragma pop
/* 80A92B40-80A92B44 0000C0 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
#pragma push
#pragma force_active on
static u8 data_80A92B40[4];
#pragma pop
/* 80A92B44-80A92B48 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
#pragma push
#pragma force_active on
static u8 data_80A92B44[4];
#pragma pop
/* 80A92B48-80A92B4C 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
#pragma push
#pragma force_active on
static u8 data_80A92B48[4];
#pragma pop
/* 80A92B4C-80A92B50 0000CC 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAIStreamMgr> */
#pragma push
#pragma force_active on
static u8 data_80A92B4C[4];
#pragma pop
/* 80A92B50-80A92B54 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B50[4];
#pragma pop
/* 80A92B54-80A92B58 0000D4 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAISoundInfo> */
#pragma push
#pragma force_active on
static u8 data_80A92B54[4];
#pragma pop
/* 80A92B58-80A92B5C 0000D8 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13JAUSoundTable> */
#pragma push
#pragma force_active on
static u8 data_80A92B58[4];
#pragma pop
/* 80A92B5C-80A92B60 0000DC 0004+00 0/0 0/0 0/0 .bss
* sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
#pragma push
#pragma force_active on
static u8 data_80A92B5C[4];
#pragma pop
/* 80A92B60-80A92B64 0000E0 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAUSoundInfo> */
#pragma push
#pragma force_active on
static u8 data_80A92B60[4];
#pragma pop
/* 80A92B64-80A92B68 0000E4 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B64[4];
#pragma pop
/* 80A92B68-80A92B6C 0000E8 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
#pragma push
#pragma force_active on
static u8 data_80A92B68[4];
#pragma pop
/* 80A92B6C-80A92B70 0000EC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B6C[4];
#pragma pop
/* 80A92B70-80A92B74 0000F0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B70[4];
#pragma pop
/* 80A92B74-80A92B78 0000F4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B74[4];
#pragma pop
/* 80A92B78-80A92B7C 0000F8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80A92B78[4];
#pragma pop
/* 80A92B7C-80A92B80 0000FC 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
#pragma push
#pragma force_active on
static u8 data_80A92B7C[4];
#pragma pop
/* 80A929D0-80A929F0 -00001 0020+00 1/0 0/0 0/0 .data l_daNpc_Ne_Method */
static actor_method_class l_daNpc_Ne_Method = {
(process_method_func)daNpc_Ne_Create,
@ -3509,3 +3338,5 @@ extern actor_process_profile_definition g_profile_NPC_NE = {
fopAc_NPC_e,
fopAc_CULLBOX_0_e,
};
AUDIO_INSTANCES;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff