diff --git a/config/GZ2E01/rels/d_a_e_pz/symbols.txt b/config/GZ2E01/rels/d_a_e_pz/symbols.txt index 1261a05b1f9..348fb4755a6 100644 --- a/config/GZ2E01/rels/d_a_e_pz/symbols.txt +++ b/config/GZ2E01/rels/d_a_e_pz/symbols.txt @@ -268,11 +268,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_222_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte +l_initHIO = .bss:0x00000045; // type:object size:0x1 data:byte @3922 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x1C scope:global align:4 data:float +lbl_222_bss_70 = .bss:0x00000070; // type:object size:0x1 data:byte lbl_222_bss_71 = .bss:0x00000071; // type:object size:0x1 data:byte @4339 = .bss:0x00000074; // type:object size:0xC scope:local +init$4340 = .bss:0x00000080; // type:object size:0x1 scope:local @4342 = .bss:0x00000084; // type:object size:0xC scope:local @4343 = .bss:0x00000090; // type:object size:0xC scope:local @4344 = .bss:0x0000009C; // type:object size:0xC scope:local @@ -292,6 +294,7 @@ lbl_222_bss_71 = .bss:0x00000071; // type:object size:0x1 data:byte @4358 = .bss:0x00000144; // type:object size:0xC scope:local mPzCenterInit_dt$4338 = .bss:0x00000150; // type:object size:0xD8 scope:local @4360 = .bss:0x00000228; // type:object size:0xC scope:local +init$4361 = .bss:0x00000234; // type:object size:0x1 scope:local @4363 = .bss:0x00000238; // type:object size:0xC scope:local @4364 = .bss:0x00000244; // type:object size:0xC scope:local @4365 = .bss:0x00000250; // type:object size:0xC scope:local @@ -311,10 +314,12 @@ mPzCenterInit_dt$4338 = .bss:0x00000150; // type:object size:0xD8 scope:local @4379 = .bss:0x000002F8; // type:object size:0xC scope:local mPzEyeInit_dt$4359 = .bss:0x00000304; // type:object size:0xD8 scope:local @5677 = .bss:0x000003DC; // type:object size:0xC scope:local +init$5678 = .bss:0x000003E8; // type:object size:0x1 scope:local @5680 = .bss:0x000003EC; // type:object size:0xC scope:local @5681 = .bss:0x000003F8; // type:object size:0xC scope:local mPzDeadDemo_mCenter_dt$5676 = .bss:0x00000404; // type:object size:0x24 scope:local @5683 = .bss:0x00000428; // type:object size:0xC scope:local +init$5684 = .bss:0x00000434; // type:object size:0x1 scope:local @5686 = .bss:0x00000438; // type:object size:0xC scope:local @5687 = .bss:0x00000444; // type:object size:0xC scope:local mPzDeadDemo_mEye_dt$5682 = .bss:0x00000450; // type:object size:0x24 scope:local diff --git a/config/GZ2E01/rels/d_a_npc_ykw/symbols.txt b/config/GZ2E01/rels/d_a_npc_ykw/symbols.txt index 5de6244a659..7c24d05f74c 100644 --- a/config/GZ2E01/rels/d_a_npc_ykw/symbols.txt +++ b/config/GZ2E01/rels/d_a_npc_ykw/symbols.txt @@ -282,6 +282,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @4126 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte @5372 = .bss:0x00000058; // type:object size:0xC scope:local +init$5373 = .bss:0x00000064; // type:object size:0x1 scope:local prtclScl$5371 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global diff --git a/config/GZ2E01/rels/d_a_npc_zra/symbols.txt b/config/GZ2E01/rels/d_a_npc_zra/symbols.txt index ba8dd553788..a9d33580567 100644 --- a/config/GZ2E01/rels/d_a_npc_zra/symbols.txt +++ b/config/GZ2E01/rels/d_a_npc_zra/symbols.txt @@ -558,6 +558,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @3887 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte @5533 = .bss:0x00000058; // type:object size:0xC scope:local +init$5534 = .bss:0x00000064; // type:object size:0x1 scope:local eyeOffset$5532 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 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 9583ab8c84d..144a68b6e30 100644 --- a/config/GZ2E01/rels/d_a_obj_toby/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_toby/symbols.txt @@ -104,8 +104,10 @@ 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 +init$3947 = .bss:0x00000074; // type:object size:0x1 scope:local sc$3945 = .bss:0x00000078; // type:object size:0xC scope:local @4167 = .bss:0x00000084; // type:object size:0xC scope:local +init$4168 = .bss:0x00000090; // type:object size:0x1 scope:local sc$4166 = .bss:0x00000094; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000A0; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000000A4; // type:object size:0x4 scope:global diff --git a/config/GZ2E01/symbols.txt b/config/GZ2E01/symbols.txt index c966841d08a..bbf8ae552ba 100644 --- a/config/GZ2E01/symbols.txt +++ b/config/GZ2E01/symbols.txt @@ -21858,36 +21858,36 @@ mWipeRate__12dDlst_list_c = .sbss:0x80450ED4; // type:object size:0x4 scope:glob mWipeSpeed__12dDlst_list_c = .sbss:0x80450ED8; // type:object size:0x4 scope:global align:4 data:float init$2153 = .sbss:0x80450EE0; // type:object size:0x1 scope:local align:1 data:byte S_parcent_bak$4131 = .sbss:0x80450EE8; // type:object size:0x4 scope:local align:4 data:float -data_80450EEC = .sbss:0x80450EEC; // type:object size:0x1 scope:local align:4 data:byte +init$4132 = .sbss:0x80450EEC; // type:object size:0x1 scope:local align:4 data:byte S_rot_work1$7554 = .sbss:0x80450EEE; // type:object size:0x2 scope:local data:2byte -data_80450EF0 = .sbss:0x80450EF0; // type:object size:0x1 scope:local align:4 data:byte +init$7555 = .sbss:0x80450EF0; // type:object size:0x1 scope:local align:4 data:byte S_rot_work2$7557 = .sbss:0x80450EF2; // type:object size:0x2 scope:local data:2byte -data_80450EF4 = .sbss:0x80450EF4; // type:object size:0x1 scope:local align:4 data:byte +init$7558 = .sbss:0x80450EF4; // type:object size:0x1 scope:local align:4 data:byte rot$7919 = .sbss:0x80450EF8; // type:object size:0x4 scope:local align:4 data:4byte -data_80450EFC = .sbss:0x80450EFC; // type:object size:0x1 scope:local align:4 data:byte -data_80450EFD = .sbss:0x80450EFD; // type:object size:0x1 data:byte +init$7920 = .sbss:0x80450EFC; // type:object size:0x1 scope:local align:4 data:byte +init$7942 = .sbss:0x80450EFD; // type:object size:0x1 data:byte rot$8366 = .sbss:0x80450F00; // type:object size:0x4 scope:local align:4 data:float -data_80450F04 = .sbss:0x80450F04; // type:object size:0x1 scope:local align:4 data:byte +init$8367 = .sbss:0x80450F04; // type:object size:0x1 scope:local align:4 data:byte rot$8936 = .sbss:0x80450F08; // type:object size:0x4 scope:local align:4 data:float -data_80450F0C = .sbss:0x80450F0C; // type:object size:0x1 scope:local align:4 data:byte -data_80450F0D = .sbss:0x80450F0D; // type:object size:0x1 data:byte +init$8937 = .sbss:0x80450F0C; // type:object size:0x1 scope:local align:4 data:byte +init$8943 = .sbss:0x80450F0D; // type:object size:0x1 data:byte S_fubuki_ratio$8948 = .sbss:0x80450F10; // type:object size:0x4 scope:local align:4 data:float -data_80450F14 = .sbss:0x80450F14; // type:object size:0x1 scope:local align:4 data:byte +init$8949 = .sbss:0x80450F14; // type:object size:0x1 scope:local align:4 data:byte rot$9421 = .sbss:0x80450F18; // type:object size:0x4 scope:local align:4 data:float -data_80450F1C = .sbss:0x80450F1C; // type:object size:0x1 scope:local align:4 data:byte -data_80450F1D = .sbss:0x80450F1D; // type:object size:0x1 data:byte +init$9422 = .sbss:0x80450F1C; // type:object size:0x1 scope:local align:4 data:byte +init$9426 = .sbss:0x80450F1D; // type:object size:0x1 data:byte rot$9847 = .sbss:0x80450F20; // type:object size:0x4 scope:local align:4 data:float -data_80450F24 = .sbss:0x80450F24; // type:object size:0x1 scope:local align:4 data:byte +init$9848 = .sbss:0x80450F24; // type:object size:0x1 scope:local align:4 data:byte howa_loop_cnt$10108 = .sbss:0x80450F28; // type:object size:0x4 scope:local align:4 data:float -data_80450F2C = .sbss:0x80450F2C; // type:object size:0x1 scope:local align:4 data:byte +init$10109 = .sbss:0x80450F2C; // type:object size:0x1 scope:local align:4 data:byte rot$10882 = .sbss:0x80450F30; // type:object size:0x4 scope:local align:4 data:float -data_80450F34 = .sbss:0x80450F34; // type:object size:0x1 scope:local align:4 data:byte +init$10883 = .sbss:0x80450F34; // type:object size:0x1 scope:local align:4 data:byte rot$11307 = .sbss:0x80450F38; // type:object size:0x4 scope:local align:4 data:float -data_80450F3C = .sbss:0x80450F3C; // type:object size:0x1 scope:local align:4 data:byte +init$10308 = .sbss:0x80450F3C; // type:object size:0x1 scope:local align:4 data:byte rot$11586 = .sbss:0x80450F40; // type:object size:0x4 scope:local align:4 data:float -data_80450F44 = .sbss:0x80450F44; // type:object size:0x1 scope:local align:4 data:byte +init$11587 = .sbss:0x80450F44; // type:object size:0x1 scope:local align:4 data:byte rot$11958 = .sbss:0x80450F48; // type:object size:0x4 scope:local align:4 data:float -data_80450F4C = .sbss:0x80450F4C; // type:object size:0x1 scope:local align:4 data:byte +init$11959 = .sbss:0x80450F4C; // type:object size:0x1 scope:local align:4 data:byte data$3831 = .sbss:0x80450F50; // type:object size:0x8 scope:local align:4 on_final_boss_stg = .sbss:0x80450F58; // type:object size:0x1 scope:global align:1 data:byte l_SetCounter = .sbss:0x80450F60; // type:object size:0x4 scope:local align:4 data:4byte diff --git a/config/GZ2J01/rels/d_a_e_pz/symbols.txt b/config/GZ2J01/rels/d_a_e_pz/symbols.txt index b7f71df642a..9e574db5c5d 100644 --- a/config/GZ2J01/rels/d_a_e_pz/symbols.txt +++ b/config/GZ2J01/rels/d_a_e_pz/symbols.txt @@ -267,11 +267,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_222_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte +l_initHIO = .bss:0x00000045; // type:object size:0x1 data:byte @3922 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x1C scope:global align:4 data:float +lbl_222_bss_70 = .bss:0x00000070; // type:object size:0x1 data:byte lbl_222_bss_71 = .bss:0x00000071; // type:object size:0x1 data:byte @4339 = .bss:0x00000074; // type:object size:0xC scope:local +init$4340 = .bss:0x00000080; // type:object size:0x1 scope:local @4342 = .bss:0x00000084; // type:object size:0xC scope:local @4343 = .bss:0x00000090; // type:object size:0xC scope:local @4344 = .bss:0x0000009C; // type:object size:0xC scope:local @@ -291,6 +293,7 @@ lbl_222_bss_71 = .bss:0x00000071; // type:object size:0x1 data:byte @4358 = .bss:0x00000144; // type:object size:0xC scope:local mPzCenterInit_dt$4338 = .bss:0x00000150; // type:object size:0xD8 scope:local @4360 = .bss:0x00000228; // type:object size:0xC scope:local +init$4361 = .bss:0x00000234; // type:object size:0x1 scope:local @4363 = .bss:0x00000238; // type:object size:0xC scope:local @4364 = .bss:0x00000244; // type:object size:0xC scope:local @4365 = .bss:0x00000250; // type:object size:0xC scope:local @@ -310,10 +313,12 @@ mPzCenterInit_dt$4338 = .bss:0x00000150; // type:object size:0xD8 scope:local @4379 = .bss:0x000002F8; // type:object size:0xC scope:local mPzEyeInit_dt$4359 = .bss:0x00000304; // type:object size:0xD8 scope:local @5677 = .bss:0x000003DC; // type:object size:0xC scope:local +init$5678 = .bss:0x000003E8; // type:object size:0x1 scope:local @5680 = .bss:0x000003EC; // type:object size:0xC scope:local @5681 = .bss:0x000003F8; // type:object size:0xC scope:local mPzDeadDemo_mCenter_dt$5676 = .bss:0x00000404; // type:object size:0x24 scope:local @5683 = .bss:0x00000428; // type:object size:0xC scope:local +init$5684 = .bss:0x00000434; // type:object size:0x1 scope:local @5686 = .bss:0x00000438; // type:object size:0xC scope:local @5687 = .bss:0x00000444; // type:object size:0xC scope:local mPzDeadDemo_mEye_dt$5682 = .bss:0x00000450; // type:object size:0x24 scope:local diff --git a/config/GZ2J01/rels/d_a_npc_ykw/symbols.txt b/config/GZ2J01/rels/d_a_npc_ykw/symbols.txt index be2c7baaecb..d1ab7e6a9cb 100644 --- a/config/GZ2J01/rels/d_a_npc_ykw/symbols.txt +++ b/config/GZ2J01/rels/d_a_npc_ykw/symbols.txt @@ -281,6 +281,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @4126 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte @5372 = .bss:0x00000058; // type:object size:0xC scope:local +init$5373 = .bss:0x00000064; // type:object size:0x1 scope:local prtclScl$5371 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global diff --git a/config/GZ2J01/rels/d_a_npc_zra/symbols.txt b/config/GZ2J01/rels/d_a_npc_zra/symbols.txt index e01ad16d6f9..3e0c10dd626 100644 --- a/config/GZ2J01/rels/d_a_npc_zra/symbols.txt +++ b/config/GZ2J01/rels/d_a_npc_zra/symbols.txt @@ -557,6 +557,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @3887 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte @5533 = .bss:0x00000058; // type:object size:0xC scope:local +init$5534 = .bss:0x00000064; // type:object size:0x1 scope:local eyeOffset$5532 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 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 c2622d509ab..b59a2ac86a3 100644 --- a/config/GZ2J01/rels/d_a_obj_toby/symbols.txt +++ b/config/GZ2J01/rels/d_a_obj_toby/symbols.txt @@ -104,8 +104,10 @@ 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 +init$3947 = .bss:0x00000074; // type:object size:0x1 scope:local sc$3945 = .bss:0x00000078; // type:object size:0xC scope:local @4167 = .bss:0x00000084; // type:object size:0xC scope:local +init$4168 = .bss:0x00000090; // type:object size:0x1 scope:local sc$4166 = .bss:0x00000094; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000A0; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000000A4; // type:object size:0x4 scope:global diff --git a/config/GZ2J01/symbols.txt b/config/GZ2J01/symbols.txt index 9115427dfb2..d3283b94333 100644 --- a/config/GZ2J01/symbols.txt +++ b/config/GZ2J01/symbols.txt @@ -21866,38 +21866,38 @@ mParticleTracePCB__13dPa_control_c = .sbss:0x8044B008; // type:object size:0x4 s mWipe__12dDlst_list_c = .sbss:0x8044B010; // type:object size:0x1 data:byte mWipeRate__12dDlst_list_c = .sbss:0x8044B014; // type:object size:0x4 scope:global align:4 data:float mWipeSpeed__12dDlst_list_c = .sbss:0x8044B018; // type:object size:0x4 scope:global align:4 data:float -lbl_8044B020 = .sbss:0x8044B020; // type:object size:0x1 data:byte +init$2153 = .sbss:0x8044B020; // type:object size:0x1 data:byte S_parcent_bak$4131 = .sbss:0x8044B028; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B02C = .sbss:0x8044B02C; // type:object size:0x1 data:byte +init$4132 = .sbss:0x8044B02C; // type:object size:0x1 data:byte S_rot_work1$7572 = .sbss:0x8044B02E; // type:object size:0x2 scope:local align:2 data:2byte -lbl_8044B030 = .sbss:0x8044B030; // type:object size:0x1 data:byte +init$7573 = .sbss:0x8044B030; // type:object size:0x1 data:byte S_rot_work2$7575 = .sbss:0x8044B032; // type:object size:0x2 scope:local align:2 data:2byte -lbl_8044B034 = .sbss:0x8044B034; // type:object size:0x1 data:byte +init$7576 = .sbss:0x8044B034; // type:object size:0x1 data:byte rot$7951 = .sbss:0x8044B038; // type:object size:0x4 scope:local align:4 data:4byte -lbl_8044B03C = .sbss:0x8044B03C; // type:object size:0x1 data:byte -lbl_8044B03D = .sbss:0x8044B03D; // type:object size:0x1 data:byte +init$7952 = .sbss:0x8044B03C; // type:object size:0x1 data:byte +init$7972 = .sbss:0x8044B03D; // type:object size:0x1 data:byte rot$8398 = .sbss:0x8044B040; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B044 = .sbss:0x8044B044; // type:object size:0x1 data:byte +init$8399 = .sbss:0x8044B044; // type:object size:0x1 data:byte rot$8968 = .sbss:0x8044B048; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B04C = .sbss:0x8044B04C; // type:object size:0x1 data:byte -lbl_8044B04D = .sbss:0x8044B04D; // type:object size:0x1 data:byte +init$8969 = .sbss:0x8044B04C; // type:object size:0x1 data:byte +init$8975 = .sbss:0x8044B04D; // type:object size:0x1 data:byte S_fubuki_ratio$8980 = .sbss:0x8044B050; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B054 = .sbss:0x8044B054; // type:object size:0x1 data:byte +init$8981 = .sbss:0x8044B054; // type:object size:0x1 data:byte rot$9453 = .sbss:0x8044B058; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B05C = .sbss:0x8044B05C; // type:object size:0x1 data:byte -lbl_8044B05D = .sbss:0x8044B05D; // type:object size:0x1 data:byte +init$9454 = .sbss:0x8044B05C; // type:object size:0x1 data:byte +init$9458 = .sbss:0x8044B05D; // type:object size:0x1 data:byte rot$9899 = .sbss:0x8044B060; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B064 = .sbss:0x8044B064; // type:object size:0x1 data:byte +init$9900 = .sbss:0x8044B064; // type:object size:0x1 data:byte howa_loop_cnt$10162 = .sbss:0x8044B068; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B06C = .sbss:0x8044B06C; // type:object size:0x1 data:byte +init$10163 = .sbss:0x8044B06C; // type:object size:0x1 data:byte rot$10956 = .sbss:0x8044B070; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B074 = .sbss:0x8044B074; // type:object size:0x1 data:byte +init$10957 = .sbss:0x8044B074; // type:object size:0x1 data:byte rot$11381 = .sbss:0x8044B078; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B07C = .sbss:0x8044B07C; // type:object size:0x1 data:byte +init$11382 = .sbss:0x8044B07C; // type:object size:0x1 data:byte rot$11660 = .sbss:0x8044B080; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B084 = .sbss:0x8044B084; // type:object size:0x1 data:byte +init$11661 = .sbss:0x8044B084; // type:object size:0x1 data:byte rot$12032 = .sbss:0x8044B088; // type:object size:0x4 scope:local align:4 data:float -lbl_8044B08C = .sbss:0x8044B08C; // type:object size:0x1 data:byte +init$12033 = .sbss:0x8044B08C; // type:object size:0x1 data:byte data$3831 = .sbss:0x8044B090; // type:object size:0x8 scope:local align:4 lbl_8044B098 = .sbss:0x8044B098; // type:object size:0x1 data:byte l_SetCounter = .sbss:0x8044B0A0; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/configure.py b/configure.py index 43d3d29c9b8..d03cf4c5fc4 100755 --- a/configure.py +++ b/configure.py @@ -616,7 +616,7 @@ def MatchingFor(*versions) -> bool: Object(Equivalent, "d/d_drawlist.cpp"), # missing vtable Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_kankyo_data.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_kankyo_wether.cpp"), - Object(NonMatching, "d/d_kankyo_rain.cpp"), + Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_kankyo_rain.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_vibration.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_vib_pattern.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_attention.cpp"), @@ -645,7 +645,7 @@ def MatchingFor(*versions) -> bool: Object(NonMatching, "d/d_cc_s.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_cc_uty.cpp"), Object(Equivalent, "d/d_cam_param.cpp"), # weak func order - Object(NonMatching, "d/d_ev_camera.cpp"), + Object(MatchingFor("GZ2E01"), "d/d_ev_camera.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_spline_path.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_item_data.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_item.cpp"), @@ -1748,7 +1748,7 @@ def MatchingFor(*versions) -> bool: ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_ph"), ActorRel(MatchingFor("GZ2E01"), "d_a_e_pm"), ActorRel(NonMatching, "d_a_e_po"), - ActorRel(Equivalent, "d_a_e_pz"), # inline issue + ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_pz"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_rb"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_rdb"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_e_rdy"), @@ -2189,7 +2189,7 @@ def MatchingFor(*versions) -> bool: ActorRel(Equivalent, "d_a_obj_tks", extra_cflags=[DANPCF_C_HACK]), # weak function order, sinShort inline issue ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_tmoon"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_toaru_maki"), - ActorRel(NonMatching, "d_a_obj_toby"), + ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_toby"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_tobyhouse"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_togeTrap"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_obj_tombo"), diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index 2084f8eeeb5..b5e2410d717 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -64,13 +64,22 @@ struct cXyz : Vec { z *= other.z; } - void operator-=(const Vec& other) { VECSubtract(this, &other, this); } + cXyz* operator-=(const Vec& other) { + PSVECSubtract(this, &other, this); + return this; + } cXyz* operator+=(const Vec& other) { - VECAdd(this, &other, this); + PSVECAdd(this, &other, this); + return this; + } + cXyz* operator*=(f32 scale) { + PSVECScale(this, this, scale); + return this; + } + cXyz* operator/=(f32 scale) { + PSVECScale(this, this, 1.0f / scale); return this; } - void operator*=(f32 scale) { VECScale(this, this, scale); } - void operator/=(f32 scale) { VECScale(this, this, 1.0f / scale); } /* 80266C6C */ cXyz getCrossProduct(Vec const&) const; /* 80266CBC */ cXyz outprod(Vec const&) const; /* 80266CE4 */ cXyz norm() const; @@ -105,7 +114,7 @@ struct cXyz : Vec { void zero() { set(0.0f, 0.0f, 0.0f); } - f32 getSquareMag() const { return VECSquareMag(this); } + f32 getSquareMag() const { return PSVECSquareMag(this); } f32 getSquareDistance(const Vec& other) const { return PSVECSquareDistance(this, &other); } static f32 getNearZeroValue() { return 8e-11f; } diff --git a/include/d/actor/d_a_npc_ykm.h b/include/d/actor/d_a_npc_ykm.h index c839b791ac0..a731de1d637 100644 --- a/include/d/actor/d_a_npc_ykm.h +++ b/include/d/actor/d_a_npc_ykm.h @@ -271,7 +271,7 @@ class daNpc_ykM_c : public daNpcT_c { } int getBitTRB() { return (fopAcM_GetParam(this) & 0x3F0000) >> 16; } - u32 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; } + u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; } void dComIfGs_setRaceGameTime(u32 i_time) { g_dComIfG_gameInfo.info.getMiniGame().setRaceGameTime(i_time); diff --git a/include/d/actor/d_a_obj_toby.h b/include/d/actor/d_a_obj_toby.h index 398b6d48a42..6a3510b5d9f 100644 --- a/include/d/actor/d_a_obj_toby.h +++ b/include/d/actor/d_a_obj_toby.h @@ -63,15 +63,4 @@ class obj_toby_class { STATIC_ASSERT(sizeof(obj_toby_class) == 0x6374); -class daObj_Toby_HIO_c : public JORReflexible{ -public: - /* 80D1378C */ daObj_Toby_HIO_c(); - /* 80D15534 */ virtual ~daObj_Toby_HIO_c() {} - - void genMessage(JORMContext*); - - /* 0x4 */ s8 field_0x4; - /* 0x8 */ f32 field_0x8; -}; - #endif /* D_A_OBJ_TOBY_H */ diff --git a/include/d/d_bg_s.h b/include/d/d_bg_s.h index f13c0a2b804..c6727486a50 100644 --- a/include/d/d_bg_s.h +++ b/include/d/d_bg_s.h @@ -139,6 +139,7 @@ class dBgS : public cBgS { u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(¶m_0); } void DebugDrawPoly(dBgW_Base *param_1) {} fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) const { return cBgS::GetActorPointer(param_0); } + f32 GroundCross(cBgS_GndChk* i_gndChk) { return (f32)((cBgS*)this)->GroundCross(i_gndChk); } #ifdef DEBUG /* 0x1404 */ u8 field_0x1404[0x1408 - 0x1404]; diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 2b20f9646ed..b6159aafb56 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -921,10 +921,10 @@ class dCamera_c { /* 800965AC */ bool hintTalkEvCamera(); /* 80096EDC */ bool bspTransEvCamera(); /* 80097694 */ bool portalWarpEvCamera(); - /* 8009771C */ cXyz attentionPos(fopAc_ac_c*); - /* 80097738 */ cSAngle directionOf(fopAc_ac_c*); - /* 8009775C */ cXyz positionOf(fopAc_ac_c*); - /* 8009778C */ cXyz eyePos(fopAc_ac_c*); + /* 8009771C */ cXyz attentionPos(fopAc_ac_c* i_this) { return i_this->attention_info.position; } + /* 80097738 */ cSAngle directionOf(fopAc_ac_c* i_this) { return i_this->shape_angle.y; } + /* 8009775C */ cXyz positionOf(fopAc_ac_c* i_this) { return i_this->current.pos; } + /* 8009778C */ cXyz eyePos(fopAc_ac_c* i_this) { return i_this->eyePos; } /* 8016008C */ dCamera_c(camera_class*); /* 80160304 */ ~dCamera_c(); /* 80160470 */ void initialize(camera_class*, fopAc_ac_c*, u32, u32); diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 1e120c1eb51..f4c4a2a91f3 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -3398,7 +3398,7 @@ inline dStage_roomDt_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) { return g_dComIfG_gameInfo.play.getRoomControl()->getStatusRoomDt(room_no); } -inline s32 dComIfGp_roomControl_getTimePass() { +inline BOOL dComIfGp_roomControl_getTimePass() { return g_dComIfG_gameInfo.play.getRoomControl()->GetTimePass(); } diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index db2644224fc..45505f5a5cb 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -505,26 +505,46 @@ inline dScnKy_env_light_c* dKy_getEnvlight() { return &g_env_light; } +// unsure of correct size +class dKankyo_lightHIO_c { +public: + void dKankyo_lightHIOInfoUpDateF() { + // NONMATCHING + } + + u8 field_0x0[4]; +}; + class dKankyo_HIO_c { public: - /* 0x000 */ u8 field_0x000[0x6d - 0x0]; - /* 0x000 */ u8 field_0x06d; - /* 0x000 */ u8 field_0x06e[0xb4 - 0x6e]; + /* 0x000 */ u8 field_0x000[0x1c - 0x0]; + /* 0x01C */ dKankyo_lightHIO_c field_0x01c; + /* 0x020 */ u8 field_0x020[0x6d - 0x20]; + /* 0x06D */ u8 field_0x06d; + /* 0x06E */ u8 field_0x06e[0xb4 - 0x6e]; /* 0x0B4 */ u8 field_0x0b4; /* 0x0B8 */ f32 field_0x0b8; /* 0x0BC */ u8 field_0x0bc[0x3f4 - 0xbc]; /* 0x3F4 */ f32 field_0x3f4; /* 0x3F8 */ f32 field_0x3f8; - /* 0x3FC */ u8 field_0x3fc[0x694 - 0x3fc]; - u8 field_0x694; - u8 field_0x695; - u8 field_0x696; - u8 field_0x697[0x698 - 0x697]; - bool field_0x698; - u8 field_0x699[0x69c - 0x699]; - f32 field_0x69c; - u8 field_0x6a0[0x79b - 0x6a0]; - u8 field_0x79b; + /* 0x3FC */ u8 field_0x3fc[0x686 - 0x3fc]; + /* 0x686 */ u8 field_0x686; + /* 0x687 */ u8 field_0x687[0x694 - 0x687]; + /* 0x694 */ u8 field_0x694; + /* 0x695 */ u8 field_0x695; + /* 0x696 */ u8 field_0x696; + /* 0x697 */ u8 field_0x697[0x698 - 0x697]; + /* 0x698 */ bool field_0x698; + /* 0x699 */ u8 field_0x699[0x69c - 0x699]; + /* 0x69C */ f32 field_0x69c; + /* 0x6A0 */ u8 field_0x6a0[0x6d9 - 0x6a0]; + /* 0x6D9 */ u8 field_0x6d9; + /* 0x6DA */ u8 field_0x6da[0x6e0 - 0x6da]; + /* 0x6E0 */ f32 field_0x6e0; + /* 0x6E4 */ f32 field_0x6e4; + /* 0x6E8 */ f32 field_0x6e8; + /* 0x6EC */ u8 field_0x6ec[0x79b - 0x6ec]; + /* 0x79B */ u8 field_0x79b; }; extern dKankyo_HIO_c g_kankyoHIO; @@ -656,4 +676,9 @@ int dKy_Indoor_check(); void dKy_GfFog_tevstr_set(dKy_tevstr_c* tevstr_p); void dKy_setLight_mine(dKy_tevstr_c* tevstr_p); +#if DEBUG +inline void dKankyo_lightHIOInfoUpDateF() { +} +#endif + #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/d_stage.h b/include/d/d_stage.h index a72ff30f5a4..687f4adb014 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -1067,7 +1067,7 @@ class dStage_roomControl_c { /* 80024954 */ static bool resetArchiveBank(int); /* 80024DB0 */ static void SetTimePass(int i_TimePass) { m_time_pass = i_TimePass; } /* 8025BAAC */ static void setZoneNo(int, int); - static u8 GetTimePass() { return m_time_pass; } + static BOOL GetTimePass() { return m_time_pass; } static s8 getStayNo() { return mStayNo; } static u8 getRegionNo(int i_roomNo) { return mStatus[i_roomNo].mRegionNo; } diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index ebf9686c2c2..635ecb623f1 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -542,7 +542,7 @@ class mDoExt_3DlineMatSortPacket : public J3DPacket { /* 80014738 */ void setMat(mDoExt_3DlineMat_c*); virtual void draw(); - virtual ~mDoExt_3DlineMatSortPacket(); + virtual ~mDoExt_3DlineMatSortPacket() {} private: /* 0x10 */ mDoExt_3DlineMat_c* mp3DlineMat; @@ -554,7 +554,7 @@ class mDoExt_3DlineMat1_c : public mDoExt_3DlineMat_c { /* 80013360 */ int init(u16, u16, ResTIMG*, int); /* 80013FB0 */ void update(int, GXColor&, dKy_tevstr_c*); /* 8001373C */ void update(int, f32, GXColor&, u16, dKy_tevstr_c*); - /* 80014E7C */ int getMaterialID(); + /* 80014E7C */ int getMaterialID() { return 1; } /* 800134F8 */ void setMaterial(); /* 800135D0 */ void draw(); @@ -578,7 +578,7 @@ class mDoExt_3DlineMat0_c : public mDoExt_3DlineMat_c { /* 80012874 */ void update(int, f32, _GXColor&, u16, dKy_tevstr_c*); /* 80012E3C */ void update(int, _GXColor&, dKy_tevstr_c*); - /* 80014E84 */ virtual int getMaterialID(); + /* 80014E84 */ virtual int getMaterialID() { return 0; } /* 800126C0 */ virtual void setMaterial(); /* 80012774 */ virtual void draw(); diff --git a/src/d/actor/d_a_alink_crawl.inc b/src/d/actor/d_a_alink_crawl.inc index 0a05a0b1727..e4ceac8a64f 100644 --- a/src/d/actor/d_a_alink_crawl.inc +++ b/src/d/actor/d_a_alink_crawl.inc @@ -391,7 +391,10 @@ void daAlink_c::setCrawlMoveAngle() { } mLinkGndChk.SetPos(&sp20); - sp2C.set(sp20.x - sp38.x, dComIfG_Bgsp().GroundCross(&mLinkGndChk) - sp38.y, + // dBgS::GroundCross is implicitly inlined to cBgS::GroundCross, but for some + // reason here that breaks the match. This is the only place in the code so + // far (September 2025) where it causes issues. + sp2C.set(sp20.x - sp38.x, ((cBgS&)dComIfG_Bgsp()).GroundCross(&mLinkGndChk) - sp38.y, sp20.z - sp38.z); if (cLib_distanceAngleS(sp2C.atan2sY_XZ(), shape_angle.x) > 0x800) { diff --git a/src/d/actor/d_a_e_hp.cpp b/src/d/actor/d_a_e_hp.cpp index 7af721d8710..e63916738fd 100644 --- a/src/d/actor/d_a_e_hp.cpp +++ b/src/d/actor/d_a_e_hp.cpp @@ -768,7 +768,7 @@ void daE_HP_c::executeDead() { -1, 0, 0); } - if (fopAcM_IsExecuting(field_0x784)) { + if (fopAcM_IsExecuting(field_0x784) != FALSE) { fopAc_ac_c* player = dComIfGp_getPlayer(0); if (player->eventInfo.chkCondition(8)) { field_0x778 = diff --git a/src/d/actor/d_a_e_pz.cpp b/src/d/actor/d_a_e_pz.cpp index 297fcf191ef..011a8e46dc4 100644 --- a/src/d/actor/d_a_e_pz.cpp +++ b/src/d/actor/d_a_e_pz.cpp @@ -199,8 +199,8 @@ static u8 l_initHIO; static daE_PZ_HIO_c l_HIO; /* 80761E29 0003+00 data_80761E29 None */ -static u8 data_80761E28; -static u8 data_80761E29; +static u8 lbl_222_bss_70; +static u8 lbl_222_bss_71; /* 80758A94-80758BA0 000614 010C+00 3/3 0/0 0/0 .text mPzScaleSet__8daE_PZ_cFb */ bool daE_PZ_c::mPzScaleSet(bool param_0) { @@ -481,6 +481,7 @@ void daE_PZ_c::executeOpeningDemo() { cXyz sp108; cXyz spFC; + f32 var_f31 = 0.0f; fopAc_ac_c* parent; int sp28 = 22; @@ -645,11 +646,11 @@ void daE_PZ_c::executeOpeningDemo() { if (mAnm != 0xD) { setBck(0xD, 2, 3.0f, 1.0f); - parentActorID = fopAcM_createChild(PROC_E_PZ, fopAcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL); + // fakematch, fpcM_GetID should be fopAcM_GetID + parentActorID = fopAcM_createChild(PROC_E_PZ, fpcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL); } - field_0x7d8 = 0; - data_80761E29 = 0; + lbl_222_bss_71 = field_0x7d8 = 0; if (field_0x7d0 == 0) { field_0x7d0 = 120; @@ -743,9 +744,8 @@ void daE_PZ_c::executeOpeningDemo() { } break; case 130: - field_0x7d8 = 2; - data_80761E29 = 2; - data_80761E28 = 0; + lbl_222_bss_71 = field_0x7d8 = 2; + lbl_222_bss_70 = 0; case 30: if (!eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(this, 2, 0xFFFF, 3); @@ -764,11 +764,13 @@ void daE_PZ_c::executeOpeningDemo() { sp120.set(mPzCenterInit_dt[7]); sp108 = mDemoCameraCenter - sp120; - cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, sp108.abs() / 20.0f, 1.0f); + var_f31 = sp108.abs() / 20.0f; + cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, var_f31, 1.0f); sp114.set(mPzEyeInit_dt[7]); spFC = mDemoCameraEye - sp114; - cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, spFC.abs() / 20.0f, 1.0f); + var_f31 = spFC.abs() / 20.0f; + cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, var_f31, 1.0f); if (field_0x7d0 == 0) { if (fopAcM_SearchByID(parentActorID, &parent) && parent != NULL) { @@ -851,7 +853,7 @@ void daE_PZ_c::executeOpeningDemo() { if (field_0x7d7 != 0) { if (field_0x7d7 == 1) { - data_80761E28 = 1; + lbl_222_bss_70 = 1; mDemoCameraCenter.set(mPzCenterInit_dt[17]); mDemoCameraEye.set(mPzEyeInit_dt[17]); @@ -956,11 +958,13 @@ void daE_PZ_c::executeOpeningDemo() { case 106: sp120.set(mPzCenterInit_dt[12]); sp108 = mDemoCameraCenter - sp120; - cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, sp108.abs() / 10.0f, 1.0f); + var_f31 = sp108.abs() / 10.0f; + cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, var_f31, 1.0f); sp114.set(mPzEyeInit_dt[12]); spFC = mDemoCameraEye - sp114; - cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, spFC.abs() / 10.0f, 1.0f); + var_f31 = spFC.abs() / 10.0f; + cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, var_f31, 1.0f); if (field_0x7d0 != 0 || sp108.abs() > 2.0f || spFC.abs() > 2.0f) { break; @@ -998,10 +1002,10 @@ void daE_PZ_c::executeOpeningDemo() { case 109: if (mAnm == 0xB && mpModelMorf->isStop()) { setBck(0xD, 2, 3.0f, 1.0f); - parentActorID = fopAcM_createChild(PROC_E_PZ, fopAcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL); + // fakematch, fpcM_GetID should be fopAcM_GetID + parentActorID = fopAcM_createChild(PROC_E_PZ, fpcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL); - field_0x7d8 = 2; - data_80761E29 = 2; + lbl_222_bss_71 = field_0x7d8 = 2; } if (mAnm != 0xB && mAnm != 0xD) { @@ -1147,11 +1151,12 @@ void daE_PZ_c::executeOpeningDemo() { } else { daPy_getPlayerActorClass()->changeDemoMode(0x17, 1, 0, 0); } - + mDemoCameraCenter.set(mPzCenterInit_dt[3]); mDemoCameraEye.set(mPzEyeInit_dt[4]); - parentActorID = fopAcM_createChild(PROC_E_PZ, fopAcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL); + // fakematch, fpcM_GetID should be fopAcM_GetID + parentActorID = fopAcM_createChild(PROC_E_PZ, fpcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL); setBck(0xC, 0, 10.0f, 1.0f); daPy_getPlayerActorClass()->changeDemoMode(0x10, 0, 0, 0); @@ -1447,7 +1452,7 @@ void daE_PZ_c::executeAttack() { } var_r27++; - if (data_80761E29 != var_r28) { + if (lbl_222_bss_71 != var_r28) { field_0x7d8 = var_r28; var_r27 = 100; } @@ -1967,7 +1972,7 @@ void daE_PZ_c::executeSummonsBullet() { if (((daE_PZ_c*)sp8C)->field_0x7dc[field_0x7d7] == 0) { sp84 = BIRTH_DT[((daE_PZ_c*)sp8C)->field_0x7d8].parameters; - data_80761E29 = ((daE_PZ_c*)sp8C)->field_0x7d8; + lbl_222_bss_71 = ((daE_PZ_c*)sp8C)->field_0x7d8; if (((daE_PZ_c*)sp8C)->field_0x7d8 == 2) { sp84 |= field_0x7d7 << 8; @@ -2062,7 +2067,7 @@ void daE_PZ_c::executeSummonsBullet() { if (((daE_PZ_c*)sp88)->field_0x841 != 0) { field_0x7d7 = 1; - if (data_80761E28 == 0) { + if (lbl_222_bss_70 == 0) { break; } diff --git a/src/d/actor/d_a_npc_ykm.cpp b/src/d/actor/d_a_npc_ykm.cpp index 0096d189664..11d95b45322 100644 --- a/src/d/actor/d_a_npc_ykm.cpp +++ b/src/d/actor/d_a_npc_ykm.cpp @@ -179,6 +179,15 @@ static int l_bmdData[6][2] = { {BMDR_LEAF, YKM3}, }; +enum BmdIndex { + BMD_INDEX_YKM, + BMD_INDEX_YKM_TOMATO, + BMD_INDEX_YKM_LEAF, + BMD_INDEX_YKM_CHEESE, + BMD_INDEX_FISH, + BMD_INDEX_LEAF, +}; + /* 80B5DB38-80B5DB88 -00001 0050+00 0/1 0/0 0/0 .data l_evtList */ static daNpcT_evtData_c l_evtList[10] = { {"", 0}, @@ -547,21 +556,26 @@ cPhs__Step daNpc_ykM_c::create() { /* 80B53990-80B53F00 000590 0570+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_ykM_cFv */ int daNpc_ykM_c::CreateHeap() { - // NONMATCHING - J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[mTwilight ? 0 : 1][1]], - l_bmdData[mTwilight ? 0 : 1][0]); + void* mdlData_p = NULL; + J3DModel* model = NULL; + + int sp40 = mTwilight == 1 ? BMD_INDEX_YKM : BMD_INDEX_YKM; + int arcNameIdx = l_bmdData[sp40][1]; + int resIndex = l_bmdData[sp40][0]; + mdlData_p = dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex); if (mdlData_p == NULL) { return 1; } - mpMorf[0] = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020284); + int sp34 = 0x11020284; + mpMorf[0] = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, sp34); if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) { return 0; } - J3DModel* model = mpMorf[0]->getModel(); - for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { - mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + model = mpMorf[0]->getModel(); + for (u16 i = 0; i < ((J3DModelData*)mdlData_p)->getJointNum(); i++) { + ((J3DModelData*)mdlData_p)->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); } model->setUserArea((uintptr_t)this); @@ -570,66 +584,74 @@ int daNpc_ykM_c::CreateHeap() { return 0; } - static int const bmdTypeList[3] = {1, 2, 3}; + static BmdIndex const bmdTypeList[3] = {BMD_INDEX_YKM_TOMATO, BMD_INDEX_YKM_LEAF, BMD_INDEX_YKM_CHEESE}; switch (mType) { - case TYPE_COOK: - for (int i = 0; i < 3; i++) { - if (l_bmdData[bmdTypeList[i]][0] >= 0) { - mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[i]][1]], l_bmdData[bmdTypeList[i]][0]); - } else { - mdlData_p = NULL; - } + case TYPE_COOK: + for (int i = 0; i < 3; i++) { + if (l_bmdData[bmdTypeList[i]][0] >= 0) { + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[i]][1]], l_bmdData[bmdTypeList[i]][0]); + } else { + mdlData_p = NULL; + } - // field_0xe4c holds a Pumpkin, Leaf, and Cheese model (in that order) - if (mdlData_p != NULL) { - field_0xe4c[i] = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084); - } else { - field_0xe4c[i] = NULL; - } + // field_0xe4c holds a Pumpkin, Leaf, and Cheese model (in that order) + if (mdlData_p != NULL) { + field_0xe4c[i] = mDoExt_J3DModel__create((J3DModelData*)mdlData_p, 0x80000, 0x11000084); + } else { + field_0xe4c[i] = NULL; } - break; + } + break; - case TYPE_2: - mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[4][1]], l_bmdData[4][0]); + case TYPE_2: + sp40 = BMD_INDEX_FISH; + arcNameIdx = l_bmdData[sp40][1]; + resIndex = l_bmdData[sp40][0]; + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex); - JUT_ASSERT(1595, 0 != mdlData_p); + JUT_ASSERT(1595, 0 != mdlData_p); - mFishModelMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, - NULL, 0x80000, 0x11000084); - if (mFishModelMorf == NULL || mFishModelMorf->getModel() == NULL) { - return 0; - } + sp34 = 0x11000084; + mFishModelMorf = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, + NULL, 0x80000, sp34); + if (mFishModelMorf == NULL || mFishModelMorf->getModel() == NULL) { + return 0; + } - mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[5][1]], l_bmdData[5][0]); + sp40 = BMD_INDEX_LEAF; + arcNameIdx = l_bmdData[BMD_INDEX_LEAF][1]; + resIndex = l_bmdData[BMD_INDEX_LEAF][0]; + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex); - JUT_ASSERT(1622, 0 != mdlData_p); + JUT_ASSERT(1622, 0 != mdlData_p); - mLeafModelMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, - NULL, 0x80000, 0x11000084); - if (mLeafModelMorf == NULL || mLeafModelMorf->getModel() == NULL) { - return 0; - } - setLeafAnm(ANM_LEAF_WAIT_A, 0.0f); + sp34 = 0x11000084; + mLeafModelMorf = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, + NULL, 0x80000, sp34); + if (mLeafModelMorf == NULL || mLeafModelMorf->getModel() == NULL) { + return 0; + } + setLeafAnm(ANM_LEAF_WAIT_A, 0.0f); - mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]); - if (mdlData_p != NULL) { - field_0xe4c[1] = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084); - } else { - field_0xe4c[1] = NULL; - } - break; + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]); + if (mdlData_p != NULL) { + field_0xe4c[1] = mDoExt_J3DModel__create((J3DModelData*)mdlData_p, 0x80000, 0x11000084); + } else { + field_0xe4c[1] = NULL; + } + break; - case TYPE_3: - break; + case TYPE_3: + break; - case TYPE_4: - mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]); - if (mdlData_p != NULL) { - field_0xe4c[1] = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084); - } else { - field_0xe4c[1] = NULL; - } - break; + case TYPE_4: + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]); + if (mdlData_p != NULL) { + field_0xe4c[1] = mDoExt_J3DModel__create((J3DModelData*)mdlData_p, 0x80000, 0x11000084); + } else { + field_0xe4c[1] = NULL; + } + break; } if (setFaceMotionAnm(1, false) && setMotionAnm(0, 0.0f, FALSE)) { @@ -864,8 +886,8 @@ BOOL daNpc_ykM_c::isDelete() { } /* 80B548A8-80B54B44 0014A8 029C+00 1/1 0/0 0/0 .text reset__11daNpc_ykM_cFv */ +// NONMATCHING - m_nextID load issue, regalloc void daNpc_ykM_c::reset() { - // NONMATCHING csXyz angle; int iVar1 = (u8*)&field_0x1588 - (u8*)&mpNextAction; @@ -878,7 +900,7 @@ void daNpc_ykM_c::reset() { } memset(&mpNextAction, 0, iVar1); - + if (getPathID() != 0xFF) { mPath.initialize(); mPath.setPathInfo(getPathID(), fopAcM_GetRoomNo(this), 0); @@ -894,6 +916,8 @@ void daNpc_ykM_c::reset() { angle.y = home.angle.y; switch (mType) { + case TYPE_COOK: + break; case TYPE_2: field_0x1568 = -20.0f; field_0x1579 = 1; @@ -1277,8 +1301,9 @@ void daNpc_ykM_c::afterMoved() { } /* 80B55A64-80B560B4 002664 0650+00 1/0 0/0 0/0 .text setAttnPos__11daNpc_ykM_cFv */ +// NONMATCHING - HIO load issue void daNpc_ykM_c::setAttnPos() { - // NONMATCHING + fopAc_ac_c* otherYkmP = NULL; cXyz sp104(80.0f, 30.0f, 0.0f); cXyz sp110(80.0f, 0.0f, 0.0f); @@ -1291,25 +1316,26 @@ void daNpc_ykM_c::setAttnPos() { } f32 fVar1 = cM_s2rad((s16)(mCurAngle.y - field_0xd7e.y)); - f32 fVar2 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_max; - f32 fVar3 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_min; - f32 fVar4 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_max; - f32 fVar5 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_min; - f32 fVar6 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_max; - f32 fVar7 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_min; - f32 fVar8 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_max; - f32 fVar9 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_min; - J3DModel* model = mpMorf[0]->getModel(); - mJntAnm.setParam(this, model, &sp104, getBackboneJointNo(), getNeckJointNo(), getHeadJointNo(), fVar9, fVar8, fVar7, fVar6, fVar5, fVar4, fVar3, - fVar2, daNpc_ykM_Param_c::m.common.neck_rotation_ratio, fVar1, &sp110); - + mJntAnm.setParam(this, mpMorf[0]->getModel(), &sp104, + getBackboneJointNo(), getNeckJointNo(), getHeadJointNo(), + field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_min, + field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_max, + field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_min, + field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_max, + field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_min, + field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_max, + field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_min, + field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_max, + daNpc_ykM_Param_c::m.common.neck_rotation_ratio, fVar1, &sp110); + if (mJntAnm.getMode() == daNpcT_JntAnm_c::LOOK_MODE_8) { mJntAnm.calcJntRad(0.1f, 1.0f, fVar1); } else { mJntAnm.calcJntRad(0.2f, 1.0f, fVar1); } - model = mpMorf[0]->getModel(); + J3DModel* model = mpMorf[0]->getModel(); + J3DModelData* modelData = model->getModelData(); cXyz sp11c(current.pos); sp11c.y += field_0x1568; mDoMtx_stack_c::transS(sp11c); @@ -1336,7 +1362,7 @@ void daNpc_ykM_c::setAttnPos() { mDoMtx_stack_c::multVecZero(&sp128); Mtx mtx; - MTXCopy(mDoMtx_stack_c::get(), mtx); + cMtx_copy(mDoMtx_stack_c::get(), mtx); mFishModelMorf->getModel()->setBaseTRMtx(mtx); mFishModelMorf->modelCalc(); @@ -1348,7 +1374,7 @@ void daNpc_ykM_c::setAttnPos() { if (mLeafModelMorf != NULL) { mLeafModelMorf->play(0, 0); - fopAc_ac_c* otherYkmP = getOtherYkmP(5); + otherYkmP = getOtherYkmP(5); if (otherYkmP != NULL) { mDoMtx_stack_c::transS(otherYkmP->current.pos); mDoMtx_stack_c::ZXYrotM(otherYkmP->shape_angle); @@ -2042,7 +2068,7 @@ int daNpc_ykM_c::cutGetTomatoPuree(int i_cutIndex) { } } - int iVar2[2] = {0, -1}; + int iVar2[2] = {-1, -1}; daObj_Gadget_c* actor_p; f32 fVar1; int iVar1; @@ -2260,7 +2286,7 @@ int daNpc_ykM_c::cutGetTaste(int i_cutIndex) { break; } } - int iVar2[2] = {0, -1}; + int iVar2[2] = {-1, -1}; daObj_Gadget_c* actor_p; f32 fVar1; int iVar1; @@ -2397,8 +2423,7 @@ int daNpc_ykM_c::cutGetTaste(int i_cutIndex) { /* 80B58A38-80B59500 005638 0AC8+00 1/0 0/0 0/0 .text cutLv5DungeonClear__11daNpc_ykM_cFi */ int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) { - // NONMATCHING - daPy_py_c* player = daPy_getPlayerActorClass(); + daPy_py_c* player = (daPy_py_c*)daPy_getPlayerActorClass(); cXyz work; int rv = 0; int prm = -1; @@ -2415,6 +2440,8 @@ int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) { } fopAc_ac_c* actor_p; + s16 sVar1; + s16 angleY; if (dComIfGp_getEventManager().getIsAddvance(i_cutIndex)) { switch (prm) { case 0: @@ -2429,7 +2456,8 @@ int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) { mMotionSeqMngr.setNo(MOTION_RUN, -1.0f, FALSE, 0); mSound.startCreatureVoice(Z2SE_YKM_V_DASH, -1); mEventTimer = timer; - daPy_getPlayerActorClass()->setPlayerPosAndAngle(&player->current.pos, fopAcM_searchActorAngleY(player, this), 0); + angleY = fopAcM_searchActorAngleY(player, this); + ((daPy_py_c*)daPy_getPlayerActorClass())->setPlayerPosAndAngle(&player->current.pos, angleY, 0); dComIfGp_getEvent().setPt2(this); break; @@ -2525,7 +2553,6 @@ int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) { } int iVar2[2] = {-1, -1}; - s16 sVar1; switch (prm) { case 0: rv = 1; @@ -2967,8 +2994,8 @@ static u8 const lit_7385[8] = { /* 80B5A128-80B5A224 006D28 00FC+00 1/1 0/0 0/0 .text setDialogueMotion__11daNpc_ykM_cFv */ void daNpc_ykM_c::setDialogueMotion() { - // NONMATCHING - u32 uVar1 = field_0x154c >> 1; + int uVar1 = field_0x154c; + uVar1 >>= 1; if (0.5f < cM_rnd()) { if (cM_rnd() - 0.5f < 0.0f) { @@ -3319,7 +3346,6 @@ BOOL daNpc_ykM_c::cook(void* param_1) { /* 80B5B260-80B5BE08 007E60 0BA8+00 2/0 0/0 0/0 .text race__11daNpc_ykM_cFPv */ BOOL daNpc_ykM_c::race(void* param_1) { - // NONMATCHING cXyz work; fopAc_ac_c* actors[2] = {this, daPy_getPlayerActorClass()}; s16 sVar1; @@ -3397,7 +3423,8 @@ BOOL daNpc_ykM_c::race(void* param_1) { } if (field_0x157e == 0) { - do { + int idx; + while (true) { if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) { if (mPath.getArg0() == 0) { mSound.startCreatureSound(Z2SE_YM_SNOBO_JUMP, 0, -1); @@ -3408,46 +3435,47 @@ BOOL daNpc_ykM_c::race(void* param_1) { if (mPath.setNextIdx(mPath.getNumPnts()) != 0) { field_0x1585 = 1; mMotionSeqMngr.setNo(MOTION_SB_GOAL, -1.0f, FALSE, 0); - break; - } - } + } else { + if (field_0x157e == 0) { + continue; + } - int idx; - if (field_0x157e != 0) { - if (!mStagger.checkStagger()) { - mMotionSeqMngr.setNo(MOTION_SB_JUMP_A, -1.0f, FALSE, 0); - } + if (!mStagger.checkStagger()) { + mMotionSeqMngr.setNo(MOTION_SB_JUMP_A, -1.0f, FALSE, 0); + } - field_0x1514 = current.pos; + field_0x1514 = current.pos; + idx = mPath.getIdx(); + field_0x1520 = mPath.getPntPos(idx); + current.angle.y = cLib_targetAngleY(&field_0x1514, &field_0x1520); + int iVar3 = (int)((field_0x1520 - field_0x1514).absXZ() / speedF) + 1; + speed.y = (field_0x1520.y - field_0x1514.y) + fabsf(gravity) * iVar3 * iVar3 * 0.5f; + speed.y /= iVar3; + } + } else { idx = mPath.getIdx(); - field_0x1520 = mPath.getPntPos(idx); - current.angle.y = cLib_targetAngleY(&field_0x1514, &field_0x1520); - int iVar3 = (int)((field_0x1520 - field_0x1514).absXZ() / speedF) + 1; - speed.y = (field_0x1520.y - field_0x1514.y) + iVar3 * iVar3 * fabsf(gravity) * 0.5f; - speed.y /= iVar3; + work = mPath.getPntPos(idx); } - - idx = mPath.getIdx(); - work = mPath.getPntPos(idx); break; - } while (field_0x157e == 0); + } } if (field_0x1585 == 0 && field_0x157e == 0) { - current.angle.y = cLib_targetAngleY(¤t.pos, &work); + s16 angleY = cLib_targetAngleY(¤t.pos, &work); + current.angle.y = angleY; cLib_addCalcAngleS2(&shape_angle.y, current.angle.y, 8, 0x100); mCurAngle.y = shape_angle.y; if (!mStagger.checkStagger() && (mMotionSeqMngr.getNo() != MOTION_SB_JUMP_C || mMotionSeqMngr.checkEndSequence())) { - int sVar2 = sVar1 - mCurAngle.y; - if (0.0f < cM_sht2d(sVar2)) { - if (4.0f < cM_sht2d(sVar2)) { + angleY -= mCurAngle.y; + if (0.0f < cM_sht2d(angleY)) { + if (4.0f < cM_sht2d(angleY)) { mMotionSeqMngr.setNo(MOTION_SB_TURNL, 24.0f, FALSE, 0); } else { mMotionSeqMngr.setNo(MOTION_SB_WAIT, 24.0f, FALSE, 0); } } else { - if (cM_sht2d(sVar2) < -4.0f) { + if (cM_sht2d(angleY) < -4.0f) { mMotionSeqMngr.setNo(MOTION_SB_TURNR, 24.0f, FALSE, 0); } else { mMotionSeqMngr.setNo(MOTION_SB_WAIT, 24.0f, FALSE, 0); @@ -3455,9 +3483,9 @@ BOOL daNpc_ykM_c::race(void* param_1) { } } - s16 sVar3 = -fopAcM_getPolygonAngle(mGndChk, current.angle.y + 0x4000); + angleY = -fopAcM_getPolygonAngle(mGndChk, current.angle.y + 0x4000); cLib_addCalcAngleS2(&mCurAngle.x, mGroundAngle, 6, 0x200); - cLib_addCalcAngleS2(&mCurAngle.z, sVar3, 6, 0x200); + cLib_addCalcAngleS2(&mCurAngle.z, angleY, 6, 0x200); int iVar1 = field_0x1560 - field_0x1558.field_0x0; f32 fVar2 = daNpc_ykM_Param_c::m.slide_speed * cM_scos(mGroundAngle); @@ -3472,9 +3500,10 @@ BOOL daNpc_ykM_c::race(void* param_1) { field_0x1540 = 8; } - int iVar2 = cLib_minMaxLimit(iVar1 + daNpc_ykM_Param_c::m.competition_prm_a, 0, daNpc_ykM_Param_c::m.competition_prm_b); + iVar1 += daNpc_ykM_Param_c::m.competition_prm_a; + int iVar2 = cLib_minMaxLimit(iVar1, 0, daNpc_ykM_Param_c::m.competition_prm_b); if (iVar2 > 0) { - fVar2 *= daNpc_ykM_Param_c::m.competition_prm_c * 0.1f * abs(iVar2) + 1.0f; + fVar2 *= abs(iVar2) * 0.1f * daNpc_ykM_Param_c::m.competition_prm_c + 1.0f; } } @@ -3561,7 +3590,6 @@ BOOL daNpc_ykM_c::talk(void* param_1) { #ifdef DEBUG BOOL daNpc_ykM_c::test(void* param_1) { - // NONMATCHING switch (mMode) { case 1: speedF = 0.0f; diff --git a/src/d/actor/d_a_npc_ykw.cpp b/src/d/actor/d_a_npc_ykw.cpp index c34a17ae4cd..ce3db4a1d8a 100644 --- a/src/d/actor/d_a_npc_ykw.cpp +++ b/src/d/actor/d_a_npc_ykw.cpp @@ -408,21 +408,20 @@ f32 dummy_1f() { } /* 80B5F34C-80B5F5C8 00052C 027C+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_ykW_cFv */ -// NONMATCHING - regalloc int daNpc_ykW_c::CreateHeap() { - J3DModelData* modelData = NULL; + void* mdlData_p = NULL; J3DModel* model = NULL; int bmdDataIdx = 0; int arcNameIdx = l_bmdData[bmdDataIdx][1]; int resIndex = l_bmdData[bmdDataIdx][0]; - modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex); - if (modelData == NULL) { + mdlData_p = dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex); + if (mdlData_p == NULL) { return 0; } int temp1 = 0x11020284; - mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, + mpMorf[0] = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, temp1); if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) { @@ -434,8 +433,8 @@ int daNpc_ykW_c::CreateHeap() { } model = mpMorf[0]->getModel(); - for (u16 i = 0; i < modelData->getJointNum(); i++) { - modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + for (u16 i = 0; i < ((J3DModelData*)mdlData_p)->getJointNum(); i++) { + ((J3DModelData*)mdlData_p)->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); } model->setUserArea((uintptr_t)this); @@ -992,7 +991,7 @@ void daNpc_ykW_c::afterMoved() { } /* 80B60F08-80B614D0 0020E8 05C8+00 1/0 0/0 0/0 .text setAttnPos__11daNpc_ykW_cFv */ -// NONMATCHING - HIO load issue +// NONMATCHING - HIO load issue, regalloc void daNpc_ykW_c::setAttnPos() { cXyz unkXyz1(0.0f, 50.0f, 0.0f); if (field_0x106a != 0) { @@ -2790,7 +2789,6 @@ int daNpc_ykW_c::walk(void* param_0) { } /* 80B6591C-80B6640C 006AFC 0AF0+00 2/0 0/0 0/0 .text race__11daNpc_ykW_cFPv */ -// NONMATCHING - multiple issues int daNpc_ykW_c::race(void* param_0) { int unkInt1; s16 targetAngleY; @@ -2878,8 +2876,8 @@ int daNpc_ykW_c::race(void* param_0) { field_0x106e = 0; } - do { - if (field_0x106e == 0) { + if (field_0x106e == 0) { + while (true) { if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) { if (mPath.getArg0() == 0) { mSound.startCreatureSound(Z2SE_YW_SNOBO_JUMP, 0, -1); @@ -2890,7 +2888,11 @@ int daNpc_ykW_c::race(void* param_0) { field_0x1064 = 1; field_0x1065 = 1; mMotionSeqMngr.setNo(32, -1.0f, 0, 0); - } else if (field_0x106e != 0) { + } else { + if (field_0x106e == 0) { + continue; + } + if (!mStagger.checkStagger()) { mMotionSeqMngr.setNo(25, -1.0f, 0, 0); } @@ -2908,10 +2910,11 @@ int daNpc_ykW_c::race(void* param_0) { idx = mPath.getIdx(); unkXyz1 = mPath.getPntPos(idx); } + break; } - } while (field_0x1064 == 0); + } - if (field_0x106e == 0) { + if (field_0x1064 == 0 && field_0x106e == 0) { targetAngleY = cLib_targetAngleY(¤t.pos, &unkXyz1); current.angle.y = targetAngleY; cLib_addCalcAngleS2(&shape_angle.y, current.angle.y, 4, 0x200); @@ -2935,20 +2938,20 @@ int daNpc_ykW_c::race(void* param_0) { targetAngleY = -fopAcM_getPolygonAngle(mGndChk, (s16)(current.angle.y + 0x4000)); cLib_addCalcAngleS2(&mCurAngle.x, mGroundAngle, 6, 0x200); cLib_addCalcAngleS2(&mCurAngle.z, targetAngleY, 6, 0x200); - unkInt1 = field_0x104c - field_0x1044.field_0x0; + int unkInt2 = field_0x104c - field_0x1044.field_0x0; unkFloat1 = HIO_PARAM(this)->mSlidingSpeed * cM_scos(mGroundAngle); if (mStagger.checkStagger()) { unkFloat1 *= 0.0f; } else { - unkInt1 += HIO_PARAM(this)->mCompetParamA; - unkInt1 = cLib_minMaxLimit(unkInt1, 0, HIO_PARAM(this)->mCompetParamB); - if (unkInt1 > 0) { - unkFloat1 *= (f32)abs(unkInt1) * 0.1f * HIO_PARAM(this)->mCompetParamC + 1.0f; + unkInt2 += HIO_PARAM(this)->mCompetParamA; + unkInt2 = cLib_minMaxLimit(unkInt2, 0, HIO_PARAM(this)->mCompetParamB); + if (unkInt2 > 0) { + unkFloat1 *= (f32)abs(unkInt2) * 0.1f * HIO_PARAM(this)->mCompetParamC + 1.0f; } } cLib_chaseF(&speedF, unkFloat1, HIO_PARAM(this)->mSlidingAccel); - mSound.startCreatureSound(Z2SE_YW_SNOBO_RIDE, speedF, -1); - mSound.startCreatureVoice(Z2SE_YW_V_SNOBO_RIDING, -1); + mSound.startCreatureSoundLevel(Z2SE_YW_SNOBO_RIDE, speedF, -1); + mSound.startCreatureVoiceLevel(Z2SE_YW_V_SNOBO_RIDING, -1); } } attention_info.flags = 0; diff --git a/src/d/actor/d_a_npc_zra.cpp b/src/d/actor/d_a_npc_zra.cpp index 214e245694e..f621822fa1b 100644 --- a/src/d/actor/d_a_npc_zra.cpp +++ b/src/d/actor/d_a_npc_zra.cpp @@ -9,6 +9,7 @@ #include "SSystem/SComponent/c_math.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "Z2AudioLib/Z2Instances.h" #include "f_op/f_op_actor_mng.h" #include "f_op/f_op_kankyo_mng.h" #include "d/d_com_inf_game.h" @@ -2402,177 +2403,7 @@ static int daNpc_zrA_IsDelete(void* i_this) { #include "d/actor/d_a_npc_zra.inc" -/* ############################################################################################## */ -/* 80B8DAB4-80B8DAB8 000074 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAB4[4]; -#pragma pop - -/* 80B8DAB8-80B8DABC 000078 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAB8[4]; -#pragma pop - -/* 80B8DABC-80B8DAC0 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B8DABC[4]; -#pragma pop - -/* 80B8DAC0-80B8DAC4 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAC0[4]; -#pragma pop - -/* 80B8DAC4-80B8DAC8 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DAC4[4]; -#pragma pop - -/* 80B8DAC8-80B8DACC 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DAC8[4]; -#pragma pop - -/* 80B8DACC-80B8DAD0 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DACC[4]; -#pragma pop - -/* 80B8DAD0-80B8DAD4 000090 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAD0[4]; -#pragma pop - -/* 80B8DAD4-80B8DAD8 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAD4[4]; -#pragma pop - -/* 80B8DAD8-80B8DADC 000098 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAD8[4]; -#pragma pop - -/* 80B8DADC-80B8DAE0 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B8DADC[4]; -#pragma pop - -/* 80B8DAE0-80B8DAE4 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAE0[4]; -#pragma pop - -/* 80B8DAE4-80B8DAE8 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAE4[4]; -#pragma pop - -/* 80B8DAE8-80B8DAEC 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DAE8[4]; -#pragma pop - -/* 80B8DAEC-80B8DAF0 0000AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAEC[4]; -#pragma pop - -/* 80B8DAF0-80B8DAF4 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAF0[4]; -#pragma pop - -/* 80B8DAF4-80B8DAF8 0000B4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAF4[4]; -#pragma pop - -/* 80B8DAF8-80B8DAFC 0000B8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80B8DAF8[4]; -#pragma pop - -/* 80B8DAFC-80B8DB00 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DAFC[4]; -#pragma pop - -/* 80B8DB00-80B8DB04 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B8DB00[4]; -#pragma pop - -/* 80B8DB04-80B8DB08 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DB04[4]; -#pragma pop - -/* 80B8DB08-80B8DB0C 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DB08[4]; -#pragma pop - -/* 80B8DB0C-80B8DB10 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DB0C[4]; -#pragma pop - -/* 80B8DB10-80B8DB14 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B8DB10[4]; -#pragma pop - -/* 80B8DB14-80B8DB18 0000D4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B8DB14[4]; -#pragma pop +AUDIO_INSTANCES /* 80B8D8DC-80B8D8FC -00001 0020+00 1/0 0/0 0/0 .data daNpc_zrA_MethodTable */ static actor_method_class daNpc_zrA_MethodTable = { diff --git a/src/d/actor/d_a_obj_toby.cpp b/src/d/actor/d_a_obj_toby.cpp index 76d7514413d..863ed4bef13 100644 --- a/src/d/actor/d_a_obj_toby.cpp +++ b/src/d/actor/d_a_obj_toby.cpp @@ -50,6 +50,17 @@ static s8 r11yuka_image[192] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +class daObj_Toby_HIO_c : public JORReflexible{ +public: + /* 80D1378C */ daObj_Toby_HIO_c(); + /* 80D15534 */ virtual ~daObj_Toby_HIO_c() {} + + void genMessage(JORMContext*); + + /* 0x4 */ s8 field_0x4; + /* 0x8 */ f32 field_0x8; +}; + /* 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; @@ -435,24 +446,24 @@ static int daObj_Toby_Delete(obj_toby_class* i_this) { // nonmatching - regalloc static int useHeapInit(fopAc_ac_c* a_this) { obj_toby_class* i_this = (obj_toby_class*)a_this; - J3DModelData* modelData; - J3DModelData* modelData2; + void* modelData; + void* modelData2; yuka_s* pYuka; - + if (i_this->field_0x577 == 0) { - modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 4); + modelData = dComIfG_getObjectRes(i_this->mArcName, 4); JUT_ASSERT(868, modelData != 0); - modelData2 = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 5); + modelData2 = 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); + i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x20000, 0x11000084); if (i_this->mYukas[i].mModel1 == NULL) { return 0; } - i_this->mYukas[i].mModel2 = mDoExt_J3DModel__create(modelData2, 0x20000, 0x11000084); + i_this->mYukas[i].mModel2 = mDoExt_J3DModel__create((J3DModelData*)modelData2, 0x20000, 0x11000084); if (i_this->mYukas[i].mModel2 == NULL) { return 0; } @@ -467,11 +478,11 @@ static int useHeapInit(fopAc_ac_c* a_this) { } } else if (i_this->field_0x577 == 1) { a_this->field_0x567 = 1; - modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 6); + modelData = 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); + i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x20000, 0x11000084); if (i_this->mYukas[i].mModel1 == NULL) { return 0; } diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index 6580716bb78..2932f7c642c 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -1636,20 +1636,16 @@ void dDlst_shadowControl_c::draw(Mtx param_0) { GXSetAlphaUpdate(GX_DISABLE); } -/* 803A8D9C-803A8DCC 005EBC 0030+00 0/0 0/0 0/0 .data mtx_adj$5842 */ -#pragma push -#pragma force_active on -SECTION_DATA static Mtx mtx_adj = { - {0.5f, 0.0f, 0.0f, 0.5f}, - {0.0f, -0.5f, 0.0f, 0.5f}, - {0.0f, 0.0f, 1.0f, 0.0f}, -}; -#pragma pop - /* 80055C74-80055F1C 0505B4 02A8+00 0/0 1/1 1/1 .text * setReal__21dDlst_shadowControl_cFUlScP8J3DModelP4cXyzffP12dKy_tevstr_c */ int dDlst_shadowControl_c::setReal(u32 param_1, s8 param_2, J3DModel* param_3, cXyz* param_4, f32 param_5, f32 param_6, dKy_tevstr_c* param_7) { + static Mtx mtx_adj = { + {0.5f, 0.0f, 0.0f, 0.5f}, + {0.0f, -0.5f, 0.0f, 0.5f}, + {0.0f, 0.0f, 1.0f, 0.0f}, + }; + f32 fVar1; f32 dVar16 = (param_2 == 0) ? 1.0f : (1.0f - 0.003000000026077032f * param_6); if (dVar16 <= 0.0f) { diff --git a/src/d/d_ev_camera.cpp b/src/d/d_ev_camera.cpp index b24ae809776..7dfe184844c 100644 --- a/src/d/d_ev_camera.cpp +++ b/src/d/d_ev_camera.cpp @@ -4142,23 +4142,3 @@ bool dCamera_c::bspTransEvCamera() { bool dCamera_c::portalWarpEvCamera() { return true; } - -/* 8009771C-80097738 09205C 001C+00 11/11 22/22 0/0 .text attentionPos__9dCamera_cFP10fopAc_ac_c */ -cXyz dCamera_c::attentionPos(fopAc_ac_c* a_this) { - return a_this->attention_info.position; -} - -/* 80097738-8009775C 092078 0024+00 10/10 10/10 0/0 .text directionOf__9dCamera_cFP10fopAc_ac_c */ -cSAngle dCamera_c::directionOf(fopAc_ac_c* a_this) { - return a_this->shape_angle.y; -} - -/* 8009775C-80097778 09209C 001C+00 9/9 20/20 0/0 .text positionOf__9dCamera_cFP10fopAc_ac_c */ -cXyz dCamera_c::positionOf(fopAc_ac_c* a_this) { - return a_this->current.pos; -} - -/* 8009778C-800977A8 0920CC 001C+00 1/1 2/2 0/0 .text eyePos__9dCamera_cFP10fopAc_ac_c */ -cXyz dCamera_c::eyePos(fopAc_ac_c* a_this) { - return a_this->eyePos; -} diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index fd52937efe9..c71ab89fa76 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -3,10 +3,12 @@ #include "d/d_kankyo.h" #include #include + #include "SSystem/SComponent/c_counter.h" #include "SSystem/SComponent/c_math.h" #include "d/actor/d_a_kytag08.h" #include "d/actor/d_a_player.h" +#include "d/d_debug_viewer.h" #include "d/d_kankyo_rain.h" #include "d/d_kankyo_static.h" #include "d/d_meter2_info.h" @@ -3526,6 +3528,7 @@ void dScnKy_env_light_c::setLightTevColorType(J3DModelData*, dKy_tevstr_c*) {} // NONMATCHING - some minor issues with dKyd_maple_col_getp static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c* tevstr_p, int lightType) { + int i; dScnKy_env_light_c* kankyo = dKy_getEnvlight(); MtxP view_mtx = j3dSys.getViewMtx(); camera_class* camera = (camera_class*)dComIfGp_getCamera(0); @@ -3597,7 +3600,7 @@ static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c* if (view_mtx != NULL) { if (lightType != 2) { - for (int i = 0; i < 6; i++) { + for (i = 0; i < 6; i++) { material_p->setLight(i + 2, &tevstr_p->mLights[i]); } } else if (g_env_light.fishing_hole_season >= 1 && g_env_light.fishing_hole_season <= 4) @@ -3635,7 +3638,7 @@ static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c* material_p->setAmbColor(0, &amb_col); - for (int i = 0; i < 6; i++) { + for (i = 0; i < 6; i++) { if (i <= 1) { J3DLightInfo* var_r28; if (i == 0) { @@ -3649,13 +3652,12 @@ static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c* var_r28 = &kankyo->global_maple_col_change[i].light_obj.getLightInfo(); } - color_RGB_class maple_color; maple_color.r = - dKyd_maple_col_getp()[(g_env_light.fishing_hole_season + (i * 4))].r; + dKyd_maple_col_getp()[(g_env_light.fishing_hole_season - 1 + (i * 4))].r; maple_color.g = - dKyd_maple_col_getp()[(g_env_light.fishing_hole_season + (i * 4))].g; + dKyd_maple_col_getp()[(g_env_light.fishing_hole_season - 1 + (i * 4))].g; maple_color.b = - dKyd_maple_col_getp()[(g_env_light.fishing_hole_season + (i * 4))].b; + dKyd_maple_col_getp()[(g_env_light.fishing_hole_season - 1 + (i * 4))].b; var_f31 = var_r28->mColor.r / 95.0f; var_f31 *= var_f31; @@ -4285,7 +4287,6 @@ BOOL dKy_lightswitch_check(stage_pure_lightvec_info_class* stage_light_info_p, c } /* 801A6278-801A6C20 1A0BB8 09A8+00 2/2 0/0 0/0 .text dKy_setLight_nowroom_common__Fcf */ -// NONMATCHING - some issues with lightStatusPt loads void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) { dScnKy_env_light_c* kankyo = dKy_getEnvlight(); camera_class* camera = (camera_class*)dComIfGp_getCamera(0); @@ -4386,7 +4387,7 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) { lightStatusPt[i + 2].mDistFn = (GXDistAttnFn)room_light_info[i].dist_atten_type; lightStatusPt[i + 2].mCutoff = room_light_info[i].spotCutoff; dKy_lightdir_set(room_light_info[i].directionX, room_light_info[i].directionY, - &lightStatusPt[i + 2].mLightDir); + &((&lightStatusPt[i] + 2))->mLightDir); } else { lightStatusPt[i + 2].mRefDist = 0.0f; lightStatusPt[i + 2].mRefBrightness = 0.99999f; @@ -4402,11 +4403,11 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) { lightMask |= lightMaskData[3]; if (i == 0) { - lightStatusPt[i + 2].position = kankyo->sun_pos; + ((&lightStatusPt[i] + 2))->position = kankyo->sun_pos; } else if (camera != 0) { - lightStatusPt[i + 2].position = camera->lookat.eye + kankyo->moon_pos; + ((&lightStatusPt[i] + 2))->position = camera->lookat.eye + kankyo->moon_pos; } else { - lightStatusPt[i + 2].position = kankyo->moon_pos; + ((&lightStatusPt[i] + 2))->position = kankyo->moon_pos; } lightStatusPt[i + 2].mRefDist = 10000.0f; @@ -4423,17 +4424,17 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) { J3DLightInfo* room_light = &room_tevstr->mLights[i].getLightInfo(); if (room_light != NULL) { - lightStatusPt[i + 2].color = + ((&lightStatusPt[i] + 2))->color = dKy_light_influence_col(&room_light->mColor, light_ratio); } else { - lightStatusPt[i + 2].color = + ((&lightStatusPt[i] + 2))->color = dKy_light_influence_col(&g_env_light.dungeonlight[i].mColor, light_ratio); } if (room_no == dComIfGp_roomControl_getStayNo() && room_light_info != NULL && i < room_light_info_num) { - g_env_light.dungeonlight[i].mPosition = lightStatusPt[i + 2].position; + g_env_light.dungeonlight[i].mPosition = ((&lightStatusPt[i] + 2))->position; g_env_light.dungeonlight[i].mRefDistance = lightStatusPt[i + 2].mRefDist; g_env_light.dungeonlight[i].mCutoffAngle = lightStatusPt[i + 2].mCutoff; g_env_light.dungeonlight[i].mAngleAttenuation = lightStatusPt[i + 2].mSpotFn; @@ -4476,7 +4477,7 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) { lightStatusPt[j + 2].position.z = kankyo->field_0x0c18[i].mPos.z; } - lightStatusPt[j + 2].color = dKy_light_influence_col(&kankyo->field_0x0c18[i].mColor, light_ratio); + ((&lightStatusPt[j] + 2))->color = dKy_light_influence_col(&kankyo->field_0x0c18[i].mColor, light_ratio); lightStatusPt[j + 2].mRefDist = kankyo->field_0x0c18[i].mRefDistance; lightStatusPt[j + 2].mRefBrightness = 0.99999f; lightStatusPt[j + 2].field_0x1c = 1; @@ -4486,7 +4487,7 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) { dKy_lightdir_set(kankyo->field_0x0c18[i].mAngleX, kankyo->field_0x0c18[i].mAngleY, - &lightStatusPt[j + 2].mLightDir); + &((&lightStatusPt[j] + 2))->mLightDir); break; } } @@ -4505,33 +4506,35 @@ void dKy_setLight_nowroom(char room_no) { } /* 801A6C58-801A6D4C 1A1598 00F4+00 0/0 1/1 2/2 .text dKy_setLight_nowroom_grass__Fcf */ -// NONMATCHING - weird branching void dKy_setLight_nowroom_grass(char room_no, f32 light_ratio) { dScnKy_env_light_c* kankyo = dKy_getEnvlight(); camera_class* camera = (camera_class*)dComIfGp_getCamera(0); fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); MtxP view_mtx = j3dSys.getViewMtx(); + dStage_FileList_dt_c* filelist = NULL; if (dComIfGp_roomControl_getStatusRoomDt(room_no) != NULL) { - dStage_FileList_dt_c* filelist = dComIfGp_roomControl_getStatusRoomDt(room_no)->getFileListInfo(); + filelist = dComIfGp_roomControl_getStatusRoomDt(room_no)->getFileListInfo(); if (filelist == NULL) { return; } + } else { + return; + } - int grass_light = dStage_FileList_dt_GRASSLIGHT(filelist); + int grass_light = dStage_FileList_dt_GRASSLIGHT(filelist); - f32 grass_light_ratio; - if (grass_light >= 0xFF) { - grass_light_ratio = 1.0f; - } else { - grass_light_ratio = grass_light / 100.0f; - } + f32 grass_light_ratio; + if (grass_light >= 0xFF) { + grass_light_ratio = 1.0f; + } else { + grass_light_ratio = grass_light / 100.0f; + } - if (light_ratio == 0.0f) { - dKy_setLight_nowroom_common(room_no, grass_light_ratio); - } else { - dKy_setLight_nowroom_common(room_no, light_ratio); - } + if (light_ratio == 0.0f) { + dKy_setLight_nowroom_common(room_no, grass_light_ratio); + } else { + dKy_setLight_nowroom_common(room_no, light_ratio); } } @@ -5948,7 +5951,6 @@ void dKy_twilight_camelight_set() { } /* 801AB01C-801AB270 1A595C 0254+00 1/1 0/0 0/0 .text dKy_WaterIn_Light_set__Fv */ -// NONMATCHING - some weirdness with temp stores void dKy_WaterIn_Light_set() { dScnKy_env_light_c* kankyo = dKy_getEnvlight(); fopAc_ac_c* player_p = dComIfGp_getPlayer(0); @@ -5956,6 +5958,9 @@ void dKy_WaterIn_Light_set() { int sp10 = 0; int spC = 0; + f32 var_f31, var_f30, var_f29, var_f28, var_f27, var_f26; + f32 var_f25 = -100000000.0f; + var_f29 = 200.0f; int sp8 = 1; if (strcmp(dComIfGp_getStartStageName(), "F_SP109") == 0 || @@ -5965,7 +5970,12 @@ void dKy_WaterIn_Light_set() { sp8 = 3; } - for (int i = 0; i < 6; i++) { +#if PLATFORM_SHIELD + for (int i = 0; i < 6; i++) +#else + int i = 0; +#endif + { if (kankyo->field_0x0c18[i].field_0x26 != 1) { dKy_twi_wolflight_set(i); kankyo->field_0x0c18[i].mColor.r = 0x8A; @@ -5973,9 +5983,9 @@ void dKy_WaterIn_Light_set() { kankyo->field_0x0c18[i].mColor.b = 0xBC; kankyo->field_0x0c18[i].mColor.a = 0xFD; - f32 var_f26 = 0.0f; + var_f26 = 0.0f; if (player_p != NULL) { - f32 var_f31 = camera->lookat.eye.y - player_p->current.pos.y; + var_f31 = camera->lookat.eye.y - player_p->current.pos.y; if (var_f31 < 0.0f) { var_f31 = 0.0f; } @@ -5990,30 +6000,48 @@ void dKy_WaterIn_Light_set() { kankyo->field_0x0c18[i].mAngleAttenuation = 2; kankyo->field_0x0c18[i].mDistAttenuation = 3; - f32* var_r30 = &kankyo->field_0x0c18[i].mRefDistance; - f32* var_r29 = &kankyo->field_0x0c18[i].mCutoffAngle; - if (strcmp(dComIfGp_getStartStageName(), "D_MN01A") == 0) { dBgS_CamGndChk_Wtr sp28; cXyz sp1C; sp8 = 1; - *var_r29 = 60.0f; + kankyo->field_0x0c18[i].mCutoffAngle = 60.0f; sp1C = camera->lookat.eye; sp1C.y += 100000.0f; sp28.SetPos(&sp1C); - f32 var_f30 = (dComIfG_Bgsp().GroundCross(&sp28) - camera->lookat.eye.y) / 3000.0f; + var_f25 = dComIfG_Bgsp().GroundCross(&sp28); + var_f30 = (var_f25 - camera->lookat.eye.y) / 3000.0f; if (var_f30 < 0.0f) { var_f30 = 0.0f; } if (var_f30 > 1.0f) { var_f30 = 1.0f; } - *var_r30 *= var_f30; + kankyo->field_0x0c18[i].mRefDistance *= var_f30; + } + +#if DEBUG + if (g_kankyoHIO.field_0x686 != 0) { + sp8 = g_kankyoHIO.field_0x686 - 1; } - f32 var_f29, var_f28, var_f27; + switch (sp8) { + case 0: + dDbVw_Report(0x176, 0x1c, "W-LS[S]"); + break; + case 1: + dDbVw_Report(0x176, 0x1c, "W-LS[M]"); + break; + case 2: + dDbVw_Report(0x176, 0x1c, "W-LS[L]"); + break; + case 3: + dDbVw_Report(0x176, 0x1c, "W-LS[LL]"); + break; + } +#endif + switch (sp8) { case 0: case 1: @@ -6023,7 +6051,6 @@ void dKy_WaterIn_Light_set() { break; case 2: case 3: - case 4: default: var_f29 = 200.0f; var_f28 = 2.0f; @@ -6031,13 +6058,39 @@ void dKy_WaterIn_Light_set() { break; } - kankyo->field_0x127c = var_f29; - *var_r30 *= var_f28; - *var_r29 *= var_f27; +#if DEBUG + if (g_kankyoHIO.field_0x6d9 == 0) { +#endif + kankyo->field_0x127c = var_f29; + kankyo->field_0x0c18[i].mRefDistance *= var_f28; + kankyo->field_0x0c18[i].mCutoffAngle *= var_f27; +#if DEBUG + } + + static int S_mLighSize_pat_old = 0x63; + if (S_mLighSize_pat_old != g_kankyoHIO.field_0x686) { + S_mLighSize_pat_old = g_kankyoHIO.field_0x686; + + g_kankyoHIO.field_0x6e0 = var_f29; + g_kankyoHIO.field_0x6e4 = var_f28; + g_kankyoHIO.field_0x6e8 = var_f27; + g_kankyoHIO.field_0x01c.dKankyo_lightHIOInfoUpDateF(); + } + + if (g_kankyoHIO.field_0x6d9 != 0) { + kankyo->field_0x127c = g_kankyoHIO.field_0x6e0; + kankyo->field_0x0c18[i].mRefDistance *= g_kankyoHIO.field_0x6e4; + kankyo->field_0x0c18[i].mCutoffAngle *= g_kankyoHIO.field_0x6e8; + } +#endif + kankyo->field_0x0c18[i].field_0x26 = 1; sp10 = 1; + +#if PLATFORM_SHIELD + break; +#endif } - break; } } diff --git a/src/d/d_kankyo_rain.cpp b/src/d/d_kankyo_rain.cpp index dd95a4d08e3..eafc35da517 100644 --- a/src/d/d_kankyo_rain.cpp +++ b/src/d/d_kankyo_rain.cpp @@ -2354,6 +2354,12 @@ void dKyr_drawSun(Mtx drawMtx, cXyz* ppos, GXColor& unused, u8** tex) { u8 draw_sun = false; u16 date = dComIfGs_getDate(); +#if VERSION == VERSION_GCN_JPN + if (g_env_light.hide_vrbox) { + return; + } +#endif + if (strcmp(dComIfGp_getStartStageName(), "F_SP200") == 0) { sun_packet->mMoonAlpha = 1.0f; sun_packet->mSunAlpha = 0.0f; @@ -2595,7 +2601,7 @@ void dKyr_drawSun(Mtx drawMtx, cXyz* ppos, GXColor& unused, u8** tex) { GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_A0, GX_CA_TEXA, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_COPY); - + size *= 2.3f; color_reg0.a = 40.0f * sun_packet->mMoonAlpha; @@ -2706,6 +2712,12 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) { static s16 S_rot_work1 = 0; static s16 S_rot_work2 = 0; +#if VERSION == VERSION_GCN_JPN + if (g_env_light.hide_vrbox) { + return; + } +#endif + Mtx camMtx; Mtx rotMtx; @@ -2724,7 +2736,7 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) { if (!(sun_visibility < 0.1f)) { dKy_set_eyevect_calc2(camera, &spFC, 8000.0f, 8000.0f); - + GXColor color_reg0; color_reg0.r = sun_packet->mColor.r; color_reg0.g = sun_packet->mColor.g; @@ -2768,7 +2780,7 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) { MTXConcat(camMtx, rotMtx, camMtx); GXLoadPosMtxImm(drawMtx, GX_PNMTX0); GXSetCurrentMtx(GX_PNMTX0); - + if (sun_packet->field_0x6c > 0.0f) { spC = S_rot_work1 - 0x7F6; spA = S_rot_work2 + 0x416B; @@ -2783,7 +2795,7 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) { GXSetChanCtrl(GX_COLOR0, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); GXSetNumTexGens(0); GXSetNumTevStages(1); - + color_reg0.a = sun_packet->field_0x6c * (15.0f * (spA8 * spA8 * spA8)); GXSetTevColor(GX_TEVREG0, color_reg0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); @@ -4089,16 +4101,22 @@ void dKyr_drawStar(Mtx drawMtx, u8** tex) { csXyz(0, 30000, 19000), }; +#if VERSION == VERSION_GCN_JPN + if (g_env_light.hide_vrbox) { + return; + } +#endif + if (star_packet->mEffectNum != 0) { if (strcmp(dComIfGp_getStartStageName(), "F_SP200") == 0 && dComIfG_play_c::getLayerNo(0) == 0) { gwolf_howl_stage = true; - } else if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || + } else if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || ((strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0) && dComIfGp_roomControl_getStayNo() == 0)) { // draw stars on the opposite skybox hemisphere as well for water reflections draw_mirrored = true; } - + if (strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0 && dKy_daynight_check()) { sp38 = true; } @@ -4125,7 +4143,7 @@ void dKyr_drawStar(Mtx drawMtx, u8** tex) { moon_pos.z = -9072.0f + camera->lookat.eye.z; } } - + mDoLib_project(&moon_pos, &moon_proj); GXSetNumChans(1); @@ -4570,12 +4588,17 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { GXTexObj texobj; cXyz proj; - int j; - int k; + f32 rot; + f32 spCC; int pass = 1; - f32 spC4 = 0.0f; +#if VERSION == VERSION_GCN_JPN + if (g_env_light.hide_vrbox) { + return; + } +#endif + cXyz sp15C; cXyz sp150; cXyz sp144; @@ -4586,7 +4609,27 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { cXyz sp108; cXyz spFC; + f32 spC0; + f32 spBC; + f32 spB8; + f32 spB4; + f32 spB0; + f32 spAC; + f32 spA8; + f32 spA4; + f32 spA0; + f32 sp9C; + f32 sp98; + f32 sp94; + f32 sp90; + f32 sp8C; + + int sp88; + int sp84; int sp80 = 0; + GXColor color_reg1; + + int j, k; if (camera2 != NULL) { spC4 = camera2->mCamera.TrimHeight(); @@ -4599,11 +4642,14 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { return; } - f32 rot = cAngle::s2d(fopCamM_GetBank(camera)); - int sp88 = 0; - f32 spCC = 100000.0f; + rot = cAngle::s2d(fopCamM_GetBank(camera)); + + sp88 = 0; + spCC = 100000.0f; f32 unused; + f32 y_pos; + if (dComIfGd_getView() != NULL) { f32 sp70 = 0.0f; dStage_FileList_dt_c* filelist = NULL; @@ -4613,15 +4659,15 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { if (filelist != NULL) { sp70 = dStage_FileList_dt_SeaLevel(filelist); + } - #ifdef DEBUG - if (g_kankyoHIO.field_0x0b4) { - sp70 = g_kankyoHIO.field_0x0b8; - } else { - g_kankyoHIO.field_0x0b8 = sp70; - } - #endif +#ifdef DEBUG + if (g_kankyoHIO.field_0x0b4) { + sp70 = g_kankyoHIO.field_0x0b8; + } else { + g_kankyoHIO.field_0x0b8 = sp70; } +#endif unused = 1.0f - (0.09f * (camera->lookat.eye.y - sp70)); } @@ -4646,7 +4692,6 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { color.g = g_env_light.vrbox_kumo_bottom_col.g; color.b = g_env_light.vrbox_kumo_bottom_col.b; - GXColor color_reg1; color_reg1.r = 0; color_reg1.g = 0; color_reg1.b = 0; @@ -4665,7 +4710,7 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, color); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); - + if (pass == 0) { GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0); GXSetZCompLoc(GX_FALSE); @@ -4695,21 +4740,6 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { cXyz pos[4]; if (!(vrkumo_packet->mVrkumoEff[k].mAlpha <= 0.0000000001f) && (pass != 0 || !(vrkumo_packet->mVrkumoEff[k].mAlpha < 0.45f))) { - f32 spC0; - f32 spBC; - f32 spB8; - f32 spB4; - f32 spB0; - f32 spAC; - f32 spA8; - f32 spA4; - f32 spA0; - f32 sp9C; - f32 sp98; - f32 sp94; - f32 sp90; - f32 sp8C; - f32 sp68; f32 sp64; f32 sp60; @@ -4721,13 +4751,13 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { static f32 howa_loop_cnt = 0.0f; - #ifdef DEBUG +#ifdef DEBUG spAC = g_kankyoHIO.field_0x3f4; spA8 = g_kankyoHIO.field_0x3f8; - #else +#else spAC = 0.6f; spA8 = 0.84f; - #endif +#endif if (dKy_darkworld_check()) { spAC = 0.8f; @@ -4776,7 +4806,7 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { sp60 = sp68 * (0.2f + (0.2f * (k / 100.0f))); sp5C = sp68 * (0.55f + (0.3f * (k / 100.0f))); spFC = vrkumo_packet->mVrkumoEff[k].mPosition; - + spA4 = 0.0f; spA0 = 0.0f; @@ -4896,18 +4926,21 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { pos[2] += camera->lookat.eye; pos[3] += camera->lookat.eye; - int sp84 = 0; + sp84 = 0; if (dComIfGd_getView()->fovy > 40.0f) { cXyz spF0; + + f32 x; + f32 y; + f32 z; for (int sp3C = 0; sp3C < 4; sp3C++) { spF0 = pos[sp3C]; - Vec sp48; - sp48.x = 100.0f; - sp48.y = 100.0f; - sp48.z = 100.0f; + x = 100.0f; + y = 100.0f; + z = 100.0f; mDoLib_project(&spF0, &proj); - if (proj.x > -sp48.x && proj.x < (608.0f + sp48.x) && proj.y > -sp48.y && proj.y < (458.0f + sp48.z)) { + if (proj.x > -x && proj.x < (608.0f + x) && proj.y > -y && proj.y < (458.0f + z)) { break; } @@ -4944,17 +4977,20 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { sp84 = 0; if (dComIfGd_getView()->fovy > 40.0f) { cXyz spE4; + + f32 x; + f32 y; + f32 z; for (int sp2C = 0; sp2C < 4; sp2C++) { spE4 = pos[sp2C]; spE4.y = -pos[sp2C].y; - Vec sp38; - sp38.x = 100.0f; - sp38.y = 100.0f; - sp38.z = 100.0f; + x = 100.0f; + y = 100.0f; + z = 100.0f; mDoLib_project(&spE4, &proj); - if (proj.x > -sp38.x && proj.x < (608.0f + sp38.x) && proj.y > -sp38.y && proj.y < (458.0f + sp38.z)) { + if (proj.x > -x && proj.x < (608.0f + x) && proj.y > -y && proj.y < (458.0f + z)) { break; } @@ -4965,7 +5001,6 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) { } if (sp84 == 0) { - f32 y_pos; GXBegin(GX_QUADS, GX_VTXFMT0, 4); y_pos = -pos[0].y; @@ -5443,7 +5478,7 @@ void dKyr_odour_draw(Mtx drawMtx, u8** tex) { for (int i = 0; i < 2000; i++) { EF_ODOUR_EFF* effect = &odour_packet->mOdourEff[i]; - camera_class* camera = dComIfGp_getCamera(0); + camera_class* camera = (camera_class*)dComIfGp_getCamera(0); cXyz pos[4]; Vec sp64, sp58; cXyz sp4C; diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index 6f543604184..c530b8de154 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -2104,7 +2104,7 @@ bool fopAcM_lc_c::lineCheck(cXyz const* i_start, cXyz const* i_end, fopAc_ac_c c /* 8001DCBC-8001DD1C 0185FC 0060+00 1/1 10/10 108/108 .text gndCheck__11fopAcM_gc_cFPC4cXyz */ bool fopAcM_gc_c::gndCheck(cXyz const* i_pos) { mGndCheck.SetPos(i_pos); - mGroundY = dComIfG_Bgsp().GroundCross(&mGndCheck); + mGroundY = (f32)dComIfG_Bgsp().GroundCross(&mGndCheck); return -1000000000.0f != mGroundY; } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 5288636ec22..3c28dc8e07a 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -3,23 +3,26 @@ * Model, Animation, and Heap Functions */ -#include "m_Do/m_Do_ext.h" -#include "JSystem/J3DGraphBase/J3DDrawBuffer.h" +#include "d/dolzel.h" + +#include +#include #include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" +#include "JSystem/J3DGraphBase/J3DDrawBuffer.h" #include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/J3DGraphLoader/J3DMaterialFactory.h" #include "JSystem/JKernel/JKRAssertHeap.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JKernel/JKRSolidHeap.h" -#include "JSystem/JUtility/JUTResFont.h" #include "JSystem/JUtility/JUTCacheFont.h" -#include "stdio.h" +#include "JSystem/JUtility/JUTResFont.h" #include "Z2AudioLib/Z2Creature.h" #include "d/d_com_inf_game.h" #include "dol2asm.h" -#include -#include #include "global.h" +#include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" +#include "stdio.h" /* 8000D0AC-8000D320 0079EC 0274+00 5/5 0/0 0/0 .text * mDoExt_setJ3DData__FPA4_fPC16J3DTransformInfoUs */ @@ -305,6 +308,12 @@ void mDoExt_modelTexturePatch(J3DModelData* i_modelData) { } } +static void dummy1() { + ((J3DTevBlock*)NULL)->patch(); + ((J3DColorBlock*)NULL)->patchLight(); + ((J3DPEBlock*)NULL)->patch(); +} + /* 8000DBD8-8000DC2C 008518 0054+00 3/3 0/0 0/0 .text mDoExt_modelDiff__FP8J3DModel */ static void mDoExt_modelDiff(J3DModel* i_model) { i_model->calcMaterial(); @@ -391,6 +400,92 @@ void mDoExt_brkAnmRemove(J3DModelData* i_modelData) { } } +// this needs a lot of work still +static void dummy2() { + J3DGXColor gxColor; + J3DColorChan colorChan; + J3DTexCoord texCoord; + J3DGXColorS10 gxColorS10; + J3DIndTevStage indTevStage; + J3DTevOrder tevOrder; + J3DTevSwapModeTable tevSwapModeTable; + J3DIndTexOrder indTexOrder; + J3DIndTexMtx indTexMtx; + J3DIndTexCoordScale indTexCoordScale; + + J3DColorBlock* colorBlock = NULL; + colorBlock->setColorChanNum((const u8*)NULL); + colorBlock->setMatColor(0, gxColor); + colorBlock->setColorChan(0, colorChan); + colorBlock->setAmbColor(0, gxColor); + + J3DTexGenBlock* texGenBlock = NULL; + texGenBlock->setTexGenNum((const u32*)NULL); + texGenBlock->setTexCoord(0, NULL); + + J3DTevBlock* tevBlock = NULL; + tevBlock->setTevStageNum((const u8*)NULL); + tevBlock->setTevColor(0, J3DGXColorS10()); + tevBlock->setTevKColor(0, gxColor); + tevBlock->setTevOrder(0, tevOrder); + tevBlock->setTevKColorSel(0, (const u8*)NULL); + tevBlock->setTevKAlphaSel(0, (const u8*)NULL); + tevBlock->setTevSwapModeTable(0, tevSwapModeTable); + tevBlock->setTexNo(0, (const u16*)NULL); + J3DTevStage tevStage; + tevBlock->setTevStage(0, tevStage); + tevBlock->setIndTevStage(0, indTevStage); + + J3DIndBlock* indBlock = NULL; + indBlock->setIndTexStageNum(0); + indBlock->setIndTexMtx(0, indTexMtx); + indBlock->setIndTexCoordScale(0, indTexCoordScale); + indTexCoordScale.~J3DIndTexCoordScale(); + + J3DPEBlock* peBlock = NULL; + J3DAlphaComp alphaComp; + peBlock->setAlphaComp(alphaComp); + J3DBlend blend; + peBlock->setBlend(blend); + J3DZMode zMode; + peBlock->setZMode(zMode); + u8 compLoc; + peBlock->setZCompLoc(&compLoc); + + colorBlock->getColorChanNum(); + colorBlock->getMatColor(0); + colorBlock->getColorChan(0); + colorBlock->getAmbColor(0); + + texGenBlock->getTexGenNum(); + texGenBlock->getTexCoord(0); + texGenBlock->getTexMtx(0); + + tevBlock->getTevStageNum(); + tevBlock->getTevColor(0); + tevBlock->getTevKColor(0); + tevBlock->getTevOrder(0); + tevBlock->getTevKColorSel(0); + tevBlock->getTevKAlphaSel(0); + tevBlock->getTevSwapModeTable(0); + tevBlock->getTexNo(0); + tevBlock->getTevStage(0); + tevBlock->getIndTevStage(0); + + indBlock = NULL; + indBlock->getIndTexStageNum(); + indBlock->getIndTexOrder(0); + indBlock->getIndTexMtx(0); + indBlock->getIndTexCoordScale(0); + + peBlock = NULL; + peBlock->getFog(); + peBlock->getAlphaComp(); + peBlock->getBlend(); + peBlock->getZMode(); + peBlock->getZCompLoc(); +} + /* 8000E53C-8000E5F8 008E7C 00BC+00 0/0 0/0 19/19 .text create__21mDoExt_invisibleModelFP8J3DModelUc */ int mDoExt_invisibleModel::create(J3DModel* i_model, u8 param_1) { J3DModelData* model_data = i_model->getModelData(); @@ -491,19 +586,15 @@ void mDoExt_setupShareTexture(J3DModelData* i_modelData, J3DModelData* i_shareMo } } -/* ############################################################################################## */ -/* 803740FC-803740FC 00075C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -// MWCC ignores mapping of some japanese characters using the -// byte 0x5C (ASCII '\'). This is why this string is hex-encoded. +static const char* dummy3() { + // MWCC ignores mapping of some japanese characters using the + // byte 0x5C (ASCII '\'). This is why this string is hex-encoded. -// "ソリッドヒープちゃうがな!\n" -// "This isn't a solid heap! \n" -SECTION_DEAD static char const* const stringBase_803740FC = - "\x83\x5C\x83\x8A\x83\x62\x83\x68\x83\x71\x81\x5B\x83\x76\x82\xBF\x82\xE1\x82\xA4\x82\xAA\x82" - "\xC8\x81\x49\x0A"; -#pragma pop + // "ソリッドヒープちゃうがな!\n" + // "This isn't a solid heap! \n" + return "\x83\x5C\x83\x8A\x83\x62\x83\x68\x83\x71\x81\x5B\x83\x76\x82\xBF\x82\xE1\x82\xA4\x82" + "\xAA\x82\xC8\x81\x49\x0A"; +} /* 8000EA80-8000ECC0 0093C0 0240+00 0/0 0/0 6/6 .text mDoExt_setupStageTexture__FP12J3DModelData */ @@ -1387,7 +1478,7 @@ int mDoExt_McaMorfSO::create(J3DModelData* i_modelData, mDoExt_McaMorfCallBack1_ // NONMATCHING regalloc void mDoExt_McaMorfSO::calc() { if (mpModel != NULL) { - u16 jnt_no = J3DMtxCalc::getJoint()->getJntNo(); + u16 jnt_no = getJoint()->getJntNo(); j3dSys.setCurrentMtxCalc(this); J3DTransformInfo trans; @@ -1494,7 +1585,7 @@ void mDoExt_McaMorfSO::setAnm(J3DAnmTransform* i_anm, int i_attr, f32 i_morf, f3 setPlayMode(i_attr); setPlaySpeed(i_rate); - + if (i_rate >= 0.0f) { setFrame(i_start); } else { @@ -1669,7 +1760,7 @@ mDoExt_McaMorf2::~mDoExt_McaMorf2() { *var_r29 = *sp2C; JMAEulerToQuat(var_r29->mRotation.x, var_r29->mRotation.y, var_r29->mRotation.z, var_r26); - + var_r29++; var_r26++; } @@ -1745,7 +1836,7 @@ void mDoExt_McaMorf2::calc() { if (mpCallback1 != NULL) { mpCallback1->execute(jnt_no, &spF0[0]); } - + JMAEulerToQuat(spF0[0].mRotation.x, spF0[0].mRotation.y, spF0[0].mRotation.z, var_r27); J3DMtxCalcCalcTransformMaya::calcTransform(spF0[0]); @@ -1886,7 +1977,7 @@ void mDoExt_McaMorf2::setAnm(J3DAnmTransform* param_0, J3DAnmTransform* param_1, setPlayMode(i_attr); setPlaySpeed(i_speed); - + if (i_speed >= 0.0f) { setFrame(i_start); } else { @@ -2044,7 +2135,6 @@ void mDoExt_invJntPacket::draw() { } /* 800123D0-800125DC 00CD10 020C+00 2/2 0/0 0/0 .text init__15mDoExt_3Dline_cFUsii */ -// NONMATCHING - regalloc, probably some types are wrong int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) { field_0x0 = new cXyz[param_0]; if (field_0x0 == NULL) { @@ -2052,7 +2142,7 @@ int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) { } if (param_1 != 0) { - field_0x4 = new f32[param_1]; + field_0x4 = new f32[param_0]; if (field_0x4 == NULL) { return 0; } @@ -2072,23 +2162,23 @@ int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) { return 0; } - field_0x10 = new mDoExt_3Dline_field_0x10_c[param_0]; + field_0x10 = new mDoExt_3Dline_field_0x10_c[sp20]; if (field_0x10 == NULL) { return 0; } - field_0x14 = new mDoExt_3Dline_field_0x10_c[param_0]; + field_0x14 = new mDoExt_3Dline_field_0x10_c[sp20]; if (field_0x14 == NULL) { return 0; } if (param_2) { - field_0x18 = new mDoExt_3Dline_field_0x18_c[param_0]; + field_0x18 = new mDoExt_3Dline_field_0x18_c[sp20]; if (field_0x18 == NULL) { return 0; } - field_0x1c = new mDoExt_3Dline_field_0x18_c[param_0]; + field_0x1c = new mDoExt_3Dline_field_0x18_c[sp20]; if (field_0x1c == NULL) { return 0; } @@ -3107,17 +3197,3 @@ OSThread* mDoExt_GetCurrentRunningThread() { return thread; } - -/* 80014E20-80014E7C 00F760 005C+00 1/0 2/2 0/0 .text __dt__26mDoExt_3DlineMatSortPacketFv */ -mDoExt_3DlineMatSortPacket::~mDoExt_3DlineMatSortPacket() { -} - -/* 80014E7C-80014E84 00F7BC 0008+00 1/0 0/0 0/0 .text getMaterialID__19mDoExt_3DlineMat1_cFv */ -int mDoExt_3DlineMat1_c::getMaterialID() { - return 1; -} - -/* 80014E84-80014E8C 00F7C4 0008+00 1/0 0/0 0/0 .text getMaterialID__19mDoExt_3DlineMat0_cFv */ -int mDoExt_3DlineMat0_c::getMaterialID() { - return 0; -}