mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-04 16:28:11 -04:00
T3: batch t3_S23 — restruct: batch t3_S23 rung S — 50 files (TUs; 1704 drawable) · 310 bodies: 2014 sites → members / 62 kept / 329 skipped · levers off 0 · compiles 515 in 63 s wall · final 50/50 identical · written 45 files | R22 check-all: 218 passed, 0 failed of 218 | type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 413891 cast sites in 59238 bodies over 8 base classes (4 forms + A, coverage OK) · 229 lying declarations / 24 callees (+5293 K&R sites, +418 cross-binary apart) · controls 4/4 (restruct_cycle)
This commit is contained in:
+150
-150
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"head": "0b24ace98b",
|
||||
"head": "e437875457",
|
||||
"stamp": "588cbf38c6e4",
|
||||
"generated": "2026-10-01 18:59",
|
||||
"generated": "2026-10-01 19:17",
|
||||
"aliases": [
|
||||
"main",
|
||||
"md_SC07_004",
|
||||
@@ -21,176 +21,176 @@
|
||||
"main": {
|
||||
"objects": 85,
|
||||
"identical": 85,
|
||||
"seconds": 8.922000000000002,
|
||||
"mean_s": 0.105
|
||||
"seconds": 9.869000000000005,
|
||||
"mean_s": 0.116
|
||||
},
|
||||
"md_SC07_004": {
|
||||
"objects": 1,
|
||||
"identical": 1,
|
||||
"seconds": 0.606,
|
||||
"mean_s": 0.606
|
||||
"seconds": 0.646,
|
||||
"mean_s": 0.646
|
||||
},
|
||||
"ov_SC03_015": {
|
||||
"objects": 32,
|
||||
"identical": 32,
|
||||
"seconds": 6.114999999999999,
|
||||
"mean_s": 0.191
|
||||
"seconds": 6.474,
|
||||
"mean_s": 0.202
|
||||
},
|
||||
"ov_SC04_011": {
|
||||
"objects": 28,
|
||||
"identical": 28,
|
||||
"seconds": 5.114999999999998,
|
||||
"mean_s": 0.183
|
||||
"seconds": 5.327999999999999,
|
||||
"mean_s": 0.19
|
||||
}
|
||||
},
|
||||
"per_object_seconds": {
|
||||
"build/src/800.o": 0.911,
|
||||
"build/src/800_b.o": 0.094,
|
||||
"build/src/800_b_2.o": 0.375,
|
||||
"build/src/800_b_o0a.o": 0.08,
|
||||
"build/src/800_c.o": 0.254,
|
||||
"build/src/800b2.o": 0.103,
|
||||
"build/src/apicard1.o": 0.117,
|
||||
"build/src/apicard2.o": 0.123,
|
||||
"build/src/apicard3.o": 0.08,
|
||||
"build/src/apicard4.o": 0.095,
|
||||
"build/src/apicard5.o": 0.095,
|
||||
"build/src/apicard6.o": 0.087,
|
||||
"build/src/apicard7.o": 0.098,
|
||||
"build/src/boot.o": 0.137,
|
||||
"build/src/gap.o": 0.078,
|
||||
"build/src/libapi1.o": 0.084,
|
||||
"build/src/libapi2.o": 0.072,
|
||||
"build/src/libc2_1.o": 0.08,
|
||||
"build/src/libc2_2.o": 0.08,
|
||||
"build/src/libcd1.o": 0.089,
|
||||
"build/src/libcd2.o": 0.081,
|
||||
"build/src/libetc.o": 0.082,
|
||||
"build/src/libgpu.o": 0.087,
|
||||
"build/src/libgpu2.o": 0.101,
|
||||
"build/src/libgs1.o": 0.079,
|
||||
"build/src/libgs2.o": 0.077,
|
||||
"build/src/libgs3.o": 0.089,
|
||||
"build/src/libgs4.o": 0.093,
|
||||
"build/src/libgs5.o": 0.073,
|
||||
"build/src/libgs6.o": 0.101,
|
||||
"build/src/800.o": 0.945,
|
||||
"build/src/800_b.o": 0.136,
|
||||
"build/src/800_b_2.o": 0.39,
|
||||
"build/src/800_b_o0a.o": 0.114,
|
||||
"build/src/800_c.o": 0.295,
|
||||
"build/src/800b2.o": 0.138,
|
||||
"build/src/apicard1.o": 0.123,
|
||||
"build/src/apicard2.o": 0.149,
|
||||
"build/src/apicard3.o": 0.133,
|
||||
"build/src/apicard4.o": 0.11,
|
||||
"build/src/apicard5.o": 0.102,
|
||||
"build/src/apicard6.o": 0.124,
|
||||
"build/src/apicard7.o": 0.148,
|
||||
"build/src/boot.o": 0.191,
|
||||
"build/src/gap.o": 0.152,
|
||||
"build/src/libapi1.o": 0.154,
|
||||
"build/src/libapi2.o": 0.1,
|
||||
"build/src/libc2_1.o": 0.09,
|
||||
"build/src/libc2_2.o": 0.084,
|
||||
"build/src/libcd1.o": 0.108,
|
||||
"build/src/libcd2.o": 0.106,
|
||||
"build/src/libetc.o": 0.102,
|
||||
"build/src/libgpu.o": 0.103,
|
||||
"build/src/libgpu2.o": 0.117,
|
||||
"build/src/libgs1.o": 0.088,
|
||||
"build/src/libgs2.o": 0.102,
|
||||
"build/src/libgs3.o": 0.095,
|
||||
"build/src/libgs4.o": 0.096,
|
||||
"build/src/libgs5.o": 0.089,
|
||||
"build/src/libgs6.o": 0.122,
|
||||
"build/src/libgs7.o": 0.081,
|
||||
"build/src/libgs8.o": 0.086,
|
||||
"build/src/libgte1.o": 0.089,
|
||||
"build/src/libgte10.o": 0.109,
|
||||
"build/src/libgte11.o": 0.09,
|
||||
"build/src/libgte12.o": 0.087,
|
||||
"build/src/libgte13.o": 0.099,
|
||||
"build/src/libgte14.o": 0.096,
|
||||
"build/src/libgte15.o": 0.091,
|
||||
"build/src/libgte16.o": 0.082,
|
||||
"build/src/libgte17.o": 0.093,
|
||||
"build/src/libgte18.o": 0.091,
|
||||
"build/src/libgte19.o": 0.095,
|
||||
"build/src/libgte2.o": 0.083,
|
||||
"build/src/libgte20.o": 0.083,
|
||||
"build/src/libgte21.o": 0.084,
|
||||
"build/src/libgs8.o": 0.083,
|
||||
"build/src/libgte1.o": 0.093,
|
||||
"build/src/libgte10.o": 0.09,
|
||||
"build/src/libgte11.o": 0.083,
|
||||
"build/src/libgte12.o": 0.09,
|
||||
"build/src/libgte13.o": 0.103,
|
||||
"build/src/libgte14.o": 0.097,
|
||||
"build/src/libgte15.o": 0.09,
|
||||
"build/src/libgte16.o": 0.08,
|
||||
"build/src/libgte17.o": 0.087,
|
||||
"build/src/libgte18.o": 0.098,
|
||||
"build/src/libgte19.o": 0.084,
|
||||
"build/src/libgte2.o": 0.081,
|
||||
"build/src/libgte20.o": 0.089,
|
||||
"build/src/libgte21.o": 0.089,
|
||||
"build/src/libgte22.o": 0.095,
|
||||
"build/src/libgte23.o": 0.087,
|
||||
"build/src/libgte24.o": 0.091,
|
||||
"build/src/libgte25.o": 0.092,
|
||||
"build/src/libgte26.o": 0.088,
|
||||
"build/src/libgte27.o": 0.087,
|
||||
"build/src/libgte28.o": 0.084,
|
||||
"build/src/libgte29.o": 0.101,
|
||||
"build/src/libgte3.o": 0.085,
|
||||
"build/src/libgte30.o": 0.081,
|
||||
"build/src/libgte4.o": 0.108,
|
||||
"build/src/libgte5.o": 0.09,
|
||||
"build/src/libgte6.o": 0.081,
|
||||
"build/src/libgte23.o": 0.084,
|
||||
"build/src/libgte24.o": 0.099,
|
||||
"build/src/libgte25.o": 0.078,
|
||||
"build/src/libgte26.o": 0.086,
|
||||
"build/src/libgte27.o": 0.091,
|
||||
"build/src/libgte28.o": 0.104,
|
||||
"build/src/libgte29.o": 0.078,
|
||||
"build/src/libgte3.o": 0.082,
|
||||
"build/src/libgte30.o": 0.098,
|
||||
"build/src/libgte4.o": 0.092,
|
||||
"build/src/libgte5.o": 0.084,
|
||||
"build/src/libgte6.o": 0.079,
|
||||
"build/src/libgte7.o": 0.087,
|
||||
"build/src/libgte8.o": 0.089,
|
||||
"build/src/libgte9.o": 0.102,
|
||||
"build/src/libmcrd1.o": 0.093,
|
||||
"build/src/libmcrd2.o": 0.091,
|
||||
"build/src/libpad1.o": 0.085,
|
||||
"build/src/libpad2.o": 0.094,
|
||||
"build/src/sgap.o": 0.086,
|
||||
"build/src/sgap_2.o": 0.09,
|
||||
"build/src/sgap_3.o": 0.081,
|
||||
"build/src/sgap_4.o": 0.104,
|
||||
"build/src/sgap_5.o": 0.088,
|
||||
"build/src/libgte8.o": 0.095,
|
||||
"build/src/libgte9.o": 0.095,
|
||||
"build/src/libmcrd1.o": 0.103,
|
||||
"build/src/libmcrd2.o": 0.089,
|
||||
"build/src/libpad1.o": 0.099,
|
||||
"build/src/libpad2.o": 0.105,
|
||||
"build/src/sgap.o": 0.115,
|
||||
"build/src/sgap_2.o": 0.087,
|
||||
"build/src/sgap_3.o": 0.089,
|
||||
"build/src/sgap_4.o": 0.111,
|
||||
"build/src/sgap_5.o": 0.095,
|
||||
"build/src/sgap_6.o": 0.085,
|
||||
"build/src/sgap_8.o": 0.091,
|
||||
"build/src/snd1.o": 0.098,
|
||||
"build/src/snd10.o": 0.077,
|
||||
"build/src/snd11.o": 0.083,
|
||||
"build/src/sgap_8.o": 0.103,
|
||||
"build/src/snd1.o": 0.097,
|
||||
"build/src/snd10.o": 0.099,
|
||||
"build/src/snd11.o": 0.089,
|
||||
"build/src/snd12.o": 0.086,
|
||||
"build/src/snd2.o": 0.104,
|
||||
"build/src/snd3.o": 0.089,
|
||||
"build/src/snd4.o": 0.078,
|
||||
"build/src/snd5.o": 0.089,
|
||||
"build/src/snd6.o": 0.097,
|
||||
"build/src/snd7.o": 0.078,
|
||||
"build/src/snd8.o": 0.078,
|
||||
"build/src/snd9.o": 0.095,
|
||||
"build/src/md_SC07_004/md_SC07_004.o": 0.606,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.173,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.62,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.479,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.099,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.099,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.178,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.205,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.158,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.114,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.103,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.236,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.115,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.217,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.129,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.098,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.098,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.131,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.567,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.336,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.133,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.254,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.085,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.137,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.1,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.219,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.254,
|
||||
"build/src/snd2.o": 0.102,
|
||||
"build/src/snd3.o": 0.094,
|
||||
"build/src/snd4.o": 0.098,
|
||||
"build/src/snd5.o": 0.118,
|
||||
"build/src/snd6.o": 0.09,
|
||||
"build/src/snd7.o": 0.095,
|
||||
"build/src/snd8.o": 0.077,
|
||||
"build/src/snd9.o": 0.092,
|
||||
"build/src/md_SC07_004/md_SC07_004.o": 0.646,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.182,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.643,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.52,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.108,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.1,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.175,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.209,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.175,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.12,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.102,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.248,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.108,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.228,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.146,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.094,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.108,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.147,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.603,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.361,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.157,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.273,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.099,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.155,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.106,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.236,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.266,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.085,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.345,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.071,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.091,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.088,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.098,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.158,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.522,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.422,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.072,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.076,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.159,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.192,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.148,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.105,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.097,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.221,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.095,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.214,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.126,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.095,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.356,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.077,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.089,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.094,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.104,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.169,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.547,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.447,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.077,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.082,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.166,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.206,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.15,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.113,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.096,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.228,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.098,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.21,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.131,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.102,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.102,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.129,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.445,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.271,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.13,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.213,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.085,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.124,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.098,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.132,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.542,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.066,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.076
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.132,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.448,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.282,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.135,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.229,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.094,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.14,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.097,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.138,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.547,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.076,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.086
|
||||
},
|
||||
"ok": true,
|
||||
"seconds": 2.5
|
||||
"seconds": 2.7
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
+2318
-199
File diff suppressed because it is too large
Load Diff
@@ -1,33 +1,33 @@
|
||||
type_census — 2026-10-02T01:13:39Z at 0b24ace98b (src stamp a602ae2e2b6791b6, tool e17c5fa676); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 53.3 s, total 257.1 s
|
||||
type_census — 2026-10-02T01:25:22Z at e437875457 (src stamp 97d43947e867ec56, tool e17c5fa676); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 52.7 s, total 262.9 s
|
||||
|
||||
DEFINITIONS 1650 struct/union bodies (+0 enums): canonical header 1021 · .c file-scope 0 · .c block-scope 600 · per-function shared headers 29 · other headers 0 · include/ 326
|
||||
1024 distinct names · 523 distinct layouts (0 unresolved) · 53 duplicate classes covering 496 names (tier 1 0 same-named, tier 2 53 opaque; 44 layout-twin classes / 472 names kept apart) · 42 exact-text classes / 546 copies · 0 VARIANT names (>1 layout) · 55 dead canonical names · 0 canonical names redefined in .c · 4300 scalar/alias typedefs · 145 forward decls
|
||||
CAST SITES deref 416097 = P 327984 + I 55438 + X 13790 + M 18885 (+ A address-of 18890; + C typed cast-member 105974) in 59444 bodies · coverage OK (raw {'P': 327984, 'I': 55438, 'X': 13790, 'A': 18890, 'C': 105974, 'M': 18885, 'K': 12379}) · refused 0 · absolute 0 · readability regex over raw text 330821
|
||||
by base: param 212137 · local 138244 · gaddr 40114 · nested 13628 · global 8773 · other 1702 · addr-of 1338 · ident 161
|
||||
by width: s4 115873 · s2 113373 · u2 109568 · u1 39850 · agg 13417 · p4 11241 · u4 10016 · s1 2759
|
||||
top bases: param_1(param) 67163 · a0(param) 58358 · arg0(param) 55678 · p(local) 16335 · p(param) 8860 · cach(local) 8246 · s0(local) 7313 · buf(local) 7056 · s1(local) 6648 · flag(local) 5453 · iVar2(local) 5066 · dst(local) 4853 · iVar3(local) 4529 · iVar1(local) 4200 · cur(local) 3375 · e(local) 3263
|
||||
CAST SITES deref 413891 = P 325996 + I 55319 + X 13790 + M 18786 (+ A address-of 18890; + C typed cast-member 107925) in 59238 bodies · coverage OK (raw {'P': 325996, 'I': 55319, 'X': 13790, 'A': 18890, 'C': 107925, 'M': 18786, 'K': 12571}) · refused 0 · absolute 0 · readability regex over raw text 328833
|
||||
by base: param 210390 · local 137893 · gaddr 40114 · nested 13525 · global 8768 · other 1702 · addr-of 1338 · ident 161
|
||||
by width: s4 114808 · s2 113099 · u2 108908 · u1 39718 · agg 13417 · p4 11238 · u4 9964 · s1 2739
|
||||
top bases: param_1(param) 66835 · a0(param) 57852 · arg0(param) 54968 · p(local) 16220 · p(param) 8669 · cach(local) 8246 · s0(local) 7313 · buf(local) 7056 · s1(local) 6648 · flag(local) 5453 · iVar2(local) 5066 · dst(local) 4853 · iVar3(local) 4449 · iVar1(local) 4200 · cur(local) 3375 · e(local) 3262
|
||||
DECLARATIONS 99109 function definitions (1894 K&R) · 4279260 extern function declarations over 12088 names (3773 spelled >1 way) · 6443 names with >1 body text · 1078766 data externs over 55542 symbols (18498 typed >1 way) · asm-label aliases 5148 (159 names) · builtins {'memcpy': 301, 'abs': 1} · attributes {'packed': 26, 'aligned': 6}
|
||||
lying declarations 229 over 24 callees {'K&R-empty': 216, 'narrow': 13} · K&R sites (marked, counted apart) 5293 over 200 callees · cross-binary (the fleet's definitions disagree, this binary has none) 418 over 96 callees
|
||||
STRUCT MAP 18683 types explain 412076/416097 deref sites (99.0 %); unassigned 4021; 3966 types span ≥2 bodies (355838 sites), 14717 single-body; types with conflicts 856, suspect 11
|
||||
merges by evidence {'param': 39696, 'arg': 11096, 'ret-of': 5694, 'assign': 19048, 'assign&': 1293, 'return': 1537, 'arg&': 198, 'field': 7653, 'nested': 9}; vetoed {'arg&-conduit': 14638, 'arg-conduit': 129720, 'arg-no-overlap': 38743, 'ret-of-multisource': 6592, 'assign-multisource': 33213, 'arg&-no-overlap': 3508, 'field-multisource': 6044, 'assign&-multisource': 12211, 'assign': 238, 'ret-of': 323, 'arg': 199, 'assign&': 317, 'return': 4, 'field': 400}
|
||||
Unkstruct_800D3888 sites 96037 bodies 15514 fields 224 size≥0x24c width-conflicts 50 sign-mixed 79 merges {'param': 11874, 'assign': 8633, 'arg': 8298, 'ret-of': 2465} at D_800D3888,D_80126B58,D_80185FD0 ptr D_8006386C,D_80074778,D_80074780
|
||||
STRUCT MAP 19012 types explain 409870/413891 deref sites (99.0 %); unassigned 4021; 4021 types span ≥2 bodies (352068 sites), 14991 single-body; types with conflicts 860, suspect 11
|
||||
merges by evidence {'param': 39690, 'assign': 19000, 'return': 1533, 'ret-of': 5615, 'arg': 10967, 'assign&': 1274, 'arg&': 277, 'field': 7685, 'nested': 9}; vetoed {'arg-conduit': 129985, 'field-multisource': 6027, 'arg&-conduit': 14638, 'assign-multisource': 33224, 'ret-of-multisource': 6599, 'arg-no-overlap': 42045, 'assign&-multisource': 12213, 'arg&-no-overlap': 3414, 'ret-of': 499, 'assign': 322, 'assign&': 337, 'arg': 172, 'return': 6, 'field': 96}
|
||||
Unkstruct_800B5CB8 sites 48026 bodies 6090 fields 129 size≥0x10c width-conflicts 50 sign-mixed 58 merges {'param': 9162, 'assign': 8565, 'arg': 6940, 'ret-of': 2374} at D_800B5CB8,D_800D3888,D_80181448 ptr D_8006386C,D_80074778,D_80074780
|
||||
Unkstruct_80126B58 sites 40428 bodies 9383 fields 174 size≥0x24c width-conflicts 50 sign-mixed 54 merges {'param': 2312, 'arg': 1203, 'assign&': 106, 'field': 49} at D_80126B58 ptr D_80126B58
|
||||
Unkstruct_cb638a45 sites 6477 bodies 381 fields 6 size≥0x10 width-conflicts 0 sign-mixed 0 merges {'param': 10, 'arg': 4}
|
||||
Unkstruct_dac960ce sites 4464 bodies 124 fields 13 size≥0x24c width-conflicts 0 sign-mixed 2 merges {'param': 2}
|
||||
Unkstruct_0caecd54 sites 4340 bodies 124 fields 23 size≥0xfe width-conflicts 0 sign-mixed 1 merges {'param': 2, 'assign': 1, 'return': 1}
|
||||
Unkstruct_f8ed2b9f sites 4061 bodies 4061 fields 1 size≥0x217 width-conflicts 0 sign-mixed 0 merges {'param': 2}
|
||||
Unkstruct_a32b99a1 sites 3936 bodies 123 fields 8 size≥0x4b width-conflicts 0 sign-mixed 1 merges {}
|
||||
Unkstruct_8e3dbe51 sites 3930 bodies 131 fields 5 size≥0x4c width-conflicts 0 sign-mixed 1 merges {}
|
||||
Unkstruct_80126948 sites 3301 bodies 1101 fields 34 size≥0xa4 width-conflicts 1 sign-mixed 10 merges {'assign': 103, 'arg': 17, 'param': 14, 'assign&': 4} at D_80126948,D_80126E60 ptr D_80114EE8,D_801151D4,D_80126948
|
||||
Unkstruct_80126948 sites 3295 bodies 1100 fields 34 size≥0xa4 width-conflicts 1 sign-mixed 10 merges {'assign': 103, 'arg': 15, 'param': 12, 'assign&': 4} at D_80126948,D_80126E60 ptr D_80114EE8,D_801151D4,D_80126948
|
||||
Unkstruct_57a28935 sites 3271 bodies 196 fields 26 size≥0xa4 width-conflicts 3 sign-mixed 9 merges {'param': 268, 'arg': 133}
|
||||
Unkstruct_1fa9e810 sites 3144 bodies 131 fields 3 size≥0x49 width-conflicts 0 sign-mixed 0 merges {}
|
||||
Unkstruct_30b21035 sites 3100 bodies 124 fields 13 size≥0x54 width-conflicts 0 sign-mixed 0 merges {}
|
||||
Unkstruct_198fc7cc sites 2580 bodies 129 fields 16 size≥0x38 width-conflicts 3 sign-mixed 1 merges {'param': 2}
|
||||
GLOBAL BLOCKS 2124 runs of ≥4 adjacent scalar D_ symbols (14255 symbols): 0x800cf10c+0x34 ×29 (D_800CF10C..D_800CF13C) · 0x800a6580+0x3a ×27 (D_800A6580..D_800A65B8) · 0x801998a4+0x57 ×24 (D_801998A4..D_801998FA) · 0x80199840+0x56 ×23 (D_80199840..D_80199895) · 0x801a9608+0x50 ×22 (D_801A9608..D_801A9654) · 0x801ab708+0x54 ×21 (D_801AB708..D_801AB758) · 0x801b0df0+0x4b ×21 (D_801B0DF0..D_801B0E3A) · 0x801b83a0+0x4e ×21 (D_801B83A0..D_801B83ED)
|
||||
GLOBAL BLOCKS 2122 runs of ≥4 adjacent scalar D_ symbols (14243 symbols): 0x800cf10c+0x34 ×29 (D_800CF10C..D_800CF13C) · 0x800a6580+0x3a ×27 (D_800A6580..D_800A65B8) · 0x801998a4+0x57 ×24 (D_801998A4..D_801998FA) · 0x80199840+0x56 ×23 (D_80199840..D_80199895) · 0x801a9608+0x50 ×22 (D_801A9608..D_801A9654) · 0x801ab708+0x54 ×21 (D_801AB708..D_801AB758) · 0x801b0df0+0x4b ×21 (D_801B0DF0..D_801B0E3A) · 0x801b83a0+0x4e ×21 (D_801B83A0..D_801B83ED)
|
||||
PARKED (P36) 24 classes / 453 bodies / 691 needed sites → .run/P37/census/parked.tsv; needs {'signature': 13, 'struct': 7, '?': 4}; 22 PARK names are minimum-lever banks
|
||||
CONTROLS 4/4: player_block_widths OK (D_80078E8C:4/4 D_80078EB2:2/2 D_80078EB4:2/2 D_80078EB6:2/2 D_80078EB8:2/2 D_80078F08:4/4 D_80078F0C:4/4) · matrix_layouts OK (MATRIX=32 MATRIX_L48=48) · prim_layout_class OK (defs in 1 files, 1 spellings, 1/1 in one layout (64 B)) · tu_conflict_D_800A651C OK (s32:1202 | u8[]:9 | OtBlk[]:9 | OtBlk_80016450[]:8 | s32[]:7)
|
||||
|
||||
duplicate-layout classes (top 12): 4B×56 names (0 defs): B4_80165140, B4_8017F154, B4_8018750C, B4_8018AD9C… | 8B×46 names (0 defs): Blk8S16, Blk8_80126940, Blk8_80180A38, D_80195AF4_t… | 8B×45 names (0 defs): B8, B8_17F474, B8_80165140, B8_801851A8… | 8B×34 names (0 defs): Args_80182194, Blk8017FD54, Blk8_801A6AD0, Blk8_801AD914… | 20B×32 names (0 defs): Blk20_8017D110, Buf8017BF34_8017BF34, Buf8017BF50_8017C234, Loc_80180E10… | 16B×28 names (0 defs): Blk16X, Blk16_8017ECD4, Blk16_8018A4C4, Blk16_8018A8B8… | 6B×25 names (0 defs): D80190448_t, Pt6_8017D65C, ResMapCol, S6… | 32B×25 names (0 defs): Blk20_8016DF5C, Blk20_80180B78, Blk20_80184694, Blk32L_80133298… | 8B×22 names (22 defs): B8014, Blk8_80133CD4, Blk8_801463A0, Blk8_8017FF80… | 12B×19 names (19 defs): Blk12, Prim126, PrimC59C, PrimC974… | 8B×14 names (0 defs): CdFileLoc, Cmd_801805C8, M8_8016B6BC, Pair8_8017DDC4… | 4B×14 names (0 defs): D_801D0660_s, Ent_80186AE4, P4, Pair4_801B02DC…
|
||||
VARIANT names (top 12):
|
||||
|
||||
type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 416097 cast sites in 59444 bodies over 8 base classes (4 forms + A, coverage OK) · 229 lying declarations / 24 callees (+5293 K&R sites, +418 cross-binary apart) · controls 4/4
|
||||
struct_map: 18683 types over 18683 clusters explain 412076/416097 sites (99.0 %); 4021 unassigned sites; 856 types with conflicts
|
||||
type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 413891 cast sites in 59238 bodies over 8 base classes (4 forms + A, coverage OK) · 229 lying declarations / 24 callees (+5293 K&R sites, +418 cross-binary apart) · controls 4/4
|
||||
struct_map: 19012 types over 19012 clusters explain 409870/413891 sites (99.0 %); 4021 unassigned sites; 860 types with conflicts
|
||||
|
||||
@@ -827,21 +827,21 @@ void func_8012E9C0(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
if (*(short *)(param_1 + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
|
||||
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
|
||||
*(short *)(param_1 + 0x82) = 0;
|
||||
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
|
||||
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
|
||||
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
|
||||
}
|
||||
if (*(int *)(param_1 + 0x78) != 0) {
|
||||
iVar1 = *(short *)(param_1 + 0x60) *
|
||||
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
|
||||
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
|
||||
if (iVar1 < 1) {
|
||||
iVar1 = 1;
|
||||
}
|
||||
} else {
|
||||
iVar1 = *(short *)(param_1 + 0x60);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
|
||||
}
|
||||
func_8016AA50(param_1, iVar1);
|
||||
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
|
||||
@@ -995,10 +995,10 @@ void func_8012F8C8(u8* arg0) {
|
||||
s32 func_8012FCC4(s32 param_1) {
|
||||
extern int D_80182738;
|
||||
|
||||
int v1 = *(int *)(((int)param_1) + 0xC4);
|
||||
*(char *)(((int)param_1) + 0xC1) = 8;
|
||||
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
|
||||
if (v1 & 2) {
|
||||
*(char *)(((int)param_1) + 0xC1) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
|
||||
func_80131CA8(((int)param_1), 3);
|
||||
return;
|
||||
}
|
||||
@@ -1006,20 +1006,20 @@ s32 func_8012FCC4(s32 param_1) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 1);
|
||||
return;
|
||||
}
|
||||
if (*(int *)(((int)param_1) + 0xB4) & 0x100) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
|
||||
((void (*)(int))func_80131B14)(((int)param_1));
|
||||
if (*(short *)(((int)param_1) + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 0xC);
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32, s32))func_80131A34)(((int)param_1), 4) != 0) {
|
||||
*(char *)(((int)param_1) + 0xC2) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
|
||||
} else {
|
||||
*(short *)(((int)param_1) + 0x98) = 0;
|
||||
*(char *)(((int)param_1) + 0xC2) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
|
||||
}
|
||||
((void (*)(int, void *))func_8012B14C)(((int)param_1), &D_80182738);
|
||||
*(int *)(((int)param_1) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
|
||||
func_80131CA8(((int)param_1), 0x1C);
|
||||
return;
|
||||
}
|
||||
@@ -1115,12 +1115,12 @@ void func_80130D48(s32 arg0)
|
||||
s32 r;
|
||||
s32 ret;
|
||||
|
||||
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
|
||||
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
|
||||
if (val == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
|
||||
ret = func_8012C658(0x33, 0, arg0);
|
||||
} else {
|
||||
switch (val & 0xFFFF0000) {
|
||||
@@ -1237,7 +1237,7 @@ void func_80130D48(s32 arg0)
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
*(u16 *)(ret + 0xA) -= 0x20;
|
||||
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1255,34 +1255,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
|
||||
extern u8 D_80182714[];
|
||||
|
||||
func_80131B14();
|
||||
*(u8 *)(((u8 *)p) + 0xC2) = 0;
|
||||
*(u8 *)(((u8 *)p) + 0xC3) = 0;
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
if (((u8 *)b) == 0) {
|
||||
((u8 *)b) = D_80182714;
|
||||
}
|
||||
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
|
||||
*(s32 *)(((u8 *)p) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
|
||||
if (c != 0) {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
} else {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
}
|
||||
tail:
|
||||
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
|
||||
@@ -1434,12 +1434,12 @@ void func_80131340(s32 a0)
|
||||
s32 temp;
|
||||
s32 var_a1;
|
||||
|
||||
if (*(s16 *)(a0 + 0xA) >= 0x10) {
|
||||
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
|
||||
func_801319E0(a0);
|
||||
return;
|
||||
}
|
||||
|
||||
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
|
||||
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
|
||||
if (temp != 0) {
|
||||
sp10.vz = 0;
|
||||
sp10.vx = 0;
|
||||
@@ -1448,31 +1448,31 @@ void func_80131340(s32 a0)
|
||||
sp10 = D_80182868;
|
||||
}
|
||||
|
||||
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
|
||||
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
|
||||
if (var_a1 == 0) {
|
||||
var_a1 = 0x50;
|
||||
}
|
||||
func_8012DBD0(a0, var_a1,
|
||||
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
|
||||
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
|
||||
}
|
||||
|
||||
switch (*(u8 *)(a0 + 0xC2)) {
|
||||
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
if (*(u8 *)(a0 + 0xC2) == 0) {
|
||||
*(u8 *)(a0 + 0xC2) = 1;
|
||||
sp18.vx = *(u16 *)(a0 + 0x3A);
|
||||
sp18.vy = *(u16 *)(a0 + 0x3E);
|
||||
sp18.vz = *(u16 *)(a0 + 0x42);
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
|
||||
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
|
||||
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
|
||||
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
|
||||
sp20 = sp18;
|
||||
sp20.vx += sp10.vx;
|
||||
sp20.vy += sp10.vy;
|
||||
@@ -1482,82 +1482,82 @@ void func_80131340(s32 a0)
|
||||
sp20.vx -= sp10.vx;
|
||||
sp20.vy -= sp10.vy;
|
||||
sp20.vz -= sp10.vz;
|
||||
*(u16 *)(a0 + 0x3A) = sp20.vx;
|
||||
*(u16 *)(a0 + 0x3E) = sp20.vy;
|
||||
*(u16 *)(a0 + 0x42) = sp20.vz;
|
||||
*(u16 *)(a0 + 0x6) = sp20.vx;
|
||||
*(u16 *)(a0 + 0xA) = sp20.vy;
|
||||
*(u16 *)(a0 + 0xE) = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
|
||||
}
|
||||
D_801CC558 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801CC558 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801CC558 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801CC558 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801CC558) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
func_80143B6C(a0, 1);
|
||||
*(s32 *)(a0 + 0x14) = 0xFFF30000;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
} else if (D_801CC558 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
D_801CC55C = *(s32 *)(a0 + 0x14);
|
||||
D_801CC55C = ((Unkstruct_800B5CB8 *)a0)->unk14;
|
||||
D_801CC558 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801CC558 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801CC558 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801CC558 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801CC558) == 1) {
|
||||
return;
|
||||
}
|
||||
func_80143B6C(a0, 1);
|
||||
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
|
||||
*(s32 *)(a0 + 0x14) = (-D_801CC55C) / 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_801CC55C) / 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
} else if (D_801CC558 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
|
||||
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
|
||||
if (*(u8 *)(a0 + 0xC3) & 1) {
|
||||
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
|
||||
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
|
||||
D_801CC558 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801CC558 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (func_80131D68(a0, D_801CC558) == 1) {
|
||||
return;
|
||||
@@ -1569,28 +1569,28 @@ void func_80131340(s32 a0)
|
||||
} else {
|
||||
D_801CC558 = ((s32 (*)(s32))func_8012CBF4)(a0);
|
||||
if (D_801CC558 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801CC558 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
break;
|
||||
} else if (D_801CC558 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801CC558) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC3) |= 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
|
||||
} else if (D_801CC558 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) < 0x11) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
|
||||
break;
|
||||
}
|
||||
if (!(D_801CC558 & 0x6000)) {
|
||||
@@ -1598,7 +1598,7 @@ void func_80131340(s32 a0)
|
||||
return;
|
||||
}
|
||||
/* polarity MUST match case 4's — see the cross-jump note in the header. */
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
@@ -1608,24 +1608,24 @@ void func_80131340(s32 a0)
|
||||
case 4:
|
||||
D_801CC558 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801CC558 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801CC558 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801CC558) == 1) {
|
||||
return;
|
||||
}
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
}
|
||||
} else {
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
@@ -1680,47 +1680,47 @@ void func_80131B14() {
|
||||
u8 *p = a0v;
|
||||
|
||||
|
||||
s32 e = *(u8 *)(p + 0x5E);
|
||||
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
|
||||
|
||||
if (*(s16 *)(p + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
|
||||
if (e == 0x1D) {
|
||||
*(s16 *)(p + 0x82) = 0;
|
||||
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
|
||||
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
|
||||
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
|
||||
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
|
||||
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
|
||||
}
|
||||
{
|
||||
s32 dec;
|
||||
s32 q = *(s32 *)(p + 0x78);
|
||||
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
|
||||
if (q != 0) {
|
||||
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
if (dec <= 0) dec = 1;
|
||||
}
|
||||
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
|
||||
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
|
||||
}
|
||||
((void (*)(void *))func_8016AA50)(p);
|
||||
if (*(u16 *)(p + 0x82) & 1) {
|
||||
if (CAST_SIGN(u16, p, 0x82) & 1) {
|
||||
((void (*)(void *))func_8016B428)(p);
|
||||
((void(*)(void *))func_80019064)(&D_80182870);
|
||||
}
|
||||
}
|
||||
|
||||
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
|
||||
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
|
||||
|
||||
if (e != 0x1D) {
|
||||
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
|
||||
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
|
||||
}
|
||||
|
||||
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
|
||||
|
||||
{
|
||||
s32 r = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
|
||||
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
|
||||
{
|
||||
s32 r2 = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r2 + 0x14) = 0;
|
||||
*(s16 *)(r2 + 0x10) = 0;
|
||||
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
CAST_WIDTH(s16, r2, 0x14) = 0;
|
||||
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1814,7 +1814,7 @@ void func_80131E00(struct S80131E00 *a0, s32 a1) {
|
||||
extern void (*D_801828D8[])(void);
|
||||
|
||||
void func_80131EEC(void *a0) {
|
||||
D_801828D8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801828D8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1822,7 +1822,7 @@ void func_80131EEC(void *a0) {
|
||||
extern void (*D_80182920[])(void);
|
||||
|
||||
void func_80131F28(void *a0) {
|
||||
D_80182920[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182920[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1830,7 +1830,7 @@ void func_80131F28(void *a0) {
|
||||
extern void (*D_80182928[])(void);
|
||||
|
||||
void func_80131F64(void *a0) {
|
||||
D_80182928[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182928[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1838,7 +1838,7 @@ void func_80131F64(void *a0) {
|
||||
extern void (*D_80182930[])(void);
|
||||
|
||||
void func_80131FA0(void *a0) {
|
||||
D_80182930[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182930[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1846,7 +1846,7 @@ void func_80131FA0(void *a0) {
|
||||
extern void (*D_80182938[])(void);
|
||||
|
||||
void func_80131FDC(void *a0) {
|
||||
D_80182938[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182938[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1567,7 +1567,7 @@ void func_801424E4(short *param_1) {
|
||||
extern void (*D_801837E4[])(void);
|
||||
|
||||
void func_801425CC(void *a0) {
|
||||
D_801837E4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801837E4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1880,7 +1880,7 @@ void func_8014305C(int param_1)
|
||||
|
||||
do { iVar2 = ((int (*)(void))func_8012C1B8)(); } while (0);
|
||||
s1_copy = iVar2;
|
||||
*(int *)(s0_param + 0x20) = iVar2;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unk20 = iVar2;
|
||||
if (iVar2 == 0) {
|
||||
((void (*)(int))func_8012CAE4)(s0_param);
|
||||
} else {
|
||||
@@ -1888,7 +1888,7 @@ void func_8014305C(int param_1)
|
||||
sVar1 = (*(unsigned short *)(s0_param + 0x70) & 0xf) * 0x600 + 0xc00;
|
||||
*(short *)(s1_copy + 0x1a) = sVar1;
|
||||
*(short *)(s1_copy + 0x18) = sVar1;
|
||||
*(short *)(s0_param + 0xfc) = 0;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unkFC = 0;
|
||||
func_8012A828(s0_param, D_80183A54);
|
||||
((void (*)(int))func_80142B2C)(s0_param);
|
||||
}
|
||||
@@ -2049,7 +2049,7 @@ void func_8014358C(s32 param_1)
|
||||
extern void (*D_80183CD4[])(void);
|
||||
|
||||
void func_80143B30(void *a0) {
|
||||
D_80183CD4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183CD4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2061,7 +2061,7 @@ void func_80143B30(void *a0) {
|
||||
extern void (*D_80183CE0[])(void);
|
||||
|
||||
void func_80143C38(void *a0) {
|
||||
D_80183CE0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183CE0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2071,7 +2071,7 @@ void func_80143C38(void *a0) {
|
||||
extern void (*D_80183CE8[])(void);
|
||||
|
||||
void func_80143C98(void *a0) {
|
||||
D_80183CE8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183CE8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2092,35 +2092,35 @@ extern void func_8012C218(void *a0);
|
||||
void func_80143D28(s32 param_1) {
|
||||
|
||||
extern MatEntry D_80183D0C[];
|
||||
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
|
||||
MatEntry *p = &D_80183D0C[*(s16 *)(param_1 + 0x70)];
|
||||
s32 iVar2 = ((Unkstruct_800B5CB8 *)param_1)->unk64; /* $s1 */
|
||||
MatEntry *p = &D_80183D0C[((Unkstruct_800B5CB8 *)param_1)->unk70];
|
||||
u16 uVar5 = p->f8;
|
||||
s32 iVar3 = *(s32 *)(param_1 + 0x20);
|
||||
s32 iVar3 = ((Unkstruct_800B5CB8 *)param_1)->unk20;
|
||||
s32 sVar4;
|
||||
s32 iVar1;
|
||||
|
||||
*(s16 *)(iVar3 + 0x14) = uVar5;
|
||||
*(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;
|
||||
CAST_WIDTH(s16, iVar3, 0x14) = uVar5;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk12 = ((Unkstruct_800B5CB8 *)iVar3)->unk12 + p->fa;
|
||||
sVar4 = 0x1000;
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x34), p, (void *)(param_1 + 0x50));
|
||||
|
||||
if (*(s16 *)(param_1 + 0xfe) == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkFE == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != ((Unkstruct_800B5CB8 *)param_1)->unkFC ||
|
||||
*(u8 *)(iVar2 + 0xc1) != 6)) {
|
||||
if (0x10 < *(s32 *)(param_1 + 0x1c)) {
|
||||
*(s32 *)(param_1 + 0x1c) = 0x10;
|
||||
if (0x10 < ((Unkstruct_800B5CB8 *)param_1)->unk1C) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x10;
|
||||
}
|
||||
*(s16 *)(param_1 + 0xfe) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFE = 1;
|
||||
}
|
||||
|
||||
iVar1 = *(s32 *)(param_1 + 0x1c);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C;
|
||||
if (iVar1 < 0x11) {
|
||||
sVar4 = iVar1 << 8;
|
||||
}
|
||||
if (0x73 < iVar1) {
|
||||
sVar4 = (0x78 - iVar1) << 10;
|
||||
}
|
||||
*(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = ((Unkstruct_800B5CB8 *)iVar3)->unk1A = CAST_WIDTH(s16, iVar3, 0x1c) = sVar4;
|
||||
|
||||
if (func_8012BEE8(param_1)) {
|
||||
func_8012C218((void *)param_1);
|
||||
@@ -2132,7 +2132,7 @@ void func_80143D28(s32 param_1) {
|
||||
extern void (*D_80183D30[])(void);
|
||||
|
||||
void func_80143E68(void *a0) {
|
||||
D_80183D30[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183D30[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2148,7 +2148,7 @@ void func_80143E68(void *a0) {
|
||||
extern void (*D_80183D44[])(void);
|
||||
|
||||
void func_80144054(void *a0) {
|
||||
D_80183D44[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183D44[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2172,9 +2172,9 @@ void func_801442F8(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
D_80183D4C[*(u16 *)(param_1 + 2)]();
|
||||
iVar1 = *(int *)(param_1 + 0x1c) + 1;
|
||||
*(int *)(param_1 + 0x1c) = iVar1;
|
||||
D_80183D4C[CAST_SIGN(u16, param_1, 2)]();
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C + 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = iVar1;
|
||||
if (0x1d < iVar1) {
|
||||
func_8012C218(param_1);
|
||||
}
|
||||
@@ -2200,19 +2200,19 @@ void func_80144364(int param_1) {
|
||||
*(int *)(param_1 + 0xCC) = iVar3;
|
||||
*(u16 *)(param_1 + 0xFC) = uVar2;
|
||||
func_8001CB6C((u8 *)iVar3, (s32)&D_80183CC8, 0x250, 0x1A0);
|
||||
*(s32 *)(iVar3 + 4) = 0x60000000;
|
||||
*(u8 *)(iVar3 + 0x27) = 0x14;
|
||||
*(u16 *)(iVar3 + 0x10) = 0x400;
|
||||
*(u16 *)(iVar3 + 8) = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
*(u16 *)(iVar3 + 0xA) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
*(u16 *)(iVar3 + 0xC) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
CAST_WIDTH(s32, iVar3, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk27 = 0x14;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk8 = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkA = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkC = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
sVar1 = *(s16 *)(param_1 + 0x70);
|
||||
if (sVar1 != 0) {
|
||||
*(s16 *)(iVar3 + 0x1A) = sVar1;
|
||||
*(s16 *)(iVar3 + 0x18) = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = sVar1;
|
||||
} else {
|
||||
*(u16 *)(iVar3 + 0x1A) = 0x2000;
|
||||
*(u16 *)(iVar3 + 0x18) = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = 0x2000;
|
||||
}
|
||||
*(u16 *)(param_1 + 2) = 1;
|
||||
}
|
||||
@@ -2235,7 +2235,7 @@ void func_80144458(void *arg0) {
|
||||
void *temp_v0;
|
||||
|
||||
temp_s2 = M2C_FIELD(arg0, void **, 0xCC);
|
||||
if (M2C_FIELD(arg0, s16 *, 0x70) == 0) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk70 == 0) {
|
||||
temp_v0 = M2C_FIELD(M2C_FIELD(arg0, void **, 0x64), void **, 0x20);
|
||||
if (temp_v0 != NULL) {
|
||||
temp_s0 = (M2C_FIELD(temp_v0, s16 *, 0x12) - 0x400) & 0xFFF;
|
||||
@@ -2244,9 +2244,9 @@ void func_80144458(void *arg0) {
|
||||
func_8012AD80(arg0);
|
||||
}
|
||||
}
|
||||
M2C_FIELD(temp_s2, u16 *, 8) = (u16) M2C_FIELD(arg0, u16 *, 6);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xA) = (u16) M2C_FIELD(arg0, u16 *, 0xA);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xC) = (u16) M2C_FIELD(arg0, u16 *, 0xE);
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unk8 = (u16) ((Unkstruct_800B5CB8 *)arg0)->unk6;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkA = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkA;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkC = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkE;
|
||||
if (func_80128ED8(temp_s2, arg0 + 0xD0) != 0) {
|
||||
func_80016714(temp_s2, 0x38);
|
||||
func_8012C218(arg0);
|
||||
@@ -2280,29 +2280,29 @@ void func_8014477C(void *param_1) {
|
||||
s32 fv;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)param_1 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(param_1);
|
||||
return;
|
||||
}
|
||||
((void (*)(s32, void *))func_8001CA1C)(v0, &D_80183CF0);
|
||||
if (*(u16 *)(*(s32 *)((s32)param_1 + 0x64)) != 0) {
|
||||
*(s16 *)((s32)param_1 + 0xFC) = *(u16 *)(*(s32 *)((s32)param_1 + 0x64) + 0x36);
|
||||
uVar2 = *(s32 *)(*(s32 *)((s32)param_1 + 0x64) + 0x58);
|
||||
if (*(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64) != 0) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFC = *(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x36);
|
||||
uVar2 = *(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x58);
|
||||
if (uVar2 != 0) {
|
||||
addr = uVar2 & 0xFFFFFFF;
|
||||
gv = CAST_NONSTRUCT(u16, (addr | 0x80000000), 8);
|
||||
fv = *(u16 *)((s32)param_1 + 0xA) - 0x30;
|
||||
*(u16 *)((s32)param_1 + 0xA) = gv + fv;
|
||||
fv = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x30;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = gv + fv;
|
||||
} else {
|
||||
*(u16 *)((s32)param_1 + 0xA) = *(u16 *)((s32)param_1 + 0xA) - 0x60;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x60;
|
||||
}
|
||||
}
|
||||
((void (*)(void *, void *))func_8012A828)(param_1, &D_80183CFC);
|
||||
v1 = (s32)*(s16 *)((s32)param_1 + 0x70) << 0xC;
|
||||
*(s16 *)((s32)param_1 + 0x2) = 1;
|
||||
*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12) = v1 / 3;
|
||||
*(s32 *)((s32)param_1 + 0x1C) = 0x78;
|
||||
v1 = (s32)((Unkstruct_800B5CB8 *)param_1)->unk70 << 0xC;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = 1;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)((s32)param_1 + 0x20))->unk12 = v1 / 3;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x78;
|
||||
}
|
||||
|
||||
|
||||
@@ -2334,15 +2334,15 @@ void func_80144880(s32 param_1)
|
||||
func_8001CB6C((u8 *)obj, (s32)&D_80183D38, 0x300, 0x1D0);
|
||||
b = 0x6A;
|
||||
}
|
||||
*(u8 *)(obj + 0x27) = (u8)b;
|
||||
*(s32 *)(obj + 4) = 0x60000000;
|
||||
*(u16 *)(obj + 0x10) = 0x400;
|
||||
*(u16 *)(obj + 8) = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
*(u16 *)(obj + 0xA) = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)obj)->unk27 = (u8)b;
|
||||
CAST_WIDTH(s32, obj, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk8 = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)obj)->unkA = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
e = *(u16 *)(*(s32 *)(self + 0x64) + 0xE);
|
||||
*(u16 *)(obj + 0x1A) = 0x4000;
|
||||
*(u16 *)(obj + 0x18) = 0x4000;
|
||||
*(u16 *)(obj + 0xC) = (u16)e;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk1A = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk18 = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unkC = (u16)e;
|
||||
*(s16 *)(self + 2) = *(s16 *)(self + 2) + 1;
|
||||
}
|
||||
}
|
||||
@@ -2354,7 +2354,7 @@ void func_80144880(s32 param_1)
|
||||
extern void (*D_80183D54[])(void);
|
||||
|
||||
void func_801449C8(void *a0) {
|
||||
D_80183D54[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183D54[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2364,7 +2364,7 @@ void func_801449C8(void *a0) {
|
||||
extern void (*D_80183D5C[])(void);
|
||||
|
||||
void func_80144A2C(void *a0) {
|
||||
D_80183D5C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183D5C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
|
||||
extern void (*D_80184220[])(void);
|
||||
|
||||
void func_80155580(void *a0) {
|
||||
D_80184220[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184220[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1155,7 +1155,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
|
||||
extern void (*D_80184694[])(void);
|
||||
|
||||
void func_80157544(void *a0) {
|
||||
D_80184694[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184694[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1235,7 +1235,7 @@ extern u8 D_8018469C;
|
||||
void func_801578C0(s32 param_1)
|
||||
{
|
||||
((void (*)(void))func_80156648)();
|
||||
*(u8 *)(param_1 + 0x1AA) = 9;
|
||||
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
|
||||
func_80154274((s32 *)param_1, (s32)&D_800D5128);
|
||||
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
|
||||
func_80147324(0xC20);
|
||||
@@ -1285,8 +1285,8 @@ void func_8015795C(int param_1)
|
||||
|
||||
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
|
||||
((int (*)(int, int))func_80147A10)(param_1, 0x400);
|
||||
if (*(int *)(param_1 + 0x2c) >= 0) {
|
||||
*(int *)(param_1 + 0x2c) = 0;
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
|
||||
}
|
||||
func_80147A84(param_1);
|
||||
((void (*)(int))func_801473EC)(param_1);
|
||||
@@ -1309,7 +1309,7 @@ void func_8015795C(int param_1)
|
||||
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
|
||||
((void (*)(int, void *))func_80146DB8)(param_1, &D_801846AC);
|
||||
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
|
||||
*(short *)(param_1 + 2) = 4;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
|
||||
}
|
||||
((void (*)(int))func_801725A4)(param_1);
|
||||
}
|
||||
@@ -1374,7 +1374,7 @@ void func_80157D20(void *param_1, s32 param_2)
|
||||
extern void (*D_801846FC[])(void);
|
||||
|
||||
void func_80157DC4(void *a0) {
|
||||
D_801846FC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801846FC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1390,7 +1390,7 @@ void func_80157DC4(void *a0) {
|
||||
extern void (*D_80184704[])(void);
|
||||
|
||||
void func_80157FC4(void *a0) {
|
||||
D_80184704[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184704[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1412,11 +1412,11 @@ extern s32 D_801846D0;
|
||||
|
||||
void func_80158038(void * param)
|
||||
{
|
||||
*(u8 *)(param + 0x1aa) = 0xe;
|
||||
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
|
||||
func_80154274((s32 *)param, (s32)&D_800D51E0);
|
||||
func_80154A74(param, 0x15);
|
||||
func_80146DB8((s32 *)param, &D_801846D0);
|
||||
*(s32 *)(param + 0x234) = 0;
|
||||
((Unkstruct_80126B58 *)param)->unk234 = 0;
|
||||
func_80146994(5, param, 0xc, 0);
|
||||
func_80147324(0x455);
|
||||
func_80146CA0((void *)param);
|
||||
@@ -1431,7 +1431,7 @@ void func_80158038(void * param)
|
||||
extern void (*D_80184710[])(void);
|
||||
|
||||
void func_8015824C(void *a0) {
|
||||
D_80184710[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184710[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1469,15 +1469,15 @@ void func_80158434(s32 param_1)
|
||||
s32 frame_pad[4];
|
||||
(void)&frame_pad;
|
||||
|
||||
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
|
||||
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
|
||||
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
|
||||
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
|
||||
((s32 (*)(void))func_8014CBF8)();
|
||||
((void (*)(s32))func_801474EC)(param_1);
|
||||
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
|
||||
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_801846E0);
|
||||
}
|
||||
if (*(s32 *)(param_1 + 0x234) != 0) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
|
||||
func_80148038(param_1, 0x10000);
|
||||
func_80147460(param_1);
|
||||
func_80147AD4(param_1, 0, 0, 0);
|
||||
@@ -1496,7 +1496,7 @@ LAB_80158508:
|
||||
((void (*)(s32))func_80146CA0)(param_1);
|
||||
return;
|
||||
LAB_80158528:
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
|
||||
}
|
||||
|
||||
|
||||
@@ -1602,5 +1602,5 @@ extern void (*D_8018474C[])(s32 *);
|
||||
|
||||
void func_80158880(s32 *param) {
|
||||
func_80149020(param);
|
||||
D_8018474C[*(u8 *)((s32)param + 0x4F)](param);
|
||||
D_8018474C[((Unkstruct_80126B58 *)param)->unk4F](param);
|
||||
}
|
||||
|
||||
@@ -1172,8 +1172,8 @@ void func_80158BB0(void *arg0) {
|
||||
func_80147324(0x456);
|
||||
func_80154274(arg0, &D_800D58D8);
|
||||
func_80154A74(arg0, 0x16);
|
||||
M2C_FIELD(arg0, s32 *, 0x234) = 0xE30000;
|
||||
M2C_FIELD(M2C_FIELD(arg0, void **, 0x20), s16 *, 0x10) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0xE30000;
|
||||
((Unkstruct_800B5CB8 *)M2C_FIELD(arg0, void **, 0x20))->unk10 = 0;
|
||||
func_801474EC(arg0);
|
||||
func_801474D8(arg0);
|
||||
func_801472C8(arg0);
|
||||
@@ -1285,7 +1285,7 @@ void func_8015934C(void *arg0) {
|
||||
D_800AE6BD += 1;
|
||||
}
|
||||
temp_v1 = M2C_FIELD(arg0, void **, 0x20);
|
||||
M2C_FIELD(temp_v1, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_v1, u16 *, 0x12) + 0x16) & 0xFFF);
|
||||
((Unkstruct_800B5CB8 *)temp_v1)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_v1)->unk12 + 0x16) & 0xFFF);
|
||||
}
|
||||
|
||||
|
||||
@@ -1490,9 +1490,9 @@ void func_80159A20(unsigned char *param_1)
|
||||
func_80158638(param_1);
|
||||
((void (*)(u8 *))func_8015126C)(param_1);
|
||||
((void (*)(u8 *))func_8014900C)(param_1);
|
||||
D_80184AF0[*(u16 *)param_1 & 0x7fff](param_1);
|
||||
*(u32 *)(param_1 + 0x44) |= 0x8000000;
|
||||
switch (*(u16 *)param_1) {
|
||||
D_80184AF0[((Unkstruct_80126B58 *)param_1)->unk0 & 0x7fff](param_1);
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 |= 0x8000000;
|
||||
switch (((Unkstruct_80126B58 *)param_1)->unk0) {
|
||||
case 2:
|
||||
case 3:
|
||||
case 0xb:
|
||||
@@ -1507,13 +1507,13 @@ void func_80159A20(unsigned char *param_1)
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(param_1 + 2) == 3) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2 == 3) {
|
||||
goto mask;
|
||||
}
|
||||
return;
|
||||
}
|
||||
mask:
|
||||
*(u32 *)(param_1 + 0x44) &= 0xf7ffffff;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 &= 0xf7ffffff;
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80159B08.h"
|
||||
@@ -1524,7 +1524,7 @@ mask:
|
||||
extern void (*D_80184B94[])(void);
|
||||
|
||||
void func_80159B70(void *a0) {
|
||||
D_80184B94[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184B94[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1559,8 +1559,8 @@ void func_80159BE4(s32 arg0)
|
||||
func_80154150(arg0, 4);
|
||||
func_80154A74(arg0, 0x11);
|
||||
}
|
||||
*(int *)(arg0 + 0x234) = 0;
|
||||
*(int *)(arg0 + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 0;
|
||||
func_801553C0(arg0);
|
||||
((void (*)(int))func_801553A8)(arg0);
|
||||
((void (*)(int))func_80172590)(arg0);
|
||||
|
||||
@@ -1180,7 +1180,7 @@ s32 func_80159C84(s32 p) {
|
||||
s32 t;
|
||||
|
||||
if (((s32 (*)(void))func_80149D9C)() != 0) {
|
||||
D_80184A4C[*(u16 *)((u8 *)p)](((u8 *)p));
|
||||
D_80184A4C[((Unkstruct_80126B58 *)p)->unk0](((u8 *)p));
|
||||
((void (*)(u8 *))func_80149FA8)(((u8 *)p));
|
||||
return;
|
||||
}
|
||||
@@ -1196,7 +1196,7 @@ s32 func_80159C84(s32 p) {
|
||||
return;
|
||||
}
|
||||
if (func_801496D4(((u8 *)p)) != 0) {
|
||||
D_80184A4C[*(u16 *)((u8 *)p)](((u8 *)p));
|
||||
D_80184A4C[((Unkstruct_80126B58 *)p)->unk0](((u8 *)p));
|
||||
((void (*)(u8 *))func_80149704)(((u8 *)p));
|
||||
return;
|
||||
}
|
||||
@@ -1207,12 +1207,12 @@ s32 func_80159C84(s32 p) {
|
||||
case 2:
|
||||
case 6:
|
||||
if (func_80149AA8((s32 *)((u8 *)p)) != 0) {
|
||||
D_80184A4C[*(u16 *)((u8 *)p)](((u8 *)p));
|
||||
D_80184A4C[((Unkstruct_80126B58 *)p)->unk0](((u8 *)p));
|
||||
func_80149AD4((s32 *)((u8 *)p));
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32 *))func_80149B54)((s32 *)((u8 *)p)) != 0) {
|
||||
D_80184A4C[*(u16 *)((u8 *)p)](((u8 *)p));
|
||||
D_80184A4C[((Unkstruct_80126B58 *)p)->unk0](((u8 *)p));
|
||||
if (func_8014A738(((u8 *)p)) != 0) {
|
||||
((void (*)(u8 *))func_8014A830)(((u8 *)p));
|
||||
return;
|
||||
@@ -1229,7 +1229,7 @@ s32 func_80159C84(s32 p) {
|
||||
break;
|
||||
case 5:
|
||||
if (func_80149A64((s32 *)((u8 *)p)) != 0) {
|
||||
D_80184A4C[*(u16 *)((u8 *)p)](((u8 *)p));
|
||||
D_80184A4C[((Unkstruct_80126B58 *)p)->unk0](((u8 *)p));
|
||||
func_800CCCC0(((u8 *)p));
|
||||
return;
|
||||
}
|
||||
@@ -1237,26 +1237,26 @@ s32 func_80159C84(s32 p) {
|
||||
}
|
||||
|
||||
if (func_80149CD4((s32)((u8 *)p)) != 0) {
|
||||
D_80184A4C[*(u16 *)((u8 *)p)](((u8 *)p));
|
||||
D_80184A4C[((Unkstruct_80126B58 *)p)->unk0](((u8 *)p));
|
||||
func_8015E880((s32 *)((u8 *)p));
|
||||
return;
|
||||
}
|
||||
if (func_801488A8(((u8 *)p)) != 0) {
|
||||
D_80184A4C[*(u16 *)((u8 *)p)](((u8 *)p));
|
||||
D_80184A4C[((Unkstruct_80126B58 *)p)->unk0](((u8 *)p));
|
||||
func_8015A230((s32 *)((u8 *)p));
|
||||
return;
|
||||
}
|
||||
|
||||
if ((*(u32 *)(((u8 *)p) + 0x44) & 0x200) == 0 && *(u16 *)(((u8 *)p) + 0xD4) == 0x8000) {
|
||||
if (*(s32 *)(((u8 *)p) + 0x234) >= 3) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0 && ((Unkstruct_80126B58 *)p)->unkD4 == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)p)->unk234 >= 3) {
|
||||
t = (s32)&D_800D5F44;
|
||||
if (*(s32 *)(((u8 *)p) + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(((u8 *)p), (s32)&D_800D5F34);
|
||||
goto after_b4c;
|
||||
}
|
||||
} else {
|
||||
t = (s32)&D_800D5F14;
|
||||
if (*(s32 *)(((u8 *)p) + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(((u8 *)p), (s32)&D_800D5F04);
|
||||
goto after_b4c;
|
||||
}
|
||||
@@ -1267,17 +1267,17 @@ s32 func_80159C84(s32 p) {
|
||||
}
|
||||
after_b4c:
|
||||
|
||||
if (*(u16 *)(((u8 *)p) + 0xB8) & 0x8000) {
|
||||
if ((*(u32 *)(((u8 *)p) + 0x44) & 0x200) == 0) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB8 & 0x8000) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0) {
|
||||
if (func_8016F1AC() != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0x234) = 0;
|
||||
*(s32 *)(((u8 *)p) + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
}
|
||||
switch (*(s32 *)(((u8 *)p) + 0x234)) {
|
||||
switch (((Unkstruct_80126B58 *)p)->unk234) {
|
||||
case 0:
|
||||
if ((*(s32 *)(((u8 *)p) + 0x238))++ >= 4) {
|
||||
*(s32 *)(((u8 *)p) + 0x238) = 0;
|
||||
*(s32 *)(((u8 *)p) + 0x234) = *(s32 *)(((u8 *)p) + 0x234) + 1;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 4) {
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)((u8 *)p), 1);
|
||||
break;
|
||||
}
|
||||
@@ -1285,20 +1285,20 @@ after_b4c:
|
||||
func_80154190(((u8 *)p), 0);
|
||||
break;
|
||||
case 1:
|
||||
*(s32 *)(((u8 *)p) + 0x238) = 0;
|
||||
*(s32 *)(((u8 *)p) + 0x234) = *(s32 *)(((u8 *)p) + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)((u8 *)p), 0);
|
||||
break;
|
||||
case 2:
|
||||
if ((*(s32 *)(((u8 *)p) + 0x238))++ >= 2) {
|
||||
if ((*(u32 *)(((u8 *)p) + 0x44) & 4) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0x234) = 0;
|
||||
*(s32 *)(((u8 *)p) + 0x238) = 0;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 2) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 4) != 0) {
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
func_80154150((s32)((u8 *)p), 0);
|
||||
break;
|
||||
}
|
||||
*(s32 *)(((u8 *)p) + 0x238) = 0;
|
||||
*(s32 *)(((u8 *)p) + 0x234) = *(s32 *)(((u8 *)p) + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)((u8 *)p), 2);
|
||||
break;
|
||||
}
|
||||
@@ -1306,7 +1306,7 @@ after_b4c:
|
||||
break;
|
||||
case 3:
|
||||
func_80147324(0x445);
|
||||
*(s32 *)(((u8 *)p) + 0x234) = *(s32 *)(((u8 *)p) + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80155440((s32 *)((u8 *)p));
|
||||
func_80154150((s32)((u8 *)p), 3);
|
||||
func_80154A74((s32)((u8 *)p), 0x13);
|
||||
@@ -1323,7 +1323,7 @@ after_b4c:
|
||||
}
|
||||
}
|
||||
|
||||
if (*(s32 *)(((u8 *)p) + 0xB4) == (s32)&D_800D49F4) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB4 == (s32)&D_800D49F4) {
|
||||
((void(*)(s32))func_80147A84)((s32)((u8 *)p));
|
||||
func_801473EC((s32 *)((u8 *)p));
|
||||
if ((D_800B99DA & 3) == 0) {
|
||||
@@ -1347,7 +1347,7 @@ after_b4c:
|
||||
extern void (*D_80184B9C[])(void);
|
||||
|
||||
void func_8015A264(void *a0) {
|
||||
D_80184B9C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184B9C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1375,7 +1375,7 @@ void func_8015A2D8(s32 param_1)
|
||||
if ((*(unsigned int *)(param_1 + 0x44) & 0x200) != 0) {
|
||||
func_80154150(param_1, 10);
|
||||
func_80154A74(param_1, 0x1c);
|
||||
*(int *)(param_1 + 0x2c) = 0xfffc0000;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0xfffc0000;
|
||||
goto LAB_8015a38c;
|
||||
}
|
||||
bVar1 = *(unsigned char *)(param_1 + 0xa9);
|
||||
@@ -1388,12 +1388,12 @@ void func_8015A2D8(s32 param_1)
|
||||
func_80154150(param_1, 6);
|
||||
break;
|
||||
default:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
goto LAB_8015a390;
|
||||
}
|
||||
func_80154A74(param_1, 0x21);
|
||||
LAB_8015a38c:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
LAB_8015a390:
|
||||
func_8014C010(param_1, 2);
|
||||
((void (*)(int))func_801553A8)(param_1);
|
||||
|
||||
@@ -1238,7 +1238,7 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149D9C(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149FA8)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1249,9 +1249,9 @@ s32 arg0;
|
||||
if (((s32 (*)(s32))func_80161B18)(arg0) != 0) {
|
||||
return;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D5428) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D5428) {
|
||||
if (func_8014A048(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8014A218)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1265,12 +1265,12 @@ s32 arg0;
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1283,7 +1283,7 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1291,18 +1291,18 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) == 0) {
|
||||
sv = *(s32 *)(arg0 + 0x2C);
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
sv = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_8014C010(arg0, 1);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
@@ -1313,41 +1313,41 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_80148AFC)(arg0);
|
||||
if (*(u32 *)(arg0 + 0x44) & 0x200) {
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 0x200) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
func_80154150(arg0, 0xA);
|
||||
func_80154A74(arg0, 0x1C);
|
||||
}
|
||||
((void (*)(s32, s32))func_80146DB8)(arg0, (s32)&(*(s32 *)&D_801849D0));
|
||||
func_80147AD4(arg0, 0, 0, 0);
|
||||
} else {
|
||||
switch (*(u8 *)(arg0 + 0xA9)) {
|
||||
switch (((Unkstruct_80126B58 *)arg0)->unkA9) {
|
||||
case 0x41:
|
||||
func_80147AD4(arg0, 0, 0, grav);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 4) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
lo1 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo1) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1359,29 +1359,29 @@ s32 arg0;
|
||||
break;
|
||||
case 0x53:
|
||||
case 0x73:
|
||||
*(s32 *)(arg0 + 0x2C) = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
lo2 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo2) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1395,11 +1395,11 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if ((min >= *(s32 *)(arg0 + 0x2C)) && !(D_800B99DA & 7)) {
|
||||
if ((min >= ((Unkstruct_80126B58 *)arg0)->unk2C) && !(D_800B99DA & 7)) {
|
||||
func_8014C010(arg0, 2);
|
||||
}
|
||||
if (((s32 (*)(s32))func_8014D738)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015C6E0)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1407,18 +1407,18 @@ s32 arg0;
|
||||
((void (*)(s32))func_80155440)(arg0);
|
||||
func_80154150(arg0, 0x12);
|
||||
func_80154A74(arg0, 0x17);
|
||||
*(s32 *)(arg0 + 0x23C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 1;
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x23C) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C != 0) {
|
||||
func_801553C0(arg0);
|
||||
func_80154150(arg0, 6);
|
||||
func_80154A74(arg0, 0x21);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x23C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 0;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80161278)(arg0) == 0) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x2000) {
|
||||
func_80161C24(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x2000) {
|
||||
func_80161C24(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
((void (*)(s32))func_80172608)(arg0);
|
||||
((void (*)(s32))func_801483E8)(arg0);
|
||||
@@ -1442,7 +1442,7 @@ void func_8015AC48(s32 arg0)
|
||||
{
|
||||
func_80154150(arg0, 9);
|
||||
func_80146DB8((s32 *)arg0, &D_801849E0);
|
||||
func_80161CD0(arg0, M2C_FIELD(arg0, u16 *, 0x16E));
|
||||
func_80161CD0(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
|
||||
|
||||
@@ -1456,7 +1456,7 @@ void func_8015AC48(s32 arg0)
|
||||
extern void (*D_80184BA4[])(void);
|
||||
|
||||
void func_8015AD3C(void *a0) {
|
||||
D_80184BA4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184BA4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1254,42 +1254,42 @@ s32 arg0;
|
||||
s32 t;
|
||||
|
||||
flag = 0;
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (*(s32 *)(arg0 + 0x34) >= 0)) {
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (((Unkstruct_80126B58 *)arg0)->unk34 >= 0)) {
|
||||
flag = 1;
|
||||
if (*(s32 *)(arg0 + 0x5C) == 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk5C == 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x5C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 1;
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x5C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 0;
|
||||
}
|
||||
((void (*)(s32))func_80149FB0)(arg0);
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 0) {
|
||||
switch (((s32 (*)(s32))func_801619A4)(arg0)) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 6:
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (func_80149C08(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_801577C8)(arg0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if (func_8015B6F4(arg0) == 0) {
|
||||
((void (*)(s32))func_8015B7B4)(arg0);
|
||||
}
|
||||
} else {
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (flag != 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3B, arg0, 0, 0);
|
||||
}
|
||||
@@ -1304,50 +1304,50 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (*(u32 *)(arg0 + 0x44) & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, *(u8 *)(arg0 + 0x1AA));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1AA);
|
||||
} else {
|
||||
if ((*(s32 *)(arg0 + 0x240) == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
*(s32 *)(arg0 + 0x240) += 1;
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk240 == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk240 += 1;
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) && (*(u16 *)(arg0 + 0xB8) & 0x8000)) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) && (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000)) {
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
} else if ((*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) ||
|
||||
(*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4B48)) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x8000) {
|
||||
if (*(s32 *)(arg0 + 0x34) >= 0) {
|
||||
*(u16 *)(arg0 + 0xB8) += 1;
|
||||
} else if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) ||
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4B48)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unkB8 += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(u8 *)(arg0 + 0x1C6) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 != 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80148038(arg0, 0xFFFE6000);
|
||||
} else {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
}
|
||||
lim = 0x40000;
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
lim = 0xC0000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x34) < -lim) {
|
||||
*(s32 *)(arg0 + 0x34) = -lim;
|
||||
} else if (lim < *(s32 *)(arg0 + 0x34)) {
|
||||
*(s32 *)(arg0 + 0x34) = lim;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < -lim) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = -lim;
|
||||
} else if (lim < ((Unkstruct_80126B58 *)arg0)->unk34) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = lim;
|
||||
}
|
||||
func_80147460(arg0);
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x34) < 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80147814(arg0, 0xFFFF0000);
|
||||
}
|
||||
@@ -1355,14 +1355,14 @@ s32 arg0;
|
||||
}
|
||||
}
|
||||
if (func_800CF8B4() != 0) {
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
}
|
||||
if (flag == 0) {
|
||||
if ((u8)((s32 (*)(s32))func_80148AFC)(arg0)) {
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
((void (*)(s32, s32))func_80146E90)(arg0, 4);
|
||||
if (*(s32 *)(arg0 + 0x2C) > -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C > -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
func_80147A30(arg0, -0x10000, 0xBA000);
|
||||
} else {
|
||||
func_80147A30(arg0, -0x1000, 0xBA000);
|
||||
@@ -1374,7 +1374,7 @@ s32 arg0;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if (*(u8 *)(arg0 + 0x1C6) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 == 0) {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
func_80147460(arg0);
|
||||
}
|
||||
@@ -1384,79 +1384,79 @@ s32 arg0;
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
func_80146D90(arg0);
|
||||
func_80147AD4(arg0, 0, 0, 0xFFFF4000);
|
||||
*(s32 *)(arg0 + 0x50) += *(s32 *)(arg0 + 0x10);
|
||||
*(s32 *)(arg0 + 0x54) += *(s32 *)(arg0 + 0x14);
|
||||
*(s32 *)(arg0 + 0x58) += *(s32 *)(arg0 + 0x18);
|
||||
if (*(s32 *)(arg0 + 0x50) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x50) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = -0xBA000;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += ((Unkstruct_80126B58 *)arg0)->unk10;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += ((Unkstruct_80126B58 *)arg0)->unk14;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += ((Unkstruct_80126B58 *)arg0)->unk18;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk50 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x54) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk54 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x58) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk58 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = -0xBA000;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
} else {
|
||||
doit = 0;
|
||||
if (*(s32 *)(arg0 + 0x50) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) < 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x50) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) < 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x54) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) < 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x58) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (doit != 0) {
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
}
|
||||
if (!(*(u32 *)(arg0 + 0x44) & 2)) {
|
||||
if (!(((Unkstruct_80126B58 *)arg0)->unk44 & 2)) {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xF, 0x12);
|
||||
}
|
||||
}
|
||||
@@ -1464,22 +1464,22 @@ s32 arg0;
|
||||
if (t != 0) {
|
||||
func_800CCB78(t);
|
||||
}
|
||||
if ((*(u16 *)(arg0 + 0x1C8) & 0x1F) == 0) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk1C8 & 0x1F) == 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3C, arg0, 0, 0);
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x1B0) != 0) {
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 1) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 1) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32))func_80154274)(arg0, *(s32 *)(arg0 + 0x1B4));
|
||||
((void (*)(s32, s32))func_80154274)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1B4);
|
||||
}
|
||||
}
|
||||
r = ((s32 (*)(s32))func_80161488)(arg0);
|
||||
if (r & 5) {
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) {
|
||||
func_80154150(arg0, 0xE);
|
||||
} else {
|
||||
func_80154150(arg0, 0x10);
|
||||
@@ -1488,10 +1488,10 @@ s32 arg0;
|
||||
}
|
||||
if (r == 0) {
|
||||
if ((((s32 (*)(s32))func_8014A674)(arg0) != 0) && (((s32 (*)(s32))func_8014E434)(arg0) != 0)) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CC40)(arg0);
|
||||
} else if ((((s32 (*)(s32))func_8014A69C)(arg0) != 0) && (((s32 (*)(s32))func_8014E6A0)(arg0) != 0)) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CF8C)(arg0);
|
||||
} else {
|
||||
((void (*)(s32))func_801725A4)(arg0);
|
||||
@@ -1656,12 +1656,12 @@ s32 func_8015B950(s32 arg0)
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1674,61 +1674,61 @@ s32 func_8015B950(s32 arg0)
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149744)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149788)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
if (((u8)((s32 (*)(s32))func_80148AFC)(arg0)) == 0) {
|
||||
func_80146D90(arg0);
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0x24) | *(s32 *)(arg0 + 0x2C)) != 0) {
|
||||
if ((CAST_WIDTH(s32, arg0, 0x24) | ((Unkstruct_80126B58 *)arg0)->unk2C) != 0) {
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xD, 6);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x238) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 1;
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) != 0) {
|
||||
sp10[0] = 0;
|
||||
sp10[1] = 0;
|
||||
sp10[2] = 0;
|
||||
t = *(s16 *)(arg0 + 0x26);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk26;
|
||||
sp18[0] = t;
|
||||
sp18[1] = 0;
|
||||
t = *(s16 *)(arg0 + 0x2E);
|
||||
sp18[2] = t;
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 1);
|
||||
((void (*)(s32))func_8015A264)(arg0);
|
||||
t = -(((s32 (*)(s16 *, s16 *))func_80013294)(sp10, sp18) << 0x10);
|
||||
if (t < *(s32 *)(arg0 + 0x2C)) {
|
||||
*(s32 *)(arg0 + 0x2C) = t;
|
||||
if (t < ((Unkstruct_80126B58 *)arg0)->unk2C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = t;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
return;
|
||||
}
|
||||
z = *(s32 *)(arg0 + 0x2C);
|
||||
z = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (func_8016F1AC() != 0) {
|
||||
goto zero;
|
||||
}
|
||||
@@ -1748,12 +1748,12 @@ zero:
|
||||
doit = 0;
|
||||
join:
|
||||
if (doit != 0) {
|
||||
D_80184A4C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80184A4C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
func_80154150(arg0, 9);
|
||||
((void (*)(s32, s32 *))func_80146DB8)(arg0, &D_801849E0);
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
return;
|
||||
}
|
||||
if (func_80161208(arg0) == 0) {
|
||||
@@ -1796,7 +1796,7 @@ void func_8015BE38(struct Obj *a0) {
|
||||
extern void (*D_80184BCC[])(void);
|
||||
|
||||
void func_8015BFF4(void *a0) {
|
||||
D_80184BCC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184BCC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2092,7 +2092,7 @@ void func_8016B234(s32 param_1) {
|
||||
extern void (*D_80185598[])(void);
|
||||
|
||||
void func_8016B4BC(void *a0) {
|
||||
D_80185598[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185598[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2347,7 +2347,7 @@ s32 func_8016B9F8(s32 param_1)
|
||||
extern void (*D_801855E8[])(void);
|
||||
|
||||
void func_8016BBA4(void *a0) {
|
||||
D_801855E8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801855E8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2412,16 +2412,16 @@ void func_8016BCC0(void *arg0) {
|
||||
func_8016BF50();
|
||||
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
|
||||
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
|
||||
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
|
||||
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
|
||||
func_8016BFA8(arg0, &D_801CCC74, &D_801CCC78, temp_s0 + 0x18);
|
||||
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
|
||||
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
|
||||
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
|
||||
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
|
||||
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
|
||||
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2572,7 +2572,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
|
||||
extern void (*D_80185618[])(void);
|
||||
|
||||
void func_8016C14C(void *a0) {
|
||||
D_80185618[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185618[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2748,7 +2748,7 @@ s32 func_8016C49C(s32 param_1_arg) {
|
||||
return;
|
||||
}
|
||||
func_8001CD9C(iVar5b, D_801CCC90);
|
||||
*(u32 *)(iVar5b + 4) |= 0x50000000;
|
||||
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
|
||||
uVar2 = ((int(*)())rand)();
|
||||
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
|
||||
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
|
||||
@@ -2838,7 +2838,7 @@ void func_8016C998(s32 param_1)
|
||||
extern void (*D_80185620[])(void);
|
||||
|
||||
void func_8016CB84(void *a0) {
|
||||
D_80185620[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185620[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3052,7 +3052,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
|
||||
extern void (*D_8018563C[])(void);
|
||||
|
||||
void func_8016D19C(void *a0) {
|
||||
D_8018563C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018563C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3153,7 +3153,7 @@ void func_8016D1D8(int param_1) {
|
||||
extern void (*D_80185644[])(void);
|
||||
|
||||
void func_8016D428(void *a0) {
|
||||
D_80185644[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185644[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3353,7 +3353,7 @@ end:
|
||||
extern void (*D_801856E0[])(void);
|
||||
|
||||
void func_8016DEA4(void *a0) {
|
||||
D_801856E0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801856E0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3363,7 +3363,7 @@ void func_8016DEA4(void *a0) {
|
||||
extern void (*D_801856E8[])(void);
|
||||
|
||||
void func_8016DF20(void *a0) {
|
||||
D_801856E8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801856E8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3471,7 +3471,7 @@ void func_8016DF5C(s32 param_1)
|
||||
extern void (*D_8018573C[])(void);
|
||||
|
||||
void func_8016E5B8(void *a0) {
|
||||
D_8018573C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018573C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
|
||||
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
|
||||
break;
|
||||
}
|
||||
D_801CD3B8 = *(s32 *)(D_801CD3B8 + 4);
|
||||
D_801CD3B8 = CAST_WIDTH(s32, D_801CD3B8, 4);
|
||||
return;
|
||||
case 0x37:
|
||||
(*(s16*)&D_801CE02C) = 3;
|
||||
|
||||
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
|
||||
case 1:
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] <= 0) {
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
|
||||
goto reset_both;
|
||||
}
|
||||
{
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
return;
|
||||
case 2:
|
||||
func_8012B178(pv, (s32)g[4] << 8);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
break;
|
||||
case 3:
|
||||
if (g[1] != 0) {
|
||||
if (g[5] != 0) {
|
||||
void *p = (void *)(pv + 4);
|
||||
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
|
||||
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
|
||||
(s16)func_8012B744(p, &g[6])) < 0x100) {
|
||||
g[1] = 0;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744(p, &D_801CDF94);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* &D_801CDF88+0xC == &D_801CDF94; distinct rtx defeats gcc's address-CSE
|
||||
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
|
||||
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
|
||||
}
|
||||
{
|
||||
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] > 0) {
|
||||
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
|
||||
g[1] = 0;
|
||||
return;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744((void *)(pv + 4), &D_801CDF94);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* see note above: distinct rtx for the same address defeats address-CSE. */
|
||||
if (func_8012BE98(pv, (u16 *)((s32)&D_801CDF88 + 0xC)) < 0x101) {
|
||||
@@ -3315,8 +3315,8 @@ void func_8017BF00(s32 *a0) {
|
||||
func_80155440(a0);
|
||||
func_80154150((s32)a0, 0x26);
|
||||
func_80154A74((s32)a0, 0x1E);
|
||||
CAST_NONSTRUCT(s16, (u8 *)(*(s32 **)((u8 *)a0 + 0x20)), 0x10) = 0xFE9;
|
||||
*(s32 *)((u8 *)a0 + 0x208) = 0;
|
||||
CAST_NONSTRUCT(s16, (u8 *)(CAST_SIGN(s32 *, (u8 *)a0, 0x20)), 0x10) = 0xFE9;
|
||||
((Unkstruct_80126B58 *)a0)->unk208 = 0;
|
||||
func_80171A1C((u8 *)a0);
|
||||
func_8017BF70(a0);
|
||||
}
|
||||
@@ -3361,7 +3361,7 @@ void func_8017C0B4(s32 *a0) {
|
||||
func_8014706C(a0);
|
||||
func_801553A8(a0);
|
||||
func_80155440(a0);
|
||||
CAST_NONSTRUCT(s16, (u8 *)(*(s32 **)((u8 *)a0 + 0x20)), 0x10) = 0xC00;
|
||||
CAST_NONSTRUCT(s16, (u8 *)(CAST_SIGN(s32 *, (u8 *)a0, 0x20)), 0x10) = 0xC00;
|
||||
func_80154150((s32)a0, 0x27);
|
||||
func_80154A74((s32)a0, 0x1F);
|
||||
func_80171A1C((u8 *)a0);
|
||||
@@ -3400,7 +3400,7 @@ extern void func_8017C1E8(void *a0);
|
||||
void func_8017C18C(s32 *a0) {
|
||||
func_8014706C(a0);
|
||||
func_80154274(a0, (s32)D_80185D9C);
|
||||
CAST_NONSTRUCT(s16, (u8 *)(*(s32 **)((u8 *)a0 + 0x20)), 0x10) = 0xC00;
|
||||
CAST_NONSTRUCT(s16, (u8 *)(CAST_SIGN(s32 *, (u8 *)a0, 0x20)), 0x10) = 0xC00;
|
||||
func_80147324(0xA05);
|
||||
func_80171A1C((u8 *)a0);
|
||||
func_8017C1E8(a0);
|
||||
@@ -3447,7 +3447,7 @@ extern void func_80154150(s32 a0, s32 a1);
|
||||
extern void func_80171A1C(u8 *a0);
|
||||
|
||||
void func_8017C2F4(void *a0) {
|
||||
if (*(u16 *)((s32)a0 + 0xB8) == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)a0)->unkB8 == 0x8000) {
|
||||
func_80154150((s32)a0, 0x25);
|
||||
func_80171A1C((u8 *)a0);
|
||||
}
|
||||
|
||||
@@ -834,21 +834,21 @@ void func_8012E9C0(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
if (*(short *)(param_1 + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
|
||||
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
|
||||
*(short *)(param_1 + 0x82) = 0;
|
||||
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
|
||||
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
|
||||
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
|
||||
}
|
||||
if (*(int *)(param_1 + 0x78) != 0) {
|
||||
iVar1 = *(short *)(param_1 + 0x60) *
|
||||
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
|
||||
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
|
||||
if (iVar1 < 1) {
|
||||
iVar1 = 1;
|
||||
}
|
||||
} else {
|
||||
iVar1 = *(short *)(param_1 + 0x60);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
|
||||
}
|
||||
func_8016AA50(param_1, iVar1);
|
||||
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
|
||||
@@ -1002,10 +1002,10 @@ void func_8012F8C8(u8* arg0) {
|
||||
s32 func_8012FCC4(s32 param_1) {
|
||||
extern int D_8017FB18;
|
||||
|
||||
int v1 = *(int *)(((int)param_1) + 0xC4);
|
||||
*(char *)(((int)param_1) + 0xC1) = 8;
|
||||
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
|
||||
if (v1 & 2) {
|
||||
*(char *)(((int)param_1) + 0xC1) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
|
||||
func_80131CA8(((int)param_1), 3);
|
||||
return;
|
||||
}
|
||||
@@ -1013,20 +1013,20 @@ s32 func_8012FCC4(s32 param_1) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 1);
|
||||
return;
|
||||
}
|
||||
if (*(int *)(((int)param_1) + 0xB4) & 0x100) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
|
||||
((void (*)(int))func_80131B14)(((int)param_1));
|
||||
if (*(short *)(((int)param_1) + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 0xC);
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32, s32))func_80131A34)(((int)param_1), 4) != 0) {
|
||||
*(char *)(((int)param_1) + 0xC2) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
|
||||
} else {
|
||||
*(short *)(((int)param_1) + 0x98) = 0;
|
||||
*(char *)(((int)param_1) + 0xC2) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
|
||||
}
|
||||
((void (*)(int, void *))func_8012B14C)(((int)param_1), &D_8017FB18);
|
||||
*(int *)(((int)param_1) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
|
||||
func_80131CA8(((int)param_1), 0x1C);
|
||||
return;
|
||||
}
|
||||
@@ -1122,12 +1122,12 @@ void func_80130D48(s32 arg0)
|
||||
s32 r;
|
||||
s32 ret;
|
||||
|
||||
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
|
||||
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
|
||||
if (val == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
|
||||
ret = func_8012C658(0x33, 0, arg0);
|
||||
} else {
|
||||
switch (val & 0xFFFF0000) {
|
||||
@@ -1244,7 +1244,7 @@ void func_80130D48(s32 arg0)
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
*(u16 *)(ret + 0xA) -= 0x20;
|
||||
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1262,34 +1262,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
|
||||
extern u8 D_8017FAF4[];
|
||||
|
||||
func_80131B14();
|
||||
*(u8 *)(((u8 *)p) + 0xC2) = 0;
|
||||
*(u8 *)(((u8 *)p) + 0xC3) = 0;
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
if (((u8 *)b) == 0) {
|
||||
((u8 *)b) = D_8017FAF4;
|
||||
}
|
||||
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
|
||||
*(s32 *)(((u8 *)p) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
|
||||
if (c != 0) {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
} else {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
}
|
||||
tail:
|
||||
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
|
||||
@@ -1441,12 +1441,12 @@ void func_80131340(s32 a0)
|
||||
s32 temp;
|
||||
s32 var_a1;
|
||||
|
||||
if (*(s16 *)(a0 + 0xA) >= 0x10) {
|
||||
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
|
||||
func_801319E0(a0);
|
||||
return;
|
||||
}
|
||||
|
||||
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
|
||||
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
|
||||
if (temp != 0) {
|
||||
sp10.vz = 0;
|
||||
sp10.vx = 0;
|
||||
@@ -1455,31 +1455,31 @@ void func_80131340(s32 a0)
|
||||
sp10 = D_8017FC48;
|
||||
}
|
||||
|
||||
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
|
||||
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
|
||||
if (var_a1 == 0) {
|
||||
var_a1 = 0x50;
|
||||
}
|
||||
func_8012DBD0(a0, var_a1,
|
||||
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
|
||||
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
|
||||
}
|
||||
|
||||
switch (*(u8 *)(a0 + 0xC2)) {
|
||||
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
if (*(u8 *)(a0 + 0xC2) == 0) {
|
||||
*(u8 *)(a0 + 0xC2) = 1;
|
||||
sp18.vx = *(u16 *)(a0 + 0x3A);
|
||||
sp18.vy = *(u16 *)(a0 + 0x3E);
|
||||
sp18.vz = *(u16 *)(a0 + 0x42);
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
|
||||
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
|
||||
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
|
||||
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
|
||||
sp20 = sp18;
|
||||
sp20.vx += sp10.vx;
|
||||
sp20.vy += sp10.vy;
|
||||
@@ -1489,82 +1489,82 @@ void func_80131340(s32 a0)
|
||||
sp20.vx -= sp10.vx;
|
||||
sp20.vy -= sp10.vy;
|
||||
sp20.vz -= sp10.vz;
|
||||
*(u16 *)(a0 + 0x3A) = sp20.vx;
|
||||
*(u16 *)(a0 + 0x3E) = sp20.vy;
|
||||
*(u16 *)(a0 + 0x42) = sp20.vz;
|
||||
*(u16 *)(a0 + 0x6) = sp20.vx;
|
||||
*(u16 *)(a0 + 0xA) = sp20.vy;
|
||||
*(u16 *)(a0 + 0xE) = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
|
||||
}
|
||||
D_801A2008 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801A2008 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801A2008 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801A2008 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801A2008) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
func_80143B6C(a0, 1);
|
||||
*(s32 *)(a0 + 0x14) = 0xFFF30000;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
} else if (D_801A2008 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
D_801A200C = *(s32 *)(a0 + 0x14);
|
||||
D_801A200C = ((Unkstruct_800B5CB8 *)a0)->unk14;
|
||||
D_801A2008 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801A2008 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801A2008 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801A2008 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801A2008) == 1) {
|
||||
return;
|
||||
}
|
||||
func_80143B6C(a0, 1);
|
||||
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
|
||||
*(s32 *)(a0 + 0x14) = (-D_801A200C) / 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_801A200C) / 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
} else if (D_801A2008 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
|
||||
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
|
||||
if (*(u8 *)(a0 + 0xC3) & 1) {
|
||||
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
|
||||
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
|
||||
D_801A2008 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801A2008 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (func_80131D68(a0, D_801A2008) == 1) {
|
||||
return;
|
||||
@@ -1576,28 +1576,28 @@ void func_80131340(s32 a0)
|
||||
} else {
|
||||
D_801A2008 = ((s32 (*)(s32))func_8012CBF4)(a0);
|
||||
if (D_801A2008 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801A2008 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
break;
|
||||
} else if (D_801A2008 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801A2008) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC3) |= 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
|
||||
} else if (D_801A2008 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) < 0x11) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
|
||||
break;
|
||||
}
|
||||
if (!(D_801A2008 & 0x6000)) {
|
||||
@@ -1605,7 +1605,7 @@ void func_80131340(s32 a0)
|
||||
return;
|
||||
}
|
||||
/* polarity MUST match case 4's — see the cross-jump note in the header. */
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
@@ -1615,24 +1615,24 @@ void func_80131340(s32 a0)
|
||||
case 4:
|
||||
D_801A2008 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801A2008 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801A2008 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801A2008) == 1) {
|
||||
return;
|
||||
}
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
}
|
||||
} else {
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
@@ -1687,47 +1687,47 @@ void func_80131B14() {
|
||||
u8 *p = a0v;
|
||||
|
||||
|
||||
s32 e = *(u8 *)(p + 0x5E);
|
||||
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
|
||||
|
||||
if (*(s16 *)(p + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
|
||||
if (e == 0x1D) {
|
||||
*(s16 *)(p + 0x82) = 0;
|
||||
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
|
||||
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
|
||||
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
|
||||
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
|
||||
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
|
||||
}
|
||||
{
|
||||
s32 dec;
|
||||
s32 q = *(s32 *)(p + 0x78);
|
||||
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
|
||||
if (q != 0) {
|
||||
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
if (dec <= 0) dec = 1;
|
||||
}
|
||||
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
|
||||
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
|
||||
}
|
||||
((void (*)(void *))func_8016AA50)(p);
|
||||
if (*(u16 *)(p + 0x82) & 1) {
|
||||
if (CAST_SIGN(u16, p, 0x82) & 1) {
|
||||
((void (*)(void *))func_8016B428)(p);
|
||||
((void(*)(void *))func_80019064)(&D_8017FC50);
|
||||
}
|
||||
}
|
||||
|
||||
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
|
||||
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
|
||||
|
||||
if (e != 0x1D) {
|
||||
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
|
||||
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
|
||||
}
|
||||
|
||||
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
|
||||
|
||||
{
|
||||
s32 r = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
|
||||
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
|
||||
{
|
||||
s32 r2 = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r2 + 0x14) = 0;
|
||||
*(s16 *)(r2 + 0x10) = 0;
|
||||
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
CAST_WIDTH(s16, r2, 0x14) = 0;
|
||||
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1821,7 +1821,7 @@ void func_80131E00(struct S80131E00 *a0, s32 a1) {
|
||||
extern void (*D_8017FCB8[])(void);
|
||||
|
||||
void func_80131EEC(void *a0) {
|
||||
D_8017FCB8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FCB8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1829,7 +1829,7 @@ void func_80131EEC(void *a0) {
|
||||
extern void (*D_8017FD00[])(void);
|
||||
|
||||
void func_80131F28(void *a0) {
|
||||
D_8017FD00[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FD00[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1837,7 +1837,7 @@ void func_80131F28(void *a0) {
|
||||
extern void (*D_8017FD08[])(void);
|
||||
|
||||
void func_80131F64(void *a0) {
|
||||
D_8017FD08[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FD08[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1845,7 +1845,7 @@ void func_80131F64(void *a0) {
|
||||
extern void (*D_8017FD10[])(void);
|
||||
|
||||
void func_80131FA0(void *a0) {
|
||||
D_8017FD10[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FD10[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1853,7 +1853,7 @@ void func_80131FA0(void *a0) {
|
||||
extern void (*D_8017FD18[])(void);
|
||||
|
||||
void func_80131FDC(void *a0) {
|
||||
D_8017FD18[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FD18[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1567,7 +1567,7 @@ void func_801424E4(short *param_1) {
|
||||
extern void (*D_80180BC4[])(void);
|
||||
|
||||
void func_801425CC(void *a0) {
|
||||
D_80180BC4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180BC4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1880,7 +1880,7 @@ void func_8014305C(int param_1)
|
||||
|
||||
do { iVar2 = ((int (*)(void))func_8012C1B8)(); } while (0);
|
||||
s1_copy = iVar2;
|
||||
*(int *)(s0_param + 0x20) = iVar2;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unk20 = iVar2;
|
||||
if (iVar2 == 0) {
|
||||
((void (*)(int))func_8012CAE4)(s0_param);
|
||||
} else {
|
||||
@@ -1888,7 +1888,7 @@ void func_8014305C(int param_1)
|
||||
sVar1 = (*(unsigned short *)(s0_param + 0x70) & 0xf) * 0x600 + 0xc00;
|
||||
*(short *)(s1_copy + 0x1a) = sVar1;
|
||||
*(short *)(s1_copy + 0x18) = sVar1;
|
||||
*(short *)(s0_param + 0xfc) = 0;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unkFC = 0;
|
||||
func_8012A828(s0_param, D_80180E34);
|
||||
((void (*)(int))func_80142B2C)(s0_param);
|
||||
}
|
||||
@@ -2049,7 +2049,7 @@ void func_8014358C(s32 param_1)
|
||||
extern void (*D_801810B4[])(void);
|
||||
|
||||
void func_80143B30(void *a0) {
|
||||
D_801810B4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801810B4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2061,7 +2061,7 @@ void func_80143B30(void *a0) {
|
||||
extern void (*D_801810C0[])(void);
|
||||
|
||||
void func_80143C38(void *a0) {
|
||||
D_801810C0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801810C0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2071,7 +2071,7 @@ void func_80143C38(void *a0) {
|
||||
extern void (*D_801810C8[])(void);
|
||||
|
||||
void func_80143C98(void *a0) {
|
||||
D_801810C8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801810C8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2092,35 +2092,35 @@ extern void func_8012C218(void *a0);
|
||||
void func_80143D28(s32 param_1) {
|
||||
|
||||
extern MatEntry D_801810EC[];
|
||||
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
|
||||
MatEntry *p = &D_801810EC[*(s16 *)(param_1 + 0x70)];
|
||||
s32 iVar2 = ((Unkstruct_800B5CB8 *)param_1)->unk64; /* $s1 */
|
||||
MatEntry *p = &D_801810EC[((Unkstruct_800B5CB8 *)param_1)->unk70];
|
||||
u16 uVar5 = p->f8;
|
||||
s32 iVar3 = *(s32 *)(param_1 + 0x20);
|
||||
s32 iVar3 = ((Unkstruct_800B5CB8 *)param_1)->unk20;
|
||||
s32 sVar4;
|
||||
s32 iVar1;
|
||||
|
||||
*(s16 *)(iVar3 + 0x14) = uVar5;
|
||||
*(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;
|
||||
CAST_WIDTH(s16, iVar3, 0x14) = uVar5;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk12 = ((Unkstruct_800B5CB8 *)iVar3)->unk12 + p->fa;
|
||||
sVar4 = 0x1000;
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x34), p, (void *)(param_1 + 0x50));
|
||||
|
||||
if (*(s16 *)(param_1 + 0xfe) == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkFE == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != ((Unkstruct_800B5CB8 *)param_1)->unkFC ||
|
||||
*(u8 *)(iVar2 + 0xc1) != 6)) {
|
||||
if (0x10 < *(s32 *)(param_1 + 0x1c)) {
|
||||
*(s32 *)(param_1 + 0x1c) = 0x10;
|
||||
if (0x10 < ((Unkstruct_800B5CB8 *)param_1)->unk1C) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x10;
|
||||
}
|
||||
*(s16 *)(param_1 + 0xfe) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFE = 1;
|
||||
}
|
||||
|
||||
iVar1 = *(s32 *)(param_1 + 0x1c);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C;
|
||||
if (iVar1 < 0x11) {
|
||||
sVar4 = iVar1 << 8;
|
||||
}
|
||||
if (0x73 < iVar1) {
|
||||
sVar4 = (0x78 - iVar1) << 10;
|
||||
}
|
||||
*(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = ((Unkstruct_800B5CB8 *)iVar3)->unk1A = CAST_WIDTH(s16, iVar3, 0x1c) = sVar4;
|
||||
|
||||
if (func_8012BEE8(param_1)) {
|
||||
func_8012C218((void *)param_1);
|
||||
@@ -2132,7 +2132,7 @@ void func_80143D28(s32 param_1) {
|
||||
extern void (*D_80181110[])(void);
|
||||
|
||||
void func_80143E68(void *a0) {
|
||||
D_80181110[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181110[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2148,7 +2148,7 @@ void func_80143E68(void *a0) {
|
||||
extern void (*D_80181124[])(void);
|
||||
|
||||
void func_80144054(void *a0) {
|
||||
D_80181124[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181124[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2172,9 +2172,9 @@ void func_801442F8(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
D_8018112C[*(u16 *)(param_1 + 2)]();
|
||||
iVar1 = *(int *)(param_1 + 0x1c) + 1;
|
||||
*(int *)(param_1 + 0x1c) = iVar1;
|
||||
D_8018112C[CAST_SIGN(u16, param_1, 2)]();
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C + 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = iVar1;
|
||||
if (0x1d < iVar1) {
|
||||
func_8012C218(param_1);
|
||||
}
|
||||
@@ -2200,19 +2200,19 @@ void func_80144364(int param_1) {
|
||||
*(int *)(param_1 + 0xCC) = iVar3;
|
||||
*(u16 *)(param_1 + 0xFC) = uVar2;
|
||||
func_8001CB6C((u8 *)iVar3, (s32)&D_801810A8, 0x250, 0x1A0);
|
||||
*(s32 *)(iVar3 + 4) = 0x60000000;
|
||||
*(u8 *)(iVar3 + 0x27) = 0x14;
|
||||
*(u16 *)(iVar3 + 0x10) = 0x400;
|
||||
*(u16 *)(iVar3 + 8) = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
*(u16 *)(iVar3 + 0xA) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
*(u16 *)(iVar3 + 0xC) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
CAST_WIDTH(s32, iVar3, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk27 = 0x14;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk8 = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkA = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkC = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
sVar1 = *(s16 *)(param_1 + 0x70);
|
||||
if (sVar1 != 0) {
|
||||
*(s16 *)(iVar3 + 0x1A) = sVar1;
|
||||
*(s16 *)(iVar3 + 0x18) = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = sVar1;
|
||||
} else {
|
||||
*(u16 *)(iVar3 + 0x1A) = 0x2000;
|
||||
*(u16 *)(iVar3 + 0x18) = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = 0x2000;
|
||||
}
|
||||
*(u16 *)(param_1 + 2) = 1;
|
||||
}
|
||||
@@ -2235,7 +2235,7 @@ void func_80144458(void *arg0) {
|
||||
void *temp_v0;
|
||||
|
||||
temp_s2 = M2C_FIELD(arg0, void **, 0xCC);
|
||||
if (M2C_FIELD(arg0, s16 *, 0x70) == 0) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk70 == 0) {
|
||||
temp_v0 = M2C_FIELD(M2C_FIELD(arg0, void **, 0x64), void **, 0x20);
|
||||
if (temp_v0 != NULL) {
|
||||
temp_s0 = (M2C_FIELD(temp_v0, s16 *, 0x12) - 0x400) & 0xFFF;
|
||||
@@ -2244,9 +2244,9 @@ void func_80144458(void *arg0) {
|
||||
func_8012AD80(arg0);
|
||||
}
|
||||
}
|
||||
M2C_FIELD(temp_s2, u16 *, 8) = (u16) M2C_FIELD(arg0, u16 *, 6);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xA) = (u16) M2C_FIELD(arg0, u16 *, 0xA);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xC) = (u16) M2C_FIELD(arg0, u16 *, 0xE);
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unk8 = (u16) ((Unkstruct_800B5CB8 *)arg0)->unk6;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkA = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkA;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkC = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkE;
|
||||
if (func_80128ED8(temp_s2, arg0 + 0xD0) != 0) {
|
||||
func_80016714(temp_s2, 0x38);
|
||||
func_8012C218(arg0);
|
||||
@@ -2280,29 +2280,29 @@ void func_8014477C(void *param_1) {
|
||||
s32 fv;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)param_1 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(param_1);
|
||||
return;
|
||||
}
|
||||
((void (*)(s32, void *))func_8001CA1C)(v0, &D_801810D0);
|
||||
if (*(u16 *)(*(s32 *)((s32)param_1 + 0x64)) != 0) {
|
||||
*(s16 *)((s32)param_1 + 0xFC) = *(u16 *)(*(s32 *)((s32)param_1 + 0x64) + 0x36);
|
||||
uVar2 = *(s32 *)(*(s32 *)((s32)param_1 + 0x64) + 0x58);
|
||||
if (*(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64) != 0) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFC = *(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x36);
|
||||
uVar2 = *(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x58);
|
||||
if (uVar2 != 0) {
|
||||
addr = uVar2 & 0xFFFFFFF;
|
||||
gv = CAST_NONSTRUCT(u16, (addr | 0x80000000), 8);
|
||||
fv = *(u16 *)((s32)param_1 + 0xA) - 0x30;
|
||||
*(u16 *)((s32)param_1 + 0xA) = gv + fv;
|
||||
fv = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x30;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = gv + fv;
|
||||
} else {
|
||||
*(u16 *)((s32)param_1 + 0xA) = *(u16 *)((s32)param_1 + 0xA) - 0x60;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x60;
|
||||
}
|
||||
}
|
||||
((void (*)(void *, void *))func_8012A828)(param_1, &D_801810DC);
|
||||
v1 = (s32)*(s16 *)((s32)param_1 + 0x70) << 0xC;
|
||||
*(s16 *)((s32)param_1 + 0x2) = 1;
|
||||
*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12) = v1 / 3;
|
||||
*(s32 *)((s32)param_1 + 0x1C) = 0x78;
|
||||
v1 = (s32)((Unkstruct_800B5CB8 *)param_1)->unk70 << 0xC;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = 1;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)((s32)param_1 + 0x20))->unk12 = v1 / 3;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x78;
|
||||
}
|
||||
|
||||
|
||||
@@ -2334,15 +2334,15 @@ void func_80144880(s32 param_1)
|
||||
func_8001CB6C((u8 *)obj, (s32)&D_80181118, 0x300, 0x1D0);
|
||||
b = 0x6A;
|
||||
}
|
||||
*(u8 *)(obj + 0x27) = (u8)b;
|
||||
*(s32 *)(obj + 4) = 0x60000000;
|
||||
*(u16 *)(obj + 0x10) = 0x400;
|
||||
*(u16 *)(obj + 8) = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
*(u16 *)(obj + 0xA) = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)obj)->unk27 = (u8)b;
|
||||
CAST_WIDTH(s32, obj, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk8 = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)obj)->unkA = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
e = *(u16 *)(*(s32 *)(self + 0x64) + 0xE);
|
||||
*(u16 *)(obj + 0x1A) = 0x4000;
|
||||
*(u16 *)(obj + 0x18) = 0x4000;
|
||||
*(u16 *)(obj + 0xC) = (u16)e;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk1A = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk18 = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unkC = (u16)e;
|
||||
*(s16 *)(self + 2) = *(s16 *)(self + 2) + 1;
|
||||
}
|
||||
}
|
||||
@@ -2354,7 +2354,7 @@ void func_80144880(s32 param_1)
|
||||
extern void (*D_80181134[])(void);
|
||||
|
||||
void func_801449C8(void *a0) {
|
||||
D_80181134[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181134[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2364,7 +2364,7 @@ void func_801449C8(void *a0) {
|
||||
extern void (*D_8018113C[])(void);
|
||||
|
||||
void func_80144A2C(void *a0) {
|
||||
D_8018113C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018113C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
|
||||
extern void (*D_80181600[])(void);
|
||||
|
||||
void func_80155580(void *a0) {
|
||||
D_80181600[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181600[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1155,7 +1155,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
|
||||
extern void (*D_80181A74[])(void);
|
||||
|
||||
void func_80157544(void *a0) {
|
||||
D_80181A74[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181A74[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1235,7 +1235,7 @@ extern u8 D_80181A7C;
|
||||
void func_801578C0(s32 param_1)
|
||||
{
|
||||
((void (*)(void))func_80156648)();
|
||||
*(u8 *)(param_1 + 0x1AA) = 9;
|
||||
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
|
||||
func_80154274((s32 *)param_1, (s32)&D_800D5128);
|
||||
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
|
||||
func_80147324(0xC20);
|
||||
@@ -1285,8 +1285,8 @@ void func_8015795C(int param_1)
|
||||
|
||||
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
|
||||
((int (*)(int, int))func_80147A10)(param_1, 0x400);
|
||||
if (*(int *)(param_1 + 0x2c) >= 0) {
|
||||
*(int *)(param_1 + 0x2c) = 0;
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
|
||||
}
|
||||
func_80147A84(param_1);
|
||||
((void (*)(int))func_801473EC)(param_1);
|
||||
@@ -1309,7 +1309,7 @@ void func_8015795C(int param_1)
|
||||
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
|
||||
((void (*)(int, void *))func_80146DB8)(param_1, &D_80181A8C);
|
||||
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
|
||||
*(short *)(param_1 + 2) = 4;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
|
||||
}
|
||||
((void (*)(int))func_801725A4)(param_1);
|
||||
}
|
||||
@@ -1374,7 +1374,7 @@ void func_80157D20(void *param_1, s32 param_2)
|
||||
extern void (*D_80181ADC[])(void);
|
||||
|
||||
void func_80157DC4(void *a0) {
|
||||
D_80181ADC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181ADC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1390,7 +1390,7 @@ void func_80157DC4(void *a0) {
|
||||
extern void (*D_80181AE4[])(void);
|
||||
|
||||
void func_80157FC4(void *a0) {
|
||||
D_80181AE4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181AE4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1412,11 +1412,11 @@ extern s32 D_80181AB0;
|
||||
|
||||
void func_80158038(void * param)
|
||||
{
|
||||
*(u8 *)(param + 0x1aa) = 0xe;
|
||||
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
|
||||
func_80154274((s32 *)param, (s32)&D_800D51E0);
|
||||
func_80154A74(param, 0x15);
|
||||
func_80146DB8((s32 *)param, &D_80181AB0);
|
||||
*(s32 *)(param + 0x234) = 0;
|
||||
((Unkstruct_80126B58 *)param)->unk234 = 0;
|
||||
func_80146994(5, param, 0xc, 0);
|
||||
func_80147324(0x455);
|
||||
func_80146CA0((void *)param);
|
||||
@@ -1431,7 +1431,7 @@ void func_80158038(void * param)
|
||||
extern void (*D_80181AF0[])(void);
|
||||
|
||||
void func_8015824C(void *a0) {
|
||||
D_80181AF0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181AF0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1469,15 +1469,15 @@ void func_80158434(s32 param_1)
|
||||
s32 frame_pad[4];
|
||||
(void)&frame_pad;
|
||||
|
||||
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
|
||||
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
|
||||
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
|
||||
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
|
||||
((s32 (*)(void))func_8014CBF8)();
|
||||
((void (*)(s32))func_801474EC)(param_1);
|
||||
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
|
||||
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_80181AC0);
|
||||
}
|
||||
if (*(s32 *)(param_1 + 0x234) != 0) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
|
||||
func_80148038(param_1, 0x10000);
|
||||
func_80147460(param_1);
|
||||
func_80147AD4(param_1, 0, 0, 0);
|
||||
@@ -1496,7 +1496,7 @@ LAB_80158508:
|
||||
((void (*)(s32))func_80146CA0)(param_1);
|
||||
return;
|
||||
LAB_80158528:
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
|
||||
}
|
||||
|
||||
|
||||
@@ -1602,5 +1602,5 @@ extern void (*D_80181B2C[])(s32 *);
|
||||
|
||||
void func_80158880(s32 *param) {
|
||||
func_80149020(param);
|
||||
D_80181B2C[*(u8 *)((s32)param + 0x4F)](param);
|
||||
D_80181B2C[((Unkstruct_80126B58 *)param)->unk4F](param);
|
||||
}
|
||||
|
||||
@@ -1172,8 +1172,8 @@ void func_80158BB0(void *arg0) {
|
||||
func_80147324(0x456);
|
||||
func_80154274(arg0, &D_800D58D8);
|
||||
func_80154A74(arg0, 0x16);
|
||||
M2C_FIELD(arg0, s32 *, 0x234) = 0xE30000;
|
||||
M2C_FIELD(M2C_FIELD(arg0, void **, 0x20), s16 *, 0x10) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0xE30000;
|
||||
((Unkstruct_800B5CB8 *)M2C_FIELD(arg0, void **, 0x20))->unk10 = 0;
|
||||
func_801474EC(arg0);
|
||||
func_801474D8(arg0);
|
||||
func_801472C8(arg0);
|
||||
@@ -1285,7 +1285,7 @@ void func_8015934C(void *arg0) {
|
||||
D_800AE6BD += 1;
|
||||
}
|
||||
temp_v1 = M2C_FIELD(arg0, void **, 0x20);
|
||||
M2C_FIELD(temp_v1, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_v1, u16 *, 0x12) + 0x16) & 0xFFF);
|
||||
((Unkstruct_800B5CB8 *)temp_v1)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_v1)->unk12 + 0x16) & 0xFFF);
|
||||
}
|
||||
|
||||
|
||||
@@ -1490,9 +1490,9 @@ void func_80159A20(unsigned char *param_1)
|
||||
func_80158638(param_1);
|
||||
((void (*)(u8 *))func_8015126C)(param_1);
|
||||
((void (*)(u8 *))func_8014900C)(param_1);
|
||||
D_80181ED0[*(u16 *)param_1 & 0x7fff](param_1);
|
||||
*(u32 *)(param_1 + 0x44) |= 0x8000000;
|
||||
switch (*(u16 *)param_1) {
|
||||
D_80181ED0[((Unkstruct_80126B58 *)param_1)->unk0 & 0x7fff](param_1);
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 |= 0x8000000;
|
||||
switch (((Unkstruct_80126B58 *)param_1)->unk0) {
|
||||
case 2:
|
||||
case 3:
|
||||
case 0xb:
|
||||
@@ -1507,13 +1507,13 @@ void func_80159A20(unsigned char *param_1)
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(param_1 + 2) == 3) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2 == 3) {
|
||||
goto mask;
|
||||
}
|
||||
return;
|
||||
}
|
||||
mask:
|
||||
*(u32 *)(param_1 + 0x44) &= 0xf7ffffff;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 &= 0xf7ffffff;
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80159B08.h"
|
||||
@@ -1524,7 +1524,7 @@ mask:
|
||||
extern void (*D_80181F74[])(void);
|
||||
|
||||
void func_80159B70(void *a0) {
|
||||
D_80181F74[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181F74[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1559,8 +1559,8 @@ void func_80159BE4(s32 arg0)
|
||||
func_80154150(arg0, 4);
|
||||
func_80154A74(arg0, 0x11);
|
||||
}
|
||||
*(int *)(arg0 + 0x234) = 0;
|
||||
*(int *)(arg0 + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 0;
|
||||
func_801553C0(arg0);
|
||||
((void (*)(int))func_801553A8)(arg0);
|
||||
((void (*)(int))func_80172590)(arg0);
|
||||
|
||||
@@ -1211,7 +1211,7 @@ void func_80159C84(u8 *p) {
|
||||
s32 t;
|
||||
|
||||
if (((s32 (*)(void))func_80149D9C)() != 0) {
|
||||
D_80181E2C[*(u16 *)p](p);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
((void (*)(u8 *))func_80149FA8)(p);
|
||||
return;
|
||||
}
|
||||
@@ -1227,7 +1227,7 @@ void func_80159C84(u8 *p) {
|
||||
return;
|
||||
}
|
||||
if (func_801496D4(p) != 0) {
|
||||
D_80181E2C[*(u16 *)p](p);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
((void (*)(u8 *))func_80149704)(p);
|
||||
return;
|
||||
}
|
||||
@@ -1238,12 +1238,12 @@ void func_80159C84(u8 *p) {
|
||||
case 2:
|
||||
case 6:
|
||||
if (func_80149AA8((s32 *)p) != 0) {
|
||||
D_80181E2C[*(u16 *)p](p);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_80149AD4((s32 *)p);
|
||||
return;
|
||||
}
|
||||
if (func_80149B54((s32 *)p) != 0) {
|
||||
D_80181E2C[*(u16 *)p](p);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
if (func_8014A738(p) != 0) {
|
||||
((void (*)(u8 *))func_8014A830)(p);
|
||||
return;
|
||||
@@ -1260,7 +1260,7 @@ void func_80159C84(u8 *p) {
|
||||
break;
|
||||
case 5:
|
||||
if (func_80149A64((s32 *)p) != 0) {
|
||||
D_80181E2C[*(u16 *)p](p);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_800CCCC0(p);
|
||||
return;
|
||||
}
|
||||
@@ -1268,26 +1268,26 @@ void func_80159C84(u8 *p) {
|
||||
}
|
||||
|
||||
if (func_80149CD4((s32)p) != 0) {
|
||||
D_80181E2C[*(u16 *)p](p);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_8015E880((s32 *)p);
|
||||
return;
|
||||
}
|
||||
if (func_801488A8(p) != 0) {
|
||||
D_80181E2C[*(u16 *)p](p);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_8015A230((s32 *)p);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((*(u32 *)(p + 0x44) & 0x200) == 0 && *(u16 *)(p + 0xD4) == 0x8000) {
|
||||
if (*(s32 *)(p + 0x234) >= 3) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0 && ((Unkstruct_80126B58 *)p)->unkD4 == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)p)->unk234 >= 3) {
|
||||
t = (s32)&D_800D5F44;
|
||||
if (*(s32 *)(p + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(p, (s32)&D_800D5F34);
|
||||
goto after_b4c;
|
||||
}
|
||||
} else {
|
||||
t = (s32)&D_800D5F14;
|
||||
if (*(s32 *)(p + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(p, (s32)&D_800D5F04);
|
||||
goto after_b4c;
|
||||
}
|
||||
@@ -1298,17 +1298,17 @@ void func_80159C84(u8 *p) {
|
||||
}
|
||||
after_b4c:
|
||||
|
||||
if (*(u16 *)(p + 0xB8) & 0x8000) {
|
||||
if ((*(u32 *)(p + 0x44) & 0x200) == 0) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB8 & 0x8000) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0) {
|
||||
if (func_8016F1AC() != 0) {
|
||||
*(s32 *)(p + 0x234) = 0;
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
}
|
||||
switch (*(s32 *)(p + 0x234)) {
|
||||
switch (((Unkstruct_80126B58 *)p)->unk234) {
|
||||
case 0:
|
||||
if ((*(s32 *)(p + 0x238))++ >= 4) {
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 4) {
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 1);
|
||||
break;
|
||||
}
|
||||
@@ -1316,20 +1316,20 @@ after_b4c:
|
||||
func_80154190(p, 0);
|
||||
break;
|
||||
case 1:
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 0);
|
||||
break;
|
||||
case 2:
|
||||
if ((*(s32 *)(p + 0x238))++ >= 2) {
|
||||
if ((*(u32 *)(p + 0x44) & 4) != 0) {
|
||||
*(s32 *)(p + 0x234) = 0;
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 2) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 4) != 0) {
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
func_80154150((s32)p, 0);
|
||||
break;
|
||||
}
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 2);
|
||||
break;
|
||||
}
|
||||
@@ -1337,7 +1337,7 @@ after_b4c:
|
||||
break;
|
||||
case 3:
|
||||
func_80147324(0x445);
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80155440((s32 *)p);
|
||||
func_80154150((s32)p, 3);
|
||||
func_80154A74((s32)p, 0x13);
|
||||
@@ -1354,7 +1354,7 @@ after_b4c:
|
||||
}
|
||||
}
|
||||
|
||||
if (*(s32 *)(p + 0xB4) == (s32)&D_800D49F4) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB4 == (s32)&D_800D49F4) {
|
||||
func_80147A84((s32)p);
|
||||
func_801473EC((s32 *)p);
|
||||
if ((D_800B99DA & 3) == 0) {
|
||||
@@ -1378,7 +1378,7 @@ after_b4c:
|
||||
extern void (*D_80181F7C[])(void);
|
||||
|
||||
void func_8015A264(void *a0) {
|
||||
D_80181F7C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181F7C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1406,7 +1406,7 @@ void func_8015A2D8(s32 param_1)
|
||||
if ((*(unsigned int *)(param_1 + 0x44) & 0x200) != 0) {
|
||||
func_80154150(param_1, 10);
|
||||
func_80154A74(param_1, 0x1c);
|
||||
*(int *)(param_1 + 0x2c) = 0xfffc0000;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0xfffc0000;
|
||||
goto LAB_8015a38c;
|
||||
}
|
||||
bVar1 = *(unsigned char *)(param_1 + 0xa9);
|
||||
@@ -1419,12 +1419,12 @@ void func_8015A2D8(s32 param_1)
|
||||
func_80154150(param_1, 6);
|
||||
break;
|
||||
default:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
goto LAB_8015a390;
|
||||
}
|
||||
func_80154A74(param_1, 0x21);
|
||||
LAB_8015a38c:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
LAB_8015a390:
|
||||
func_8014C010(param_1, 2);
|
||||
((void (*)(int))func_801553A8)(param_1);
|
||||
|
||||
@@ -1238,7 +1238,7 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149D9C(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149FA8)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1249,9 +1249,9 @@ s32 arg0;
|
||||
if (((s32 (*)(s32))func_80161B18)(arg0) != 0) {
|
||||
return;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D5428) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D5428) {
|
||||
if (func_8014A048(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8014A218)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1265,12 +1265,12 @@ s32 arg0;
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1283,7 +1283,7 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1291,18 +1291,18 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) == 0) {
|
||||
sv = *(s32 *)(arg0 + 0x2C);
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
sv = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_8014C010(arg0, 1);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
@@ -1313,41 +1313,41 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_80148AFC)(arg0);
|
||||
if (*(u32 *)(arg0 + 0x44) & 0x200) {
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 0x200) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
func_80154150(arg0, 0xA);
|
||||
func_80154A74(arg0, 0x1C);
|
||||
}
|
||||
((void (*)(s32, s32))func_80146DB8)(arg0, (s32)&(*(s32 *)&D_80181DB0));
|
||||
func_80147AD4(arg0, 0, 0, 0);
|
||||
} else {
|
||||
switch (*(u8 *)(arg0 + 0xA9)) {
|
||||
switch (((Unkstruct_80126B58 *)arg0)->unkA9) {
|
||||
case 0x41:
|
||||
func_80147AD4(arg0, 0, 0, grav);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 4) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
lo1 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo1) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1359,29 +1359,29 @@ s32 arg0;
|
||||
break;
|
||||
case 0x53:
|
||||
case 0x73:
|
||||
*(s32 *)(arg0 + 0x2C) = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
lo2 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo2) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1395,11 +1395,11 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if ((min >= *(s32 *)(arg0 + 0x2C)) && !(D_800B99DA & 7)) {
|
||||
if ((min >= ((Unkstruct_80126B58 *)arg0)->unk2C) && !(D_800B99DA & 7)) {
|
||||
func_8014C010(arg0, 2);
|
||||
}
|
||||
if (((s32 (*)(s32))func_8014D738)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015C6E0)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1407,18 +1407,18 @@ s32 arg0;
|
||||
((void (*)(s32))func_80155440)(arg0);
|
||||
func_80154150(arg0, 0x12);
|
||||
func_80154A74(arg0, 0x17);
|
||||
*(s32 *)(arg0 + 0x23C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 1;
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x23C) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C != 0) {
|
||||
func_801553C0(arg0);
|
||||
func_80154150(arg0, 6);
|
||||
func_80154A74(arg0, 0x21);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x23C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 0;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80161278)(arg0) == 0) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x2000) {
|
||||
func_80161C24(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x2000) {
|
||||
func_80161C24(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
((void (*)(s32))func_80172608)(arg0);
|
||||
((void (*)(s32))func_801483E8)(arg0);
|
||||
@@ -1442,7 +1442,7 @@ void func_8015AC48(s32 arg0)
|
||||
{
|
||||
func_80154150(arg0, 9);
|
||||
func_80146DB8((s32 *)arg0, &D_80181DC0);
|
||||
func_80161CD0(arg0, M2C_FIELD(arg0, u16 *, 0x16E));
|
||||
func_80161CD0(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
|
||||
|
||||
@@ -1456,7 +1456,7 @@ void func_8015AC48(s32 arg0)
|
||||
extern void (*D_80181F84[])(void);
|
||||
|
||||
void func_8015AD3C(void *a0) {
|
||||
D_80181F84[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181F84[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1254,42 +1254,42 @@ s32 arg0;
|
||||
s32 t;
|
||||
|
||||
flag = 0;
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (*(s32 *)(arg0 + 0x34) >= 0)) {
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (((Unkstruct_80126B58 *)arg0)->unk34 >= 0)) {
|
||||
flag = 1;
|
||||
if (*(s32 *)(arg0 + 0x5C) == 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk5C == 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x5C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 1;
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x5C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 0;
|
||||
}
|
||||
((void (*)(s32))func_80149FB0)(arg0);
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 0) {
|
||||
switch (((s32 (*)(s32))func_801619A4)(arg0)) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 6:
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (func_80149C08(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_801577C8)(arg0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if (func_8015B6F4(arg0) == 0) {
|
||||
((void (*)(s32))func_8015B7B4)(arg0);
|
||||
}
|
||||
} else {
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (flag != 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3B, arg0, 0, 0);
|
||||
}
|
||||
@@ -1304,50 +1304,50 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (*(u32 *)(arg0 + 0x44) & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, *(u8 *)(arg0 + 0x1AA));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1AA);
|
||||
} else {
|
||||
if ((*(s32 *)(arg0 + 0x240) == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
*(s32 *)(arg0 + 0x240) += 1;
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk240 == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk240 += 1;
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) && (*(u16 *)(arg0 + 0xB8) & 0x8000)) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) && (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000)) {
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
} else if ((*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) ||
|
||||
(*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4B48)) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x8000) {
|
||||
if (*(s32 *)(arg0 + 0x34) >= 0) {
|
||||
*(u16 *)(arg0 + 0xB8) += 1;
|
||||
} else if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) ||
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4B48)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unkB8 += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(u8 *)(arg0 + 0x1C6) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 != 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80148038(arg0, 0xFFFE6000);
|
||||
} else {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
}
|
||||
lim = 0x40000;
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
lim = 0xC0000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x34) < -lim) {
|
||||
*(s32 *)(arg0 + 0x34) = -lim;
|
||||
} else if (lim < *(s32 *)(arg0 + 0x34)) {
|
||||
*(s32 *)(arg0 + 0x34) = lim;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < -lim) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = -lim;
|
||||
} else if (lim < ((Unkstruct_80126B58 *)arg0)->unk34) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = lim;
|
||||
}
|
||||
func_80147460(arg0);
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x34) < 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80147814(arg0, 0xFFFF0000);
|
||||
}
|
||||
@@ -1355,14 +1355,14 @@ s32 arg0;
|
||||
}
|
||||
}
|
||||
if (func_800CF8B4() != 0) {
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
}
|
||||
if (flag == 0) {
|
||||
if ((u8)((s32 (*)(s32))func_80148AFC)(arg0)) {
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
((void (*)(s32, s32))func_80146E90)(arg0, 4);
|
||||
if (*(s32 *)(arg0 + 0x2C) > -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C > -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
func_80147A30(arg0, -0x10000, 0xBA000);
|
||||
} else {
|
||||
func_80147A30(arg0, -0x1000, 0xBA000);
|
||||
@@ -1374,7 +1374,7 @@ s32 arg0;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if (*(u8 *)(arg0 + 0x1C6) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 == 0) {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
func_80147460(arg0);
|
||||
}
|
||||
@@ -1384,79 +1384,79 @@ s32 arg0;
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
func_80146D90(arg0);
|
||||
func_80147AD4(arg0, 0, 0, 0xFFFF4000);
|
||||
*(s32 *)(arg0 + 0x50) += *(s32 *)(arg0 + 0x10);
|
||||
*(s32 *)(arg0 + 0x54) += *(s32 *)(arg0 + 0x14);
|
||||
*(s32 *)(arg0 + 0x58) += *(s32 *)(arg0 + 0x18);
|
||||
if (*(s32 *)(arg0 + 0x50) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x50) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = -0xBA000;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += ((Unkstruct_80126B58 *)arg0)->unk10;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += ((Unkstruct_80126B58 *)arg0)->unk14;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += ((Unkstruct_80126B58 *)arg0)->unk18;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk50 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x54) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk54 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x58) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk58 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = -0xBA000;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
} else {
|
||||
doit = 0;
|
||||
if (*(s32 *)(arg0 + 0x50) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) < 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x50) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) < 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x54) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) < 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x58) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (doit != 0) {
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
}
|
||||
if (!(*(u32 *)(arg0 + 0x44) & 2)) {
|
||||
if (!(((Unkstruct_80126B58 *)arg0)->unk44 & 2)) {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xF, 0x12);
|
||||
}
|
||||
}
|
||||
@@ -1464,22 +1464,22 @@ s32 arg0;
|
||||
if (t != 0) {
|
||||
func_800CCB78(t);
|
||||
}
|
||||
if ((*(u16 *)(arg0 + 0x1C8) & 0x1F) == 0) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk1C8 & 0x1F) == 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3C, arg0, 0, 0);
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x1B0) != 0) {
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 1) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 1) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32))func_80154274)(arg0, *(s32 *)(arg0 + 0x1B4));
|
||||
((void (*)(s32, s32))func_80154274)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1B4);
|
||||
}
|
||||
}
|
||||
r = ((s32 (*)(s32))func_80161488)(arg0);
|
||||
if (r & 5) {
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) {
|
||||
func_80154150(arg0, 0xE);
|
||||
} else {
|
||||
func_80154150(arg0, 0x10);
|
||||
@@ -1488,10 +1488,10 @@ s32 arg0;
|
||||
}
|
||||
if (r == 0) {
|
||||
if ((((s32 (*)(s32))func_8014A674)(arg0) != 0) && (((s32 (*)(s32))func_8014E434)(arg0) != 0)) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CC40)(arg0);
|
||||
} else if ((((s32 (*)(s32))func_8014A69C)(arg0) != 0) && (((s32 (*)(s32))func_8014E6A0)(arg0) != 0)) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CF8C)(arg0);
|
||||
} else {
|
||||
((void (*)(s32))func_801725A4)(arg0);
|
||||
@@ -1656,12 +1656,12 @@ s32 func_8015B950(s32 arg0)
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1674,61 +1674,61 @@ s32 func_8015B950(s32 arg0)
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149744)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149788)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
if (((u8)((s32 (*)(s32))func_80148AFC)(arg0)) == 0) {
|
||||
func_80146D90(arg0);
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0x24) | *(s32 *)(arg0 + 0x2C)) != 0) {
|
||||
if ((CAST_WIDTH(s32, arg0, 0x24) | ((Unkstruct_80126B58 *)arg0)->unk2C) != 0) {
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xD, 6);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x238) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 1;
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) != 0) {
|
||||
sp10[0] = 0;
|
||||
sp10[1] = 0;
|
||||
sp10[2] = 0;
|
||||
t = *(s16 *)(arg0 + 0x26);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk26;
|
||||
sp18[0] = t;
|
||||
sp18[1] = 0;
|
||||
t = *(s16 *)(arg0 + 0x2E);
|
||||
sp18[2] = t;
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 1);
|
||||
((void (*)(s32))func_8015A264)(arg0);
|
||||
t = -(((s32 (*)(s16 *, s16 *))func_80013294)(sp10, sp18) << 0x10);
|
||||
if (t < *(s32 *)(arg0 + 0x2C)) {
|
||||
*(s32 *)(arg0 + 0x2C) = t;
|
||||
if (t < ((Unkstruct_80126B58 *)arg0)->unk2C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = t;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
return;
|
||||
}
|
||||
z = *(s32 *)(arg0 + 0x2C);
|
||||
z = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (func_8016F1AC() != 0) {
|
||||
goto zero;
|
||||
}
|
||||
@@ -1748,12 +1748,12 @@ zero:
|
||||
doit = 0;
|
||||
join:
|
||||
if (doit != 0) {
|
||||
D_80181E2C[*(u16 *)arg0]((void *)arg0);
|
||||
D_80181E2C[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
func_80154150(arg0, 9);
|
||||
((void (*)(s32, s32 *))func_80146DB8)(arg0, &D_80181DC0);
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
return;
|
||||
}
|
||||
if (func_80161208(arg0) == 0) {
|
||||
@@ -1796,7 +1796,7 @@ void func_8015BE38(struct Obj *a0) {
|
||||
extern void (*D_80181FAC[])(void);
|
||||
|
||||
void func_8015BFF4(void *a0) {
|
||||
D_80181FAC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181FAC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2092,7 +2092,7 @@ void func_8016B234(s32 param_1) {
|
||||
extern void (*D_80182978[])(void);
|
||||
|
||||
void func_8016B4BC(void *a0) {
|
||||
D_80182978[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182978[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2347,7 +2347,7 @@ s32 func_8016B9F8(s32 param_1)
|
||||
extern void (*D_801829C8[])(void);
|
||||
|
||||
void func_8016BBA4(void *a0) {
|
||||
D_801829C8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801829C8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2412,16 +2412,16 @@ void func_8016BCC0(void *arg0) {
|
||||
func_8016BF50();
|
||||
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
|
||||
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
|
||||
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
|
||||
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
|
||||
func_8016BFA8(arg0, &D_801A2724, &D_801A2728, temp_s0 + 0x18);
|
||||
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
|
||||
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
|
||||
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
|
||||
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
|
||||
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
|
||||
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2572,7 +2572,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
|
||||
extern void (*D_801829F8[])(void);
|
||||
|
||||
void func_8016C14C(void *a0) {
|
||||
D_801829F8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801829F8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2748,7 +2748,7 @@ s32 func_8016C49C(s32 param_1_arg) {
|
||||
return;
|
||||
}
|
||||
func_8001CD9C(iVar5b, D_801A2740);
|
||||
*(u32 *)(iVar5b + 4) |= 0x50000000;
|
||||
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
|
||||
uVar2 = ((int(*)())rand)();
|
||||
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
|
||||
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
|
||||
@@ -2838,7 +2838,7 @@ void func_8016C998(s32 param_1)
|
||||
extern void (*D_80182A00[])(void);
|
||||
|
||||
void func_8016CB84(void *a0) {
|
||||
D_80182A00[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182A00[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3052,7 +3052,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
|
||||
extern void (*D_80182A1C[])(void);
|
||||
|
||||
void func_8016D19C(void *a0) {
|
||||
D_80182A1C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182A1C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3153,7 +3153,7 @@ void func_8016D1D8(int param_1) {
|
||||
extern void (*D_80182A24[])(void);
|
||||
|
||||
void func_8016D428(void *a0) {
|
||||
D_80182A24[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182A24[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3353,7 +3353,7 @@ end:
|
||||
extern void (*D_80182AC0[])(void);
|
||||
|
||||
void func_8016DEA4(void *a0) {
|
||||
D_80182AC0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182AC0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3363,7 +3363,7 @@ void func_8016DEA4(void *a0) {
|
||||
extern void (*D_80182AC8[])(void);
|
||||
|
||||
void func_8016DF20(void *a0) {
|
||||
D_80182AC8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182AC8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3471,7 +3471,7 @@ void func_8016DF5C(s32 param_1)
|
||||
extern void (*D_80182B1C[])(void);
|
||||
|
||||
void func_8016E5B8(void *a0) {
|
||||
D_80182B1C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182B1C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
|
||||
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
|
||||
break;
|
||||
}
|
||||
D_801A2E68 = *(s32 *)(D_801A2E68 + 4);
|
||||
D_801A2E68 = CAST_WIDTH(s32, D_801A2E68, 4);
|
||||
return;
|
||||
case 0x37:
|
||||
(*(s16*)&D_801A35DC) = 3;
|
||||
|
||||
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
|
||||
case 1:
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] <= 0) {
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
|
||||
goto reset_both;
|
||||
}
|
||||
{
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
return;
|
||||
case 2:
|
||||
func_8012B178(pv, (s32)g[4] << 8);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
break;
|
||||
case 3:
|
||||
if (g[1] != 0) {
|
||||
if (g[5] != 0) {
|
||||
void *p = (void *)(pv + 4);
|
||||
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
|
||||
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
|
||||
(s16)func_8012B744(p, &g[6])) < 0x100) {
|
||||
g[1] = 0;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744(p, &D_801A3544);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* &D_801A3538+0xC == &D_801A3544; distinct rtx defeats gcc's address-CSE
|
||||
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
|
||||
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
|
||||
}
|
||||
{
|
||||
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] > 0) {
|
||||
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
|
||||
g[1] = 0;
|
||||
return;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744((void *)(pv + 4), &D_801A3544);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* see note above: distinct rtx for the same address defeats address-CSE. */
|
||||
if (func_8012BE98(pv, (u16 *)((s32)&D_801A3538 + 0xC)) < 0x101) {
|
||||
|
||||
@@ -3429,15 +3429,15 @@ void func_8017F380(int param_1)
|
||||
int v0;
|
||||
|
||||
v0 = ((int (*)(void))func_8012C1B8)();
|
||||
*(int *)(param_1 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
|
||||
if (v0 != 0) {
|
||||
func_8001C214(v0, (int)&D_8019E198);
|
||||
func_8012A828(param_1, &D_8019F034);
|
||||
func_80143994(param_1, 0x3000);
|
||||
*(unsigned short *)(param_1 + 2) += 1;
|
||||
*(int *)(param_1 + 0x1c) = 4;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 4;
|
||||
if ((u32)func_80029504() < 5) {
|
||||
*(short *)(param_1 + 0x70) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk70 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -834,21 +834,21 @@ void func_8012E9C0(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
if (*(short *)(param_1 + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
|
||||
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
|
||||
*(short *)(param_1 + 0x82) = 0;
|
||||
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
|
||||
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
|
||||
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
|
||||
}
|
||||
if (*(int *)(param_1 + 0x78) != 0) {
|
||||
iVar1 = *(short *)(param_1 + 0x60) *
|
||||
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
|
||||
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
|
||||
if (iVar1 < 1) {
|
||||
iVar1 = 1;
|
||||
}
|
||||
} else {
|
||||
iVar1 = *(short *)(param_1 + 0x60);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
|
||||
}
|
||||
func_8016AA50(param_1, iVar1);
|
||||
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
|
||||
@@ -1002,10 +1002,10 @@ void func_8012F8C8(u8* arg0) {
|
||||
s32 func_8012FCC4(s32 param_1) {
|
||||
extern int D_80182D00;
|
||||
|
||||
int v1 = *(int *)(((int)param_1) + 0xC4);
|
||||
*(char *)(((int)param_1) + 0xC1) = 8;
|
||||
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
|
||||
if (v1 & 2) {
|
||||
*(char *)(((int)param_1) + 0xC1) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
|
||||
func_80131CA8(((int)param_1), 3);
|
||||
return;
|
||||
}
|
||||
@@ -1013,20 +1013,20 @@ s32 func_8012FCC4(s32 param_1) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 1);
|
||||
return;
|
||||
}
|
||||
if (*(int *)(((int)param_1) + 0xB4) & 0x100) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
|
||||
((void (*)(int))func_80131B14)(((int)param_1));
|
||||
if (*(short *)(((int)param_1) + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 0xC);
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32, s32))func_80131A34)(((int)param_1), 4) != 0) {
|
||||
*(char *)(((int)param_1) + 0xC2) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
|
||||
} else {
|
||||
*(short *)(((int)param_1) + 0x98) = 0;
|
||||
*(char *)(((int)param_1) + 0xC2) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
|
||||
}
|
||||
((void (*)(int, void *))func_8012B14C)(((int)param_1), &D_80182D00);
|
||||
*(int *)(((int)param_1) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
|
||||
func_80131CA8(((int)param_1), 0x1C);
|
||||
return;
|
||||
}
|
||||
@@ -1122,12 +1122,12 @@ void func_80130D48(s32 arg0)
|
||||
s32 r;
|
||||
s32 ret;
|
||||
|
||||
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
|
||||
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
|
||||
if (val == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
|
||||
ret = func_8012C658(0x33, 0, arg0);
|
||||
} else {
|
||||
switch (val & 0xFFFF0000) {
|
||||
@@ -1244,7 +1244,7 @@ void func_80130D48(s32 arg0)
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
*(u16 *)(ret + 0xA) -= 0x20;
|
||||
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1262,34 +1262,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
|
||||
extern u8 D_80182CDC[];
|
||||
|
||||
func_80131B14();
|
||||
*(u8 *)(((u8 *)p) + 0xC2) = 0;
|
||||
*(u8 *)(((u8 *)p) + 0xC3) = 0;
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
if (((u8 *)b) == 0) {
|
||||
((u8 *)b) = D_80182CDC;
|
||||
}
|
||||
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
|
||||
*(s32 *)(((u8 *)p) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
|
||||
if (c != 0) {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
} else {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
}
|
||||
tail:
|
||||
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
|
||||
@@ -1441,12 +1441,12 @@ void func_80131340(s32 a0)
|
||||
s32 temp;
|
||||
s32 var_a1;
|
||||
|
||||
if (*(s16 *)(a0 + 0xA) >= 0x10) {
|
||||
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
|
||||
func_801319E0(a0);
|
||||
return;
|
||||
}
|
||||
|
||||
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
|
||||
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
|
||||
if (temp != 0) {
|
||||
sp10.vz = 0;
|
||||
sp10.vx = 0;
|
||||
@@ -1455,31 +1455,31 @@ void func_80131340(s32 a0)
|
||||
sp10 = D_80182E30;
|
||||
}
|
||||
|
||||
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
|
||||
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
|
||||
if (var_a1 == 0) {
|
||||
var_a1 = 0x50;
|
||||
}
|
||||
func_8012DBD0(a0, var_a1,
|
||||
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
|
||||
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
|
||||
}
|
||||
|
||||
switch (*(u8 *)(a0 + 0xC2)) {
|
||||
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
if (*(u8 *)(a0 + 0xC2) == 0) {
|
||||
*(u8 *)(a0 + 0xC2) = 1;
|
||||
sp18.vx = *(u16 *)(a0 + 0x3A);
|
||||
sp18.vy = *(u16 *)(a0 + 0x3E);
|
||||
sp18.vz = *(u16 *)(a0 + 0x42);
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
|
||||
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
|
||||
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
|
||||
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
|
||||
sp20 = sp18;
|
||||
sp20.vx += sp10.vx;
|
||||
sp20.vy += sp10.vy;
|
||||
@@ -1489,82 +1489,82 @@ void func_80131340(s32 a0)
|
||||
sp20.vx -= sp10.vx;
|
||||
sp20.vy -= sp10.vy;
|
||||
sp20.vz -= sp10.vz;
|
||||
*(u16 *)(a0 + 0x3A) = sp20.vx;
|
||||
*(u16 *)(a0 + 0x3E) = sp20.vy;
|
||||
*(u16 *)(a0 + 0x42) = sp20.vz;
|
||||
*(u16 *)(a0 + 0x6) = sp20.vx;
|
||||
*(u16 *)(a0 + 0xA) = sp20.vy;
|
||||
*(u16 *)(a0 + 0xE) = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
|
||||
}
|
||||
D_801F1E68 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801F1E68 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801F1E68 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801F1E68 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801F1E68) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
func_80143B6C(a0, 1);
|
||||
*(s32 *)(a0 + 0x14) = 0xFFF30000;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
} else if (D_801F1E68 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
D_801F1E6C = *(s32 *)(a0 + 0x14);
|
||||
D_801F1E6C = ((Unkstruct_800B5CB8 *)a0)->unk14;
|
||||
D_801F1E68 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801F1E68 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801F1E68 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801F1E68 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801F1E68) == 1) {
|
||||
return;
|
||||
}
|
||||
func_80143B6C(a0, 1);
|
||||
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
|
||||
*(s32 *)(a0 + 0x14) = (-D_801F1E6C) / 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_801F1E6C) / 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
} else if (D_801F1E68 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
|
||||
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
|
||||
if (*(u8 *)(a0 + 0xC3) & 1) {
|
||||
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
|
||||
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
|
||||
D_801F1E68 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801F1E68 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (func_80131D68(a0, D_801F1E68) == 1) {
|
||||
return;
|
||||
@@ -1576,28 +1576,28 @@ void func_80131340(s32 a0)
|
||||
} else {
|
||||
D_801F1E68 = ((s32 (*)(s32))func_8012CBF4)(a0);
|
||||
if (D_801F1E68 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801F1E68 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
break;
|
||||
} else if (D_801F1E68 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801F1E68) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC3) |= 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
|
||||
} else if (D_801F1E68 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) < 0x11) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
|
||||
break;
|
||||
}
|
||||
if (!(D_801F1E68 & 0x6000)) {
|
||||
@@ -1605,7 +1605,7 @@ void func_80131340(s32 a0)
|
||||
return;
|
||||
}
|
||||
/* polarity MUST match case 4's — see the cross-jump note in the header. */
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
@@ -1615,24 +1615,24 @@ void func_80131340(s32 a0)
|
||||
case 4:
|
||||
D_801F1E68 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801F1E68 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801F1E68 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801F1E68) == 1) {
|
||||
return;
|
||||
}
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
}
|
||||
} else {
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
@@ -1687,47 +1687,47 @@ void func_80131B14() {
|
||||
u8 *p = a0v;
|
||||
|
||||
|
||||
s32 e = *(u8 *)(p + 0x5E);
|
||||
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
|
||||
|
||||
if (*(s16 *)(p + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
|
||||
if (e == 0x1D) {
|
||||
*(s16 *)(p + 0x82) = 0;
|
||||
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
|
||||
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
|
||||
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
|
||||
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
|
||||
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
|
||||
}
|
||||
{
|
||||
s32 dec;
|
||||
s32 q = *(s32 *)(p + 0x78);
|
||||
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
|
||||
if (q != 0) {
|
||||
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
if (dec <= 0) dec = 1;
|
||||
}
|
||||
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
|
||||
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
|
||||
}
|
||||
((void (*)(void *))func_8016AA50)(p);
|
||||
if (*(u16 *)(p + 0x82) & 1) {
|
||||
if (CAST_SIGN(u16, p, 0x82) & 1) {
|
||||
((void (*)(void *))func_8016B428)(p);
|
||||
((void(*)(void *))func_80019064)(&D_80182E38);
|
||||
}
|
||||
}
|
||||
|
||||
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
|
||||
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
|
||||
|
||||
if (e != 0x1D) {
|
||||
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
|
||||
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
|
||||
}
|
||||
|
||||
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
|
||||
|
||||
{
|
||||
s32 r = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
|
||||
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
|
||||
{
|
||||
s32 r2 = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r2 + 0x14) = 0;
|
||||
*(s16 *)(r2 + 0x10) = 0;
|
||||
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
CAST_WIDTH(s16, r2, 0x14) = 0;
|
||||
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1821,7 +1821,7 @@ void func_80131E00(struct S80131E00 *a0, s32 a1) {
|
||||
extern void (*D_80182EA0[])(void);
|
||||
|
||||
void func_80131EEC(void *a0) {
|
||||
D_80182EA0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182EA0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1829,7 +1829,7 @@ void func_80131EEC(void *a0) {
|
||||
extern void (*D_80182EE8[])(void);
|
||||
|
||||
void func_80131F28(void *a0) {
|
||||
D_80182EE8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182EE8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1837,7 +1837,7 @@ void func_80131F28(void *a0) {
|
||||
extern void (*D_80182EF0[])(void);
|
||||
|
||||
void func_80131F64(void *a0) {
|
||||
D_80182EF0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182EF0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1845,7 +1845,7 @@ void func_80131F64(void *a0) {
|
||||
extern void (*D_80182EF8[])(void);
|
||||
|
||||
void func_80131FA0(void *a0) {
|
||||
D_80182EF8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182EF8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1853,7 +1853,7 @@ void func_80131FA0(void *a0) {
|
||||
extern void (*D_80182F00[])(void);
|
||||
|
||||
void func_80131FDC(void *a0) {
|
||||
D_80182F00[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182F00[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -962,7 +962,7 @@ void func_801407F4(void)
|
||||
*(s16 *)(puVar1 + 0x1a) = *puVar3++;
|
||||
|
||||
iVar2 = func_80028FBC();
|
||||
*(s16 *)(D_801839D8 + 0x18) = *D_801839EC[iVar2];
|
||||
((Unkstruct_800B5CB8 *)D_801839D8)->unk18 = *D_801839EC[iVar2];
|
||||
iVar2 = func_80029000();
|
||||
*(s16 *)(D_801839DC + 0x18) = *D_801839EC[iVar2];
|
||||
|
||||
@@ -1567,7 +1567,7 @@ void func_801424E4(short *param_1) {
|
||||
extern void (*D_80183DAC[])(void);
|
||||
|
||||
void func_801425CC(void *a0) {
|
||||
D_80183DAC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80183DAC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1880,7 +1880,7 @@ void func_8014305C(int param_1)
|
||||
|
||||
do { iVar2 = ((int (*)(void))func_8012C1B8)(); } while (0);
|
||||
s1_copy = iVar2;
|
||||
*(int *)(s0_param + 0x20) = iVar2;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unk20 = iVar2;
|
||||
if (iVar2 == 0) {
|
||||
((void (*)(int))func_8012CAE4)(s0_param);
|
||||
} else {
|
||||
@@ -1888,7 +1888,7 @@ void func_8014305C(int param_1)
|
||||
sVar1 = (*(unsigned short *)(s0_param + 0x70) & 0xf) * 0x600 + 0xc00;
|
||||
*(short *)(s1_copy + 0x1a) = sVar1;
|
||||
*(short *)(s1_copy + 0x18) = sVar1;
|
||||
*(short *)(s0_param + 0xfc) = 0;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unkFC = 0;
|
||||
func_8012A828(s0_param, D_8018401C);
|
||||
((void (*)(int))func_80142B2C)(s0_param);
|
||||
}
|
||||
@@ -2049,7 +2049,7 @@ void func_8014358C(s32 param_1)
|
||||
extern void (*D_8018429C[])(void);
|
||||
|
||||
void func_80143B30(void *a0) {
|
||||
D_8018429C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018429C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2061,7 +2061,7 @@ void func_80143B30(void *a0) {
|
||||
extern void (*D_801842A8[])(void);
|
||||
|
||||
void func_80143C38(void *a0) {
|
||||
D_801842A8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801842A8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2071,7 +2071,7 @@ void func_80143C38(void *a0) {
|
||||
extern void (*D_801842B0[])(void);
|
||||
|
||||
void func_80143C98(void *a0) {
|
||||
D_801842B0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801842B0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2092,35 +2092,35 @@ extern void func_8012C218(void *a0);
|
||||
void func_80143D28(s32 param_1) {
|
||||
|
||||
extern MatEntry D_801842D4[];
|
||||
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
|
||||
MatEntry *p = &D_801842D4[*(s16 *)(param_1 + 0x70)];
|
||||
s32 iVar2 = ((Unkstruct_800B5CB8 *)param_1)->unk64; /* $s1 */
|
||||
MatEntry *p = &D_801842D4[((Unkstruct_800B5CB8 *)param_1)->unk70];
|
||||
u16 uVar5 = p->f8;
|
||||
s32 iVar3 = *(s32 *)(param_1 + 0x20);
|
||||
s32 iVar3 = ((Unkstruct_800B5CB8 *)param_1)->unk20;
|
||||
s32 sVar4;
|
||||
s32 iVar1;
|
||||
|
||||
*(s16 *)(iVar3 + 0x14) = uVar5;
|
||||
*(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;
|
||||
CAST_WIDTH(s16, iVar3, 0x14) = uVar5;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk12 = ((Unkstruct_800B5CB8 *)iVar3)->unk12 + p->fa;
|
||||
sVar4 = 0x1000;
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x34), p, (void *)(param_1 + 0x50));
|
||||
|
||||
if (*(s16 *)(param_1 + 0xfe) == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkFE == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != ((Unkstruct_800B5CB8 *)param_1)->unkFC ||
|
||||
*(u8 *)(iVar2 + 0xc1) != 6)) {
|
||||
if (0x10 < *(s32 *)(param_1 + 0x1c)) {
|
||||
*(s32 *)(param_1 + 0x1c) = 0x10;
|
||||
if (0x10 < ((Unkstruct_800B5CB8 *)param_1)->unk1C) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x10;
|
||||
}
|
||||
*(s16 *)(param_1 + 0xfe) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFE = 1;
|
||||
}
|
||||
|
||||
iVar1 = *(s32 *)(param_1 + 0x1c);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C;
|
||||
if (iVar1 < 0x11) {
|
||||
sVar4 = iVar1 << 8;
|
||||
}
|
||||
if (0x73 < iVar1) {
|
||||
sVar4 = (0x78 - iVar1) << 10;
|
||||
}
|
||||
*(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = ((Unkstruct_800B5CB8 *)iVar3)->unk1A = CAST_WIDTH(s16, iVar3, 0x1c) = sVar4;
|
||||
|
||||
if (func_8012BEE8(param_1)) {
|
||||
func_8012C218((void *)param_1);
|
||||
@@ -2132,7 +2132,7 @@ void func_80143D28(s32 param_1) {
|
||||
extern void (*D_801842F8[])(void);
|
||||
|
||||
void func_80143E68(void *a0) {
|
||||
D_801842F8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801842F8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2148,7 +2148,7 @@ void func_80143E68(void *a0) {
|
||||
extern void (*D_8018430C[])(void);
|
||||
|
||||
void func_80144054(void *a0) {
|
||||
D_8018430C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018430C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2172,9 +2172,9 @@ void func_801442F8(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
D_80184314[*(u16 *)(param_1 + 2)]();
|
||||
iVar1 = *(int *)(param_1 + 0x1c) + 1;
|
||||
*(int *)(param_1 + 0x1c) = iVar1;
|
||||
D_80184314[CAST_SIGN(u16, param_1, 2)]();
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C + 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = iVar1;
|
||||
if (0x1d < iVar1) {
|
||||
func_8012C218(param_1);
|
||||
}
|
||||
@@ -2200,19 +2200,19 @@ void func_80144364(int param_1) {
|
||||
*(int *)(param_1 + 0xCC) = iVar3;
|
||||
*(u16 *)(param_1 + 0xFC) = uVar2;
|
||||
func_8001CB6C((u8 *)iVar3, (s32)&D_80184290, 0x250, 0x1A0);
|
||||
*(s32 *)(iVar3 + 4) = 0x60000000;
|
||||
*(u8 *)(iVar3 + 0x27) = 0x14;
|
||||
*(u16 *)(iVar3 + 0x10) = 0x400;
|
||||
*(u16 *)(iVar3 + 8) = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
*(u16 *)(iVar3 + 0xA) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
*(u16 *)(iVar3 + 0xC) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
CAST_WIDTH(s32, iVar3, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk27 = 0x14;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk8 = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkA = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkC = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
sVar1 = *(s16 *)(param_1 + 0x70);
|
||||
if (sVar1 != 0) {
|
||||
*(s16 *)(iVar3 + 0x1A) = sVar1;
|
||||
*(s16 *)(iVar3 + 0x18) = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = sVar1;
|
||||
} else {
|
||||
*(u16 *)(iVar3 + 0x1A) = 0x2000;
|
||||
*(u16 *)(iVar3 + 0x18) = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = 0x2000;
|
||||
}
|
||||
*(u16 *)(param_1 + 2) = 1;
|
||||
}
|
||||
@@ -2235,7 +2235,7 @@ void func_80144458(void *arg0) {
|
||||
void *temp_v0;
|
||||
|
||||
temp_s2 = M2C_FIELD(arg0, void **, 0xCC);
|
||||
if (M2C_FIELD(arg0, s16 *, 0x70) == 0) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk70 == 0) {
|
||||
temp_v0 = M2C_FIELD(M2C_FIELD(arg0, void **, 0x64), void **, 0x20);
|
||||
if (temp_v0 != NULL) {
|
||||
temp_s0 = (M2C_FIELD(temp_v0, s16 *, 0x12) - 0x400) & 0xFFF;
|
||||
@@ -2244,9 +2244,9 @@ void func_80144458(void *arg0) {
|
||||
func_8012AD80(arg0);
|
||||
}
|
||||
}
|
||||
M2C_FIELD(temp_s2, u16 *, 8) = (u16) M2C_FIELD(arg0, u16 *, 6);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xA) = (u16) M2C_FIELD(arg0, u16 *, 0xA);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xC) = (u16) M2C_FIELD(arg0, u16 *, 0xE);
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unk8 = (u16) ((Unkstruct_800B5CB8 *)arg0)->unk6;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkA = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkA;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkC = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkE;
|
||||
if (func_80128ED8(temp_s2, arg0 + 0xD0) != 0) {
|
||||
func_80016714(temp_s2, 0x38);
|
||||
func_8012C218(arg0);
|
||||
@@ -2280,29 +2280,29 @@ void func_8014477C(void *param_1) {
|
||||
s32 fv;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)param_1 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(param_1);
|
||||
return;
|
||||
}
|
||||
((void (*)(s32, void *))func_8001CA1C)(v0, &D_801842B8);
|
||||
if (*(u16 *)(*(s32 *)((s32)param_1 + 0x64)) != 0) {
|
||||
*(s16 *)((s32)param_1 + 0xFC) = *(u16 *)(*(s32 *)((s32)param_1 + 0x64) + 0x36);
|
||||
uVar2 = *(s32 *)(*(s32 *)((s32)param_1 + 0x64) + 0x58);
|
||||
if (*(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64) != 0) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFC = *(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x36);
|
||||
uVar2 = *(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x58);
|
||||
if (uVar2 != 0) {
|
||||
addr = uVar2 & 0xFFFFFFF;
|
||||
gv = CAST_NONSTRUCT(u16, (addr | 0x80000000), 8);
|
||||
fv = *(u16 *)((s32)param_1 + 0xA) - 0x30;
|
||||
*(u16 *)((s32)param_1 + 0xA) = gv + fv;
|
||||
fv = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x30;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = gv + fv;
|
||||
} else {
|
||||
*(u16 *)((s32)param_1 + 0xA) = *(u16 *)((s32)param_1 + 0xA) - 0x60;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x60;
|
||||
}
|
||||
}
|
||||
((void (*)(void *, void *))func_8012A828)(param_1, &D_801842C4);
|
||||
v1 = (s32)*(s16 *)((s32)param_1 + 0x70) << 0xC;
|
||||
*(s16 *)((s32)param_1 + 0x2) = 1;
|
||||
*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12) = v1 / 3;
|
||||
*(s32 *)((s32)param_1 + 0x1C) = 0x78;
|
||||
v1 = (s32)((Unkstruct_800B5CB8 *)param_1)->unk70 << 0xC;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = 1;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)((s32)param_1 + 0x20))->unk12 = v1 / 3;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x78;
|
||||
}
|
||||
|
||||
|
||||
@@ -2334,15 +2334,15 @@ void func_80144880(s32 param_1)
|
||||
func_8001CB6C((u8 *)obj, (s32)&D_80184300, 0x300, 0x1D0);
|
||||
b = 0x6A;
|
||||
}
|
||||
*(u8 *)(obj + 0x27) = (u8)b;
|
||||
*(s32 *)(obj + 4) = 0x60000000;
|
||||
*(u16 *)(obj + 0x10) = 0x400;
|
||||
*(u16 *)(obj + 8) = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
*(u16 *)(obj + 0xA) = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)obj)->unk27 = (u8)b;
|
||||
CAST_WIDTH(s32, obj, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk8 = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)obj)->unkA = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
e = *(u16 *)(*(s32 *)(self + 0x64) + 0xE);
|
||||
*(u16 *)(obj + 0x1A) = 0x4000;
|
||||
*(u16 *)(obj + 0x18) = 0x4000;
|
||||
*(u16 *)(obj + 0xC) = (u16)e;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk1A = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk18 = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unkC = (u16)e;
|
||||
*(s16 *)(self + 2) = *(s16 *)(self + 2) + 1;
|
||||
}
|
||||
}
|
||||
@@ -2354,7 +2354,7 @@ void func_80144880(s32 param_1)
|
||||
extern void (*D_8018431C[])(void);
|
||||
|
||||
void func_801449C8(void *a0) {
|
||||
D_8018431C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018431C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2364,7 +2364,7 @@ void func_801449C8(void *a0) {
|
||||
extern void (*D_80184324[])(void);
|
||||
|
||||
void func_80144A2C(void *a0) {
|
||||
D_80184324[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184324[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
|
||||
extern void (*D_801847E8[])(void);
|
||||
|
||||
void func_80155580(void *a0) {
|
||||
D_801847E8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801847E8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1155,7 +1155,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
|
||||
extern void (*D_80184C5C[])(void);
|
||||
|
||||
void func_80157544(void *a0) {
|
||||
D_80184C5C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184C5C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1235,7 +1235,7 @@ extern u8 D_80184C64;
|
||||
void func_801578C0(s32 param_1)
|
||||
{
|
||||
((void (*)(void))func_80156648)();
|
||||
*(u8 *)(param_1 + 0x1AA) = 9;
|
||||
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
|
||||
func_80154274((s32 *)param_1, (s32)&D_800D5128);
|
||||
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
|
||||
func_80147324(0xC20);
|
||||
@@ -1285,8 +1285,8 @@ void func_8015795C(int param_1)
|
||||
|
||||
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
|
||||
((int (*)(int, int))func_80147A10)(param_1, 0x400);
|
||||
if (*(int *)(param_1 + 0x2c) >= 0) {
|
||||
*(int *)(param_1 + 0x2c) = 0;
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
|
||||
}
|
||||
func_80147A84(param_1);
|
||||
((void (*)(int))func_801473EC)(param_1);
|
||||
@@ -1309,7 +1309,7 @@ void func_8015795C(int param_1)
|
||||
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
|
||||
((void (*)(int, void *))func_80146DB8)(param_1, &D_80184C74);
|
||||
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
|
||||
*(short *)(param_1 + 2) = 4;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
|
||||
}
|
||||
((void (*)(int))func_801725A4)(param_1);
|
||||
}
|
||||
@@ -1374,7 +1374,7 @@ void func_80157D20(void *param_1, s32 param_2)
|
||||
extern void (*D_80184CC4[])(void);
|
||||
|
||||
void func_80157DC4(void *a0) {
|
||||
D_80184CC4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184CC4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1390,7 +1390,7 @@ void func_80157DC4(void *a0) {
|
||||
extern void (*D_80184CCC[])(void);
|
||||
|
||||
void func_80157FC4(void *a0) {
|
||||
D_80184CCC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184CCC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1412,11 +1412,11 @@ extern s32 D_80184C98;
|
||||
|
||||
void func_80158038(void * param)
|
||||
{
|
||||
*(u8 *)(param + 0x1aa) = 0xe;
|
||||
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
|
||||
func_80154274((s32 *)param, (s32)&D_800D51E0);
|
||||
func_80154A74(param, 0x15);
|
||||
func_80146DB8((s32 *)param, &D_80184C98);
|
||||
*(s32 *)(param + 0x234) = 0;
|
||||
((Unkstruct_80126B58 *)param)->unk234 = 0;
|
||||
func_80146994(5, param, 0xc, 0);
|
||||
func_80147324(0x455);
|
||||
func_80146CA0((void *)param);
|
||||
@@ -1431,7 +1431,7 @@ void func_80158038(void * param)
|
||||
extern void (*D_80184CD8[])(void);
|
||||
|
||||
void func_8015824C(void *a0) {
|
||||
D_80184CD8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80184CD8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1469,15 +1469,15 @@ void func_80158434(s32 param_1)
|
||||
s32 frame_pad[4];
|
||||
(void)&frame_pad;
|
||||
|
||||
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
|
||||
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
|
||||
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
|
||||
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
|
||||
((s32 (*)(void))func_8014CBF8)();
|
||||
((void (*)(s32))func_801474EC)(param_1);
|
||||
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
|
||||
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_80184CA8);
|
||||
}
|
||||
if (*(s32 *)(param_1 + 0x234) != 0) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
|
||||
func_80148038(param_1, 0x10000);
|
||||
func_80147460(param_1);
|
||||
func_80147AD4(param_1, 0, 0, 0);
|
||||
@@ -1496,7 +1496,7 @@ LAB_80158508:
|
||||
((void (*)(s32))func_80146CA0)(param_1);
|
||||
return;
|
||||
LAB_80158528:
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
|
||||
}
|
||||
|
||||
|
||||
@@ -1602,5 +1602,5 @@ extern void (*D_80184D14[])(s32 *);
|
||||
|
||||
void func_80158880(s32 *param) {
|
||||
func_80149020(param);
|
||||
D_80184D14[*(u8 *)((s32)param + 0x4F)](param);
|
||||
D_80184D14[((Unkstruct_80126B58 *)param)->unk4F](param);
|
||||
}
|
||||
|
||||
@@ -1172,8 +1172,8 @@ void func_80158BB0(void *arg0) {
|
||||
func_80147324(0x456);
|
||||
func_80154274(arg0, &D_800D58D8);
|
||||
func_80154A74(arg0, 0x16);
|
||||
M2C_FIELD(arg0, s32 *, 0x234) = 0xE30000;
|
||||
M2C_FIELD(M2C_FIELD(arg0, void **, 0x20), s16 *, 0x10) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0xE30000;
|
||||
((Unkstruct_800B5CB8 *)M2C_FIELD(arg0, void **, 0x20))->unk10 = 0;
|
||||
func_801474EC(arg0);
|
||||
func_801474D8(arg0);
|
||||
func_801472C8(arg0);
|
||||
@@ -1285,7 +1285,7 @@ void func_8015934C(void *arg0) {
|
||||
D_800AE6BD += 1;
|
||||
}
|
||||
temp_v1 = M2C_FIELD(arg0, void **, 0x20);
|
||||
M2C_FIELD(temp_v1, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_v1, u16 *, 0x12) + 0x16) & 0xFFF);
|
||||
((Unkstruct_800B5CB8 *)temp_v1)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_v1)->unk12 + 0x16) & 0xFFF);
|
||||
}
|
||||
|
||||
|
||||
@@ -1490,9 +1490,9 @@ void func_80159A20(unsigned char *param_1)
|
||||
func_80158638(param_1);
|
||||
((void (*)(u8 *))func_8015126C)(param_1);
|
||||
((void (*)(u8 *))func_8014900C)(param_1);
|
||||
D_801850B8[*(u16 *)param_1 & 0x7fff](param_1);
|
||||
*(u32 *)(param_1 + 0x44) |= 0x8000000;
|
||||
switch (*(u16 *)param_1) {
|
||||
D_801850B8[((Unkstruct_80126B58 *)param_1)->unk0 & 0x7fff](param_1);
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 |= 0x8000000;
|
||||
switch (((Unkstruct_80126B58 *)param_1)->unk0) {
|
||||
case 2:
|
||||
case 3:
|
||||
case 0xb:
|
||||
@@ -1507,13 +1507,13 @@ void func_80159A20(unsigned char *param_1)
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(param_1 + 2) == 3) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2 == 3) {
|
||||
goto mask;
|
||||
}
|
||||
return;
|
||||
}
|
||||
mask:
|
||||
*(u32 *)(param_1 + 0x44) &= 0xf7ffffff;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 &= 0xf7ffffff;
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80159B08.h"
|
||||
@@ -1524,7 +1524,7 @@ mask:
|
||||
extern void (*D_8018515C[])(void);
|
||||
|
||||
void func_80159B70(void *a0) {
|
||||
D_8018515C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018515C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1559,8 +1559,8 @@ void func_80159BE4(s32 arg0)
|
||||
func_80154150(arg0, 4);
|
||||
func_80154A74(arg0, 0x11);
|
||||
}
|
||||
*(int *)(arg0 + 0x234) = 0;
|
||||
*(int *)(arg0 + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 0;
|
||||
func_801553C0(arg0);
|
||||
((void (*)(int))func_801553A8)(arg0);
|
||||
((void (*)(int))func_80172590)(arg0);
|
||||
|
||||
@@ -1211,7 +1211,7 @@ void func_80159C84(u8 *p) {
|
||||
s32 t;
|
||||
|
||||
if (((s32 (*)(void))func_80149D9C)() != 0) {
|
||||
D_80185014[*(u16 *)p](p);
|
||||
D_80185014[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
((void (*)(u8 *))func_80149FA8)(p);
|
||||
return;
|
||||
}
|
||||
@@ -1227,7 +1227,7 @@ void func_80159C84(u8 *p) {
|
||||
return;
|
||||
}
|
||||
if (func_801496D4(p) != 0) {
|
||||
D_80185014[*(u16 *)p](p);
|
||||
D_80185014[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
((void (*)(u8 *))func_80149704)(p);
|
||||
return;
|
||||
}
|
||||
@@ -1238,12 +1238,12 @@ void func_80159C84(u8 *p) {
|
||||
case 2:
|
||||
case 6:
|
||||
if (func_80149AA8((s32 *)p) != 0) {
|
||||
D_80185014[*(u16 *)p](p);
|
||||
D_80185014[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_80149AD4((s32 *)p);
|
||||
return;
|
||||
}
|
||||
if (func_80149B54((s32 *)p) != 0) {
|
||||
D_80185014[*(u16 *)p](p);
|
||||
D_80185014[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
if (func_8014A738(p) != 0) {
|
||||
((void (*)(u8 *))func_8014A830)(p);
|
||||
return;
|
||||
@@ -1260,7 +1260,7 @@ void func_80159C84(u8 *p) {
|
||||
break;
|
||||
case 5:
|
||||
if (func_80149A64((s32 *)p) != 0) {
|
||||
D_80185014[*(u16 *)p](p);
|
||||
D_80185014[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_800CCCC0(p);
|
||||
return;
|
||||
}
|
||||
@@ -1268,26 +1268,26 @@ void func_80159C84(u8 *p) {
|
||||
}
|
||||
|
||||
if (func_80149CD4((s32)p) != 0) {
|
||||
D_80185014[*(u16 *)p](p);
|
||||
D_80185014[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_8015E880((s32 *)p);
|
||||
return;
|
||||
}
|
||||
if (func_801488A8(p) != 0) {
|
||||
D_80185014[*(u16 *)p](p);
|
||||
D_80185014[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_8015A230((s32 *)p);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((*(u32 *)(p + 0x44) & 0x200) == 0 && *(u16 *)(p + 0xD4) == 0x8000) {
|
||||
if (*(s32 *)(p + 0x234) >= 3) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0 && ((Unkstruct_80126B58 *)p)->unkD4 == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)p)->unk234 >= 3) {
|
||||
t = (s32)&D_800D5F44;
|
||||
if (*(s32 *)(p + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(p, (s32)&D_800D5F34);
|
||||
goto after_b4c;
|
||||
}
|
||||
} else {
|
||||
t = (s32)&D_800D5F14;
|
||||
if (*(s32 *)(p + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(p, (s32)&D_800D5F04);
|
||||
goto after_b4c;
|
||||
}
|
||||
@@ -1298,17 +1298,17 @@ void func_80159C84(u8 *p) {
|
||||
}
|
||||
after_b4c:
|
||||
|
||||
if (*(u16 *)(p + 0xB8) & 0x8000) {
|
||||
if ((*(u32 *)(p + 0x44) & 0x200) == 0) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB8 & 0x8000) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0) {
|
||||
if (func_8016F1AC() != 0) {
|
||||
*(s32 *)(p + 0x234) = 0;
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
}
|
||||
switch (*(s32 *)(p + 0x234)) {
|
||||
switch (((Unkstruct_80126B58 *)p)->unk234) {
|
||||
case 0:
|
||||
if ((*(s32 *)(p + 0x238))++ >= 4) {
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 4) {
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 1);
|
||||
break;
|
||||
}
|
||||
@@ -1316,20 +1316,20 @@ after_b4c:
|
||||
func_80154190(p, 0);
|
||||
break;
|
||||
case 1:
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 0);
|
||||
break;
|
||||
case 2:
|
||||
if ((*(s32 *)(p + 0x238))++ >= 2) {
|
||||
if ((*(u32 *)(p + 0x44) & 4) != 0) {
|
||||
*(s32 *)(p + 0x234) = 0;
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 2) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 4) != 0) {
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
func_80154150((s32)p, 0);
|
||||
break;
|
||||
}
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 2);
|
||||
break;
|
||||
}
|
||||
@@ -1337,7 +1337,7 @@ after_b4c:
|
||||
break;
|
||||
case 3:
|
||||
func_80147324(0x445);
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80155440((s32 *)p);
|
||||
func_80154150((s32)p, 3);
|
||||
func_80154A74((s32)p, 0x13);
|
||||
@@ -1354,7 +1354,7 @@ after_b4c:
|
||||
}
|
||||
}
|
||||
|
||||
if (*(s32 *)(p + 0xB4) == (s32)&D_800D49F4) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB4 == (s32)&D_800D49F4) {
|
||||
func_80147A84((s32)p);
|
||||
func_801473EC((s32 *)p);
|
||||
if ((D_800B99DA & 3) == 0) {
|
||||
@@ -1378,7 +1378,7 @@ after_b4c:
|
||||
extern void (*D_80185164[])(void);
|
||||
|
||||
void func_8015A264(void *a0) {
|
||||
D_80185164[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185164[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1406,7 +1406,7 @@ void func_8015A2D8(s32 param_1)
|
||||
if ((*(unsigned int *)(param_1 + 0x44) & 0x200) != 0) {
|
||||
func_80154150(param_1, 10);
|
||||
func_80154A74(param_1, 0x1c);
|
||||
*(int *)(param_1 + 0x2c) = 0xfffc0000;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0xfffc0000;
|
||||
goto LAB_8015a38c;
|
||||
}
|
||||
bVar1 = *(unsigned char *)(param_1 + 0xa9);
|
||||
@@ -1419,12 +1419,12 @@ void func_8015A2D8(s32 param_1)
|
||||
func_80154150(param_1, 6);
|
||||
break;
|
||||
default:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
goto LAB_8015a390;
|
||||
}
|
||||
func_80154A74(param_1, 0x21);
|
||||
LAB_8015a38c:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
LAB_8015a390:
|
||||
func_8014C010(param_1, 2);
|
||||
((void (*)(int))func_801553A8)(param_1);
|
||||
|
||||
@@ -1238,7 +1238,7 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149D9C(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149FA8)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1249,9 +1249,9 @@ s32 arg0;
|
||||
if (((s32 (*)(s32))func_80161B18)(arg0) != 0) {
|
||||
return;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D5428) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D5428) {
|
||||
if (func_8014A048(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8014A218)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1265,12 +1265,12 @@ s32 arg0;
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1283,7 +1283,7 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1291,18 +1291,18 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) == 0) {
|
||||
sv = *(s32 *)(arg0 + 0x2C);
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
sv = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_8014C010(arg0, 1);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
@@ -1313,41 +1313,41 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_80148AFC)(arg0);
|
||||
if (*(u32 *)(arg0 + 0x44) & 0x200) {
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 0x200) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
func_80154150(arg0, 0xA);
|
||||
func_80154A74(arg0, 0x1C);
|
||||
}
|
||||
((void (*)(s32, s32))func_80146DB8)(arg0, (s32)&(*(s32 *)&D_80184F98));
|
||||
func_80147AD4(arg0, 0, 0, 0);
|
||||
} else {
|
||||
switch (*(u8 *)(arg0 + 0xA9)) {
|
||||
switch (((Unkstruct_80126B58 *)arg0)->unkA9) {
|
||||
case 0x41:
|
||||
func_80147AD4(arg0, 0, 0, grav);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 4) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
lo1 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo1) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1359,29 +1359,29 @@ s32 arg0;
|
||||
break;
|
||||
case 0x53:
|
||||
case 0x73:
|
||||
*(s32 *)(arg0 + 0x2C) = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
lo2 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo2) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1395,11 +1395,11 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if ((min >= *(s32 *)(arg0 + 0x2C)) && !(D_800B99DA & 7)) {
|
||||
if ((min >= ((Unkstruct_80126B58 *)arg0)->unk2C) && !(D_800B99DA & 7)) {
|
||||
func_8014C010(arg0, 2);
|
||||
}
|
||||
if (((s32 (*)(s32))func_8014D738)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015C6E0)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1407,18 +1407,18 @@ s32 arg0;
|
||||
((void (*)(s32))func_80155440)(arg0);
|
||||
func_80154150(arg0, 0x12);
|
||||
func_80154A74(arg0, 0x17);
|
||||
*(s32 *)(arg0 + 0x23C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 1;
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x23C) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C != 0) {
|
||||
func_801553C0(arg0);
|
||||
func_80154150(arg0, 6);
|
||||
func_80154A74(arg0, 0x21);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x23C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 0;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80161278)(arg0) == 0) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x2000) {
|
||||
func_80161C24(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x2000) {
|
||||
func_80161C24(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
((void (*)(s32))func_80172608)(arg0);
|
||||
((void (*)(s32))func_801483E8)(arg0);
|
||||
@@ -1442,7 +1442,7 @@ void func_8015AC48(s32 arg0)
|
||||
{
|
||||
func_80154150(arg0, 9);
|
||||
func_80146DB8((s32 *)arg0, &D_80184FA8);
|
||||
func_80161CD0(arg0, M2C_FIELD(arg0, u16 *, 0x16E));
|
||||
func_80161CD0(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
|
||||
|
||||
@@ -1456,7 +1456,7 @@ void func_8015AC48(s32 arg0)
|
||||
extern void (*D_8018516C[])(void);
|
||||
|
||||
void func_8015AD3C(void *a0) {
|
||||
D_8018516C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018516C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1254,42 +1254,42 @@ s32 arg0;
|
||||
s32 t;
|
||||
|
||||
flag = 0;
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (*(s32 *)(arg0 + 0x34) >= 0)) {
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (((Unkstruct_80126B58 *)arg0)->unk34 >= 0)) {
|
||||
flag = 1;
|
||||
if (*(s32 *)(arg0 + 0x5C) == 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk5C == 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x5C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 1;
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x5C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 0;
|
||||
}
|
||||
((void (*)(s32))func_80149FB0)(arg0);
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 0) {
|
||||
switch (((s32 (*)(s32))func_801619A4)(arg0)) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 6:
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (func_80149C08(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_801577C8)(arg0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if (func_8015B6F4(arg0) == 0) {
|
||||
((void (*)(s32))func_8015B7B4)(arg0);
|
||||
}
|
||||
} else {
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (flag != 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3B, arg0, 0, 0);
|
||||
}
|
||||
@@ -1304,50 +1304,50 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (*(u32 *)(arg0 + 0x44) & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, *(u8 *)(arg0 + 0x1AA));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1AA);
|
||||
} else {
|
||||
if ((*(s32 *)(arg0 + 0x240) == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
*(s32 *)(arg0 + 0x240) += 1;
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk240 == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk240 += 1;
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) && (*(u16 *)(arg0 + 0xB8) & 0x8000)) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) && (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000)) {
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
} else if ((*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) ||
|
||||
(*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4B48)) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x8000) {
|
||||
if (*(s32 *)(arg0 + 0x34) >= 0) {
|
||||
*(u16 *)(arg0 + 0xB8) += 1;
|
||||
} else if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) ||
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4B48)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unkB8 += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(u8 *)(arg0 + 0x1C6) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 != 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80148038(arg0, 0xFFFE6000);
|
||||
} else {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
}
|
||||
lim = 0x40000;
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
lim = 0xC0000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x34) < -lim) {
|
||||
*(s32 *)(arg0 + 0x34) = -lim;
|
||||
} else if (lim < *(s32 *)(arg0 + 0x34)) {
|
||||
*(s32 *)(arg0 + 0x34) = lim;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < -lim) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = -lim;
|
||||
} else if (lim < ((Unkstruct_80126B58 *)arg0)->unk34) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = lim;
|
||||
}
|
||||
func_80147460(arg0);
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x34) < 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80147814(arg0, 0xFFFF0000);
|
||||
}
|
||||
@@ -1355,14 +1355,14 @@ s32 arg0;
|
||||
}
|
||||
}
|
||||
if (func_800CF8B4() != 0) {
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
}
|
||||
if (flag == 0) {
|
||||
if ((u8)((s32 (*)(s32))func_80148AFC)(arg0)) {
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
((void (*)(s32, s32))func_80146E90)(arg0, 4);
|
||||
if (*(s32 *)(arg0 + 0x2C) > -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C > -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
func_80147A30(arg0, -0x10000, 0xBA000);
|
||||
} else {
|
||||
func_80147A30(arg0, -0x1000, 0xBA000);
|
||||
@@ -1374,7 +1374,7 @@ s32 arg0;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if (*(u8 *)(arg0 + 0x1C6) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 == 0) {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
func_80147460(arg0);
|
||||
}
|
||||
@@ -1384,79 +1384,79 @@ s32 arg0;
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
func_80146D90(arg0);
|
||||
func_80147AD4(arg0, 0, 0, 0xFFFF4000);
|
||||
*(s32 *)(arg0 + 0x50) += *(s32 *)(arg0 + 0x10);
|
||||
*(s32 *)(arg0 + 0x54) += *(s32 *)(arg0 + 0x14);
|
||||
*(s32 *)(arg0 + 0x58) += *(s32 *)(arg0 + 0x18);
|
||||
if (*(s32 *)(arg0 + 0x50) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x50) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = -0xBA000;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += ((Unkstruct_80126B58 *)arg0)->unk10;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += ((Unkstruct_80126B58 *)arg0)->unk14;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += ((Unkstruct_80126B58 *)arg0)->unk18;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk50 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x54) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk54 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x58) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk58 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = -0xBA000;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
} else {
|
||||
doit = 0;
|
||||
if (*(s32 *)(arg0 + 0x50) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) < 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x50) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) < 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x54) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) < 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x58) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (doit != 0) {
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
}
|
||||
if (!(*(u32 *)(arg0 + 0x44) & 2)) {
|
||||
if (!(((Unkstruct_80126B58 *)arg0)->unk44 & 2)) {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xF, 0x12);
|
||||
}
|
||||
}
|
||||
@@ -1464,22 +1464,22 @@ s32 arg0;
|
||||
if (t != 0) {
|
||||
func_800CCB78(t);
|
||||
}
|
||||
if ((*(u16 *)(arg0 + 0x1C8) & 0x1F) == 0) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk1C8 & 0x1F) == 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3C, arg0, 0, 0);
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x1B0) != 0) {
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 1) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 1) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32))func_80154274)(arg0, *(s32 *)(arg0 + 0x1B4));
|
||||
((void (*)(s32, s32))func_80154274)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1B4);
|
||||
}
|
||||
}
|
||||
r = ((s32 (*)(s32))func_80161488)(arg0);
|
||||
if (r & 5) {
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) {
|
||||
func_80154150(arg0, 0xE);
|
||||
} else {
|
||||
func_80154150(arg0, 0x10);
|
||||
@@ -1488,10 +1488,10 @@ s32 arg0;
|
||||
}
|
||||
if (r == 0) {
|
||||
if ((((s32 (*)(s32))func_8014A674)(arg0) != 0) && (((s32 (*)(s32))func_8014E434)(arg0) != 0)) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CC40)(arg0);
|
||||
} else if ((((s32 (*)(s32))func_8014A69C)(arg0) != 0) && (((s32 (*)(s32))func_8014E6A0)(arg0) != 0)) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CF8C)(arg0);
|
||||
} else {
|
||||
((void (*)(s32))func_801725A4)(arg0);
|
||||
@@ -1656,12 +1656,12 @@ s32 func_8015B950(s32 arg0)
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1674,61 +1674,61 @@ s32 func_8015B950(s32 arg0)
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149744)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149788)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
if (((u8)((s32 (*)(s32))func_80148AFC)(arg0)) == 0) {
|
||||
func_80146D90(arg0);
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0x24) | *(s32 *)(arg0 + 0x2C)) != 0) {
|
||||
if ((CAST_WIDTH(s32, arg0, 0x24) | ((Unkstruct_80126B58 *)arg0)->unk2C) != 0) {
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xD, 6);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x238) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 1;
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) != 0) {
|
||||
sp10[0] = 0;
|
||||
sp10[1] = 0;
|
||||
sp10[2] = 0;
|
||||
t = *(s16 *)(arg0 + 0x26);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk26;
|
||||
sp18[0] = t;
|
||||
sp18[1] = 0;
|
||||
t = *(s16 *)(arg0 + 0x2E);
|
||||
sp18[2] = t;
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 1);
|
||||
((void (*)(s32))func_8015A264)(arg0);
|
||||
t = -(((s32 (*)(s16 *, s16 *))func_80013294)(sp10, sp18) << 0x10);
|
||||
if (t < *(s32 *)(arg0 + 0x2C)) {
|
||||
*(s32 *)(arg0 + 0x2C) = t;
|
||||
if (t < ((Unkstruct_80126B58 *)arg0)->unk2C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = t;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
return;
|
||||
}
|
||||
z = *(s32 *)(arg0 + 0x2C);
|
||||
z = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (func_8016F1AC() != 0) {
|
||||
goto zero;
|
||||
}
|
||||
@@ -1748,12 +1748,12 @@ zero:
|
||||
doit = 0;
|
||||
join:
|
||||
if (doit != 0) {
|
||||
D_80185014[*(u16 *)arg0]((void *)arg0);
|
||||
D_80185014[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
func_80154150(arg0, 9);
|
||||
((void (*)(s32, s32 *))func_80146DB8)(arg0, &D_80184FA8);
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
return;
|
||||
}
|
||||
if (func_80161208(arg0) == 0) {
|
||||
@@ -1796,7 +1796,7 @@ void func_8015BE38(struct Obj *a0) {
|
||||
extern void (*D_80185194[])(void);
|
||||
|
||||
void func_8015BFF4(void *a0) {
|
||||
D_80185194[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185194[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2092,7 +2092,7 @@ void func_8016B234(s32 param_1) {
|
||||
extern void (*D_80185B60[])(void);
|
||||
|
||||
void func_8016B4BC(void *a0) {
|
||||
D_80185B60[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185B60[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2347,7 +2347,7 @@ s32 func_8016B9F8(s32 param_1)
|
||||
extern void (*D_80185BB0[])(void);
|
||||
|
||||
void func_8016BBA4(void *a0) {
|
||||
D_80185BB0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185BB0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2412,16 +2412,16 @@ void func_8016BCC0(void *arg0) {
|
||||
func_8016BF50();
|
||||
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
|
||||
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
|
||||
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
|
||||
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
|
||||
func_8016BFA8(arg0, &D_801F2584, &D_801F2588, temp_s0 + 0x18);
|
||||
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
|
||||
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
|
||||
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
|
||||
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
|
||||
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
|
||||
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2572,7 +2572,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
|
||||
extern void (*D_80185BE0[])(void);
|
||||
|
||||
void func_8016C14C(void *a0) {
|
||||
D_80185BE0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185BE0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2748,7 +2748,7 @@ s32 func_8016C49C(s32 param_1_arg) {
|
||||
return;
|
||||
}
|
||||
func_8001CD9C(iVar5b, D_801F25A0);
|
||||
*(u32 *)(iVar5b + 4) |= 0x50000000;
|
||||
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
|
||||
uVar2 = ((int(*)())rand)();
|
||||
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
|
||||
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
|
||||
@@ -2838,7 +2838,7 @@ void func_8016C998(s32 param_1)
|
||||
extern void (*D_80185BE8[])(void);
|
||||
|
||||
void func_8016CB84(void *a0) {
|
||||
D_80185BE8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185BE8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3052,7 +3052,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
|
||||
extern void (*D_80185C04[])(void);
|
||||
|
||||
void func_8016D19C(void *a0) {
|
||||
D_80185C04[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185C04[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3153,7 +3153,7 @@ void func_8016D1D8(int param_1) {
|
||||
extern void (*D_80185C0C[])(void);
|
||||
|
||||
void func_8016D428(void *a0) {
|
||||
D_80185C0C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185C0C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3353,7 +3353,7 @@ end:
|
||||
extern void (*D_80185CA8[])(void);
|
||||
|
||||
void func_8016DEA4(void *a0) {
|
||||
D_80185CA8[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185CA8[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3363,7 +3363,7 @@ void func_8016DEA4(void *a0) {
|
||||
extern void (*D_80185CB0[])(void);
|
||||
|
||||
void func_8016DF20(void *a0) {
|
||||
D_80185CB0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185CB0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3471,7 +3471,7 @@ void func_8016DF5C(s32 param_1)
|
||||
extern void (*D_80185D04[])(void);
|
||||
|
||||
void func_8016E5B8(void *a0) {
|
||||
D_80185D04[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80185D04[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
|
||||
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
|
||||
break;
|
||||
}
|
||||
D_801F2CC8 = *(s32 *)(D_801F2CC8 + 4);
|
||||
D_801F2CC8 = CAST_WIDTH(s32, D_801F2CC8, 4);
|
||||
return;
|
||||
case 0x37:
|
||||
(*(s16*)&D_801F345C) = 3;
|
||||
|
||||
@@ -2621,34 +2621,34 @@ void func_8017AE2C(s32 param_1) {
|
||||
case 1:
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] <= 0) {
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
|
||||
goto reset_both;
|
||||
}
|
||||
{
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
return;
|
||||
case 2:
|
||||
func_8012B178(pv, (s32)g[4] << 8);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
break;
|
||||
case 3:
|
||||
if (g[1] != 0) {
|
||||
if (g[5] != 0) {
|
||||
void *p = (void *)(pv + 4);
|
||||
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
|
||||
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
|
||||
(s16)func_8012B744(p, &g[6])) < 0x100) {
|
||||
g[1] = 0;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744(p, &D_801F33C4);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* &D_801F33B8+0xC == &D_801F33C4; distinct rtx defeats gcc's address-CSE
|
||||
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
|
||||
@@ -2659,9 +2659,9 @@ void func_8017AE2C(s32 param_1) {
|
||||
}
|
||||
{
|
||||
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] > 0) {
|
||||
@@ -2670,11 +2670,11 @@ void func_8017AE2C(s32 param_1) {
|
||||
g[1] = 0;
|
||||
return;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744((void *)(pv + 4), &D_801F33C4);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* see note above: distinct rtx for the same address defeats address-CSE. */
|
||||
if (func_8012BE98(pv, (u16 *)((s32)&D_801F33B8 + 0xC)) < 0x101) {
|
||||
|
||||
@@ -3409,27 +3409,27 @@ s32 a0;
|
||||
s32 cmd;
|
||||
s32 v;
|
||||
|
||||
cmd = *(s32 *)(a0 + 0xCC);
|
||||
cmd = ((Unkstruct_800B5CB8 *)a0)->unkCC;
|
||||
if (cmd == 0) {
|
||||
return 0;
|
||||
}
|
||||
if (*(s32 *)(a0 + 0x1C) == 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C == 0) {
|
||||
v = *(s16 *)cmd;
|
||||
cmd += 2;
|
||||
if (v == 0) {
|
||||
func_8012B200((u8 *)a0);
|
||||
*(s32 *)(a0 + 0xCC) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkCC = 0;
|
||||
return 0;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) = v;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) = *(u16 *)cmd;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = v;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk12 = ((Unkstruct_800B5CB8 *)cmd)->unk0;
|
||||
cmd += 2;
|
||||
*(u16 *)(a0 + 0xE6) = *(u16 *)cmd;
|
||||
*(u16 *)(a0 + 0xE6) = ((Unkstruct_800B5CB8 *)cmd)->unk0;
|
||||
cmd += 2;
|
||||
func_8012B2CC(a0);
|
||||
*(s32 *)(a0 + 0xCC) = cmd;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkCC = cmd;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) -= 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C -= 1;
|
||||
func_8012B1B4(a0, a0 + 0xDC);
|
||||
func_8012AD80(a0);
|
||||
return 1;
|
||||
@@ -3440,7 +3440,7 @@ s32 a0;
|
||||
extern void (*D_801E9A18[])(void);
|
||||
|
||||
void func_8017F360(void *a0) {
|
||||
D_801E9A18[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801E9A18[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3775,27 +3775,27 @@ void func_8017FA14(s32 a0)
|
||||
s32 t;
|
||||
s32 c;
|
||||
|
||||
if ((*(s32 *)(a0 + 0x20) = ((s32 (*)(void))func_8012C1B8)()) == 0) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk20 = ((s32 (*)(void))func_8012C1B8)()) == 0) {
|
||||
return;
|
||||
}
|
||||
func_8001C214(*(s32 *)(a0 + 0x20), (s32)D_801AAEDC);
|
||||
func_8001C214(((Unkstruct_800B5CB8 *)a0)->unk20, (s32)D_801AAEDC);
|
||||
func_8012A828(a0, &D_801E9088);
|
||||
func_80143994(a0, 0x3000);
|
||||
t = func_80029504();
|
||||
c = func_800291B4(0x3B);
|
||||
if (((u16)(t - 0x2DA) < 0x14) && ((c & 0xFF) < 9)) {
|
||||
*(s16 *)(a0 + 0x102) = 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk102 = 1;
|
||||
func_8017EFC4(a0);
|
||||
arr[0] = 0;
|
||||
arr[1] = -0x82;
|
||||
arr[2] = -0x1F8;
|
||||
arr[3] = 0x800;
|
||||
func_80172310((u8 *)arr);
|
||||
*(s32 *)(a0 + 0x1C) = 0xF;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0xF;
|
||||
} else {
|
||||
*(s32 *)(a0 + 0x1C) = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 2;
|
||||
}
|
||||
*(u16 *)(a0 + 2) += 1;
|
||||
CAST_SIGN(u16, a0, 2) += 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -3864,14 +3864,14 @@ extern void func_8012A828(s32 a0, void *a1);
|
||||
|
||||
void func_8017FC44(s32 a0) {
|
||||
if (func_801789AC(a0) != 0) {
|
||||
if (*(s16 *)(a0 + 0x108) == 0) {
|
||||
if (CAST_SIGN(s16, a0, 0x108) == 0) {
|
||||
func_80178CBC(a0, (s32)&D_801E9260);
|
||||
*(s16 *)(a0 + 2) = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
|
||||
} else {
|
||||
*(s32 *)(a0 + 0xCC) = (s32)&D_801E9968;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkCC = (s32)&D_801E9968;
|
||||
func_8012A828(a0, &D_801E90E0);
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(s16 *)(a0 + 2) = 6;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk2 = 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3920,7 +3920,7 @@ extern void func_8012A828(s32 a0, void *a1);
|
||||
return;
|
||||
}
|
||||
func_8012A828(a0, &D_801E9088);
|
||||
*(u16 *)(a0 + 2) += 1;
|
||||
CAST_SIGN(u16, a0, 2) += 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -3929,13 +3929,13 @@ void func_8017FDAC(s32 param_1) {
|
||||
extern s32 D_801E90E0;
|
||||
extern u8 D_801E99D8[];
|
||||
|
||||
if (*(s16 *)(param_1 + 0x106) != 0) {
|
||||
*(s16 *)(param_1 + 0x106) = 0;
|
||||
*(s16 *)(param_1 + 0x108) = 0;
|
||||
*(s32 *)(param_1 + 0x1C) = 0;
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk106 != 0) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk106 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk108 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
|
||||
func_8012A828(param_1, &D_801E90E0);
|
||||
*(s32 *)(param_1 + 0xCC) = (s32)D_801E99D8;
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkCC = (s32)D_801E99D8;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = CAST_SIGN(u16, param_1, 2) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3952,12 +3952,12 @@ void func_8017FE10(s32 param_1) {
|
||||
if ((v0 << 16) != 0) {
|
||||
return;
|
||||
}
|
||||
*(s16 *)(param_1 + 6) = 0;
|
||||
*(s16 *)(param_1 + 0xE) = 0x100;
|
||||
*(s16 *)(param_1 + 0x108) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk6 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkE = 0x100;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk108 = 0;
|
||||
func_8012A828(param_1, &D_801E9088);
|
||||
func_80178CBC(param_1, (s32)&D_801E9178);
|
||||
*(s16 *)(param_1 + 2) = 3;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = 3;
|
||||
}
|
||||
|
||||
|
||||
@@ -4001,7 +4001,7 @@ s32 func_8017FED8(s32 a0) {
|
||||
e = D_801202A0;
|
||||
for (;;) {
|
||||
p = e + 0x102;
|
||||
if (*(u16 *)(e + 0) != 0x1AB) goto next;
|
||||
if (((Unkstruct_800B5CB8 *)e)->unk0 != 0x1AB) goto next;
|
||||
if (*(s16 *)(p - 0x92) != 0x2B) goto next;
|
||||
cur = D_801F32D8;
|
||||
if (*(s16 *)(p - 0x6) != cur - 1) goto next;
|
||||
@@ -4091,71 +4091,71 @@ s32 func_8017FFD0(s32 param_1)
|
||||
u16 *q;
|
||||
u16 buf[6];
|
||||
|
||||
if (D_801ED4E4[D_801ED4B4[*(s16 *)(param_1 + 0x70)]] == 0) {
|
||||
if (D_801ED4E4[D_801ED4B4[((Unkstruct_800B5CB8 *)param_1)->unk70]] == 0) {
|
||||
func_8012CAE4((void *)param_1);
|
||||
return ret;
|
||||
}
|
||||
ptr = func_8012C1B8();
|
||||
*(s32 *)(param_1 + 0x20) = ptr;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk20 = ptr;
|
||||
if (ptr == 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (*(s16 *)(param_1 + 0x70) >= 0x28) {
|
||||
func_8001C214(ptr, D_801ED4E4[*(s16 *)(param_1 + 0x70)]);
|
||||
if (*(s16 *)(param_1 + 0x70) == 0x28) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk70 >= 0x28) {
|
||||
func_8001C214(ptr, D_801ED4E4[((Unkstruct_800B5CB8 *)param_1)->unk70]);
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk70 == 0x28) {
|
||||
func_8012A828(param_1, D_801ECCDC);
|
||||
*(s32 *)(param_1 + 0xCC) = (s32)&D_801EE880;
|
||||
*(s32 *)(param_1 + 0xD8) = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x3000);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkCC = (s32)&D_801EE880;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkD8 = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x3000);
|
||||
ret = 7;
|
||||
goto STORE;
|
||||
}
|
||||
if (*(s16 *)(param_1 + 0x70) == 0x29) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk70 == 0x29) {
|
||||
D_801F32D4 = 0;
|
||||
func_8012A828(param_1, D_801EB39C);
|
||||
*(s32 *)(param_1 + 0xCC) = (s32)&D_801EE8D8;
|
||||
*(s32 *)(param_1 + 0xD8) = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x3000);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkCC = (s32)&D_801EE8D8;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkD8 = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x3000);
|
||||
ret = 0xA;
|
||||
goto STORE;
|
||||
}
|
||||
if (*(s16 *)(param_1 + 0x70) == 0x2A) {
|
||||
func_8001C1E4((void *)*(s32 *)(param_1 + 0x20),
|
||||
*(s32 *)(*(s32 *)(param_1 + 0x64) + 0x20));
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk70 == 0x2A) {
|
||||
func_8001C1E4((void *)((Unkstruct_800B5CB8 *)param_1)->unk20,
|
||||
*(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x20));
|
||||
func_8012A828(param_1, D_80182CA4);
|
||||
*(s32 *)(*(s32 *)(param_1 + 0x20) + 4) = 0x80000000;
|
||||
*(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 4) = 0x80000000;
|
||||
__asm__ volatile(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
|
||||
ret = 0x16;
|
||||
goto STORE;
|
||||
}
|
||||
if (*(s16 *)(param_1 + 0x70) == 0x2B) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk70 == 0x2B) {
|
||||
func_8012A828(param_1, D_801ED25C);
|
||||
*(s32 *)(param_1 + 0xCC) = D_801EED54[*(s16 *)(param_1 + 0xFC)];
|
||||
*(s32 *)(param_1 + 0xD8) = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x2000);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkCC = D_801EED54[((Unkstruct_800B5CB8 *)param_1)->unkFC];
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkD8 = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x2000);
|
||||
ret = 0x19;
|
||||
goto STORE;
|
||||
}
|
||||
if (*(s16 *)(param_1 + 0x70) == 0x2C) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk70 == 0x2C) {
|
||||
func_8012A828(param_1, &D_80182CA4[0]);
|
||||
*(s32 *)(param_1 + 0x1C) = 0x5A;
|
||||
*(s32 *)(param_1 + 0xD8) = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x1800);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x5A;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkD8 = ((s32 (*)(s32, s32))func_80143994)(param_1, 0x1800);
|
||||
ret = 0x1C;
|
||||
goto STORE;
|
||||
}
|
||||
if (*(s16 *)(param_1 + 0x70) == 0x2D) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk70 == 0x2D) {
|
||||
func_8012A828(param_1, D_801ED34C);
|
||||
*(s32 *)(param_1 + 0x1C) = 0x58;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x58;
|
||||
ret = 0x1D;
|
||||
goto STORE;
|
||||
}
|
||||
}
|
||||
|
||||
i70a = *(s16 *)(param_1 + 0x70);
|
||||
i70a = ((Unkstruct_800B5CB8 *)param_1)->unk70;
|
||||
__asm__ volatile("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus9)
|
||||
i70b = *(s16 *)(param_1 + 0x70);
|
||||
i70b = CAST_ALIAS(s16, param_1, 0x70);
|
||||
D_801F32D0 = 0;
|
||||
{
|
||||
u16 idx = D_801ED4B4[i70a];
|
||||
*(u16 *)(param_1 + 0x10A) = idx;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk10A = idx;
|
||||
/* §137/§158 allocno-priority lever, from the cc1 -dl dump of this block:
|
||||
* the six pseudos here form a CONFLICT PATH idx-reload-(idx<<3)-(r<<3)-tmp1-tmp2,
|
||||
* so first-fit local-alloc 2-colours it and the ONLY question is which class takes
|
||||
@@ -4169,23 +4169,23 @@ s32 func_8017FFD0(s32 param_1)
|
||||
*/
|
||||
__asm__ volatile("" : : "r"(idx) : "memory"); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus9)
|
||||
tmp1 = D_801ED5F0[idx * 2];
|
||||
tmp2 = D_801ED5EC[*(s16 *)(param_1 + 0x10A) * 2];
|
||||
tmp2 = D_801ED5EC[((Unkstruct_800B5CB8 *)param_1)->unk10A * 2];
|
||||
}
|
||||
D_801F32DC = tmp1;
|
||||
D_801F32E0 = tmp2;
|
||||
*(u16 *)(param_1 + 0x108) =
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk108 =
|
||||
(func_800291B4(D_80183A40[i70b]) & 0xFF) - 1;
|
||||
func_8001C2C4(*(s32 *)(param_1 + 0x20));
|
||||
if (*(s16 *)(param_1 + 0x108) == 0) {
|
||||
func_8001C2C4(((Unkstruct_800B5CB8 *)param_1)->unk20);
|
||||
if (CAST_SIGN(s16, param_1, 0x108) == 0) {
|
||||
D_801ED8D8 = (u8 *)D_8018670C;
|
||||
func_80181724(*(s16 *)(param_1 + 0x70), 2);
|
||||
*(u16 *)(param_1 + 0x108) = 1;
|
||||
t = *(s16 *)(param_1 + 0x70);
|
||||
func_80181724(CAST_ALIAS(s16, param_1, 0x70), 2);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk108 = 1;
|
||||
t = ((Unkstruct_800B5CB8 *)param_1)->unk70;
|
||||
if ((t == 9) || (t == 0x1B) || (t == 0x21)) {
|
||||
D_801F32D0 = 1;
|
||||
}
|
||||
}
|
||||
D_801F32E4 = D_801ED7F0[*(s16 *)(param_1 + 0x10A)];
|
||||
D_801F32E4 = D_801ED7F0[((Unkstruct_800B5CB8 *)param_1)->unk10A];
|
||||
D_801F32E8 = &D_801EDAA8;
|
||||
if (D_801F32E4 == 0) {
|
||||
D_801F32E4 = func_8018057C(param_1);
|
||||
@@ -4193,7 +4193,7 @@ s32 func_8017FFD0(s32 param_1)
|
||||
D_801EDA4C = D_801F32E0;
|
||||
D_801EDA6C = D_801F32DC;
|
||||
D_801F32E8[1] = D_801F32E4;
|
||||
q = &D_801EE740[*(s16 *)(param_1 + 0x10A) * 4];
|
||||
q = &D_801EE740[CAST_ALIAS(s16, param_1, 0x10A) * 4];
|
||||
buf[0] = *q++;
|
||||
buf[1] = *q++;
|
||||
buf[2] = 8;
|
||||
@@ -4204,10 +4204,10 @@ s32 func_8017FFD0(s32 param_1)
|
||||
buf[2] = 0x10;
|
||||
buf[3] = 1;
|
||||
MoveImage(buf, 0x160, 0x1D0);
|
||||
ret = *(u16 *)(param_1 + 2) + 1;
|
||||
ret = CAST_SIGN(u16, param_1, 2) + 1;
|
||||
|
||||
STORE:
|
||||
*(u16 *)(param_1 + 2) = ret;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -4229,7 +4229,7 @@ void func_801803E4(s32 param_1) {
|
||||
s32 val;
|
||||
s16 h;
|
||||
|
||||
v1 = *(s16 *)(param_1 + 0xF8);
|
||||
v1 = CAST_WIDTH(s16, param_1, 0xF8);
|
||||
if (v1 == 0) {
|
||||
func_800183E0((s32)&D_801EFF04);
|
||||
val = (rand() & 0x1F) + 0x23;
|
||||
@@ -4237,11 +4237,11 @@ void func_801803E4(s32 param_1) {
|
||||
if (v1 == 2) {
|
||||
func_800183E0((s32)D_801F0154);
|
||||
}
|
||||
val = *(u16 *)(param_1 + 0xF8) - 1;
|
||||
val = CAST_WIDTH(u16, param_1, 0xF8) - 1;
|
||||
}
|
||||
do { *(u16 *)(param_1 + 0xF8) = (u16)val; } while (0); // !FAKE: do-while — a LOOP-note scheduling barrier (sched.c:2058-2074; P36 R7)
|
||||
do { CAST_WIDTH(u16, param_1, 0xF8) = (u16)val; } while (0); // !FAKE: do-while — a LOOP-note scheduling barrier (sched.c:2058-2074; P36 R7)
|
||||
|
||||
v0 = *(s32 *)(param_1 + 0x64);
|
||||
v0 = ((Unkstruct_800B5CB8 *)param_1)->unk64;
|
||||
h = *(s16 *)(v0 + 0xFA);
|
||||
if (h != 0) {
|
||||
*(s16 *)(v0 + 0xFA) = 0;
|
||||
@@ -4259,15 +4259,15 @@ void func_801803E4(s32 param_1) {
|
||||
} else {
|
||||
func_8012A828(param_1, D_801ECCDC);
|
||||
func_800183E0((s32)&D_801EFF04);
|
||||
*(s32 *)(param_1 + 0xCC) = (s32)D_801EE8A0;
|
||||
*(s32 *)(param_1 + 0x1C) = 0;
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkCC = (s32)D_801EE8A0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = CAST_SIGN(u16, param_1, 2) + 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12) =
|
||||
func_80012ABC(*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12),
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk12 =
|
||||
func_80012ABC(*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x12),
|
||||
*(s16 *)(param_1 + 0xFA), 4);
|
||||
}
|
||||
|
||||
@@ -4275,6 +4275,6 @@ void func_801803E4(s32 param_1) {
|
||||
extern void (*D_801EEDBC[])(void);
|
||||
|
||||
void func_80180540(void *a0) {
|
||||
D_801EEDBC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801EEDBC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -834,21 +834,21 @@ void func_8012E9C0(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
if (*(short *)(param_1 + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
|
||||
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
|
||||
*(short *)(param_1 + 0x82) = 0;
|
||||
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
|
||||
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
|
||||
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
|
||||
}
|
||||
if (*(int *)(param_1 + 0x78) != 0) {
|
||||
iVar1 = *(short *)(param_1 + 0x60) *
|
||||
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
|
||||
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
|
||||
if (iVar1 < 1) {
|
||||
iVar1 = 1;
|
||||
}
|
||||
} else {
|
||||
iVar1 = *(short *)(param_1 + 0x60);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
|
||||
}
|
||||
func_8016AA50(param_1, iVar1);
|
||||
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
|
||||
@@ -1002,10 +1002,10 @@ void func_8012F8C8(u8* arg0) {
|
||||
s32 func_8012FCC4(s32 param_1) {
|
||||
extern int D_8017E980;
|
||||
|
||||
int v1 = *(int *)(((int)param_1) + 0xC4);
|
||||
*(char *)(((int)param_1) + 0xC1) = 8;
|
||||
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
|
||||
if (v1 & 2) {
|
||||
*(char *)(((int)param_1) + 0xC1) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
|
||||
func_80131CA8(((int)param_1), 3);
|
||||
return;
|
||||
}
|
||||
@@ -1013,20 +1013,20 @@ s32 func_8012FCC4(s32 param_1) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 1);
|
||||
return;
|
||||
}
|
||||
if (*(int *)(((int)param_1) + 0xB4) & 0x100) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
|
||||
((void (*)(int))func_80131B14)(((int)param_1));
|
||||
if (*(short *)(((int)param_1) + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
|
||||
((void (*)(int, int))func_80131E00)(((int)param_1), 0xC);
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32, s32))func_80131A34)(((int)param_1), 4) != 0) {
|
||||
*(char *)(((int)param_1) + 0xC2) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
|
||||
} else {
|
||||
*(short *)(((int)param_1) + 0x98) = 0;
|
||||
*(char *)(((int)param_1) + 0xC2) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
|
||||
}
|
||||
((void (*)(int, void *))func_8012B14C)(((int)param_1), &D_8017E980);
|
||||
*(int *)(((int)param_1) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
|
||||
func_80131CA8(((int)param_1), 0x1C);
|
||||
return;
|
||||
}
|
||||
@@ -1122,12 +1122,12 @@ void func_80130D48(s32 arg0)
|
||||
s32 r;
|
||||
s32 ret;
|
||||
|
||||
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
|
||||
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
|
||||
if (val == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
|
||||
ret = func_8012C658(0x33, 0, arg0);
|
||||
} else {
|
||||
switch (val & 0xFFFF0000) {
|
||||
@@ -1244,7 +1244,7 @@ void func_80130D48(s32 arg0)
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
*(u16 *)(ret + 0xA) -= 0x20;
|
||||
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1262,34 +1262,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
|
||||
extern u8 D_8017E95C[];
|
||||
|
||||
func_80131B14();
|
||||
*(u8 *)(((u8 *)p) + 0xC2) = 0;
|
||||
*(u8 *)(((u8 *)p) + 0xC3) = 0;
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
if (((u8 *)b) == 0) {
|
||||
((u8 *)b) = D_8017E95C;
|
||||
}
|
||||
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
|
||||
*(s32 *)(((u8 *)p) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
|
||||
if (c != 0) {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
} else {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
}
|
||||
tail:
|
||||
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
|
||||
@@ -1441,12 +1441,12 @@ void func_80131340(s32 a0)
|
||||
s32 temp;
|
||||
s32 var_a1;
|
||||
|
||||
if (*(s16 *)(a0 + 0xA) >= 0x10) {
|
||||
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
|
||||
func_801319E0(a0);
|
||||
return;
|
||||
}
|
||||
|
||||
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
|
||||
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
|
||||
if (temp != 0) {
|
||||
sp10.vz = 0;
|
||||
sp10.vx = 0;
|
||||
@@ -1455,31 +1455,31 @@ void func_80131340(s32 a0)
|
||||
sp10 = D_8017EAB0;
|
||||
}
|
||||
|
||||
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
|
||||
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
|
||||
if (var_a1 == 0) {
|
||||
var_a1 = 0x50;
|
||||
}
|
||||
func_8012DBD0(a0, var_a1,
|
||||
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
|
||||
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
|
||||
}
|
||||
|
||||
switch (*(u8 *)(a0 + 0xC2)) {
|
||||
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
if (*(u8 *)(a0 + 0xC2) == 0) {
|
||||
*(u8 *)(a0 + 0xC2) = 1;
|
||||
sp18.vx = *(u16 *)(a0 + 0x3A);
|
||||
sp18.vy = *(u16 *)(a0 + 0x3E);
|
||||
sp18.vz = *(u16 *)(a0 + 0x42);
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
|
||||
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
|
||||
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
|
||||
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
|
||||
sp20 = sp18;
|
||||
sp20.vx += sp10.vx;
|
||||
sp20.vy += sp10.vy;
|
||||
@@ -1489,82 +1489,82 @@ void func_80131340(s32 a0)
|
||||
sp20.vx -= sp10.vx;
|
||||
sp20.vy -= sp10.vy;
|
||||
sp20.vz -= sp10.vz;
|
||||
*(u16 *)(a0 + 0x3A) = sp20.vx;
|
||||
*(u16 *)(a0 + 0x3E) = sp20.vy;
|
||||
*(u16 *)(a0 + 0x42) = sp20.vz;
|
||||
*(u16 *)(a0 + 0x6) = sp20.vx;
|
||||
*(u16 *)(a0 + 0xA) = sp20.vy;
|
||||
*(u16 *)(a0 + 0xE) = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
|
||||
}
|
||||
D_8019A8E8 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_8019A8E8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_8019A8E8 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_8019A8E8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_8019A8E8) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
func_80143B6C(a0, 1);
|
||||
*(s32 *)(a0 + 0x14) = 0xFFF30000;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
} else if (D_8019A8E8 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
D_8019A8EC = *(s32 *)(a0 + 0x14);
|
||||
D_8019A8EC = ((Unkstruct_800B5CB8 *)a0)->unk14;
|
||||
D_8019A8E8 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_8019A8E8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_8019A8E8 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_8019A8E8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_8019A8E8) == 1) {
|
||||
return;
|
||||
}
|
||||
func_80143B6C(a0, 1);
|
||||
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
|
||||
*(s32 *)(a0 + 0x14) = (-D_8019A8EC) / 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_8019A8EC) / 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
} else if (D_8019A8E8 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
|
||||
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
|
||||
if (*(u8 *)(a0 + 0xC3) & 1) {
|
||||
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
|
||||
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
|
||||
D_8019A8E8 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_8019A8E8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (func_80131D68(a0, D_8019A8E8) == 1) {
|
||||
return;
|
||||
@@ -1576,28 +1576,28 @@ void func_80131340(s32 a0)
|
||||
} else {
|
||||
D_8019A8E8 = ((s32 (*)(s32))func_8012CBF4)(a0);
|
||||
if (D_8019A8E8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_8019A8E8 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
break;
|
||||
} else if (D_8019A8E8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_8019A8E8) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC3) |= 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
|
||||
} else if (D_8019A8E8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) < 0x11) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
|
||||
break;
|
||||
}
|
||||
if (!(D_8019A8E8 & 0x6000)) {
|
||||
@@ -1605,7 +1605,7 @@ void func_80131340(s32 a0)
|
||||
return;
|
||||
}
|
||||
/* polarity MUST match case 4's — see the cross-jump note in the header. */
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
@@ -1615,24 +1615,24 @@ void func_80131340(s32 a0)
|
||||
case 4:
|
||||
D_8019A8E8 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_8019A8E8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_8019A8E8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_8019A8E8) == 1) {
|
||||
return;
|
||||
}
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
}
|
||||
} else {
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
@@ -1687,47 +1687,47 @@ void func_80131B14() {
|
||||
u8 *p = a0v;
|
||||
|
||||
|
||||
s32 e = *(u8 *)(p + 0x5E);
|
||||
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
|
||||
|
||||
if (*(s16 *)(p + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
|
||||
if (e == 0x1D) {
|
||||
*(s16 *)(p + 0x82) = 0;
|
||||
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
|
||||
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
|
||||
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
|
||||
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
|
||||
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
|
||||
}
|
||||
{
|
||||
s32 dec;
|
||||
s32 q = *(s32 *)(p + 0x78);
|
||||
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
|
||||
if (q != 0) {
|
||||
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
if (dec <= 0) dec = 1;
|
||||
}
|
||||
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
|
||||
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
|
||||
}
|
||||
((void (*)(void *))func_8016AA50)(p);
|
||||
if (*(u16 *)(p + 0x82) & 1) {
|
||||
if (CAST_SIGN(u16, p, 0x82) & 1) {
|
||||
((void (*)(void *))func_8016B428)(p);
|
||||
((void(*)(void *))func_80019064)(&D_8017EAB8);
|
||||
}
|
||||
}
|
||||
|
||||
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
|
||||
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
|
||||
|
||||
if (e != 0x1D) {
|
||||
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
|
||||
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
|
||||
}
|
||||
|
||||
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
|
||||
|
||||
{
|
||||
s32 r = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
|
||||
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
|
||||
{
|
||||
s32 r2 = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r2 + 0x14) = 0;
|
||||
*(s16 *)(r2 + 0x10) = 0;
|
||||
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
CAST_WIDTH(s16, r2, 0x14) = 0;
|
||||
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1821,7 +1821,7 @@ void func_80131E00(struct S80131E00 *a0, s32 a1) {
|
||||
extern void (*D_8017EB20[])(void);
|
||||
|
||||
void func_80131EEC(void *a0) {
|
||||
D_8017EB20[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017EB20[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1829,7 +1829,7 @@ void func_80131EEC(void *a0) {
|
||||
extern void (*D_8017EB68[])(void);
|
||||
|
||||
void func_80131F28(void *a0) {
|
||||
D_8017EB68[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017EB68[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1837,7 +1837,7 @@ void func_80131F28(void *a0) {
|
||||
extern void (*D_8017EB70[])(void);
|
||||
|
||||
void func_80131F64(void *a0) {
|
||||
D_8017EB70[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017EB70[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1845,7 +1845,7 @@ void func_80131F64(void *a0) {
|
||||
extern void (*D_8017EB78[])(void);
|
||||
|
||||
void func_80131FA0(void *a0) {
|
||||
D_8017EB78[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017EB78[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1853,7 +1853,7 @@ void func_80131FA0(void *a0) {
|
||||
extern void (*D_8017EB80[])(void);
|
||||
|
||||
void func_80131FDC(void *a0) {
|
||||
D_8017EB80[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017EB80[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1568,7 +1568,7 @@ void func_801424E4(short *param_1) {
|
||||
extern void (*D_8017FA2C[])(void);
|
||||
|
||||
void func_801425CC(void *a0) {
|
||||
D_8017FA2C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FA2C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1881,7 +1881,7 @@ void func_8014305C(int param_1)
|
||||
|
||||
do { iVar2 = ((int (*)(void))func_8012C1B8)(); } while (0);
|
||||
s1_copy = iVar2;
|
||||
*(int *)(s0_param + 0x20) = iVar2;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unk20 = iVar2;
|
||||
if (iVar2 == 0) {
|
||||
((void (*)(int))func_8012CAE4)(s0_param);
|
||||
} else {
|
||||
@@ -1889,7 +1889,7 @@ void func_8014305C(int param_1)
|
||||
sVar1 = (*(unsigned short *)(s0_param + 0x70) & 0xf) * 0x600 + 0xc00;
|
||||
*(short *)(s1_copy + 0x1a) = sVar1;
|
||||
*(short *)(s1_copy + 0x18) = sVar1;
|
||||
*(short *)(s0_param + 0xfc) = 0;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unkFC = 0;
|
||||
func_8012A828(s0_param, D_8017FC9C);
|
||||
((void (*)(int))func_80142B2C)(s0_param);
|
||||
}
|
||||
@@ -2050,7 +2050,7 @@ void func_8014358C(s32 param_1)
|
||||
extern void (*D_8017FF1C[])(void);
|
||||
|
||||
void func_80143B30(void *a0) {
|
||||
D_8017FF1C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FF1C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2062,7 +2062,7 @@ void func_80143B30(void *a0) {
|
||||
extern void (*D_8017FF28[])(void);
|
||||
|
||||
void func_80143C38(void *a0) {
|
||||
D_8017FF28[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FF28[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2072,7 +2072,7 @@ void func_80143C38(void *a0) {
|
||||
extern void (*D_8017FF30[])(void);
|
||||
|
||||
void func_80143C98(void *a0) {
|
||||
D_8017FF30[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FF30[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2093,35 +2093,35 @@ extern void func_8012C218(void *a0);
|
||||
void func_80143D28(s32 param_1) {
|
||||
|
||||
extern MatEntry D_8017FF54[];
|
||||
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
|
||||
MatEntry *p = &D_8017FF54[*(s16 *)(param_1 + 0x70)];
|
||||
s32 iVar2 = ((Unkstruct_800B5CB8 *)param_1)->unk64; /* $s1 */
|
||||
MatEntry *p = &D_8017FF54[((Unkstruct_800B5CB8 *)param_1)->unk70];
|
||||
u16 uVar5 = p->f8;
|
||||
s32 iVar3 = *(s32 *)(param_1 + 0x20);
|
||||
s32 iVar3 = ((Unkstruct_800B5CB8 *)param_1)->unk20;
|
||||
s32 sVar4;
|
||||
s32 iVar1;
|
||||
|
||||
*(s16 *)(iVar3 + 0x14) = uVar5;
|
||||
*(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;
|
||||
CAST_WIDTH(s16, iVar3, 0x14) = uVar5;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk12 = ((Unkstruct_800B5CB8 *)iVar3)->unk12 + p->fa;
|
||||
sVar4 = 0x1000;
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x34), p, (void *)(param_1 + 0x50));
|
||||
|
||||
if (*(s16 *)(param_1 + 0xfe) == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkFE == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != ((Unkstruct_800B5CB8 *)param_1)->unkFC ||
|
||||
*(u8 *)(iVar2 + 0xc1) != 6)) {
|
||||
if (0x10 < *(s32 *)(param_1 + 0x1c)) {
|
||||
*(s32 *)(param_1 + 0x1c) = 0x10;
|
||||
if (0x10 < ((Unkstruct_800B5CB8 *)param_1)->unk1C) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x10;
|
||||
}
|
||||
*(s16 *)(param_1 + 0xfe) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFE = 1;
|
||||
}
|
||||
|
||||
iVar1 = *(s32 *)(param_1 + 0x1c);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C;
|
||||
if (iVar1 < 0x11) {
|
||||
sVar4 = iVar1 << 8;
|
||||
}
|
||||
if (0x73 < iVar1) {
|
||||
sVar4 = (0x78 - iVar1) << 10;
|
||||
}
|
||||
*(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = ((Unkstruct_800B5CB8 *)iVar3)->unk1A = CAST_WIDTH(s16, iVar3, 0x1c) = sVar4;
|
||||
|
||||
if (func_8012BEE8(param_1)) {
|
||||
func_8012C218((void *)param_1);
|
||||
@@ -2133,7 +2133,7 @@ void func_80143D28(s32 param_1) {
|
||||
extern void (*D_8017FF78[])(void);
|
||||
|
||||
void func_80143E68(void *a0) {
|
||||
D_8017FF78[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FF78[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2149,7 +2149,7 @@ void func_80143E68(void *a0) {
|
||||
extern void (*D_8017FF8C[])(void);
|
||||
|
||||
void func_80144054(void *a0) {
|
||||
D_8017FF8C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FF8C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2173,9 +2173,9 @@ void func_801442F8(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
D_8017FF94[*(u16 *)(param_1 + 2)]();
|
||||
iVar1 = *(int *)(param_1 + 0x1c) + 1;
|
||||
*(int *)(param_1 + 0x1c) = iVar1;
|
||||
D_8017FF94[CAST_SIGN(u16, param_1, 2)]();
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C + 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = iVar1;
|
||||
if (0x1d < iVar1) {
|
||||
func_8012C218(param_1);
|
||||
}
|
||||
@@ -2201,19 +2201,19 @@ void func_80144364(int param_1) {
|
||||
*(int *)(param_1 + 0xCC) = iVar3;
|
||||
*(u16 *)(param_1 + 0xFC) = uVar2;
|
||||
func_8001CB6C((u8 *)iVar3, (s32)&D_8017FF10, 0x250, 0x1A0);
|
||||
*(s32 *)(iVar3 + 4) = 0x60000000;
|
||||
*(u8 *)(iVar3 + 0x27) = 0x14;
|
||||
*(u16 *)(iVar3 + 0x10) = 0x400;
|
||||
*(u16 *)(iVar3 + 8) = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
*(u16 *)(iVar3 + 0xA) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
*(u16 *)(iVar3 + 0xC) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
CAST_WIDTH(s32, iVar3, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk27 = 0x14;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk8 = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkA = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkC = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
sVar1 = *(s16 *)(param_1 + 0x70);
|
||||
if (sVar1 != 0) {
|
||||
*(s16 *)(iVar3 + 0x1A) = sVar1;
|
||||
*(s16 *)(iVar3 + 0x18) = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = sVar1;
|
||||
} else {
|
||||
*(u16 *)(iVar3 + 0x1A) = 0x2000;
|
||||
*(u16 *)(iVar3 + 0x18) = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = 0x2000;
|
||||
}
|
||||
*(u16 *)(param_1 + 2) = 1;
|
||||
}
|
||||
@@ -2236,7 +2236,7 @@ void func_80144458(void *arg0) {
|
||||
void *temp_v0;
|
||||
|
||||
temp_s2 = M2C_FIELD(arg0, void **, 0xCC);
|
||||
if (M2C_FIELD(arg0, s16 *, 0x70) == 0) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk70 == 0) {
|
||||
temp_v0 = M2C_FIELD(M2C_FIELD(arg0, void **, 0x64), void **, 0x20);
|
||||
if (temp_v0 != NULL) {
|
||||
temp_s0 = (M2C_FIELD(temp_v0, s16 *, 0x12) - 0x400) & 0xFFF;
|
||||
@@ -2245,9 +2245,9 @@ void func_80144458(void *arg0) {
|
||||
func_8012AD80(arg0);
|
||||
}
|
||||
}
|
||||
M2C_FIELD(temp_s2, u16 *, 8) = (u16) M2C_FIELD(arg0, u16 *, 6);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xA) = (u16) M2C_FIELD(arg0, u16 *, 0xA);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xC) = (u16) M2C_FIELD(arg0, u16 *, 0xE);
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unk8 = (u16) ((Unkstruct_800B5CB8 *)arg0)->unk6;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkA = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkA;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkC = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkE;
|
||||
if (func_80128ED8(temp_s2, arg0 + 0xD0) != 0) {
|
||||
func_80016714(temp_s2, 0x38);
|
||||
func_8012C218(arg0);
|
||||
@@ -2281,29 +2281,29 @@ void func_8014477C(void *param_1) {
|
||||
s32 fv;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)param_1 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(param_1);
|
||||
return;
|
||||
}
|
||||
((void (*)(s32, void *))func_8001CA1C)(v0, &D_8017FF38);
|
||||
if (*(u16 *)(*(s32 *)((s32)param_1 + 0x64)) != 0) {
|
||||
*(s16 *)((s32)param_1 + 0xFC) = *(u16 *)(*(s32 *)((s32)param_1 + 0x64) + 0x36);
|
||||
uVar2 = *(s32 *)(*(s32 *)((s32)param_1 + 0x64) + 0x58);
|
||||
if (*(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64) != 0) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFC = *(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x36);
|
||||
uVar2 = *(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x58);
|
||||
if (uVar2 != 0) {
|
||||
addr = uVar2 & 0xFFFFFFF;
|
||||
gv = CAST_NONSTRUCT(u16, (addr | 0x80000000), 8);
|
||||
fv = *(u16 *)((s32)param_1 + 0xA) - 0x30;
|
||||
*(u16 *)((s32)param_1 + 0xA) = gv + fv;
|
||||
fv = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x30;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = gv + fv;
|
||||
} else {
|
||||
*(u16 *)((s32)param_1 + 0xA) = *(u16 *)((s32)param_1 + 0xA) - 0x60;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x60;
|
||||
}
|
||||
}
|
||||
((void (*)(void *, void *))func_8012A828)(param_1, &D_8017FF44);
|
||||
v1 = (s32)*(s16 *)((s32)param_1 + 0x70) << 0xC;
|
||||
*(s16 *)((s32)param_1 + 0x2) = 1;
|
||||
*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12) = v1 / 3;
|
||||
*(s32 *)((s32)param_1 + 0x1C) = 0x78;
|
||||
v1 = (s32)((Unkstruct_800B5CB8 *)param_1)->unk70 << 0xC;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = 1;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)((s32)param_1 + 0x20))->unk12 = v1 / 3;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x78;
|
||||
}
|
||||
|
||||
|
||||
@@ -2335,15 +2335,15 @@ void func_80144880(s32 param_1)
|
||||
func_8001CB6C((u8 *)obj, (s32)&D_8017FF80, 0x300, 0x1D0);
|
||||
b = 0x6A;
|
||||
}
|
||||
*(u8 *)(obj + 0x27) = (u8)b;
|
||||
*(s32 *)(obj + 4) = 0x60000000;
|
||||
*(u16 *)(obj + 0x10) = 0x400;
|
||||
*(u16 *)(obj + 8) = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
*(u16 *)(obj + 0xA) = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)obj)->unk27 = (u8)b;
|
||||
CAST_WIDTH(s32, obj, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk8 = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)obj)->unkA = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
e = *(u16 *)(*(s32 *)(self + 0x64) + 0xE);
|
||||
*(u16 *)(obj + 0x1A) = 0x4000;
|
||||
*(u16 *)(obj + 0x18) = 0x4000;
|
||||
*(u16 *)(obj + 0xC) = (u16)e;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk1A = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk18 = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unkC = (u16)e;
|
||||
*(s16 *)(self + 2) = *(s16 *)(self + 2) + 1;
|
||||
}
|
||||
}
|
||||
@@ -2355,7 +2355,7 @@ void func_80144880(s32 param_1)
|
||||
extern void (*D_8017FF9C[])(void);
|
||||
|
||||
void func_801449C8(void *a0) {
|
||||
D_8017FF9C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FF9C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2365,7 +2365,7 @@ void func_801449C8(void *a0) {
|
||||
extern void (*D_8017FFA4[])(void);
|
||||
|
||||
void func_80144A2C(void *a0) {
|
||||
D_8017FFA4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8017FFA4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
|
||||
extern void (*D_80180468[])(void);
|
||||
|
||||
void func_80155580(void *a0) {
|
||||
D_80180468[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180468[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1155,7 +1155,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
|
||||
extern void (*D_801808DC[])(void);
|
||||
|
||||
void func_80157544(void *a0) {
|
||||
D_801808DC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801808DC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1235,7 +1235,7 @@ extern u8 D_801808E4;
|
||||
void func_801578C0(s32 param_1)
|
||||
{
|
||||
((void (*)(void))func_80156648)();
|
||||
*(u8 *)(param_1 + 0x1AA) = 9;
|
||||
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
|
||||
func_80154274((s32 *)param_1, (s32)&D_800D5128);
|
||||
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
|
||||
func_80147324(0xC20);
|
||||
@@ -1285,8 +1285,8 @@ void func_8015795C(int param_1)
|
||||
|
||||
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
|
||||
((int (*)(int, int))func_80147A10)(param_1, 0x400);
|
||||
if (*(int *)(param_1 + 0x2c) >= 0) {
|
||||
*(int *)(param_1 + 0x2c) = 0;
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
|
||||
}
|
||||
func_80147A84(param_1);
|
||||
((void (*)(int))func_801473EC)(param_1);
|
||||
@@ -1309,7 +1309,7 @@ void func_8015795C(int param_1)
|
||||
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
|
||||
((void (*)(int, void *))func_80146DB8)(param_1, &D_801808F4);
|
||||
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
|
||||
*(short *)(param_1 + 2) = 4;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
|
||||
}
|
||||
((void (*)(int))func_801725A4)(param_1);
|
||||
}
|
||||
@@ -1374,7 +1374,7 @@ void func_80157D20(void *param_1, s32 param_2)
|
||||
extern void (*D_80180944[])(void);
|
||||
|
||||
void func_80157DC4(void *a0) {
|
||||
D_80180944[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180944[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1390,7 +1390,7 @@ void func_80157DC4(void *a0) {
|
||||
extern void (*D_8018094C[])(void);
|
||||
|
||||
void func_80157FC4(void *a0) {
|
||||
D_8018094C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018094C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1412,11 +1412,11 @@ extern s32 D_80180918;
|
||||
|
||||
void func_80158038(void * param)
|
||||
{
|
||||
*(u8 *)(param + 0x1aa) = 0xe;
|
||||
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
|
||||
func_80154274((s32 *)param, (s32)&D_800D51E0);
|
||||
func_80154A74(param, 0x15);
|
||||
func_80146DB8((s32 *)param, &D_80180918);
|
||||
*(s32 *)(param + 0x234) = 0;
|
||||
((Unkstruct_80126B58 *)param)->unk234 = 0;
|
||||
func_80146994(5, param, 0xc, 0);
|
||||
func_80147324(0x455);
|
||||
func_80146CA0((void *)param);
|
||||
@@ -1431,7 +1431,7 @@ void func_80158038(void * param)
|
||||
extern void (*D_80180958[])(void);
|
||||
|
||||
void func_8015824C(void *a0) {
|
||||
D_80180958[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180958[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1469,15 +1469,15 @@ void func_80158434(s32 param_1)
|
||||
s32 frame_pad[4];
|
||||
(void)&frame_pad;
|
||||
|
||||
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
|
||||
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
|
||||
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
|
||||
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
|
||||
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
|
||||
((s32 (*)(void))func_8014CBF8)();
|
||||
((void (*)(s32))func_801474EC)(param_1);
|
||||
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
|
||||
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_80180928);
|
||||
}
|
||||
if (*(s32 *)(param_1 + 0x234) != 0) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
|
||||
func_80148038(param_1, 0x10000);
|
||||
func_80147460(param_1);
|
||||
func_80147AD4(param_1, 0, 0, 0);
|
||||
@@ -1496,7 +1496,7 @@ LAB_80158508:
|
||||
((void (*)(s32))func_80146CA0)(param_1);
|
||||
return;
|
||||
LAB_80158528:
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
|
||||
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
|
||||
}
|
||||
|
||||
|
||||
@@ -1602,5 +1602,5 @@ extern void (*D_80180994[])(s32 *);
|
||||
|
||||
void func_80158880(s32 *param) {
|
||||
func_80149020(param);
|
||||
D_80180994[*(u8 *)((s32)param + 0x4F)](param);
|
||||
D_80180994[((Unkstruct_80126B58 *)param)->unk4F](param);
|
||||
}
|
||||
|
||||
@@ -1172,8 +1172,8 @@ void func_80158BB0(void *arg0) {
|
||||
func_80147324(0x456);
|
||||
func_80154274(arg0, &D_800D58D8);
|
||||
func_80154A74(arg0, 0x16);
|
||||
M2C_FIELD(arg0, s32 *, 0x234) = 0xE30000;
|
||||
M2C_FIELD(M2C_FIELD(arg0, void **, 0x20), s16 *, 0x10) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0xE30000;
|
||||
((Unkstruct_800B5CB8 *)M2C_FIELD(arg0, void **, 0x20))->unk10 = 0;
|
||||
func_801474EC(arg0);
|
||||
func_801474D8(arg0);
|
||||
func_801472C8(arg0);
|
||||
@@ -1285,7 +1285,7 @@ void func_8015934C(void *arg0) {
|
||||
D_800AE6BD += 1;
|
||||
}
|
||||
temp_v1 = M2C_FIELD(arg0, void **, 0x20);
|
||||
M2C_FIELD(temp_v1, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_v1, u16 *, 0x12) + 0x16) & 0xFFF);
|
||||
((Unkstruct_800B5CB8 *)temp_v1)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_v1)->unk12 + 0x16) & 0xFFF);
|
||||
}
|
||||
|
||||
|
||||
@@ -1490,9 +1490,9 @@ void func_80159A20(unsigned char *param_1)
|
||||
func_80158638(param_1);
|
||||
((void (*)(u8 *))func_8015126C)(param_1);
|
||||
((void (*)(u8 *))func_8014900C)(param_1);
|
||||
D_80180D38[*(u16 *)param_1 & 0x7fff](param_1);
|
||||
*(u32 *)(param_1 + 0x44) |= 0x8000000;
|
||||
switch (*(u16 *)param_1) {
|
||||
D_80180D38[((Unkstruct_80126B58 *)param_1)->unk0 & 0x7fff](param_1);
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 |= 0x8000000;
|
||||
switch (((Unkstruct_80126B58 *)param_1)->unk0) {
|
||||
case 2:
|
||||
case 3:
|
||||
case 0xb:
|
||||
@@ -1507,13 +1507,13 @@ void func_80159A20(unsigned char *param_1)
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(param_1 + 2) == 3) {
|
||||
if (((Unkstruct_80126B58 *)param_1)->unk2 == 3) {
|
||||
goto mask;
|
||||
}
|
||||
return;
|
||||
}
|
||||
mask:
|
||||
*(u32 *)(param_1 + 0x44) &= 0xf7ffffff;
|
||||
((Unkstruct_80126B58 *)param_1)->unk44 &= 0xf7ffffff;
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80159B08.h"
|
||||
@@ -1524,7 +1524,7 @@ mask:
|
||||
extern void (*D_80180DDC[])(void);
|
||||
|
||||
void func_80159B70(void *a0) {
|
||||
D_80180DDC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180DDC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1559,8 +1559,8 @@ void func_80159BE4(s32 arg0)
|
||||
func_80154150(arg0, 4);
|
||||
func_80154A74(arg0, 0x11);
|
||||
}
|
||||
*(int *)(arg0 + 0x234) = 0;
|
||||
*(int *)(arg0 + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 0;
|
||||
func_801553C0(arg0);
|
||||
((void (*)(int))func_801553A8)(arg0);
|
||||
((void (*)(int))func_80172590)(arg0);
|
||||
|
||||
@@ -1211,7 +1211,7 @@ void func_80159C84(u8 *p) {
|
||||
s32 t;
|
||||
|
||||
if (((s32 (*)(void))func_80149D9C)() != 0) {
|
||||
D_80180C94[*(u16 *)p](p);
|
||||
D_80180C94[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
((void (*)(u8 *))func_80149FA8)(p);
|
||||
return;
|
||||
}
|
||||
@@ -1227,7 +1227,7 @@ void func_80159C84(u8 *p) {
|
||||
return;
|
||||
}
|
||||
if (func_801496D4(p) != 0) {
|
||||
D_80180C94[*(u16 *)p](p);
|
||||
D_80180C94[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
((void (*)(u8 *))func_80149704)(p);
|
||||
return;
|
||||
}
|
||||
@@ -1238,12 +1238,12 @@ void func_80159C84(u8 *p) {
|
||||
case 2:
|
||||
case 6:
|
||||
if (func_80149AA8((s32 *)p) != 0) {
|
||||
D_80180C94[*(u16 *)p](p);
|
||||
D_80180C94[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_80149AD4((s32 *)p);
|
||||
return;
|
||||
}
|
||||
if (func_80149B54((s32 *)p) != 0) {
|
||||
D_80180C94[*(u16 *)p](p);
|
||||
D_80180C94[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
if (func_8014A738(p) != 0) {
|
||||
((void (*)(u8 *))func_8014A830)(p);
|
||||
return;
|
||||
@@ -1260,7 +1260,7 @@ void func_80159C84(u8 *p) {
|
||||
break;
|
||||
case 5:
|
||||
if (func_80149A64((s32 *)p) != 0) {
|
||||
D_80180C94[*(u16 *)p](p);
|
||||
D_80180C94[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_800CCCC0(p);
|
||||
return;
|
||||
}
|
||||
@@ -1268,26 +1268,26 @@ void func_80159C84(u8 *p) {
|
||||
}
|
||||
|
||||
if (func_80149CD4((s32)p) != 0) {
|
||||
D_80180C94[*(u16 *)p](p);
|
||||
D_80180C94[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_8015E880((s32 *)p);
|
||||
return;
|
||||
}
|
||||
if (func_801488A8(p) != 0) {
|
||||
D_80180C94[*(u16 *)p](p);
|
||||
D_80180C94[((Unkstruct_80126B58 *)p)->unk0](p);
|
||||
func_8015A230((s32 *)p);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((*(u32 *)(p + 0x44) & 0x200) == 0 && *(u16 *)(p + 0xD4) == 0x8000) {
|
||||
if (*(s32 *)(p + 0x234) >= 3) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0 && ((Unkstruct_80126B58 *)p)->unkD4 == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)p)->unk234 >= 3) {
|
||||
t = (s32)&D_800D5F44;
|
||||
if (*(s32 *)(p + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(p, (s32)&D_800D5F34);
|
||||
goto after_b4c;
|
||||
}
|
||||
} else {
|
||||
t = (s32)&D_800D5F14;
|
||||
if (*(s32 *)(p + 0xD0) == t) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkD0 == t) {
|
||||
func_80154B4C(p, (s32)&D_800D5F04);
|
||||
goto after_b4c;
|
||||
}
|
||||
@@ -1298,17 +1298,17 @@ void func_80159C84(u8 *p) {
|
||||
}
|
||||
after_b4c:
|
||||
|
||||
if (*(u16 *)(p + 0xB8) & 0x8000) {
|
||||
if ((*(u32 *)(p + 0x44) & 0x200) == 0) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB8 & 0x8000) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 0x200) == 0) {
|
||||
if (func_8016F1AC() != 0) {
|
||||
*(s32 *)(p + 0x234) = 0;
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
}
|
||||
switch (*(s32 *)(p + 0x234)) {
|
||||
switch (((Unkstruct_80126B58 *)p)->unk234) {
|
||||
case 0:
|
||||
if ((*(s32 *)(p + 0x238))++ >= 4) {
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 4) {
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 1);
|
||||
break;
|
||||
}
|
||||
@@ -1316,20 +1316,20 @@ after_b4c:
|
||||
func_80154190(p, 0);
|
||||
break;
|
||||
case 1:
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 0);
|
||||
break;
|
||||
case 2:
|
||||
if ((*(s32 *)(p + 0x238))++ >= 2) {
|
||||
if ((*(u32 *)(p + 0x44) & 4) != 0) {
|
||||
*(s32 *)(p + 0x234) = 0;
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
if ((((Unkstruct_80126B58 *)p)->unk238)++ >= 2) {
|
||||
if ((((Unkstruct_80126B58 *)p)->unk44 & 4) != 0) {
|
||||
((Unkstruct_80126B58 *)p)->unk234 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
func_80154150((s32)p, 0);
|
||||
break;
|
||||
}
|
||||
*(s32 *)(p + 0x238) = 0;
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk238 = 0;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80154150((s32)p, 2);
|
||||
break;
|
||||
}
|
||||
@@ -1337,7 +1337,7 @@ after_b4c:
|
||||
break;
|
||||
case 3:
|
||||
func_80147324(0x445);
|
||||
*(s32 *)(p + 0x234) = *(s32 *)(p + 0x234) + 1;
|
||||
((Unkstruct_80126B58 *)p)->unk234 = ((Unkstruct_80126B58 *)p)->unk234 + 1;
|
||||
func_80155440((s32 *)p);
|
||||
func_80154150((s32)p, 3);
|
||||
func_80154A74((s32)p, 0x13);
|
||||
@@ -1354,7 +1354,7 @@ after_b4c:
|
||||
}
|
||||
}
|
||||
|
||||
if (*(s32 *)(p + 0xB4) == (s32)&D_800D49F4) {
|
||||
if (((Unkstruct_80126B58 *)p)->unkB4 == (s32)&D_800D49F4) {
|
||||
func_80147A84((s32)p);
|
||||
func_801473EC((s32 *)p);
|
||||
if ((D_800B99DA & 3) == 0) {
|
||||
@@ -1378,7 +1378,7 @@ after_b4c:
|
||||
extern void (*D_80180DE4[])(void);
|
||||
|
||||
void func_8015A264(void *a0) {
|
||||
D_80180DE4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180DE4[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -1406,7 +1406,7 @@ void func_8015A2D8(s32 param_1)
|
||||
if ((*(unsigned int *)(param_1 + 0x44) & 0x200) != 0) {
|
||||
func_80154150(param_1, 10);
|
||||
func_80154A74(param_1, 0x1c);
|
||||
*(int *)(param_1 + 0x2c) = 0xfffc0000;
|
||||
((Unkstruct_80126B58 *)param_1)->unk2C = 0xfffc0000;
|
||||
goto LAB_8015a38c;
|
||||
}
|
||||
bVar1 = *(unsigned char *)(param_1 + 0xa9);
|
||||
@@ -1419,12 +1419,12 @@ void func_8015A2D8(s32 param_1)
|
||||
func_80154150(param_1, 6);
|
||||
break;
|
||||
default:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
goto LAB_8015a390;
|
||||
}
|
||||
func_80154A74(param_1, 0x21);
|
||||
LAB_8015a38c:
|
||||
*(int *)(param_1 + 0x23c) = 0;
|
||||
((Unkstruct_80126B58 *)param_1)->unk23C = 0;
|
||||
LAB_8015a390:
|
||||
func_8014C010(param_1, 2);
|
||||
((void (*)(int))func_801553A8)(param_1);
|
||||
|
||||
@@ -1238,7 +1238,7 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149D9C(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149FA8)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1249,9 +1249,9 @@ s32 arg0;
|
||||
if (((s32 (*)(s32))func_80161B18)(arg0) != 0) {
|
||||
return;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D5428) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D5428) {
|
||||
if (func_8014A048(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8014A218)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1265,12 +1265,12 @@ s32 arg0;
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1283,7 +1283,7 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1291,18 +1291,18 @@ s32 arg0;
|
||||
}
|
||||
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) == 0) {
|
||||
sv = *(s32 *)(arg0 + 0x2C);
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
sv = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_8014C010(arg0, 1);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
@@ -1313,41 +1313,41 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_80148AFC)(arg0);
|
||||
if (*(u32 *)(arg0 + 0x44) & 0x200) {
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 0x200) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
func_80154150(arg0, 0xA);
|
||||
func_80154A74(arg0, 0x1C);
|
||||
}
|
||||
((void (*)(s32, s32))func_80146DB8)(arg0, (s32)&D_80180C18);
|
||||
func_80147AD4(arg0, 0, 0, 0);
|
||||
} else {
|
||||
switch (*(u8 *)(arg0 + 0xA9)) {
|
||||
switch (((Unkstruct_80126B58 *)arg0)->unkA9) {
|
||||
case 0x41:
|
||||
func_80147AD4(arg0, 0, 0, grav);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 4) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
} else if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
lo1 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo1) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1359,29 +1359,29 @@ s32 arg0;
|
||||
break;
|
||||
case 0x53:
|
||||
case 0x73:
|
||||
*(s32 *)(arg0 + 0x2C) = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = (min * (((s32 (*)(s32))func_80148824)(arg0) & 0xFF)) / 127;
|
||||
if (func_8016F1C4() == 0) {
|
||||
if ((*(s16 *)(p + 0x26) < 0x40) || (*(s16 *)(p + 0x2E) < 0x30)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
}
|
||||
}
|
||||
if ((*(s16 *)(p + 0x26) < 0x20) || (*(s16 *)(p + 0x2E) < 0x20)) {
|
||||
if (*(s32 *)(arg0 + 0x2C) < -0x40000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x40000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < -0x40000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x40000;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) < min) {
|
||||
*(s32 *)(arg0 + 0x2C) = min;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C < min) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = min;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x2C) >= hi) {
|
||||
*(s32 *)(arg0 + 0x2C) = hi;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C >= hi) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = hi;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
if (*(s32 *)(arg0 + 0x23C) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C == 0) {
|
||||
lo2 = -0x94000;
|
||||
t = *(s32 *)(arg0 + 0x2C);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (t < lo2) {
|
||||
func_80154150(arg0, 8);
|
||||
} else if (t < -0x70000) {
|
||||
@@ -1395,11 +1395,11 @@ s32 arg0;
|
||||
}
|
||||
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if ((min >= *(s32 *)(arg0 + 0x2C)) && !(D_800B99DA & 7)) {
|
||||
if ((min >= ((Unkstruct_80126B58 *)arg0)->unk2C) && !(D_800B99DA & 7)) {
|
||||
func_8014C010(arg0, 2);
|
||||
}
|
||||
if (((s32 (*)(s32))func_8014D738)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015C6E0)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1407,18 +1407,18 @@ s32 arg0;
|
||||
((void (*)(s32))func_80155440)(arg0);
|
||||
func_80154150(arg0, 0x12);
|
||||
func_80154A74(arg0, 0x17);
|
||||
*(s32 *)(arg0 + 0x23C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 1;
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x23C) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk23C != 0) {
|
||||
func_801553C0(arg0);
|
||||
func_80154150(arg0, 6);
|
||||
func_80154A74(arg0, 0x21);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x23C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk23C = 0;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80161278)(arg0) == 0) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x2000) {
|
||||
func_80161C24(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x2000) {
|
||||
func_80161C24(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
((void (*)(s32))func_80172608)(arg0);
|
||||
((void (*)(s32))func_801483E8)(arg0);
|
||||
@@ -1442,7 +1442,7 @@ void func_8015AC48(s32 arg0)
|
||||
{
|
||||
func_80154150(arg0, 9);
|
||||
func_80146DB8((s32 *)arg0, &D_80180C28);
|
||||
func_80161CD0(arg0, M2C_FIELD(arg0, u16 *, 0x16E));
|
||||
func_80161CD0(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
}
|
||||
|
||||
|
||||
@@ -1456,7 +1456,7 @@ void func_8015AC48(s32 arg0)
|
||||
extern void (*D_80180DEC[])(void);
|
||||
|
||||
void func_8015AD3C(void *a0) {
|
||||
D_80180DEC[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180DEC[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1254,42 +1254,42 @@ s32 arg0;
|
||||
s32 t;
|
||||
|
||||
flag = 0;
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (*(s32 *)(arg0 + 0x34) >= 0)) {
|
||||
if ((func_80161A60(arg0) != 0) && (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) && (((Unkstruct_80126B58 *)arg0)->unk34 >= 0)) {
|
||||
flag = 1;
|
||||
if (*(s32 *)(arg0 + 0x5C) == 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk5C == 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x5C) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 1;
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x5C) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk5C = 0;
|
||||
}
|
||||
((void (*)(s32))func_80149FB0)(arg0);
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 0) {
|
||||
switch (((s32 (*)(s32))func_801619A4)(arg0)) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 6:
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) {
|
||||
if (func_80149C08(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_801577C8)(arg0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if (func_8015B6F4(arg0) == 0) {
|
||||
((void (*)(s32))func_8015B7B4)(arg0);
|
||||
}
|
||||
} else {
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (flag != 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3B, arg0, 0, 0);
|
||||
}
|
||||
@@ -1304,50 +1304,50 @@ s32 arg0;
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (*(u32 *)(arg0 + 0x44) & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, *(u8 *)(arg0 + 0x1AA));
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk44 & 2) {
|
||||
((void (*)(s32, s32))func_80155FF8)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1AA);
|
||||
} else {
|
||||
if ((*(s32 *)(arg0 + 0x240) == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
*(s32 *)(arg0 + 0x240) += 1;
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk240 == 0) && (((s32 (*)(s32))func_8015B858)(arg0) != 0)) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk240 += 1;
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0xB4) == (s32)&(*(s32 *)&D_800D4BE0)) && (*(u16 *)(arg0 + 0xB8) & 0x8000)) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&(*(s32 *)&D_800D4BE0)) && (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000)) {
|
||||
((void (*)(s32))func_8015B8F8)(arg0);
|
||||
} else if ((*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) ||
|
||||
(*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4B48)) {
|
||||
if (*(u16 *)(arg0 + 0xB8) & 0x8000) {
|
||||
if (*(s32 *)(arg0 + 0x34) >= 0) {
|
||||
*(u16 *)(arg0 + 0xB8) += 1;
|
||||
} else if ((((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) ||
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4B48)) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unkB8 += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(u8 *)(arg0 + 0x1C6) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 != 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80148038(arg0, 0xFFFE6000);
|
||||
} else {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
}
|
||||
lim = 0x40000;
|
||||
if ((*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4E94) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&D_800D4ED4) &&
|
||||
(*(s32 *)(arg0 + 0xB4) != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4E94) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&D_800D4ED4) &&
|
||||
(((Unkstruct_80126B58 *)arg0)->unkB4 != (s32)&(*(s32 *)&D_800D4F8C))) {
|
||||
lim = 0xC0000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x34) < -lim) {
|
||||
*(s32 *)(arg0 + 0x34) = -lim;
|
||||
} else if (lim < *(s32 *)(arg0 + 0x34)) {
|
||||
*(s32 *)(arg0 + 0x34) = lim;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < -lim) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = -lim;
|
||||
} else if (lim < ((Unkstruct_80126B58 *)arg0)->unk34) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk34 = lim;
|
||||
}
|
||||
func_80147460(arg0);
|
||||
} else {
|
||||
if (*(s32 *)(arg0 + 0x34) < 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk34 < 0) {
|
||||
if (((s32 (*)(s32))func_801487F4)(arg0) & 0x40) {
|
||||
func_80147814(arg0, 0xFFFF0000);
|
||||
}
|
||||
@@ -1355,14 +1355,14 @@ s32 arg0;
|
||||
}
|
||||
}
|
||||
if (func_800CF8B4() != 0) {
|
||||
*(u16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = ((*(u16 *)&D_801152A0) + func_801491C4(arg0)) & 0xFFF;
|
||||
}
|
||||
if (flag == 0) {
|
||||
if ((u8)((s32 (*)(s32))func_80148AFC)(arg0)) {
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
((void (*)(s32, s32))func_80146E90)(arg0, 4);
|
||||
if (*(s32 *)(arg0 + 0x2C) > -0x80000) {
|
||||
*(s32 *)(arg0 + 0x2C) = -0x80000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk2C > -0x80000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = -0x80000;
|
||||
func_80147A30(arg0, -0x10000, 0xBA000);
|
||||
} else {
|
||||
func_80147A30(arg0, -0x1000, 0xBA000);
|
||||
@@ -1374,7 +1374,7 @@ s32 arg0;
|
||||
}
|
||||
func_80147A84(arg0);
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
if (*(u8 *)(arg0 + 0x1C6) == 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1C6 == 0) {
|
||||
func_80148038(arg0, 0x1A000);
|
||||
func_80147460(arg0);
|
||||
}
|
||||
@@ -1384,79 +1384,79 @@ s32 arg0;
|
||||
(*(u16 *)&D_801152A0) = func_80149184(arg0);
|
||||
func_80146D90(arg0);
|
||||
func_80147AD4(arg0, 0, 0, 0xFFFF4000);
|
||||
*(s32 *)(arg0 + 0x50) += *(s32 *)(arg0 + 0x10);
|
||||
*(s32 *)(arg0 + 0x54) += *(s32 *)(arg0 + 0x14);
|
||||
*(s32 *)(arg0 + 0x58) += *(s32 *)(arg0 + 0x18);
|
||||
if (*(s32 *)(arg0 + 0x50) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x50) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x50) = -0xBA000;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += ((Unkstruct_80126B58 *)arg0)->unk10;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += ((Unkstruct_80126B58 *)arg0)->unk14;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += ((Unkstruct_80126B58 *)arg0)->unk18;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk50 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x54) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x54) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk54 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = -0xBA000;
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) > 0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = 0xBA000;
|
||||
} else if (*(s32 *)(arg0 + 0x58) < -0xBA000) {
|
||||
*(s32 *)(arg0 + 0x58) = -0xBA000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 > 0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0xBA000;
|
||||
} else if (((Unkstruct_80126B58 *)arg0)->unk58 < -0xBA000) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = -0xBA000;
|
||||
}
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
} else {
|
||||
doit = 0;
|
||||
if (*(s32 *)(arg0 + 0x50) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) < 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x50) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x50) >= 0) {
|
||||
*(s32 *)(arg0 + 0x50) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk50 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk50 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x54) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) < 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x54) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x54) >= 0) {
|
||||
*(s32 *)(arg0 + 0x54) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk54 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk54 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x58) != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 != 0) {
|
||||
doit = 1;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) -= 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) < 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 -= 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 < 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x58) += 0x8000;
|
||||
if (*(s32 *)(arg0 + 0x58) >= 0) {
|
||||
*(s32 *)(arg0 + 0x58) = 0;
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 += 0x8000;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk58 >= 0) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk58 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (doit != 0) {
|
||||
*(s32 *)(arg0 + 0x10) = *(s32 *)(arg0 + 0x50);
|
||||
*(s32 *)(arg0 + 0x14) = *(s32 *)(arg0 + 0x54);
|
||||
*(s32 *)(arg0 + 0x18) = *(s32 *)(arg0 + 0x58);
|
||||
((Unkstruct_80126B58 *)arg0)->unk10 = ((Unkstruct_80126B58 *)arg0)->unk50;
|
||||
((Unkstruct_80126B58 *)arg0)->unk14 = ((Unkstruct_80126B58 *)arg0)->unk54;
|
||||
((Unkstruct_80126B58 *)arg0)->unk18 = ((Unkstruct_80126B58 *)arg0)->unk58;
|
||||
((void (*)(s32))func_801473EC)(arg0);
|
||||
}
|
||||
if (!(*(u32 *)(arg0 + 0x44) & 2)) {
|
||||
if (!(((Unkstruct_80126B58 *)arg0)->unk44 & 2)) {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xF, 0x12);
|
||||
}
|
||||
}
|
||||
@@ -1464,22 +1464,22 @@ s32 arg0;
|
||||
if (t != 0) {
|
||||
func_800CCB78(t);
|
||||
}
|
||||
if ((*(u16 *)(arg0 + 0x1C8) & 0x1F) == 0) {
|
||||
if ((((Unkstruct_80126B58 *)arg0)->unk1C8 & 0x1F) == 0) {
|
||||
((void (*)(s32, s32, s32, s32))func_80146994)(0x3C, arg0, 0, 0);
|
||||
}
|
||||
}
|
||||
if (*(s32 *)(arg0 + 0x1B0) != 0) {
|
||||
if (*(s32 *)(arg0 + 0x1B0) == 1) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 != 0) {
|
||||
if (((Unkstruct_80126B58 *)arg0)->unk1B0 == 1) {
|
||||
func_80154A74(arg0, 0x22);
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32))func_80154274)(arg0, *(s32 *)(arg0 + 0x1B4));
|
||||
((void (*)(s32, s32))func_80154274)(arg0, ((Unkstruct_80126B58 *)arg0)->unk1B4);
|
||||
}
|
||||
}
|
||||
r = ((s32 (*)(s32))func_80161488)(arg0);
|
||||
if (r & 5) {
|
||||
*(u32 *)(arg0 + 0x44) &= ~2;
|
||||
if (*(s32 *)(arg0 + 0xB4) == (s32)&D_800D4A9C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk44 &= ~2;
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB4 == (s32)&D_800D4A9C) {
|
||||
func_80154150(arg0, 0xE);
|
||||
} else {
|
||||
func_80154150(arg0, 0x10);
|
||||
@@ -1488,10 +1488,10 @@ s32 arg0;
|
||||
}
|
||||
if (r == 0) {
|
||||
if ((((s32 (*)(s32))func_8014A674)(arg0) != 0) && (((s32 (*)(s32))func_8014E434)(arg0) != 0)) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CC40)(arg0);
|
||||
} else if ((((s32 (*)(s32))func_8014A69C)(arg0) != 0) && (((s32 (*)(s32))func_8014E6A0)(arg0) != 0)) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015CF8C)(arg0);
|
||||
} else {
|
||||
((void (*)(s32))func_801725A4)(arg0);
|
||||
@@ -1656,12 +1656,12 @@ s32 func_8015B950(s32 arg0)
|
||||
case 2:
|
||||
case 6:
|
||||
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149AD4)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149BAC)(arg0);
|
||||
return;
|
||||
}
|
||||
@@ -1674,61 +1674,61 @@ s32 func_8015B950(s32 arg0)
|
||||
break;
|
||||
case 5:
|
||||
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
func_800CCCC0(arg0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (func_80149CD4(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_8015E880)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_80149744)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149788)(arg0);
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32))func_80149704)(arg0);
|
||||
if (((u8)((s32 (*)(s32))func_80148AFC)(arg0)) == 0) {
|
||||
func_80146D90(arg0);
|
||||
}
|
||||
if ((*(s32 *)(arg0 + 0x24) | *(s32 *)(arg0 + 0x2C)) != 0) {
|
||||
if ((CAST_WIDTH(s32, arg0, 0x24) | ((Unkstruct_80126B58 *)arg0)->unk2C) != 0) {
|
||||
func_80154150(arg0, 0xF);
|
||||
} else {
|
||||
((void (*)(s32, s32, s32))func_801541D8)(arg0, 0xD, 6);
|
||||
}
|
||||
*(s32 *)(arg0 + 0x238) = 1;
|
||||
((Unkstruct_80126B58 *)arg0)->unk238 = 1;
|
||||
return;
|
||||
}
|
||||
if (((s32 (*)(s32))func_801488A8)(arg0) != 0) {
|
||||
sp10[0] = 0;
|
||||
sp10[1] = 0;
|
||||
sp10[2] = 0;
|
||||
t = *(s16 *)(arg0 + 0x26);
|
||||
t = ((Unkstruct_80126B58 *)arg0)->unk26;
|
||||
sp18[0] = t;
|
||||
sp18[1] = 0;
|
||||
t = *(s16 *)(arg0 + 0x2E);
|
||||
sp18[2] = t;
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 1);
|
||||
((void (*)(s32))func_8015A264)(arg0);
|
||||
t = -(((s32 (*)(s16 *, s16 *))func_80013294)(sp10, sp18) << 0x10);
|
||||
if (t < *(s32 *)(arg0 + 0x2C)) {
|
||||
*(s32 *)(arg0 + 0x2C) = t;
|
||||
if (t < ((Unkstruct_80126B58 *)arg0)->unk2C) {
|
||||
((Unkstruct_80126B58 *)arg0)->unk2C = t;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (*(u16 *)(arg0 + 0xB8) == 0x8000) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
if (((Unkstruct_80126B58 *)arg0)->unkB8 == 0x8000) {
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
return;
|
||||
}
|
||||
z = *(s32 *)(arg0 + 0x2C);
|
||||
z = ((Unkstruct_80126B58 *)arg0)->unk2C;
|
||||
if (func_8016F1AC() != 0) {
|
||||
goto zero;
|
||||
}
|
||||
@@ -1748,12 +1748,12 @@ zero:
|
||||
doit = 0;
|
||||
join:
|
||||
if (doit != 0) {
|
||||
D_80180C94[*(u16 *)arg0]((void *)arg0);
|
||||
D_80180C94[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
|
||||
((void (*)(s32, s32))func_80147078)(arg0, 0);
|
||||
((void (*)(s32))func_80159B70)(arg0);
|
||||
func_80154150(arg0, 9);
|
||||
((void (*)(s32, s32 *))func_80146DB8)(arg0, &D_80180C28);
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, *(u16 *)(arg0 + 0x16E));
|
||||
((void (*)(s32, s32))func_80161CD0)(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
|
||||
return;
|
||||
}
|
||||
if (func_80161208(arg0) == 0) {
|
||||
@@ -1796,7 +1796,7 @@ void func_8015BE38(struct Obj *a0) {
|
||||
extern void (*D_80180E14[])(void);
|
||||
|
||||
void func_8015BFF4(void *a0) {
|
||||
D_80180E14[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80180E14[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2092,7 +2092,7 @@ void func_8016B234(s32 param_1) {
|
||||
extern void (*D_801817E0[])(void);
|
||||
|
||||
void func_8016B4BC(void *a0) {
|
||||
D_801817E0[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_801817E0[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2347,7 +2347,7 @@ s32 func_8016B9F8(s32 param_1)
|
||||
extern void (*D_80181830[])(void);
|
||||
|
||||
void func_8016BBA4(void *a0) {
|
||||
D_80181830[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181830[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2412,16 +2412,16 @@ void func_8016BCC0(void *arg0) {
|
||||
func_8016BF50();
|
||||
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
|
||||
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
|
||||
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
|
||||
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
|
||||
func_8016BFA8(arg0, &D_8019B004, &D_8019B008, temp_s0 + 0x18);
|
||||
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
|
||||
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
|
||||
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
|
||||
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
|
||||
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
|
||||
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
|
||||
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2572,7 +2572,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
|
||||
extern void (*D_80181860[])(void);
|
||||
|
||||
void func_8016C14C(void *a0) {
|
||||
D_80181860[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181860[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -2748,7 +2748,7 @@ s32 func_8016C49C(s32 param_1_arg) {
|
||||
return;
|
||||
}
|
||||
func_8001CD9C(iVar5b, D_8019B020);
|
||||
*(u32 *)(iVar5b + 4) |= 0x50000000;
|
||||
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
|
||||
uVar2 = ((int(*)())rand)();
|
||||
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
|
||||
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
|
||||
@@ -2838,7 +2838,7 @@ void func_8016C998(s32 param_1)
|
||||
extern void (*D_80181868[])(void);
|
||||
|
||||
void func_8016CB84(void *a0) {
|
||||
D_80181868[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181868[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3052,7 +3052,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
|
||||
extern void (*D_80181884[])(void);
|
||||
|
||||
void func_8016D19C(void *a0) {
|
||||
D_80181884[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181884[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3153,7 +3153,7 @@ void func_8016D1D8(int param_1) {
|
||||
extern void (*D_8018188C[])(void);
|
||||
|
||||
void func_8016D428(void *a0) {
|
||||
D_8018188C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018188C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3353,7 +3353,7 @@ end:
|
||||
extern void (*D_80181928[])(void);
|
||||
|
||||
void func_8016DEA4(void *a0) {
|
||||
D_80181928[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181928[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3363,7 +3363,7 @@ void func_8016DEA4(void *a0) {
|
||||
extern void (*D_80181930[])(void);
|
||||
|
||||
void func_8016DF20(void *a0) {
|
||||
D_80181930[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181930[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3471,7 +3471,7 @@ void func_8016DF5C(s32 param_1)
|
||||
extern void (*D_80181984[])(void);
|
||||
|
||||
void func_8016E5B8(void *a0) {
|
||||
D_80181984[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80181984[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
|
||||
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
|
||||
break;
|
||||
}
|
||||
D_8019B748 = *(s32 *)(D_8019B748 + 4);
|
||||
D_8019B748 = CAST_WIDTH(s32, D_8019B748, 4);
|
||||
return;
|
||||
case 0x37:
|
||||
(*(s16*)&D_8019BD6C) = 3;
|
||||
|
||||
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
|
||||
case 1:
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] <= 0) {
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
|
||||
goto reset_both;
|
||||
}
|
||||
{
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
return;
|
||||
case 2:
|
||||
func_8012B178(pv, (s32)g[4] << 8);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
break;
|
||||
case 3:
|
||||
if (g[1] != 0) {
|
||||
if (g[5] != 0) {
|
||||
void *p = (void *)(pv + 4);
|
||||
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
|
||||
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
|
||||
(s16)func_8012B744(p, &g[6])) < 0x100) {
|
||||
g[1] = 0;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744(p, &D_8019BCD4);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* &D_8019BCC8+0xC == &D_8019BCD4; distinct rtx defeats gcc's address-CSE
|
||||
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
|
||||
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
|
||||
}
|
||||
{
|
||||
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
|
||||
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
|
||||
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
|
||||
}
|
||||
g[1] = (u16)g[1] - 1;
|
||||
if (g[1] > 0) {
|
||||
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
|
||||
g[1] = 0;
|
||||
return;
|
||||
}
|
||||
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
|
||||
func_8012B744((void *)(pv + 4), &D_8019BCD4);
|
||||
func_8012B178(pv, 0xFFFA0000);
|
||||
func_8012AD80(pv);
|
||||
*(u16 *)(pv + 0xA) -= 8;
|
||||
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
|
||||
func_8012B030((u8 *)pv);
|
||||
/* see note above: distinct rtx for the same address defeats address-CSE. */
|
||||
if (func_8012BE98(pv, (u16 *)((s32)&D_8019BCC8 + 0xC)) < 0x101) {
|
||||
|
||||
@@ -3253,8 +3253,8 @@ void func_8017D1D8(void *a0) {
|
||||
func_8014706C(a0);
|
||||
func_80154274((s32 *)a0, (s32)&D_80182168);
|
||||
func_80146DE8((s32 *)a0, 0, 0x20000, 0);
|
||||
*(s32 *)((s32)a0 + 0x200) = 0x40;
|
||||
*(s16 *)((s32)a0 + 0x20C) = 1;
|
||||
((Unkstruct_80126B58 *)a0)->unk200 = 0x40;
|
||||
((Unkstruct_80126B58 *)a0)->unk20C = 1;
|
||||
func_80147324(0xBCA);
|
||||
func_80171990((u8 *)a0);
|
||||
}
|
||||
@@ -3300,11 +3300,11 @@ void func_8017D2F8(void *a0, s32 a1) {
|
||||
|
||||
v0 = func_8012E544(0x195);
|
||||
if (v0 != 0) {
|
||||
*(s32 *)(v0 + 4) = *(s32 *)((s32)a0 + 4);
|
||||
*(s32 *)(v0 + 8) = *(s32 *)((s32)a0 + 8) - 0x400000;
|
||||
CAST_WIDTH(s32, v0, 4) = *(s32 *)((s32)a0 + 4);
|
||||
CAST_WIDTH(s32, v0, 8) = *(s32 *)((s32)a0 + 8) - 0x400000;
|
||||
t = *(u32 *)((s32)a0 + 0xC);
|
||||
*(s16 *)(v0 + 0xFC) = (s16)a1;
|
||||
*(s32 *)(v0 + 0xC) = t;
|
||||
((Unkstruct_800B5CB8 *)v0)->unkFC = (s16)a1;
|
||||
CAST_WIDTH(s32, v0, 0xC) = t;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3352,11 +3352,11 @@ void func_8017D460(void *a0) {
|
||||
func_8014706C(a0);
|
||||
func_8014708C(a0);
|
||||
func_801472C8(a0);
|
||||
*(s32 *)((s32)a0 + 0x200) = 0x316;
|
||||
*(s32 *)((s32)a0 + 0x204) = 0;
|
||||
*(s16 *)((s32)a0 + 0x20C) = 1;
|
||||
func_8017D98C(a0, 1, *(s32 *)((s32)a0 + 0x200), 0);
|
||||
*(s16 *)((s32)a0 + 0x20E) = 30;
|
||||
((Unkstruct_80126B58 *)a0)->unk200 = 0x316;
|
||||
((Unkstruct_80126B58 *)a0)->unk204 = 0;
|
||||
((Unkstruct_80126B58 *)a0)->unk20C = 1;
|
||||
func_8017D98C(a0, 1, ((Unkstruct_80126B58 *)a0)->unk200, 0);
|
||||
((Unkstruct_80126B58 *)a0)->unk20E = 30;
|
||||
func_80171990(a0);
|
||||
}
|
||||
|
||||
@@ -3468,9 +3468,9 @@ void func_8017D738(void *a0) {
|
||||
func_8014706C(a0);
|
||||
func_8014708C(a0);
|
||||
func_801472C8(a0);
|
||||
*(s32 *)((s32)a0 + 0x200) = 400;
|
||||
*(s16 *)((s32)a0 + 0x20C) = 1;
|
||||
func_8017D98C(a0, 1, *(s32 *)((s32)a0 + 0x200), 0);
|
||||
((Unkstruct_80126B58 *)a0)->unk200 = 400;
|
||||
((Unkstruct_80126B58 *)a0)->unk20C = 1;
|
||||
func_8017D98C(a0, 1, ((Unkstruct_80126B58 *)a0)->unk200, 0);
|
||||
func_80147324(0xC26);
|
||||
func_80171990(a0);
|
||||
}
|
||||
@@ -3542,7 +3542,7 @@ void func_8017D918(s32 a0)
|
||||
|
||||
v0 = func_8012E544(0x19C);
|
||||
if (v0 != 0) {
|
||||
*(u16 *)(v0 + 0xFC) = 0;
|
||||
((Unkstruct_800B5CB8 *)v0)->unkFC = 0;
|
||||
}
|
||||
v0 = func_8012E544(0x29A);
|
||||
if (v0 != 0) {
|
||||
@@ -3586,17 +3586,17 @@ void func_8017D98C(void *a0, s32 a1, s32 a2, s32 a3) {
|
||||
|
||||
v1 = func_8012E544(0x195);
|
||||
if (v1 != 0) {
|
||||
*(s32 *)(v1 + 4) = *(s32 *)((s32)a0 + 4);
|
||||
*(s32 *)(v1 + 8) = *(s32 *)((s32)a0 + 8);
|
||||
*(s32 *)(v1 + 0xC) = *(s32 *)((s32)a0 + 0xC);
|
||||
*(s16 *)(v1 + 0xFC) = (s16)a1;
|
||||
CAST_WIDTH(s32, v1, 4) = *(s32 *)((s32)a0 + 4);
|
||||
CAST_WIDTH(s32, v1, 8) = *(s32 *)((s32)a0 + 8);
|
||||
CAST_WIDTH(s32, v1, 0xC) = *(s32 *)((s32)a0 + 0xC);
|
||||
((Unkstruct_800B5CB8 *)v1)->unkFC = (s16)a1;
|
||||
}
|
||||
|
||||
v1 = func_8012E544(0x285);
|
||||
if (v1 != 0) {
|
||||
*(s32 *)(v1 + 4) = *(s32 *)((s32)a0 + 4);
|
||||
*(s32 *)(v1 + 8) = *(s32 *)((s32)a0 + 8);
|
||||
*(s32 *)(v1 + 0xC) = *(s32 *)((s32)a0 + 0xC);
|
||||
CAST_WIDTH(s32, v1, 4) = *(s32 *)((s32)a0 + 4);
|
||||
CAST_WIDTH(s32, v1, 8) = *(s32 *)((s32)a0 + 8);
|
||||
CAST_WIDTH(s32, v1, 0xC) = *(s32 *)((s32)a0 + 0xC);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3803,7 +3803,7 @@ void func_8017DE88(s32 param_1, s16 *param_2) {
|
||||
extern void (*D_8018223C[])(void);
|
||||
|
||||
void func_8017E020(void *a0) {
|
||||
D_8018223C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018223C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3945,7 +3945,7 @@ void func_8017E3E0(void *a0, void *a1, void *a2, void *a3)
|
||||
extern void (*D_80182254[])(void);
|
||||
|
||||
void func_8017E4C8(void *a0) {
|
||||
D_80182254[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80182254[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
|
||||
@@ -3956,7 +3956,7 @@ extern void (*D_80195D14[])(unsigned char *);
|
||||
|
||||
void func_8017E504(void *a0) {
|
||||
s32 v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)a0 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk20 = v0;
|
||||
if (v0 != 0) {
|
||||
func_8001C214(v0, (s32)D_80195D14);
|
||||
func_8012AD50(a0);
|
||||
|
||||
@@ -3164,7 +3164,7 @@ void func_8014305C(int param_1)
|
||||
|
||||
do { iVar2 = ((int (*)(void))func_8012C1B8)(); } while (0);
|
||||
s1_copy = iVar2;
|
||||
*(int *)(s0_param + 0x20) = iVar2;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unk20 = iVar2;
|
||||
if (iVar2 == 0) {
|
||||
((void (*)(int))func_8012CAE4)(s0_param);
|
||||
} else {
|
||||
@@ -3172,7 +3172,7 @@ void func_8014305C(int param_1)
|
||||
sVar1 = (*(unsigned short *)(s0_param + 0x70) & 0xf) * 0x600 + 0xc00;
|
||||
*(short *)(s1_copy + 0x1a) = sVar1;
|
||||
*(short *)(s1_copy + 0x18) = sVar1;
|
||||
*(short *)(s0_param + 0xfc) = 0;
|
||||
((Unkstruct_800B5CB8 *)s0_param)->unkFC = 0;
|
||||
func_8012A828(s0_param, D_801881C0);
|
||||
((void (*)(int))func_80142B2C)(s0_param);
|
||||
}
|
||||
@@ -3331,7 +3331,7 @@ extern void (*D_80188440[])(void *);
|
||||
|
||||
void func_80143B30(void *a0)
|
||||
{
|
||||
D_80188440[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
D_80188440[((Unkstruct_80126B58 *)a0)->unk2](a0);
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80143B6C.h"
|
||||
@@ -3342,7 +3342,7 @@ extern void (*D_8018844C[])(void *);
|
||||
|
||||
void func_80143C38(void *a0)
|
||||
{
|
||||
D_8018844C[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
D_8018844C[((Unkstruct_80126B58 *)a0)->unk2](a0);
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80143C74.h"
|
||||
@@ -3351,7 +3351,7 @@ extern void (*D_80188454[])(void *);
|
||||
|
||||
void func_80143C98(void *a0)
|
||||
{
|
||||
D_80188454[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
D_80188454[((Unkstruct_80126B58 *)a0)->unk2](a0);
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80143CD4.h"
|
||||
@@ -3371,35 +3371,35 @@ extern void func_8012C218(void *a0);
|
||||
void func_80143D28(s32 param_1) {
|
||||
|
||||
extern MatEntry D_80188478[];
|
||||
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
|
||||
MatEntry *p = &D_80188478[*(s16 *)(param_1 + 0x70)];
|
||||
s32 iVar2 = ((Unkstruct_800B5CB8 *)param_1)->unk64; /* $s1 */
|
||||
MatEntry *p = &D_80188478[((Unkstruct_800B5CB8 *)param_1)->unk70];
|
||||
u16 uVar5 = p->f8;
|
||||
s32 iVar3 = *(s32 *)(param_1 + 0x20);
|
||||
s32 iVar3 = ((Unkstruct_800B5CB8 *)param_1)->unk20;
|
||||
s32 sVar4;
|
||||
s32 iVar1;
|
||||
|
||||
*(s16 *)(iVar3 + 0x14) = uVar5;
|
||||
*(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;
|
||||
CAST_WIDTH(s16, iVar3, 0x14) = uVar5;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk12 = ((Unkstruct_800B5CB8 *)iVar3)->unk12 + p->fa;
|
||||
sVar4 = 0x1000;
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));
|
||||
((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x34), p, (void *)(param_1 + 0x50));
|
||||
|
||||
if (*(s16 *)(param_1 + 0xfe) == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkFE == 0 &&
|
||||
(iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != ((Unkstruct_800B5CB8 *)param_1)->unkFC ||
|
||||
*(u8 *)(iVar2 + 0xc1) != 6)) {
|
||||
if (0x10 < *(s32 *)(param_1 + 0x1c)) {
|
||||
*(s32 *)(param_1 + 0x1c) = 0x10;
|
||||
if (0x10 < ((Unkstruct_800B5CB8 *)param_1)->unk1C) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x10;
|
||||
}
|
||||
*(s16 *)(param_1 + 0xfe) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFE = 1;
|
||||
}
|
||||
|
||||
iVar1 = *(s32 *)(param_1 + 0x1c);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C;
|
||||
if (iVar1 < 0x11) {
|
||||
sVar4 = iVar1 << 8;
|
||||
}
|
||||
if (0x73 < iVar1) {
|
||||
sVar4 = (0x78 - iVar1) << 10;
|
||||
}
|
||||
*(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = ((Unkstruct_800B5CB8 *)iVar3)->unk1A = CAST_WIDTH(s16, iVar3, 0x1c) = sVar4;
|
||||
|
||||
if (func_8012BEE8(param_1)) {
|
||||
func_8012C218((void *)param_1);
|
||||
@@ -3410,7 +3410,7 @@ extern void (*D_8018849C[])(void *);
|
||||
|
||||
void func_80143E68(void *a0)
|
||||
{
|
||||
D_8018849C[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
D_8018849C[((Unkstruct_80126B58 *)a0)->unk2](a0);
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80143EA4.h"
|
||||
@@ -3425,7 +3425,7 @@ extern void (*D_801884B0[])(void *);
|
||||
|
||||
void func_80144054(void *a0)
|
||||
{
|
||||
D_801884B0[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
D_801884B0[((Unkstruct_80126B58 *)a0)->unk2](a0);
|
||||
}
|
||||
|
||||
// @class: regalloc-order
|
||||
@@ -3444,9 +3444,9 @@ void func_801442F8(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
D_801884B8[*(u16 *)(param_1 + 2)]();
|
||||
iVar1 = *(int *)(param_1 + 0x1c) + 1;
|
||||
*(int *)(param_1 + 0x1c) = iVar1;
|
||||
D_801884B8[CAST_SIGN(u16, param_1, 2)]();
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk1C + 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = iVar1;
|
||||
if (0x1d < iVar1) {
|
||||
func_8012C218(param_1);
|
||||
}
|
||||
@@ -3474,19 +3474,19 @@ void func_80144364(int param_1) {
|
||||
*(int *)(param_1 + 0xCC) = iVar3;
|
||||
*(u16 *)(param_1 + 0xFC) = uVar2;
|
||||
func_8001CB6C((u8 *)iVar3, (s32)&D_80188434, 0x250, 0x1A0);
|
||||
*(s32 *)(iVar3 + 4) = 0x60000000;
|
||||
*(u8 *)(iVar3 + 0x27) = 0x14;
|
||||
*(u16 *)(iVar3 + 0x10) = 0x400;
|
||||
*(u16 *)(iVar3 + 8) = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
*(u16 *)(iVar3 + 0xA) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
*(u16 *)(iVar3 + 0xC) = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
CAST_WIDTH(s32, iVar3, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk27 = 0x14;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk8 = *(u16 *)(*(int *)(param_1 + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkA = *(u16 *)(*(int *)(param_1 + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unkC = *(u16 *)(*(int *)(param_1 + 0x64) + 0xE);
|
||||
sVar1 = *(s16 *)(param_1 + 0x70);
|
||||
if (sVar1 != 0) {
|
||||
*(s16 *)(iVar3 + 0x1A) = sVar1;
|
||||
*(s16 *)(iVar3 + 0x18) = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = sVar1;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = sVar1;
|
||||
} else {
|
||||
*(u16 *)(iVar3 + 0x1A) = 0x2000;
|
||||
*(u16 *)(iVar3 + 0x18) = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk1A = 0x2000;
|
||||
((Unkstruct_800B5CB8 *)iVar3)->unk18 = 0x2000;
|
||||
}
|
||||
*(u16 *)(param_1 + 2) = 1;
|
||||
}
|
||||
@@ -3506,7 +3506,7 @@ void func_80144458(void *arg0) {
|
||||
void *temp_v0;
|
||||
|
||||
temp_s2 = M2C_FIELD(arg0, void **, 0xCC);
|
||||
if (M2C_FIELD(arg0, s16 *, 0x70) == 0) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk70 == 0) {
|
||||
temp_v0 = M2C_FIELD(M2C_FIELD(arg0, void **, 0x64), void **, 0x20);
|
||||
if (temp_v0 != NULL) {
|
||||
temp_s0 = (M2C_FIELD(temp_v0, s16 *, 0x12) - 0x400) & 0xFFF;
|
||||
@@ -3515,9 +3515,9 @@ void func_80144458(void *arg0) {
|
||||
func_8012AD80(arg0);
|
||||
}
|
||||
}
|
||||
M2C_FIELD(temp_s2, u16 *, 8) = (u16) M2C_FIELD(arg0, u16 *, 6);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xA) = (u16) M2C_FIELD(arg0, u16 *, 0xA);
|
||||
M2C_FIELD(temp_s2, u16 *, 0xC) = (u16) M2C_FIELD(arg0, u16 *, 0xE);
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unk8 = (u16) ((Unkstruct_800B5CB8 *)arg0)->unk6;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkA = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkA;
|
||||
((Unkstruct_800B5CB8 *)temp_s2)->unkC = (u16) ((Unkstruct_800B5CB8 *)arg0)->unkE;
|
||||
if (func_80128ED8(temp_s2, arg0 + 0xD0) != 0) {
|
||||
func_80016714(temp_s2, 0x38);
|
||||
func_8012C218(arg0);
|
||||
@@ -3555,29 +3555,29 @@ void func_8014477C(void *param_1) {
|
||||
s32 fv;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)param_1 + 0x20) = v0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(param_1);
|
||||
return;
|
||||
}
|
||||
((void (*)(s32, void *))func_8001CA1C)(v0, &D_8018845C);
|
||||
if (*(u16 *)(*(s32 *)((s32)param_1 + 0x64)) != 0) {
|
||||
*(s16 *)((s32)param_1 + 0xFC) = *(u16 *)(*(s32 *)((s32)param_1 + 0x64) + 0x36);
|
||||
uVar2 = *(s32 *)(*(s32 *)((s32)param_1 + 0x64) + 0x58);
|
||||
if (*(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64) != 0) {
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkFC = *(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x36);
|
||||
uVar2 = *(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x58);
|
||||
if (uVar2 != 0) {
|
||||
addr = uVar2 & 0xFFFFFFF;
|
||||
gv = CAST_NONSTRUCT(u16, (addr | 0x80000000), 8);
|
||||
fv = *(u16 *)((s32)param_1 + 0xA) - 0x30;
|
||||
*(u16 *)((s32)param_1 + 0xA) = gv + fv;
|
||||
fv = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x30;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = gv + fv;
|
||||
} else {
|
||||
*(u16 *)((s32)param_1 + 0xA) = *(u16 *)((s32)param_1 + 0xA) - 0x60;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkA = ((Unkstruct_800B5CB8 *)param_1)->unkA - 0x60;
|
||||
}
|
||||
}
|
||||
((void (*)(void *, void *))func_8012A828)(param_1, &D_80188468);
|
||||
v1 = (s32)*(s16 *)((s32)param_1 + 0x70) << 0xC;
|
||||
*(s16 *)((s32)param_1 + 0x2) = 1;
|
||||
*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12) = v1 / 3;
|
||||
*(s32 *)((s32)param_1 + 0x1C) = 0x78;
|
||||
v1 = (s32)((Unkstruct_800B5CB8 *)param_1)->unk70 << 0xC;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk2 = 1;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)((s32)param_1 + 0x20))->unk12 = v1 / 3;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x78;
|
||||
}
|
||||
|
||||
// @class: regalloc-order
|
||||
@@ -3611,15 +3611,15 @@ void func_80144880(s32 param_1)
|
||||
func_8001CB6C((u8 *)obj, (s32)&D_801884A4, 0x300, 0x1D0);
|
||||
b = 0x6A;
|
||||
}
|
||||
*(u8 *)(obj + 0x27) = (u8)b;
|
||||
*(s32 *)(obj + 4) = 0x60000000;
|
||||
*(u16 *)(obj + 0x10) = 0x400;
|
||||
*(u16 *)(obj + 8) = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
*(u16 *)(obj + 0xA) = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
((Unkstruct_800B5CB8 *)obj)->unk27 = (u8)b;
|
||||
CAST_WIDTH(s32, obj, 4) = 0x60000000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk10 = 0x400;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk8 = *(u16 *)(*(s32 *)(self + 0x64) + 6);
|
||||
((Unkstruct_800B5CB8 *)obj)->unkA = *(u16 *)(*(s32 *)(self + 0x64) + 0xA);
|
||||
e = *(u16 *)(*(s32 *)(self + 0x64) + 0xE);
|
||||
*(u16 *)(obj + 0x1A) = 0x4000;
|
||||
*(u16 *)(obj + 0x18) = 0x4000;
|
||||
*(u16 *)(obj + 0xC) = (u16)e;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk1A = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unk18 = 0x4000;
|
||||
((Unkstruct_800B5CB8 *)obj)->unkC = (u16)e;
|
||||
*(s16 *)(self + 2) = *(s16 *)(self + 2) + 1;
|
||||
}
|
||||
}
|
||||
@@ -3630,7 +3630,7 @@ extern void (*D_801884C0[])(void *);
|
||||
|
||||
void func_801449C8(void *a0)
|
||||
{
|
||||
D_801884C0[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
D_801884C0[((Unkstruct_80126B58 *)a0)->unk2](a0);
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80144A04.h"
|
||||
@@ -3639,7 +3639,7 @@ extern void (*D_801884C8[])(void *);
|
||||
|
||||
void func_80144A2C(void *a0)
|
||||
{
|
||||
D_801884C8[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
D_801884C8[((Unkstruct_80126B58 *)a0)->unk2](a0);
|
||||
}
|
||||
|
||||
#include "../shared/ov/func_80144A68.h"
|
||||
|
||||
@@ -1011,21 +1011,21 @@ void func_8012E9C0(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
if (*(short *)(param_1 + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
|
||||
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
|
||||
*(short *)(param_1 + 0x82) = 0;
|
||||
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
|
||||
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
|
||||
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
|
||||
}
|
||||
if (*(int *)(param_1 + 0x78) != 0) {
|
||||
iVar1 = *(short *)(param_1 + 0x60) *
|
||||
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
|
||||
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
|
||||
if (iVar1 < 1) {
|
||||
iVar1 = 1;
|
||||
}
|
||||
} else {
|
||||
iVar1 = *(short *)(param_1 + 0x60);
|
||||
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
|
||||
}
|
||||
func_8016AA50(param_1, iVar1);
|
||||
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
|
||||
@@ -1271,10 +1271,10 @@ extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern int D_80186EA4;
|
||||
|
||||
void func_8012FCC4(int param_1) {
|
||||
int v1 = *(int *)(param_1 + 0xC4);
|
||||
*(char *)(param_1 + 0xC1) = 8;
|
||||
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
|
||||
if (v1 & 2) {
|
||||
*(char *)(param_1 + 0xC1) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
|
||||
func_80131CA8(param_1, 3);
|
||||
return;
|
||||
}
|
||||
@@ -1282,20 +1282,20 @@ void func_8012FCC4(int param_1) {
|
||||
((void (*)(int, int))func_80131E00)(param_1, 1);
|
||||
return;
|
||||
}
|
||||
if (*(int *)(param_1 + 0xB4) & 0x100) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
|
||||
((void (*)(int))func_80131B14)(param_1);
|
||||
if (*(short *)(param_1 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
|
||||
((void (*)(int, int))func_80131E00)(param_1, 0xC);
|
||||
return;
|
||||
}
|
||||
if (func_80131A34(param_1, 4) != 0) {
|
||||
*(char *)(param_1 + 0xC2) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
|
||||
} else {
|
||||
*(short *)(param_1 + 0x98) = 0;
|
||||
*(char *)(param_1 + 0xC2) = 1;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
|
||||
}
|
||||
((void (*)(int, void *))func_8012B14C)(param_1, &D_80186EA4);
|
||||
*(int *)(param_1 + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
|
||||
func_80131CA8(param_1, 0x1C);
|
||||
return;
|
||||
}
|
||||
@@ -1425,12 +1425,12 @@ void func_80130D48(s32 arg0)
|
||||
s32 r;
|
||||
s32 ret;
|
||||
|
||||
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
|
||||
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
|
||||
if (val == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
|
||||
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
|
||||
ret = func_8012C658(0x33, 0, arg0);
|
||||
} else {
|
||||
switch (val & 0xFFFF0000) {
|
||||
@@ -1547,7 +1547,7 @@ void func_80130D48(s32 arg0)
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
*(u16 *)(ret + 0xA) -= 0x20;
|
||||
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1565,34 +1565,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
|
||||
extern u8 D_80186E80[];
|
||||
|
||||
func_80131B14();
|
||||
*(u8 *)(((u8 *)p) + 0xC2) = 0;
|
||||
*(u8 *)(((u8 *)p) + 0xC3) = 0;
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
if (((u8 *)b) == 0) {
|
||||
((u8 *)b) = D_80186E80;
|
||||
}
|
||||
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
|
||||
*(s32 *)(((u8 *)p) + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
|
||||
if (c != 0) {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
} else {
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
|
||||
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
|
||||
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
|
||||
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
|
||||
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
|
||||
} else {
|
||||
*(s16 *)(((u8 *)p) + 0x98) = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
|
||||
}
|
||||
}
|
||||
tail:
|
||||
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
|
||||
return;
|
||||
}
|
||||
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
|
||||
@@ -1742,12 +1742,12 @@ void func_80131340(s32 a0)
|
||||
s32 temp;
|
||||
s32 var_a1;
|
||||
|
||||
if (*(s16 *)(a0 + 0xA) >= 0x10) {
|
||||
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
|
||||
func_801319E0(a0);
|
||||
return;
|
||||
}
|
||||
|
||||
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
|
||||
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
|
||||
if (temp != 0) {
|
||||
sp10.vz = 0;
|
||||
sp10.vx = 0;
|
||||
@@ -1756,31 +1756,31 @@ void func_80131340(s32 a0)
|
||||
sp10 = D_80186FD4;
|
||||
}
|
||||
|
||||
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
|
||||
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
|
||||
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
|
||||
if (var_a1 == 0) {
|
||||
var_a1 = 0x50;
|
||||
}
|
||||
func_8012DBD0(a0, var_a1,
|
||||
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
|
||||
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
|
||||
}
|
||||
|
||||
switch (*(u8 *)(a0 + 0xC2)) {
|
||||
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
if (*(u8 *)(a0 + 0xC2) == 0) {
|
||||
*(u8 *)(a0 + 0xC2) = 1;
|
||||
sp18.vx = *(u16 *)(a0 + 0x3A);
|
||||
sp18.vy = *(u16 *)(a0 + 0x3E);
|
||||
sp18.vz = *(u16 *)(a0 + 0x42);
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
|
||||
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
|
||||
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
|
||||
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
|
||||
sp20 = sp18;
|
||||
sp20.vx += sp10.vx;
|
||||
sp20.vy += sp10.vy;
|
||||
@@ -1790,82 +1790,82 @@ void func_80131340(s32 a0)
|
||||
sp20.vx -= sp10.vx;
|
||||
sp20.vy -= sp10.vy;
|
||||
sp20.vz -= sp10.vz;
|
||||
*(u16 *)(a0 + 0x3A) = sp20.vx;
|
||||
*(u16 *)(a0 + 0x3E) = sp20.vy;
|
||||
*(u16 *)(a0 + 0x42) = sp20.vz;
|
||||
*(u16 *)(a0 + 0x6) = sp20.vx;
|
||||
*(u16 *)(a0 + 0xA) = sp20.vy;
|
||||
*(u16 *)(a0 + 0xE) = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
|
||||
}
|
||||
D_801D94A8 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801D94A8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801D94A8 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801D94A8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801D94A8) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
func_80143B6C(a0, 1);
|
||||
*(s32 *)(a0 + 0x14) = 0xFFF30000;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
} else if (D_801D94A8 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 2;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (*(s32 *)(a0 + 0xC4) & 4) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
D_801D94AC = *(s32 *)(a0 + 0x14);
|
||||
D_801D94AC = ((Unkstruct_800B5CB8 *)a0)->unk14;
|
||||
D_801D94A8 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
|
||||
if (D_801D94A8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801D94A8 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
} else if (D_801D94A8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801D94A8) == 1) {
|
||||
return;
|
||||
}
|
||||
func_80143B6C(a0, 1);
|
||||
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
|
||||
*(s32 *)(a0 + 0x14) = (-D_801D94AC) / 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_801D94AC) / 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
} else if (D_801D94A8 & 0x8000) {
|
||||
*(u8 *)(a0 + 0xC2) = 3;
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
|
||||
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
|
||||
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
|
||||
if (*(u8 *)(a0 + 0xC3) & 1) {
|
||||
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
|
||||
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
|
||||
D_801D94A8 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801D94A8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (func_80131D68(a0, D_801D94A8) == 1) {
|
||||
return;
|
||||
@@ -1877,28 +1877,28 @@ void func_80131340(s32 a0)
|
||||
} else {
|
||||
D_801D94A8 = ((s32 (*)(s32))func_8012CBF4)(a0);
|
||||
if (D_801D94A8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801D94A8 & 0x4000) {
|
||||
func_8012B23C(a0);
|
||||
*(u8 *)(a0 + 0xC2) = 4;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
|
||||
break;
|
||||
} else if (D_801D94A8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801D94A8) == 1) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)(a0 + 0xC3) |= 1;
|
||||
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
|
||||
} else if (D_801D94A8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
}
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) < 0x11) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
|
||||
break;
|
||||
}
|
||||
if (!(D_801D94A8 & 0x6000)) {
|
||||
@@ -1906,7 +1906,7 @@ void func_80131340(s32 a0)
|
||||
return;
|
||||
}
|
||||
/* polarity MUST match case 4's — see the cross-jump note in the header. */
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
@@ -1916,24 +1916,24 @@ void func_80131340(s32 a0)
|
||||
case 4:
|
||||
D_801D94A8 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if (D_801D94A8 & 0x8000) {
|
||||
*(s32 *)(a0 + 0x18) = 0;
|
||||
*(s32 *)(a0 + 0x10) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x18) = 0;
|
||||
CAST_WIDTH(s32, a0, 0x10) = 0;
|
||||
}
|
||||
if (D_801D94A8 & 0x2000) {
|
||||
if (func_80131D68(a0, D_801D94A8) == 1) {
|
||||
return;
|
||||
}
|
||||
if (*(s16 *)(a0 + 0x76) <= 0) {
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
|
||||
func_80131E00(a0, 6);
|
||||
} else {
|
||||
func_80131C78(a0);
|
||||
}
|
||||
} else {
|
||||
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
|
||||
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
|
||||
func_80143B6C(a0, 1);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) += 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
|
||||
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
|
||||
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
|
||||
func_80131E00(a0, 0xD);
|
||||
return;
|
||||
}
|
||||
@@ -1996,47 +1996,47 @@ void func_80131B14(void) {
|
||||
extern void func_8002A790(void *);
|
||||
extern u8 D_80186FDC;
|
||||
|
||||
s32 e = *(u8 *)(p + 0x5E);
|
||||
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
|
||||
|
||||
if (*(s16 *)(p + 0x60) != 0) {
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
|
||||
if (e == 0x1D) {
|
||||
*(s16 *)(p + 0x82) = 0;
|
||||
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
|
||||
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
|
||||
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
|
||||
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
|
||||
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
|
||||
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
|
||||
}
|
||||
{
|
||||
s32 dec;
|
||||
s32 q = *(s32 *)(p + 0x78);
|
||||
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
|
||||
if (q != 0) {
|
||||
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
|
||||
if (dec <= 0) dec = 1;
|
||||
}
|
||||
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
|
||||
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
|
||||
}
|
||||
((void (*)(void *))func_8016AA50)(p);
|
||||
if (*(u16 *)(p + 0x82) & 1) {
|
||||
if (CAST_SIGN(u16, p, 0x82) & 1) {
|
||||
((void (*)(void *))func_8016B428)(p);
|
||||
((void(*)(void *))func_80019064)(&D_80186FDC);
|
||||
}
|
||||
}
|
||||
|
||||
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
|
||||
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
|
||||
|
||||
if (e != 0x1D) {
|
||||
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
|
||||
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
|
||||
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
|
||||
}
|
||||
|
||||
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
|
||||
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
|
||||
|
||||
{
|
||||
s32 r = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
|
||||
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
|
||||
{
|
||||
s32 r2 = *(s32 *)(p + 0x20);
|
||||
*(s16 *)(r2 + 0x14) = 0;
|
||||
*(s16 *)(r2 + 0x10) = 0;
|
||||
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
|
||||
CAST_WIDTH(s16, r2, 0x14) = 0;
|
||||
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2125,13 +2125,13 @@ struct S80131E00;
|
||||
extern void (*D_80187044[])(void);
|
||||
|
||||
void func_80131EEC(void *a0) {
|
||||
D_80187044[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_80187044[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
extern void (*D_8018708C[])(void);
|
||||
|
||||
void func_80131F28(void *a0) {
|
||||
D_8018708C[*(u16 *)((s32)a0 + 0x2)]();
|
||||
D_8018708C[((Unkstruct_80126B58 *)a0)->unk2]();
|
||||
}
|
||||
|
||||
extern void (*D_80187094[])(void);
|
||||
|
||||
Reference in New Issue
Block a user