More miscellaneous TU improvements (#2665)

This commit is contained in:
Max Roncace
2025-09-17 08:01:59 -04:00
committed by GitHub
parent 2106c56f60
commit fe5e8aff98
33 changed files with 659 additions and 596 deletions
+6 -1
View File
@@ -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
@@ -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
@@ -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
@@ -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
+17 -17
View File
@@ -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
+6 -1
View File
@@ -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
@@ -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
@@ -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
@@ -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
+18 -18
View File
@@ -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
+4 -4
View File
@@ -616,7 +616,7 @@ config.libs = [
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 @@ config.libs = [
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 @@ config.libs = [
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 @@ config.libs = [
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"),
+15 -6
View File
@@ -64,13 +64,22 @@ struct cXyz : Vec {
z *= other.z;
}
void operator-=(const Vec& other) { VECSubtract(this, &other, this); }
cXyz* operator+=(const Vec& other) {
VECAdd(this, &other, this);
cXyz* operator-=(const Vec& other) {
PSVECSubtract(this, &other, this);
return this;
}
cXyz* operator+=(const Vec& other) {
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; }
+1 -1
View File
@@ -271,7 +271,7 @@ public:
}
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);
-11
View File
@@ -63,15 +63,4 @@ public:
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 */
+1
View File
@@ -139,6 +139,7 @@ public:
u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(&param_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];
+4 -4
View File
@@ -921,10 +921,10 @@ public:
/* 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);
+1 -1
View File
@@ -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();
}
+38 -13
View File
@@ -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 */
+1 -1
View File
@@ -1067,7 +1067,7 @@ public:
/* 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; }
+3 -3
View File
@@ -542,7 +542,7 @@ public:
/* 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 @@ public:
/* 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 @@ public:
/* 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();
+4 -1
View File
@@ -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) {
+1 -1
View File
@@ -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 =
+26 -21
View File
@@ -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;
}
+144 -116
View File
@@ -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;
}
// 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;
}
}
break;
case TYPE_2:
mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[4][1]], l_bmdData[4][0]);
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;
}
mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[5][1]], l_bmdData[5][0]);
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);
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);
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 {
field_0xe4c[1] = NULL;
mdlData_p = NULL;
}
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]);
// field_0xe4c holds a Pumpkin, Leaf, and Cheese model (in that order)
if (mdlData_p != NULL) {
field_0xe4c[1] = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084);
field_0xe4c[i] = mDoExt_J3DModel__create((J3DModelData*)mdlData_p, 0x80000, 0x11000084);
} else {
field_0xe4c[1] = NULL;
field_0xe4c[i] = NULL;
}
break;
}
break;
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);
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;
}
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);
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((J3DModelData*)mdlData_p, 0x80000, 0x11000084);
} else {
field_0xe4c[1] = NULL;
}
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((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(&current.pos, &work);
s16 angleY = cLib_targetAngleY(&current.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<int>(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<int>(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;
+24 -21
View File
@@ -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(&current.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<int>(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<int>(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;
+2 -171
View File
@@ -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 = {
+20 -9
View File
@@ -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;
}
+6 -10
View File
@@ -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) {
-20
View File
@@ -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;
}
+99 -46
View File
@@ -3,10 +3,12 @@
#include "d/d_kankyo.h"
#include <dolphin.h>
#include <dolphin/gf/GFPixel.h>
#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;
}
f32 var_f29, var_f28, var_f27;
#if DEBUG
if (g_kankyoHIO.field_0x686 != 0) {
sp8 = g_kankyoHIO.field_0x686 - 1;
}
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;
}
}
+90 -55
View File
@@ -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,16 +4659,16 @@ 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;
+1 -1
View File
@@ -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;
}
+119 -43
View File
@@ -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 <dolphin/gf/GFPixel.h>
#include <dolphin/gx.h>
#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 <dolphin/gx.h>
#include <dolphin/gf/GFPixel.h>
#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;
}