T3: batch t3_S46 — restruct: batch t3_S46 rung S — 50 files (TUs; 832 drawable) · 441 bodies: 963 sites → members / 66 kept / 253 skipped · levers off 0 · compiles 292 in 124 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) · 367275 cast sites in 52294 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:
Drew T
2026-10-01 23:54:33 -06:00
parent ce4080f3b0
commit 9c160cdb5d
49 changed files with 2892 additions and 1374 deletions
+147 -147
View File
@@ -1,7 +1,7 @@
{
"head": "f0bd054100",
"head": "a4ff4dd94d",
"stamp": "588cbf38c6e4",
"generated": "2026-10-01 23:33",
"generated": "2026-10-01 23:44",
"aliases": [
"main",
"md_SC07_004",
@@ -21,175 +21,175 @@
"main": {
"objects": 85,
"identical": 85,
"seconds": 6.946999999999999,
"mean_s": 0.082
"seconds": 7.881,
"mean_s": 0.093
},
"md_SC07_004": {
"objects": 1,
"identical": 1,
"seconds": 0.495,
"mean_s": 0.495
"seconds": 0.485,
"mean_s": 0.485
},
"ov_SC03_015": {
"objects": 32,
"identical": 32,
"seconds": 5.0329999999999995,
"mean_s": 0.157
"seconds": 4.9810000000000025,
"mean_s": 0.156
},
"ov_SC04_011": {
"objects": 28,
"identical": 28,
"seconds": 4.279,
"mean_s": 0.153
"seconds": 4.234000000000001,
"mean_s": 0.151
}
},
"per_object_seconds": {
"build/src/800.o": 0.743,
"build/src/800_b.o": 0.087,
"build/src/800_b_2.o": 0.321,
"build/src/800_b_o0a.o": 0.072,
"build/src/800_c.o": 0.208,
"build/src/800b2.o": 0.074,
"build/src/apicard1.o": 0.096,
"build/src/apicard2.o": 0.075,
"build/src/apicard3.o": 0.067,
"build/src/apicard4.o": 0.074,
"build/src/apicard5.o": 0.067,
"build/src/apicard6.o": 0.077,
"build/src/apicard7.o": 0.075,
"build/src/boot.o": 0.082,
"build/src/gap.o": 0.084,
"build/src/libapi1.o": 0.077,
"build/src/libapi2.o": 0.06,
"build/src/libc2_1.o": 0.062,
"build/src/libc2_2.o": 0.068,
"build/src/libcd1.o": 0.07,
"build/src/libcd2.o": 0.062,
"build/src/libetc.o": 0.063,
"build/src/libgpu.o": 0.07,
"build/src/libgpu2.o": 0.079,
"build/src/libgs1.o": 0.062,
"build/src/libgs2.o": 0.067,
"build/src/libgs3.o": 0.062,
"build/src/libgs4.o": 0.073,
"build/src/libgs5.o": 0.067,
"build/src/libgs6.o": 0.078,
"build/src/libgs7.o": 0.06,
"build/src/libgs8.o": 0.061,
"build/src/libgte1.o": 0.064,
"build/src/libgte10.o": 0.056,
"build/src/libgte11.o": 0.056,
"build/src/libgte12.o": 0.069,
"build/src/libgte13.o": 0.065,
"build/src/libgte14.o": 0.065,
"build/src/libgte15.o": 0.059,
"build/src/800.o": 0.7,
"build/src/800_b.o": 0.149,
"build/src/800_b_2.o": 0.305,
"build/src/800_b_o0a.o": 0.13,
"build/src/800_c.o": 0.16,
"build/src/800b2.o": 0.09,
"build/src/apicard1.o": 0.119,
"build/src/apicard2.o": 0.111,
"build/src/apicard3.o": 0.082,
"build/src/apicard4.o": 0.189,
"build/src/apicard5.o": 0.182,
"build/src/apicard6.o": 0.172,
"build/src/apicard7.o": 0.178,
"build/src/boot.o": 0.074,
"build/src/gap.o": 0.18,
"build/src/libapi1.o": 0.189,
"build/src/libapi2.o": 0.087,
"build/src/libc2_1.o": 0.096,
"build/src/libc2_2.o": 0.095,
"build/src/libcd1.o": 0.086,
"build/src/libcd2.o": 0.09,
"build/src/libetc.o": 0.069,
"build/src/libgpu.o": 0.077,
"build/src/libgpu2.o": 0.108,
"build/src/libgs1.o": 0.063,
"build/src/libgs2.o": 0.073,
"build/src/libgs3.o": 0.069,
"build/src/libgs4.o": 0.072,
"build/src/libgs5.o": 0.083,
"build/src/libgs6.o": 0.086,
"build/src/libgs7.o": 0.074,
"build/src/libgs8.o": 0.074,
"build/src/libgte1.o": 0.067,
"build/src/libgte10.o": 0.073,
"build/src/libgte11.o": 0.063,
"build/src/libgte12.o": 0.064,
"build/src/libgte13.o": 0.069,
"build/src/libgte14.o": 0.068,
"build/src/libgte15.o": 0.064,
"build/src/libgte16.o": 0.066,
"build/src/libgte17.o": 0.064,
"build/src/libgte18.o": 0.081,
"build/src/libgte19.o": 0.061,
"build/src/libgte2.o": 0.069,
"build/src/libgte20.o": 0.065,
"build/src/libgte21.o": 0.063,
"build/src/libgte22.o": 0.067,
"build/src/libgte17.o": 0.06,
"build/src/libgte18.o": 0.071,
"build/src/libgte19.o": 0.08,
"build/src/libgte2.o": 0.063,
"build/src/libgte20.o": 0.073,
"build/src/libgte21.o": 0.07,
"build/src/libgte22.o": 0.073,
"build/src/libgte23.o": 0.064,
"build/src/libgte24.o": 0.063,
"build/src/libgte25.o": 0.078,
"build/src/libgte26.o": 0.066,
"build/src/libgte27.o": 0.085,
"build/src/libgte28.o": 0.067,
"build/src/libgte29.o": 0.06,
"build/src/libgte3.o": 0.064,
"build/src/libgte24.o": 0.066,
"build/src/libgte25.o": 0.066,
"build/src/libgte26.o": 0.075,
"build/src/libgte27.o": 0.065,
"build/src/libgte28.o": 0.061,
"build/src/libgte29.o": 0.065,
"build/src/libgte3.o": 0.069,
"build/src/libgte30.o": 0.067,
"build/src/libgte4.o": 0.063,
"build/src/libgte5.o": 0.065,
"build/src/libgte6.o": 0.064,
"build/src/libgte7.o": 0.063,
"build/src/libgte8.o": 0.064,
"build/src/libgte9.o": 0.073,
"build/src/libmcrd1.o": 0.08,
"build/src/libmcrd2.o": 0.066,
"build/src/libpad1.o": 0.074,
"build/src/libpad2.o": 0.065,
"build/src/sgap.o": 0.061,
"build/src/sgap_2.o": 0.066,
"build/src/sgap_3.o": 0.069,
"build/src/sgap_4.o": 0.07,
"build/src/sgap_5.o": 0.069,
"build/src/sgap_6.o": 0.061,
"build/src/sgap_8.o": 0.109,
"build/src/libgte4.o": 0.072,
"build/src/libgte5.o": 0.062,
"build/src/libgte6.o": 0.061,
"build/src/libgte7.o": 0.068,
"build/src/libgte8.o": 0.058,
"build/src/libgte9.o": 0.071,
"build/src/libmcrd1.o": 0.074,
"build/src/libmcrd2.o": 0.064,
"build/src/libpad1.o": 0.066,
"build/src/libpad2.o": 0.069,
"build/src/sgap.o": 0.062,
"build/src/sgap_2.o": 0.063,
"build/src/sgap_3.o": 0.064,
"build/src/sgap_4.o": 0.081,
"build/src/sgap_5.o": 0.063,
"build/src/sgap_6.o": 0.069,
"build/src/sgap_8.o": 0.075,
"build/src/snd1.o": 0.075,
"build/src/snd10.o": 0.067,
"build/src/snd11.o": 0.066,
"build/src/snd12.o": 0.065,
"build/src/snd2.o": 0.075,
"build/src/snd3.o": 0.072,
"build/src/snd4.o": 0.068,
"build/src/snd5.o": 0.069,
"build/src/snd6.o": 0.079,
"build/src/snd10.o": 0.068,
"build/src/snd11.o": 0.059,
"build/src/snd12.o": 0.067,
"build/src/snd2.o": 0.068,
"build/src/snd3.o": 0.065,
"build/src/snd4.o": 0.075,
"build/src/snd5.o": 0.065,
"build/src/snd6.o": 0.068,
"build/src/snd7.o": 0.068,
"build/src/snd8.o": 0.063,
"build/src/snd9.o": 0.071,
"build/src/md_SC07_004/md_SC07_004.o": 0.495,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.145,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.533,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.396,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.076,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.07,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.133,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.177,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.132,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.091,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.083,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.2,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.093,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.182,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.112,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.078,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.076,
"build/src/snd8.o": 0.059,
"build/src/snd9.o": 0.068,
"build/src/md_SC07_004/md_SC07_004.o": 0.485,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.142,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.499,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.393,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.069,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.069,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.14,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.166,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.144,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.1,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.084,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.206,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.087,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.194,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.107,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.071,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.087,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.107,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.469,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.283,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.116,
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.201,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.463,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.27,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.115,
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.21,
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.071,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.114,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.075,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.185,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.201,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.068,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.287,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.064,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.063,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.066,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.086,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.136,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.436,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.37,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.059,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.058,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.137,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.149,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.113,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.076,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.17,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.206,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.067,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.278,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.053,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.07,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.07,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.084,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.14,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.435,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.361,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.062,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.062,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.132,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.14,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.126,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.083,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.068,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.194,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.072,
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.177,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.089,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.073,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.184,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.089,
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.171,
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.107,
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.077,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.084,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.1,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.373,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.227,
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.114,
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.176,
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.076,
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.109,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.074,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.106,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.47,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.056,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.065
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.076,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.087,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.105,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.358,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.217,
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.104,
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.171,
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.074,
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.106,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.082,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.12,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.434,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.062,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.067
},
"ok": true,
"seconds": 2.1
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -1,17 +1,17 @@
type_census — 2026-10-02T05:41:06Z at f0bd054100 (src stamp 231e3e89d338671e, tool e17c5fa676); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 63.0 s, total 225.6 s
type_census — 2026-10-02T05:52:01Z at a4ff4dd94d (src stamp d917ee1e09bc532c, tool e17c5fa676); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 46.8 s, total 207.3 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 368376 = P 284707 + I 54567 + X 13790 + M 15312 (+ A address-of 18889; + C typed cast-member 145477) in 52422 bodies · coverage OK (raw {'P': 284707, 'I': 54567, 'X': 13790, 'A': 18889, 'C': 145477, 'M': 15312, 'K': 19208}) · refused 0 · absolute 0 · readability regex over raw text 287544
by base: param 178372 · local 126825 · gaddr 40113 · nested 11215 · global 8738 · other 1614 · addr-of 1338 · ident 161
by width: s2 105478 · s4 99537 · u2 91996 · u1 36123 · agg 13415 · p4 11126 · u4 8795 · s1 1906
top bases: param_1(param) 58394 · arg0(param) 49147 · a0(param) 42581 · p(local) 13277 · cach(local) 8246 · buf(local) 7056 · s0(local) 6959 · p(param) 6673 · s1(local) 6482 · flag(local) 5453 · dst(local) 4853 · iVar2(local) 4714 · iVar1(local) 3811 · cur(local) 3375 · e(local) 3211 · src(local) 2599
CAST SITES deref 367275 = P 283739 + I 54504 + X 13790 + M 15242 (+ A address-of 18889; + C typed cast-member 146363) in 52294 bodies · coverage OK (raw {'P': 283739, 'I': 54504, 'X': 13790, 'A': 18889, 'C': 146363, 'M': 15242, 'K': 19346}) · refused 0 · absolute 0 · readability regex over raw text 286576
by base: param 177591 · local 126610 · gaddr 40113 · nested 11110 · global 8738 · other 1614 · addr-of 1338 · ident 161
by width: s2 105283 · s4 99052 · u2 91674 · u1 36101 · agg 13415 · p4 11113 · u4 8731 · s1 1906
top bases: param_1(param) 58284 · arg0(param) 48747 · a0(param) 42310 · p(local) 13262 · cach(local) 8246 · buf(local) 7056 · s0(local) 6947 · p(param) 6673 · s1(local) 6474 · flag(local) 5453 · dst(local) 4853 · iVar2(local) 4714 · iVar1(local) 3811 · cur(local) 3375 · e(local) 3211 · src(local) 2599
DECLARATIONS 99109 function definitions (1894 K&R) · 4279260 extern function declarations over 12088 names (3773 spelled >1 way) · 6426 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 18834 types explain 364455/368376 deref sites (98.9 %); unassigned 3921; 4006 types span ≥2 bodies (307988 sites), 14828 single-body; types with conflicts 855, suspect 11
merges by evidence {'param': 39434, 'return': 1532, 'assign&': 1270, 'assign': 19230, 'ret-of': 5699, 'arg': 10933, 'arg&': 275, 'field': 6995, 'nested': 9}; vetoed {'arg-conduit': 138512, 'assign-multisource': 33221, 'ret-of-multisource': 6622, 'assign&-multisource': 12223, 'arg&-conduit': 14638, 'arg&-no-overlap': 3406, 'field-multisource': 5696, 'ret-of': 606, 'assign': 361, 'arg-no-overlap': 38659, 'assign&': 336, 'arg': 136, 'return': 6, 'field': 32}
Unkstruct_80126B58 sites 27240 bodies 3566 fields 168 size≥0x24c width-conflicts 49 sign-mixed 52 merges {'param': 2188, 'arg': 1138, 'assign&': 104, 'assign': 43} at D_80126B58 ptr D_80126B58
Unkstruct_800B5CB8 sites 21637 bodies 4551 fields 128 size≥0x10c width-conflicts 50 sign-mixed 57 merges {'param': 9116, 'assign': 8578, 'arg': 6956, 'ret-of': 2395} at D_800B5CB8,D_800D3888,D_80181448 ptr D_8006386C,D_80074778,D_80074780
STRUCT MAP 18717 types explain 363354/367275 deref sites (98.9 %); unassigned 3921; 3986 types span ≥2 bodies (306917 sites), 14731 single-body; types with conflicts 845, suspect 12
merges by evidence {'param': 39398, 'arg': 11006, 'assign': 19214, 'assign&': 1266, 'ret-of': 5743, 'return': 1534, 'arg&': 282, 'field': 6954, 'nested': 9}; vetoed {'arg-conduit': 138911, 'assign-multisource': 33225, 'arg&-no-overlap': 3411, 'arg&-conduit': 14638, 'arg-no-overlap': 32108, 'field-multisource': 5694, 'assign&-multisource': 12223, 'ret-of-multisource': 6622, 'assign': 317, 'ret-of': 454, 'assign&': 340, 'arg': 227, 'return': 6, 'field': 96}
Unkstruct_80126B58 sites 26390 bodies 3095 fields 169 size≥0x24c width-conflicts 49 sign-mixed 53 merges {'param': 2208, 'arg': 1148, 'assign&': 104, 'assign': 43} at D_80126B58 ptr D_80126B58
Unkstruct_800B5CB8 sites 21997 bodies 4752 fields 128 size≥0x10c width-conflicts 50 sign-mixed 56 merges {'param': 9372, 'assign': 8591, 'arg': 7195, 'ret-of': 2603} at D_800B5CB8,D_800D3888,D_80180FC4 ptr D_8006386C,D_80074778,D_80074780
Unkstruct_cb638a45 sites 6477 bodies 381 fields 6 size≥0x10 width-conflicts 0 sign-mixed 0 merges {'param': 12, 'arg': 5}
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}
@@ -21,13 +21,13 @@ STRUCT MAP 18834 types explain 364455/368376 deref sites (98.9 %); unassigned
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_80126948 sites 3034 bodies 848 fields 34 size≥0xa4 width-conflicts 0 sign-mixed 10 merges {'assign': 103, 'arg': 14, 'param': 6, 'assign&': 4} at D_80126948,D_80126E60 ptr D_80114EE8,D_801151D4,D_80126948
GLOBAL BLOCKS 2124 runs of ≥4 adjacent scalar D_ symbols (14253 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)
Unkstruct_80126948 sites 3034 bodies 848 fields 34 size≥0xa4 width-conflicts 0 sign-mixed 10 merges {'assign': 103, 'arg': 15, 'param': 6, 'assign&': 4} at D_80126948,D_80126E60 ptr D_80114EE8,D_801151D4,D_80126948
GLOBAL BLOCKS 2124 runs of ≥4 adjacent scalar D_ symbols (14250 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)
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 | OtBlk[]:9 | u8[]: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) · 368376 cast sites in 52422 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: 18834 types over 18834 clusters explain 364455/368376 sites (98.9 %); 3921 unassigned sites; 855 types with conflicts
type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 367275 cast sites in 52294 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: 18717 types over 18717 clusters explain 363354/367275 sites (98.9 %); 3921 unassigned sites; 845 types with conflicts
+10 -10
View File
@@ -3719,8 +3719,8 @@ void func_8017EAD4(void *param_1)
func_8017EFB4(param_1);
ptr = func_8014C168(&D_80126B58, 0x3D);
*(s16 *)&D_801274E8 = *(u16 *)(ptr + 6);
D_801274EC = *(u16 *)(ptr + 0xE);
*(s16 *)&D_801274E8 = ((Unkstruct_800B5CB8 *)ptr)->unk6;
D_801274EC = ((Unkstruct_800B5CB8 *)ptr)->unkE;
func_8017EDF8(param_1, &D_801274E8);
}
@@ -3790,9 +3790,9 @@ void func_8017ECAC(void *param_1)
*(u16 *)((u8 *)param_1 + 0x1A) = v;
*(u16 *)((u8 *)param_1 + 0x22) = v;
ptr = func_8014C168(&D_80126B58, 0x3D);
*(s16 *)&D_801274E8 = *(u16 *)(ptr + 6);
D_801274EA = *(u16 *)(ptr + 0xA);
D_801274EC = *(u16 *)(ptr + 0xE);
*(s16 *)&D_801274E8 = ((Unkstruct_800B5CB8 *)ptr)->unk6;
D_801274EA = ((Unkstruct_800B5CB8 *)ptr)->unkA;
D_801274EC = CAST_ALIAS(u16, ptr, 0xE);
func_8017EDF8(param_1, &D_801274E8);
}
@@ -4951,10 +4951,10 @@ void func_8018074C(s32 arg0)
switch (t) {
case 0:
case 1:
diff = D_801944F8[t][0] - *(u16 *)(v + 0xE);
diff = D_801944F8[t][0] - ((Unkstruct_800B5CB8 *)v)->unkE;
break;
case 2:
diff = D_8019451C - *(u16 *)(v + 6);
diff = D_8019451C - ((Unkstruct_800B5CB8 *)v)->unk6;
break;
}
d = diff;
@@ -5350,9 +5350,9 @@ extern s16 D_801E4C52;
extern s16 D_801E4C54;
void func_80181270(s32 a0) {
s32 v0 = func_8014C168(a0, 0x42);
D_801E4C50 = *(u16 *)(v0 + 0x6);
D_801E4C52 = *(u16 *)(v0 + 0xA);
D_801E4C54 = *(u16 *)(v0 + 0xE);
D_801E4C50 = ((Unkstruct_800B5CB8 *)v0)->unk6;
D_801E4C52 = CAST_ALIAS(u16, v0, 0xA);
D_801E4C54 = CAST_ALIAS(u16, v0, 0xE);
}
+6 -6
View File
@@ -4596,8 +4596,8 @@ void func_80190144(void *a0) {
idx = *(s32 *)((s32)a0 + 0x2C);
func_8001CBDC((s32)s1, (s32)D_80196D94, D_80196D30[idx][0], D_80196D30[idx][1]);
uVar1 = D_80196D5C[*(s32 *)((s32)a0 + 0x2C)];
*(s16 *)((s32)s1 + 0x2C) = 3;
*(u8 *)((s32)s1 + 0x27) = uVar1;
((Unkstruct_800B5CB8 *)s1)->unk2C = 3;
((Unkstruct_800B5CB8 *)s1)->unk27 = uVar1;
*(s16 *)((s32)a0 + 0x6) = 0;
*(s16 *)((s32)a0 + 0xA) = 0x50;
@@ -4774,11 +4774,11 @@ void func_80190538(s32 arg0) {
if (D_801270C8 < 0x1B) {
s32 dx, dz, q;
dx = *(s16 *)(t + 6) - *(s16 *)(s0 + 6);
dx = CAST_SIGN(s16, t, 6) - *(s16 *)(s0 + 6);
d.vx = dx;
v.vx = dx;
q = *(s16 *)(s0 + 0xE) + 0x180;
dz = *(s16 *)(t + 0xE) - q;
dz = CAST_SIGN(s16, t, 0xE) - q;
d.vz = dz;
v.vz = dz;
if (dx < 0) d.vx = -dx;
@@ -4797,11 +4797,11 @@ void func_80190538(s32 arg0) {
} else {
s32 dx, dz, q;
dz = *(s16 *)(t + 0xE) - *(s16 *)(s0 + 0xE);
dz = CAST_SIGN(s16, t, 0xE) - *(s16 *)(s0 + 0xE);
d.vz = dz;
v.vz = dz;
q = *(s16 *)(s0 + 6) - 0x180;
dx = *(s16 *)(t + 6) - q;
dx = CAST_SIGN(s16, t, 6) - q;
d.vx = dx;
v.vx = dx;
if (dx < 0) d.vx = -dx;
+2 -2
View File
@@ -3463,8 +3463,8 @@ s32 func_8017F434(s32 a0) {
sp10.vx = D_80126B5E;
sp10.vy = D_80126B62;
sp10.vz = D_80126B66;
sp18.vx = *(u16 *)(a0 + 6);
sp18.vy = *(u16 *)(a0 + 0xA);
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk6;
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unkA;
sp18.vz = 0;
sp20.vx = D_80126B5E;
sp20.vy = D_80126B62;
+16 -16
View File
@@ -3228,10 +3228,10 @@ extern s32 func_8012E57C(s32 a0, s32 a1);
void func_80188A14(void *a0, s32 a1, s32 a2) {
s32 v1 = func_8012E57C(0x61, (s32)(s16)a1);
if (v1 != 0) {
s32 v0 = *(s32 *)((char *)v1 + 0xCC);
s32 v0 = ((Unkstruct_800B5CB8 *)v1)->unkCC;
if (v0 == 0) {
*(s32 *)((char *)v1 + 0xCC) = a2;
*(s32 *)((char *)v1 + 0xD0) = (s32)a0;
((Unkstruct_800B5CB8 *)v1)->unkCC = a2;
((Unkstruct_800B5CB8 *)v1)->unkD0 = (s32)a0;
}
}
}
@@ -3254,14 +3254,14 @@ void func_80188A78(s32 a0, s32 a1, s32 a2) {
if (v1 == 0) {
return;
}
if (*(s32 *)((char *)v1 + 0xCC) != s0) {
if (((Unkstruct_800B5CB8 *)v1)->unkCC != s0) {
return;
}
if (*(s32 *)((char *)v1 + 0xD0) != s1) {
if (((Unkstruct_800B5CB8 *)v1)->unkD0 != s1) {
return;
}
*(s32 *)((char *)v1 + 0xCC) = 0;
*(s32 *)((char *)v1 + 0xD0) = 0;
((Unkstruct_800B5CB8 *)v1)->unkCC = 0;
((Unkstruct_800B5CB8 *)v1)->unkD0 = 0;
}
@@ -3272,8 +3272,8 @@ extern s32 func_8012E57C(s32 a0, s32 a1);
void func_80188AEC(s32 a0, s32 a1) {
s32 v1 = func_8012E57C(0x61, (s32)(s16)a0);
if (v1 != 0) {
if (*(s16 *)(v1 + 0x10A) < a1) {
*(s16 *)(v1 + 0x10A) = a1;
if (((Unkstruct_800B5CB8 *)v1)->unk10A < a1) {
((Unkstruct_800B5CB8 *)v1)->unk10A = a1;
}
}
}
@@ -3283,7 +3283,7 @@ void func_80188AEC(s32 a0, s32 a1) {
extern void (*D_801C0E1C[])(void);
void func_80188B44(void *a0) {
D_801C0E1C[*(u16 *)((s32)a0 + 0x2)]();
D_801C0E1C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3465,13 +3465,13 @@ s32 func_80188D68(void *a0) {
p = D_801202A0;
end = p + 0x6480;
for (; p != end; p += 0x10C) {
tag = *(u16 *)p;
tag = ((Unkstruct_800B5CB8 *)p)->unk0;
if (tag != 0 && tag != 0x61 && func_80188E74((s32)p) != 0) {
t = *(s32 *)(p + 0x20);
if (t != 0 && *(s32 *)(t + 0x24) != 0 && *(s32 *)(t + 0x4) >= 0) {
in[0] = *(u16 *)(p + 0x6);
in[1] = *(u16 *)(p + 0xA);
in[2] = *(u16 *)(p + 0xE);
t = ((Unkstruct_800B5CB8 *)p)->unk20;
if (t != 0 && CAST_WIDTH(s32, t, 0x24) != 0 && CAST_WIDTH(s32, t, 0x4) >= 0) {
in[0] = ((Unkstruct_800B5CB8 *)p)->unk6;
in[1] = ((Unkstruct_800B5CB8 *)p)->unkA;
in[2] = ((Unkstruct_800B5CB8 *)p)->unkE;
func_8012F2E8((s32)a0, (s32)in, (s32)out);
if (func_8012CB64((s32)out, -0xA0, 0x80, -0xC0, 0x80) != 0) {
return 1;
+7 -7
View File
@@ -3248,8 +3248,8 @@ extern s32 func_80171990(u8 *a0);
void func_8017E9CC(u8 *a0) {
s32 v0;
func_8017EC64((s32)a0);
v0 = *(s32 *)(a0 + 0x200) - 1;
*(s32 *)(a0 + 0x200) = v0;
v0 = ((Unkstruct_80126B58 *)a0)->unk200 - 1;
((Unkstruct_80126B58 *)a0)->unk200 = v0;
if (v0 == -1) {
func_80171990(a0);
}
@@ -3268,7 +3268,7 @@ extern s32 func_80171990(u8 *a0);
void func_8017EA10(void *a0) {
if (D_8018FB78 == 0) {
if (func_8017EC64(a0) < 0x190) {
*(s32 *)((s32)a0 + 0x198) = func_8013767C(&D_801830B0);
((Unkstruct_80126B58 *)a0)->unk198 = func_8013767C(&D_801830B0);
func_80154274((s32 *)a0, &D_80182D58);
func_80147324(0x7E7);
func_80171990((u8 *)a0);
@@ -3281,8 +3281,8 @@ extern s32 func_8017EC64(s32 arg0);
void func_8017EA88(u8 *a0) {
if (func_8017EC64(a0) == 0x12C) {
if (*(u16 *)(a0 + 0xB8) & 0x8000) {
*(u16 *)(a0 + 0xB8) = *(u16 *)(a0 + 0xBA);
if (((Unkstruct_80126B58 *)a0)->unkB8 & 0x8000) {
((Unkstruct_80126B58 *)a0)->unkB8 = ((Unkstruct_80126B58 *)a0)->unkBA;
func_80171990(a0);
}
}
@@ -3360,7 +3360,7 @@ s32 arg0;
{
s32 *ptr = (s32 *) D_801151D4;
*(s32 *) (arg0 + 0x204) += 0x30000;
((Unkstruct_80126B58 *)arg0)->unk204 += 0x30000;
ptr[4] -= *(s16 *) (arg0 + 0x206);
ptr[5] = ptr[4];
if (ptr[4] < 0x12C) {
@@ -3574,7 +3574,7 @@ s32 func_8017F198(void) {
extern void (*D_80182FC8[])(void);
void func_8017F1A0(void *a0) {
D_80182FC8[*(u16 *)((s32)a0 + 0x2)]();
D_80182FC8[((Unkstruct_80126B58 *)a0)->unk2]();
}
+35 -35
View File
@@ -2863,36 +2863,36 @@ void func_8017FAA8(s32 param_1) {
s32 *p = (s32 *)D_801151D4;
SV3_8017FAA8 sv;
SV3_8017FAA8 *svp;
switch (*(u16 *)(param_1 + 0x34)) {
switch (((Unkstruct_800B5CB8 *)param_1)->unk34) {
case 0:
break;
case 1:
for (i = 0; i < 0x30; i++) {
ptr = (s32 *)func_80143C74(param_1, 0);
if (ptr != 0) {
*(s32 *)(ptr + 4) = (rand() - 0x4000) * 0x10;
CAST_WIDTH(s32, ptr, 4) = (rand() - 0x4000) * 0x10;
CAST_MISALIGNED(s32, ptr, 6) = (rand() - 0x4000) * 0x10;
*(u16 *)((s32)ptr + 0x16) = -(rand() & 0x1F);
CAST_MISALIGNED(s32, ptr, 0x12) = -(CAST_MISALIGNED(s32, ptr, 5) >> 4);
sv.x = p[0x17] - *(s16 *)((s32)ptr + 6);
sv.y = p[0x18] - *(s16 *)((s32)ptr + 0xA);
sv.z = p[0x19] - *(s16 *)((s32)ptr + 0xE);
sv.x = p[0x17] - CAST_SIGN(s16, (s32)ptr, 6);
sv.y = p[0x18] - CAST_SIGN(s16, (s32)ptr, 0xA);
sv.z = p[0x19] - CAST_SIGN(s16, (s32)ptr, 0xE);
svp = &sv;
VectorNormalSS(svp, svp);
*(s16 *)((s32)ptr + 6) += sv.x >> 6;
*(s16 *)((s32)ptr + 0xA) += sv.y >> 6;
*(s16 *)((s32)ptr + 0xE) += sv.z >> 6;
CAST_SIGN(s16, (s32)ptr, 6) += sv.x >> 6;
CAST_SIGN(s16, (s32)ptr, 0xA) += sv.y >> 6;
CAST_SIGN(s16, (s32)ptr, 0xE) += sv.z >> 6;
}
}
*(s32 *)(param_1 + 0x1C) = 4;
*(s16 *)(param_1 + 0x34) += 1;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 4;
CAST_SIGN(s16, param_1, 0x34) += 1;
func_8002D4C8(0x9E2, 0);
break;
case 2:
if (--*(s32 *)(param_1 + 0x1C) == 0) {
func_8001C214(*(s32 *)(param_1 + 0x20), (s32)&D_801A8C34);
if (--((Unkstruct_800B5CB8 *)param_1)->unk1C == 0) {
func_8001C214(((Unkstruct_800B5CB8 *)param_1)->unk20, (s32)&D_801A8C34);
func_8012A828(param_1, &D_801AA66C);
*(s16 *)(param_1 + 0x34) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk34 = 0;
((void (*)(s32))func_8001AAA0)(0x62);
func_8002AC00(0x1C);
}
@@ -2901,37 +2901,37 @@ void func_8017FAA8(s32 param_1) {
for (i = 0; i < 0x30; i++) {
ptr = (s32 *)func_80143C74(param_1, 0);
if (ptr != 0) {
*(s32 *)(ptr + 4) = (rand() - 0x4000) * 0x10;
CAST_WIDTH(s32, ptr, 4) = (rand() - 0x4000) * 0x10;
CAST_MISALIGNED(s32, ptr, 6) = (rand() - 0x4000) * 0x10;
*(u16 *)((s32)ptr + 0x16) = -(rand() & 0x1F);
CAST_MISALIGNED(s32, ptr, 0x12) = -(CAST_MISALIGNED(s32, ptr, 5) >> 4);
sv.x = p[0x17] - *(s16 *)((s32)ptr + 6);
sv.y = p[0x18] - *(s16 *)((s32)ptr + 0xA);
sv.z = p[0x19] - *(s16 *)((s32)ptr + 0xE);
sv.x = p[0x17] - CAST_SIGN(s16, (s32)ptr, 6);
sv.y = p[0x18] - CAST_SIGN(s16, (s32)ptr, 0xA);
sv.z = p[0x19] - CAST_SIGN(s16, (s32)ptr, 0xE);
svp = &sv;
VectorNormalSS(svp, svp);
*(s16 *)((s32)ptr + 6) += sv.x >> 6;
*(s16 *)((s32)ptr + 0xA) += sv.y >> 6;
*(s16 *)((s32)ptr + 0xE) += sv.z >> 6;
CAST_SIGN(s16, (s32)ptr, 6) += sv.x >> 6;
CAST_SIGN(s16, (s32)ptr, 0xA) += sv.y >> 6;
CAST_SIGN(s16, (s32)ptr, 0xE) += sv.z >> 6;
func_8002D4C8(0x9E3, 0);
}
}
*(s32 *)(param_1 + 0x1C) = 4;
*(s16 *)(param_1 + 0x34) += 1;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 4;
CAST_SIGN(s16, param_1, 0x34) += 1;
break;
case 4:
if (--*(s32 *)(param_1 + 0x1C) == 0) {
if (--((Unkstruct_800B5CB8 *)param_1)->unk1C == 0) {
((void (*)(s32))func_8001AAA0)(0x63);
func_8001CA1C(*(s32 *)(param_1 + 0x20), (s32)&D_80184F80);
func_8001CA1C(((Unkstruct_800B5CB8 *)param_1)->unk20, (s32)&D_80184F80);
func_8012A828(param_1, &D_80184F8C);
*(s16 *)(param_1 + 0x34) += 1;
CAST_SIGN(s16, param_1, 0x34) += 1;
}
break;
case 8:
if (((s32 (*)(void))func_80174774)() != 0) {
*(s32 *)(*(s32 *)(param_1 + 0x20) + 4) |= 0x80000000;
*(s16 *)(param_1 + 0xE) = -0x600;
*(s16 *)(param_1 + 0x34) += 1;
*(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 4) |= 0x80000000;
CAST_ALIAS(s16, param_1, 0xE) = -0x600;
CAST_SIGN(s16, param_1, 0x34) += 1;
}
break;
}
@@ -2947,7 +2947,7 @@ void func_8017FAA8(s32 param_1) {
extern void (*D_801850F8[])(void);
void func_8017FE4C(void *a0) {
D_801850F8[*(u16 *)((s32)a0 + 0x2)]();
D_801850F8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2971,14 +2971,14 @@ void func_8017FE88(s32 arg0)
return;
}
*(u8 *)((s32)arg0 + 0xC0) = 1;
*(s32 *)((s32)arg0 + 0xB4) = -1;
((Unkstruct_800B5CB8 *)arg0)->unkC0 = 1;
((Unkstruct_800B5CB8 *)arg0)->unkB4 = -1;
func_80143970(arg0);
func_8012A828(arg0, &D_801A45A8);
(*(u16 *)((s32)arg0 + 0x2))++;
(CAST_SIGN(u16, (s32)arg0, 0x2))++;
func_8012B23C(arg0);
*(s32 *)((s32)arg0 + 0x1C) = 0x1E;
*(s32 *)((s32)arg0 + 0xD4) = (s32)arg0;
((Unkstruct_800B5CB8 *)arg0)->unk1C = 0x1E;
((Unkstruct_800B5CB8 *)arg0)->unkD4 = (s32)arg0;
}
@@ -3334,7 +3334,7 @@ void func_80180518(s32 a0) {
for (i = 0, p = D_801A5288; i < 8; i++, p += 8) {
hit = func_801290DC(0x20, p);
if (hit != 0) {
*(u16 *)(hit + 0x34) = i + 2;
((Unkstruct_800B5CB8 *)hit)->unk34 = i + 2;
}
}
+22 -22
View File
@@ -3165,7 +3165,7 @@ void func_80186A34(s32 arg0)
m = *(Mtx32_80186A34 *)&D_800AE620;
RotMatrixY((func_8012B864(arg0) + 0x800) & 0xFFF, &m);
switch (*(u16 *)(arg0 + 0x5E) - 1) {
switch (CAST_WIDTH(u16, arg0, 0x5E) - 1) {
case 7:
p = D_801C92BC;
break;
@@ -3189,8 +3189,8 @@ void func_80186A34(s32 arg0)
func_800484EC((s32)&m, (s32)p, arg0 + 0x10);
*(u16 *)(arg0 + 0x34) = 0;
*(s32 *)(arg0 + 0x1C) = 0;
((Unkstruct_800B5CB8 *)arg0)->unk34 = 0;
((Unkstruct_800B5CB8 *)arg0)->unk1C = 0;
}
@@ -3331,9 +3331,9 @@ void func_80186D5C(void)
void func_80186D90(s32 a0) {
extern u8 D_80187B3C[];
*(s16 *)(a0 + 0x2) = 1;
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
func_8012A828(a0, D_80187B3C);
*(u16 *)(a0 + 0x5C) = 0xAA10;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0xAA10;
*(s16 *)(a0 + 0xEA) = 0;
}
@@ -3446,14 +3446,14 @@ void func_80186F9C(s32 a0, s32 a1, s32 a2) {
func_8012B23C(s1);
func_80132288(&D_801D98C8, (s32 *)s0, D_801CA0A0);
s0 = 1;
if (*(u16 *)(s1 + 0xDC) & 2) {
if (CAST_WIDTH(u16, s1, 0xDC) & 2) {
func_800183E0((s32)&D_801CA248);
*(u16 *)(s1 + 0xDC) = s0;
CAST_WIDTH(u16, s1, 0xDC) = s0;
}
*(u16 *)(s1 + 0x5C) &= 0xFFFE;
*(s32 *)(s1 + 0x1C) = s2;
*(u16 *)(*(s32 *)(s1 + 0x20) + 0x12) = (*(u16 *)(s1 + 0x62) + 0x800) & 0xFFF;
p = *(s32 *)(s1 + 0x20);
((Unkstruct_800B5CB8 *)s1)->unk5C &= 0xFFFE;
((Unkstruct_800B5CB8 *)s1)->unk1C = s2;
((Unkstruct_800B5CB8 *)*(s32 *)(s1 + 0x20))->unk12 = (((Unkstruct_800B5CB8 *)s1)->unk62 + 0x800) & 0xFFF;
p = ((Unkstruct_800B5CB8 *)s1)->unk20;
*(s16 *)(p + 0x14) = 0;
*(s16 *)(p + 0x10) = 0;
}
@@ -3463,9 +3463,9 @@ extern void func_8012C218(void*);
void func_80187050(void *arg0) {
int iVar1;
if ((*(s16 *)((char *)arg0 + 0x70) & 0x8000) == 0) {
iVar1 = *(int *)((char *)arg0 + 0x68);
if ((iVar1 != 0) && ((*(s16 *)((char *)arg0 + 0x72) & 0x8000) != 0)) {
if ((((Unkstruct_800B5CB8 *)arg0)->unk70 & 0x8000) == 0) {
iVar1 = ((Unkstruct_800B5CB8 *)arg0)->unk68;
if ((iVar1 != 0) && ((CAST_SIGN(s16, (char *)arg0, 0x72) & 0x8000) != 0)) {
*(unsigned short *)(iVar1 + 10) = *(unsigned short *)(iVar1 + 10) & 0x7FFF;
}
}
@@ -3478,9 +3478,9 @@ extern void Square0(s32 *a0, s32 *a1);
s32 func_801870B8(s32 a0) {
s32 sp10[4];
sp10[0] = *(s16 *)((s32)a0 + 6) - *(s16 *)((s32)a0 + 0x88);
sp10[0] = CAST_SIGN(s16, (s32)a0, 6) - CAST_SIGN(s16, (s32)a0, 0x88);
sp10[1] = 0;
sp10[2] = *(s16 *)((s32)a0 + 0xE) - *(s16 *)((s32)a0 + 0x8C);
sp10[2] = CAST_SIGN(s16, (s32)a0, 0xE) - CAST_SIGN(s16, (s32)a0, 0x8C);
Square0(&sp10[0], &sp10[0]);
return 0x18FFFF >= (sp10[0] + sp10[2]);
}
@@ -3510,9 +3510,9 @@ s32 func_80187118(s32 a0, s32 a1)
RotMatrixY(func_8012B864(a0), &m);
func_800484EC((s32)&m, a1, (s32)&out);
pos[0] = *(s32 *)(a0 + 0x4) + out.vx;
pos[1] = *(s32 *)(a0 + 0x8) + out.vy;
pos[2] = *(s32 *)(a0 + 0xC) + out.vz;
pos[0] = CAST_WIDTH(s32, a0, 0x4) + out.vx;
pos[1] = CAST_WIDTH(s32, a0, 0x8) + out.vy;
pos[2] = CAST_WIDTH(s32, a0, 0xC) + out.vz;
{
u16 rix;
@@ -3520,12 +3520,12 @@ s32 func_80187118(s32 a0, s32 a1)
u16 roz;
u16 riz;
rix = *(u16 *)(a0 + 0x3A);
rix = ((Unkstruct_800B5CB8 *)a0)->unk3A;
roy = *((u16 *)&pos[1] + 1);
roz = *((u16 *)&pos[2] + 1);
*(u16 *)(rotIn + 0) = rix;
*(u16 *)(rotIn + 2) = *(u16 *)(a0 + 0x3E);
riz = *(u16 *)(a0 + 0x42);
*(u16 *)(rotIn + 2) = CAST_ALIAS(u16, a0, 0x3E);
riz = CAST_ALIAS(u16, a0, 0x42);
*(u16 *)(rotOut + 0) = *((u16 *)&pos[0] + 1);
*(u16 *)(rotOut + 2) = roy;
*(u16 *)(rotOut + 4) = roz;
+24 -24
View File
@@ -2870,10 +2870,10 @@ void func_801851B8(void *a0)
extern Blk16_8018A8B8 D_800A5E88;
s32 v1 = *(s16 *)((s32)a0 + 0xFC);
s32 v1 = ((Unkstruct_800B5CB8 *)a0)->unkFC;
LBlk16 *s0;
*(s16 *)((s32)a0 + 0xFE) = 0;
((Unkstruct_800B5CB8 *)a0)->unkFE = 0;
switch (v1) {
case 0:
@@ -3010,7 +3010,7 @@ void func_801855C4(void *a0) {
extern void (*D_801A7718[])(void);
void func_80185668(void *a0) {
D_801A7718[*(u16 *)((s32)a0 + 0x2)]();
D_801A7718[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3043,7 +3043,7 @@ void func_801856A4(void *a0) {
return;
}
ptr = *(void **)((s32)a0 + 0xDC);
ptr = CAST_SIGN(void *, (s32)a0, 0xDC);
idx = *(u16 *)((s32)ptr + 0xA);
arr_elem = D_801A7470[idx];
@@ -3051,21 +3051,21 @@ void func_801856A4(void *a0) {
if ((res1 & 0xFF) == 0) {
res2 = func_801788B8((s32)a0, (s32)func_80185D50);
*(s32 *)((s32)a0 + 0xCC) = res2;
((Unkstruct_800B5CB8 *)a0)->unkCC = res2;
} else {
val = *(s16 *)((s32)a0 + 0x70);
val = ((Unkstruct_800B5CB8 *)a0)->unk70;
val |= 0x4000;
*(s16 *)((s32)a0 + 0x70) = val;
((Unkstruct_800B5CB8 *)a0)->unk70 = val;
}
res2 = func_8012C658(0x8F, *(s16 *)((s32)a0 + 0x70), (s32)a0);
*(s32 *)((s32)a0 + 0x6C) = res2;
res2 = func_8012C658(0x8F, ((Unkstruct_800B5CB8 *)a0)->unk70, (s32)a0);
((Unkstruct_800B5CB8 *)a0)->unk6C = res2;
if (res2 == 0) {
func_8012CAE4(a0);
} else {
func_8012A828((s32)a0, D_801861C0);
*(u16 *)((s32)a0 + 0x2) = 1;
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
}
}
@@ -3270,7 +3270,7 @@ s32 func_80185AF8(void) {
extern void (*D_801A7740[])(void);
void func_80185B5C(void *a0) {
D_801A7740[*(u16 *)((s32)a0 + 0x2)]();
D_801A7740[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3292,7 +3292,7 @@ void func_80185B98(void *a0) {
return;
}
ptr = *(s32 *)((s32)a0 + 0x64);
ptr = ((Unkstruct_800B5CB8 *)a0)->unk64;
v1 = *(unsigned short *)(ptr + 0x36);
v0 = *(unsigned short *)((s32)a0 + 0x70);
*(unsigned short *)((s32)a0 + 0xFC) = v1;
@@ -3320,23 +3320,23 @@ void func_80185C20(void *a0) {
extern u8 D_801A7CF8[];
s16 mode;
if (*(s16 *)((s32)a0 + 0xFC) != *(s16 *)(*(s32 *)((s32)a0 + 0x64) + 0x36)) {
if (((Unkstruct_800B5CB8 *)a0)->unkFC != *(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk64 + 0x36)) {
((void (*)(void))func_8012C218)();
return;
}
mode = *(s16 *)((s32)a0 + 0xFE);
mode = ((Unkstruct_800B5CB8 *)a0)->unkFE;
if (mode == 1) {
*(s16 *)((s32)a0 + 0x2) = 2;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_801A7BF0);
*(s16 *)((s32)a0 + 0x5C) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
func_8002D4C8(0x5BF, 0);
} else if (mode == 2) {
*(s16 *)((s32)a0 + 0x2) = 2;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_801A7CF8);
*(u16 *)((s32)a0 + 0x5C) = 0x8C00;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0x8C00;
}
}
@@ -3358,14 +3358,14 @@ void func_80185CE0(void *a0) {
extern u8 D_801A7E00[];
extern u8 D_801A7BE0[];
if (*(s16 *)((s32)a0 + 0x98) == 0) {
*(s16 *)((s32)a0 + 0x2) = 1;
if (*(s16 *)((s32)a0 + 0xFE) == 1) {
if (((Unkstruct_800B5CB8 *)a0)->unk98 == 0) {
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
if (((Unkstruct_800B5CB8 *)a0)->unkFE == 1) {
func_8012A828((s32)a0, D_801A7E00);
} else {
func_8012A828((s32)a0, D_801A7BE0);
}
*(s16 *)((s32)a0 + 0xFE) = 0;
((Unkstruct_800B5CB8 *)a0)->unkFE = 0;
}
}
+24 -24
View File
@@ -2857,10 +2857,10 @@ void func_80183C10(void *a0)
extern Blk16_8018A8B8 D_800A5E88;
s32 v1 = *(s16 *)((s32)a0 + 0xFC);
s32 v1 = ((Unkstruct_800B5CB8 *)a0)->unkFC;
LBlk16 *s0;
*(s16 *)((s32)a0 + 0xFE) = 0;
((Unkstruct_800B5CB8 *)a0)->unkFE = 0;
switch (v1) {
case 0:
@@ -2992,7 +2992,7 @@ void func_8018401C(void *a0) {
extern void (*D_801C52F4[])(void);
void func_801840C0(void *a0) {
D_801C52F4[*(u16 *)((s32)a0 + 0x2)]();
D_801C52F4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3025,7 +3025,7 @@ void func_801840FC(void *a0) {
return;
}
ptr = *(void **)((s32)a0 + 0xDC);
ptr = CAST_SIGN(void *, (s32)a0, 0xDC);
idx = *(u16 *)((s32)ptr + 0xA);
arr_elem = D_801C504C[idx];
@@ -3033,21 +3033,21 @@ void func_801840FC(void *a0) {
if ((res1 & 0xFF) == 0) {
res2 = func_801788B8((s32)a0, (s32)func_801847A8);
*(s32 *)((s32)a0 + 0xCC) = res2;
((Unkstruct_800B5CB8 *)a0)->unkCC = res2;
} else {
val = *(s16 *)((s32)a0 + 0x70);
val = ((Unkstruct_800B5CB8 *)a0)->unk70;
val |= 0x4000;
*(s16 *)((s32)a0 + 0x70) = val;
((Unkstruct_800B5CB8 *)a0)->unk70 = val;
}
res2 = func_8012C658(0x8F, *(s16 *)((s32)a0 + 0x70), (s32)a0);
*(s32 *)((s32)a0 + 0x6C) = res2;
res2 = func_8012C658(0x8F, ((Unkstruct_800B5CB8 *)a0)->unk70, (s32)a0);
((Unkstruct_800B5CB8 *)a0)->unk6C = res2;
if (res2 == 0) {
func_8012CAE4(a0);
} else {
func_8012A828((s32)a0, D_80184C18);
*(u16 *)((s32)a0 + 0x2) = 1;
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
}
}
@@ -3256,7 +3256,7 @@ s32 func_80184550(void) {
extern void (*D_801C531C[])(void);
void func_801845B4(void *a0) {
D_801C531C[*(u16 *)((s32)a0 + 0x2)]();
D_801C531C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3278,7 +3278,7 @@ void func_801845F0(void *a0) {
return;
}
ptr = *(s32 *)((s32)a0 + 0x64);
ptr = ((Unkstruct_800B5CB8 *)a0)->unk64;
v1 = *(unsigned short *)(ptr + 0x36);
v0 = *(unsigned short *)((s32)a0 + 0x70);
*(unsigned short *)((s32)a0 + 0xFC) = v1;
@@ -3306,23 +3306,23 @@ void func_80184678(void *a0) {
extern u8 D_801C58D4[];
s16 mode;
if (*(s16 *)((s32)a0 + 0xFC) != *(s16 *)(*(s32 *)((s32)a0 + 0x64) + 0x36)) {
if (((Unkstruct_800B5CB8 *)a0)->unkFC != *(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk64 + 0x36)) {
((void (*)(void))func_8012C218)();
return;
}
mode = *(s16 *)((s32)a0 + 0xFE);
mode = ((Unkstruct_800B5CB8 *)a0)->unkFE;
if (mode == 1) {
*(s16 *)((s32)a0 + 0x2) = 2;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_801C57CC);
*(s16 *)((s32)a0 + 0x5C) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
func_8002D4C8(0x5BF, 0);
} else if (mode == 2) {
*(s16 *)((s32)a0 + 0x2) = 2;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_801C58D4);
*(u16 *)((s32)a0 + 0x5C) = 0x8C00;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0x8C00;
}
}
@@ -3344,14 +3344,14 @@ void func_80184738(void *a0) {
extern u8 D_801C59DC[];
extern u8 D_801C57BC[];
if (*(s16 *)((s32)a0 + 0x98) == 0) {
*(s16 *)((s32)a0 + 0x2) = 1;
if (*(s16 *)((s32)a0 + 0xFE) == 1) {
if (((Unkstruct_800B5CB8 *)a0)->unk98 == 0) {
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
if (((Unkstruct_800B5CB8 *)a0)->unkFE == 1) {
func_8012A828((s32)a0, D_801C59DC);
} else {
func_8012A828((s32)a0, D_801C57BC);
}
*(s16 *)((s32)a0 + 0xFE) = 0;
((Unkstruct_800B5CB8 *)a0)->unkFE = 0;
}
}
+28 -28
View File
@@ -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_801C4D3C);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801C4D30+0xC == &D_801C4D3C; 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_801C4D3C);
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_801C4D30 + 0xC)) < 0x101) {
@@ -3304,7 +3304,7 @@ void func_8017BE60(void *a0) {
extern void (*D_80187B34[])(void);
void func_8017BEBC(void *a0) {
D_80187B34[*(u16 *)((s32)a0 + 0x2)]();
D_80187B34[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3355,16 +3355,16 @@ void func_8017BEF8(s32 param_1) {
node = func_800D222C(param_1, &D_80187B1C, 0xFD);
if (node != 0) {
*(s32 *)(param_1 + 0x20) = node;
*(u32 *)(node + 4) = *(u32 *)(node + 4) | 0x5D000100;
CAST_WIDTH(u32, node, 4) = CAST_WIDTH(u32, node, 4) | 0x5D000100;
((void (*)(void *))func_8001CF30)((void *)node);
*(s16 *)(node + 0x18) = 0x4000;
*(s16 *)(node + 0x1A) = 0x200;
((Unkstruct_800B5CB8 *)node)->unk18 = 0x4000;
((Unkstruct_800B5CB8 *)node)->unk1A = 0x200;
*(s16 *)(param_1 + 0x16) = 0x200;
*(s16 *)(param_1 + 0x14) = 0x1000;
*(s16 *)(node + 0x28) = 0x240;
*(s16 *)(node + 0x2A) = 0x180;
*(s16 *)(node + 0x10) = w.vx;
*(s16 *)(node + 0x12) = w.vy;
((Unkstruct_800B5CB8 *)node)->unk28 = 0x240;
((Unkstruct_800B5CB8 *)node)->unk2A = 0x180;
((Unkstruct_800B5CB8 *)node)->unk10 = w.vx;
((Unkstruct_800B5CB8 *)node)->unk12 = w.vy;
*(s16 *)(param_1 + 2) = *(s16 *)(param_1 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(param_1);
@@ -3378,7 +3378,7 @@ void func_8017BEF8(s32 param_1) {
extern void (*D_80187B3C[])(void);
void func_8017C150(void *a0) {
D_80187B3C[*(u16 *)((s32)a0 + 0x2)]();
D_80187B3C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3399,13 +3399,13 @@ void func_8017C18C(s32 a0) {
r = func_800D222C(a0, &D_80187B28, 0x18);
if (r != 0) {
*(s32 *)(a0 + 0x20) = r;
*(u32 *)(r + 4) = *(u32 *)(r + 4) | 0x5C000140;
CAST_WIDTH(u32, r, 4) = CAST_WIDTH(u32, r, 4) | 0x5C000140;
func_8001CF30((void *)r);
*(s16 *)(r + 0x10) = 0x400;
*(s16 *)(r + 0x18) = 0x3000;
*(s16 *)(r + 0x1A) = 0x3000;
*(s16 *)(r + 0x28) = 0x248;
*(s16 *)(r + 0x2A) = 0x180;
((Unkstruct_800B5CB8 *)r)->unk10 = 0x400;
((Unkstruct_800B5CB8 *)r)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk28 = 0x248;
((Unkstruct_800B5CB8 *)r)->unk2A = 0x180;
*(s16 *)(a0 + 2) = *(s16 *)(a0 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(a0);
+24 -24
View File
@@ -2925,10 +2925,10 @@ void func_80189FE4(void *a0)
extern Blk16_8018A8B8 D_800A5E88;
s32 v1 = *(s16 *)((s32)a0 + 0xFC);
s32 v1 = ((Unkstruct_800B5CB8 *)a0)->unkFC;
LBlk16 *s0;
*(s16 *)((s32)a0 + 0xFE) = 0;
((Unkstruct_800B5CB8 *)a0)->unkFE = 0;
switch (v1) {
case 0:
@@ -3060,7 +3060,7 @@ void func_8018A3F0(void *a0) {
extern void (*D_801BCF4C[])(void);
void func_8018A494(void *a0) {
D_801BCF4C[*(u16 *)((s32)a0 + 0x2)]();
D_801BCF4C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3093,7 +3093,7 @@ void func_8018A4D0(void *a0) {
return;
}
ptr = *(void **)((s32)a0 + 0xDC);
ptr = CAST_SIGN(void *, (s32)a0, 0xDC);
idx = *(u16 *)((s32)ptr + 0xA);
arr_elem = D_801BCCA4[idx];
@@ -3101,21 +3101,21 @@ void func_8018A4D0(void *a0) {
if ((res1 & 0xFF) == 0) {
res2 = func_801788B8((s32)a0, (s32)func_8018AB7C);
*(s32 *)((s32)a0 + 0xCC) = res2;
((Unkstruct_800B5CB8 *)a0)->unkCC = res2;
} else {
val = *(s16 *)((s32)a0 + 0x70);
val = ((Unkstruct_800B5CB8 *)a0)->unk70;
val |= 0x4000;
*(s16 *)((s32)a0 + 0x70) = val;
((Unkstruct_800B5CB8 *)a0)->unk70 = val;
}
res2 = func_8012C658(0x8F, *(s16 *)((s32)a0 + 0x70), (s32)a0);
*(s32 *)((s32)a0 + 0x6C) = res2;
res2 = func_8012C658(0x8F, ((Unkstruct_800B5CB8 *)a0)->unk70, (s32)a0);
((Unkstruct_800B5CB8 *)a0)->unk6C = res2;
if (res2 == 0) {
func_8012CAE4(a0);
} else {
func_8012A828((s32)a0, D_8018AFEC);
*(u16 *)((s32)a0 + 0x2) = 1;
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
}
}
@@ -3324,7 +3324,7 @@ s32 func_8018A924(void) {
extern void (*D_801BCF74[])(void);
void func_8018A988(void *a0) {
D_801BCF74[*(u16 *)((s32)a0 + 0x2)]();
D_801BCF74[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3346,7 +3346,7 @@ void func_8018A9C4(void *a0) {
return;
}
ptr = *(s32 *)((s32)a0 + 0x64);
ptr = ((Unkstruct_800B5CB8 *)a0)->unk64;
v1 = *(unsigned short *)(ptr + 0x36);
v0 = *(unsigned short *)((s32)a0 + 0x70);
*(unsigned short *)((s32)a0 + 0xFC) = v1;
@@ -3374,23 +3374,23 @@ void func_8018AA4C(void *a0) {
extern u8 D_801BD52C[];
s16 mode;
if (*(s16 *)((s32)a0 + 0xFC) != *(s16 *)(*(s32 *)((s32)a0 + 0x64) + 0x36)) {
if (((Unkstruct_800B5CB8 *)a0)->unkFC != *(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk64 + 0x36)) {
((void (*)(void))func_8012C218)();
return;
}
mode = *(s16 *)((s32)a0 + 0xFE);
mode = ((Unkstruct_800B5CB8 *)a0)->unkFE;
if (mode == 1) {
*(s16 *)((s32)a0 + 0x2) = 2;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_801BD424);
*(s16 *)((s32)a0 + 0x5C) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
func_8002D4C8(0x5BF, 0);
} else if (mode == 2) {
*(s16 *)((s32)a0 + 0x2) = 2;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_801BD52C);
*(u16 *)((s32)a0 + 0x5C) = 0x8C00;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0x8C00;
}
}
@@ -3412,14 +3412,14 @@ void func_8018AB0C(void *a0) {
extern u8 D_801BD634[];
extern u8 D_801BD414[];
if (*(s16 *)((s32)a0 + 0x98) == 0) {
*(s16 *)((s32)a0 + 0x2) = 1;
if (*(s16 *)((s32)a0 + 0xFE) == 1) {
if (((Unkstruct_800B5CB8 *)a0)->unk98 == 0) {
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
if (((Unkstruct_800B5CB8 *)a0)->unkFE == 1) {
func_8012A828((s32)a0, D_801BD634);
} else {
func_8012A828((s32)a0, D_801BD414);
}
*(s16 *)((s32)a0 + 0xFE) = 0;
((Unkstruct_800B5CB8 *)a0)->unkFE = 0;
}
}
+28 -28
View File
@@ -2626,34 +2626,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_801AD0B4);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801AD0A8+0xC == &D_801AD0B4; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2664,9 +2664,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) {
@@ -2675,11 +2675,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_801AD0B4);
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_801AD0A8 + 0xC)) < 0x101) {
@@ -3303,7 +3303,7 @@ void func_8017BE60(void *a0) {
extern void (*D_8018912C[])(void);
void func_8017BEBC(void *a0) {
D_8018912C[*(u16 *)((s32)a0 + 0x2)]();
D_8018912C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3354,16 +3354,16 @@ void func_8017BEF8(s32 param_1) {
node = func_800D222C(param_1, &D_80189114, 0xFD);
if (node != 0) {
*(s32 *)(param_1 + 0x20) = node;
*(u32 *)(node + 4) = *(u32 *)(node + 4) | 0x5D000100;
CAST_WIDTH(u32, node, 4) = CAST_WIDTH(u32, node, 4) | 0x5D000100;
((void (*)(void *))func_8001CF30)((void *)node);
*(s16 *)(node + 0x18) = 0x4000;
*(s16 *)(node + 0x1A) = 0x200;
((Unkstruct_800B5CB8 *)node)->unk18 = 0x4000;
((Unkstruct_800B5CB8 *)node)->unk1A = 0x200;
*(s16 *)(param_1 + 0x16) = 0x200;
*(s16 *)(param_1 + 0x14) = 0x1000;
*(s16 *)(node + 0x28) = 0x240;
*(s16 *)(node + 0x2A) = 0x180;
*(s16 *)(node + 0x10) = w.vx;
*(s16 *)(node + 0x12) = w.vy;
((Unkstruct_800B5CB8 *)node)->unk28 = 0x240;
((Unkstruct_800B5CB8 *)node)->unk2A = 0x180;
((Unkstruct_800B5CB8 *)node)->unk10 = w.vx;
((Unkstruct_800B5CB8 *)node)->unk12 = w.vy;
*(s16 *)(param_1 + 2) = *(s16 *)(param_1 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(param_1);
@@ -3377,7 +3377,7 @@ void func_8017BEF8(s32 param_1) {
extern void (*D_80189134[])(void);
void func_8017C150(void *a0) {
D_80189134[*(u16 *)((s32)a0 + 0x2)]();
D_80189134[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3398,13 +3398,13 @@ void func_8017C18C(s32 a0) {
r = func_800D222C(a0, &D_80189120, 0x18);
if (r != 0) {
*(s32 *)(a0 + 0x20) = r;
*(u32 *)(r + 4) = *(u32 *)(r + 4) | 0x5C000140;
CAST_WIDTH(u32, r, 4) = CAST_WIDTH(u32, r, 4) | 0x5C000140;
func_8001CF30((void *)r);
*(s16 *)(r + 0x10) = 0x400;
*(s16 *)(r + 0x18) = 0x3000;
*(s16 *)(r + 0x1A) = 0x3000;
*(s16 *)(r + 0x28) = 0x248;
*(s16 *)(r + 0x2A) = 0x180;
((Unkstruct_800B5CB8 *)r)->unk10 = 0x400;
((Unkstruct_800B5CB8 *)r)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk28 = 0x248;
((Unkstruct_800B5CB8 *)r)->unk2A = 0x180;
*(s16 *)(a0 + 2) = *(s16 *)(a0 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(a0);
+28 -28
View File
@@ -2626,34 +2626,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_801A5C54);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801A5C48+0xC == &D_801A5C54; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2664,9 +2664,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) {
@@ -2675,11 +2675,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_801A5C54);
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_801A5C48 + 0xC)) < 0x101) {
@@ -3303,7 +3303,7 @@ void func_8017BE60(void *a0) {
extern void (*D_801867DC[])(void);
void func_8017BEBC(void *a0) {
D_801867DC[*(u16 *)((s32)a0 + 0x2)]();
D_801867DC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3354,16 +3354,16 @@ void func_8017BEF8(s32 param_1) {
node = func_800D222C(param_1, &D_801867C4, 0xFD);
if (node != 0) {
*(s32 *)(param_1 + 0x20) = node;
*(u32 *)(node + 4) = *(u32 *)(node + 4) | 0x5D000100;
CAST_WIDTH(u32, node, 4) = CAST_WIDTH(u32, node, 4) | 0x5D000100;
((void (*)(void *))func_8001CF30)((void *)node);
*(s16 *)(node + 0x18) = 0x4000;
*(s16 *)(node + 0x1A) = 0x200;
((Unkstruct_800B5CB8 *)node)->unk18 = 0x4000;
((Unkstruct_800B5CB8 *)node)->unk1A = 0x200;
*(s16 *)(param_1 + 0x16) = 0x200;
*(s16 *)(param_1 + 0x14) = 0x1000;
*(s16 *)(node + 0x28) = 0x240;
*(s16 *)(node + 0x2A) = 0x180;
*(s16 *)(node + 0x10) = w.vx;
*(s16 *)(node + 0x12) = w.vy;
((Unkstruct_800B5CB8 *)node)->unk28 = 0x240;
((Unkstruct_800B5CB8 *)node)->unk2A = 0x180;
((Unkstruct_800B5CB8 *)node)->unk10 = w.vx;
((Unkstruct_800B5CB8 *)node)->unk12 = w.vy;
*(s16 *)(param_1 + 2) = *(s16 *)(param_1 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(param_1);
@@ -3377,7 +3377,7 @@ void func_8017BEF8(s32 param_1) {
extern void (*D_801867E4[])(void);
void func_8017C150(void *a0) {
D_801867E4[*(u16 *)((s32)a0 + 0x2)]();
D_801867E4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3398,13 +3398,13 @@ void func_8017C18C(s32 a0) {
r = func_800D222C(a0, &D_801867D0, 0x18);
if (r != 0) {
*(s32 *)(a0 + 0x20) = r;
*(u32 *)(r + 4) = *(u32 *)(r + 4) | 0x5C000140;
CAST_WIDTH(u32, r, 4) = CAST_WIDTH(u32, r, 4) | 0x5C000140;
func_8001CF30((void *)r);
*(s16 *)(r + 0x10) = 0x400;
*(s16 *)(r + 0x18) = 0x3000;
*(s16 *)(r + 0x1A) = 0x3000;
*(s16 *)(r + 0x28) = 0x248;
*(s16 *)(r + 0x2A) = 0x180;
((Unkstruct_800B5CB8 *)r)->unk10 = 0x400;
((Unkstruct_800B5CB8 *)r)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk28 = 0x248;
((Unkstruct_800B5CB8 *)r)->unk2A = 0x180;
*(s16 *)(a0 + 2) = *(s16 *)(a0 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(a0);
+16 -16
View File
@@ -3089,10 +3089,10 @@ extern s32 func_8012E57C(s32 a0, s32 a1);
void func_8018567C(void *a0, s32 a1, s32 a2) {
s32 v1 = func_8012E57C(0x61, (s32)(s16)a1);
if (v1 != 0) {
s32 v0 = *(s32 *)((char *)v1 + 0xCC);
s32 v0 = ((Unkstruct_800B5CB8 *)v1)->unkCC;
if (v0 == 0) {
*(s32 *)((char *)v1 + 0xCC) = a2;
*(s32 *)((char *)v1 + 0xD0) = (s32)a0;
((Unkstruct_800B5CB8 *)v1)->unkCC = a2;
((Unkstruct_800B5CB8 *)v1)->unkD0 = (s32)a0;
}
}
}
@@ -3115,14 +3115,14 @@ void func_801856E0(s32 a0, s32 a1, s32 a2) {
if (v1 == 0) {
return;
}
if (*(s32 *)((char *)v1 + 0xCC) != s0) {
if (((Unkstruct_800B5CB8 *)v1)->unkCC != s0) {
return;
}
if (*(s32 *)((char *)v1 + 0xD0) != s1) {
if (((Unkstruct_800B5CB8 *)v1)->unkD0 != s1) {
return;
}
*(s32 *)((char *)v1 + 0xCC) = 0;
*(s32 *)((char *)v1 + 0xD0) = 0;
((Unkstruct_800B5CB8 *)v1)->unkCC = 0;
((Unkstruct_800B5CB8 *)v1)->unkD0 = 0;
}
@@ -3133,8 +3133,8 @@ extern s32 func_8012E57C(s32 a0, s32 a1);
void func_80185754(s32 a0, s32 a1) {
s32 v1 = func_8012E57C(0x61, (s32)(s16)a0);
if (v1 != 0) {
if (*(s16 *)(v1 + 0x10A) < a1) {
*(s16 *)(v1 + 0x10A) = a1;
if (((Unkstruct_800B5CB8 *)v1)->unk10A < a1) {
((Unkstruct_800B5CB8 *)v1)->unk10A = a1;
}
}
}
@@ -3144,7 +3144,7 @@ void func_80185754(s32 a0, s32 a1) {
extern void (*D_801BC184[])(void);
void func_801857AC(void *a0) {
D_801BC184[*(u16 *)((s32)a0 + 0x2)]();
D_801BC184[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3326,13 +3326,13 @@ s32 func_801859D0(void *a0) {
p = D_801202A0;
end = p + 0x6480;
for (; p != end; p += 0x10C) {
tag = *(u16 *)p;
tag = ((Unkstruct_800B5CB8 *)p)->unk0;
if (tag != 0 && tag != 0x61 && func_80185ADC((s32)p) != 0) {
t = *(s32 *)(p + 0x20);
if (t != 0 && *(s32 *)(t + 0x24) != 0 && *(s32 *)(t + 0x4) >= 0) {
in[0] = *(u16 *)(p + 0x6);
in[1] = *(u16 *)(p + 0xA);
in[2] = *(u16 *)(p + 0xE);
t = ((Unkstruct_800B5CB8 *)p)->unk20;
if (t != 0 && CAST_WIDTH(s32, t, 0x24) != 0 && CAST_WIDTH(s32, t, 0x4) >= 0) {
in[0] = ((Unkstruct_800B5CB8 *)p)->unk6;
in[1] = ((Unkstruct_800B5CB8 *)p)->unkA;
in[2] = ((Unkstruct_800B5CB8 *)p)->unkE;
func_8012F2E8((s32)a0, (s32)in, (s32)out);
if (func_8012CB64((s32)out, -0xA0, 0x80, -0xC0, 0x80) != 0) {
return 1;
+5 -5
View File
@@ -1924,7 +1924,7 @@ extern void func_80016ED4(void *a0);
extern void (*D_80182460[])(void);
void func_8016B4BC(void *a0) {
D_80182460[*(u16 *)((s32)a0 + 0x2)]();
D_80182460[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2040,7 +2040,7 @@ extern void func_80015954(s32 a0, s32 a1);
extern void (*D_801824B0[])(void);
void func_8016BBA4(void *a0) {
D_801824B0[*(u16 *)((s32)a0 + 0x2)]();
D_801824B0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2164,7 +2164,7 @@ extern s32 D_80126B9C;
extern void (*D_801824E8[])(void);
void func_8016CB84(void *a0) {
D_801824E8[*(u16 *)((s32)a0 + 0x2)]();
D_801824E8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2216,7 +2216,7 @@ extern void ApplyMatrixSV(void *a, void *b, void *c);
extern void (*D_8018250C[])(void);
void func_8016D428(void *a0) {
D_8018250C[*(u16 *)((s32)a0 + 0x2)]();
D_8018250C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2294,7 +2294,7 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D26)
extern void (*D_801825A8[])(void);
void func_8016DEA4(void *a0) {
D_801825A8[*(u16 *)((s32)a0 + 0x2)]();
D_801825A8[((Unkstruct_80126B58 *)a0)->unk2]();
}
+5 -5
View File
@@ -5408,11 +5408,11 @@ void func_8018C278(void *a0) {
void *v1p;
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)((u8 *)s0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)s0)->unk20 = v0;
if (v0 == 0) {
func_8012CAE4(s0);
}
func_8001C214(*(s32 *)((u8 *)s0 + 0x20), 0);
func_8001C214(((Unkstruct_800B5CB8 *)s0)->unk20, 0);
v1 = func_80029504();
if (v1 < 0xC8) {
@@ -5440,12 +5440,12 @@ void func_8018C278(void *a0) {
v0 = 1;
}
do { *(s16 *)((u8 *)s0 + 0x2) = (s16)v0; } while (0);
do { ((Unkstruct_800B5CB8 *)s0)->unk2 = (s16)v0; } while (0);
func_80184CB8((s32 *)s0, (s32)&D_801E06A8);
v1p = *(void **)((u8 *)s0 + 0x68);
v1p = CAST_SIGN(void *, (u8 *)s0, 0x68);
*(s16 *)((u8 *)v1p + 0xC) = 0x7FFF;
*(s32 *)((u8 *)s0 + 0xD4) = func_801788B8((s32)s0, (s32)&func_8018C3F0);
((Unkstruct_800B5CB8 *)s0)->unkD4 = func_801788B8((s32)s0, (s32)&func_8018C3F0);
}
+5 -5
View File
@@ -1924,7 +1924,7 @@ extern void func_80016ED4(void *a0);
extern void (*D_80182460[])(void);
void func_8016B4BC(void *a0) {
D_80182460[*(u16 *)((s32)a0 + 0x2)]();
D_80182460[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2040,7 +2040,7 @@ extern void func_80015954(s32 a0, s32 a1);
extern void (*D_801824B0[])(void);
void func_8016BBA4(void *a0) {
D_801824B0[*(u16 *)((s32)a0 + 0x2)]();
D_801824B0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2164,7 +2164,7 @@ extern s32 D_80126B9C;
extern void (*D_801824E8[])(void);
void func_8016CB84(void *a0) {
D_801824E8[*(u16 *)((s32)a0 + 0x2)]();
D_801824E8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2216,7 +2216,7 @@ extern void ApplyMatrixSV(void *a, void *b, void *c);
extern void (*D_8018250C[])(void);
void func_8016D428(void *a0) {
D_8018250C[*(u16 *)((s32)a0 + 0x2)]();
D_8018250C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2294,7 +2294,7 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D26)
extern void (*D_801825A8[])(void);
void func_8016DEA4(void *a0) {
D_801825A8[*(u16 *)((s32)a0 + 0x2)]();
D_801825A8[((Unkstruct_80126B58 *)a0)->unk2]();
}
+36 -36
View File
@@ -2924,9 +2924,9 @@ void func_8017D25C(s32 arg0) {
s32 s3;
s32 s4;
if ((*(s16 *)(arg0 + 0x70) & 0x8000) != 0) {
if ((((Unkstruct_800B5CB8 *)arg0)->unk70 & 0x8000) != 0) {
var = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(arg0 + 0x20) = var;
((Unkstruct_800B5CB8 *)arg0)->unk20 = var;
if (var != 0) {
func_8001C2C4(var);
sp10.unk06 = 0x385;
@@ -2935,33 +2935,33 @@ void func_8017D25C(s32 arg0) {
sp10.unk0E = 0;
sp10.unk10 = 0;
sp10.unk02 = -0x202;
if (*(s32 *)(arg0 + 0xCC) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unkCC == 0) {
sp10.unk08 = 0;
sp10.unk00 = 0;
sp10.unk04 = -0x140;
*(s32 *)(arg0 + 0xCC) = func_8012C51C(&sp10, arg0);
((Unkstruct_800B5CB8 *)arg0)->unkCC = func_8012C51C(&sp10, arg0);
}
if (*(s32 *)(arg0 + 0xD0) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unkD0 == 0) {
sp10.unk08 = 1;
sp10.unk00 = 0x40;
sp10.unk04 = -0x60;
*(s32 *)(arg0 + 0xD0) = func_8012C51C(&sp10, arg0);
((Unkstruct_800B5CB8 *)arg0)->unkD0 = func_8012C51C(&sp10, arg0);
}
if (*(s32 *)(arg0 + 0xD4) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unkD4 == 0) {
sp10.unk08 = 2;
sp10.unk00 = -0x40;
sp10.unk04 = -0x60;
*(s32 *)(arg0 + 0xD4) = func_8012C51C(&sp10, arg0);
((Unkstruct_800B5CB8 *)arg0)->unkD4 = func_8012C51C(&sp10, arg0);
}
if ((*(s32 *)(arg0 + 0xCC) != 0) && (*(s32 *)(arg0 + 0xD0) != 0) && (*(s32 *)(arg0 + 0xD4) != 0)) {
*(u16 *)(arg0 + 2) = *(u16 *)(arg0 + 2) + 1;
if ((((Unkstruct_800B5CB8 *)arg0)->unkCC != 0) && (((Unkstruct_800B5CB8 *)arg0)->unkD0 != 0) && (((Unkstruct_800B5CB8 *)arg0)->unkD4 != 0)) {
((Unkstruct_800B5CB8 *)arg0)->unk2 = CAST_SIGN(u16, arg0, 2) + 1;
}
}
} else {
var = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(arg0 + 0x20) = var;
((Unkstruct_800B5CB8 *)arg0)->unk20 = var;
if (var != 0) {
switch (*(s16 *)(arg0 + 0x70)) {
switch (((Unkstruct_800B5CB8 *)arg0)->unk70) {
case 0:
s1 = (s32)&D_8018C384;
s2 = (s32)&D_80181780;
@@ -2981,12 +2981,12 @@ void func_8017D25C(s32 arg0) {
s3 = 7;
break;
}
func_8001C214(*(s32 *)(arg0 + 0x20), s1);
func_8001D0E8(*(s32 *)(arg0 + 0x20), 0x7FFF, 0x7FFF);
func_8001C214(((Unkstruct_800B5CB8 *)arg0)->unk20, s1);
func_8001D0E8(((Unkstruct_800B5CB8 *)arg0)->unk20, 0x7FFF, 0x7FFF);
func_8012A828((void *)arg0, (void *)s2);
func_80143994(arg0, 0x3000);
*(s16 *)(*(s32 *)(arg0 + 0x20) + 0x12) = s4;
*(s16 *)(arg0 + 2) = s3;
((Unkstruct_800B5CB8 *)*(s32 *)(arg0 + 0x20))->unk12 = s4;
((Unkstruct_800B5CB8 *)arg0)->unk2 = s3;
}
}
}
@@ -3009,13 +3009,13 @@ extern u8 D_801922F0[];
extern s32 jtbl_8019BCE8[];
void func_8017D4A4(void *arg0) {
if (*(s32 *)((s32)arg0 + 0x90) == (s32)&D_80181928) {
if (*(s16 *)((s32)arg0 + 0x98) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unk90 == (s32)&D_80181928) {
if (((Unkstruct_800B5CB8 *)arg0)->unk98 == 0) {
func_8012A828(arg0, D_80181970);
}
}
if (*(s32 *)((s32)arg0 + 0x90) == (s32)&D_80181B48) {
if (*(s16 *)((s32)arg0 + 0x98) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unk90 == (s32)&D_80181B48) {
if (((Unkstruct_800B5CB8 *)arg0)->unk98 == 0) {
func_8012A828(arg0, D_80181C18);
}
}
@@ -3027,9 +3027,9 @@ void func_8017D4A4(void *arg0) {
func_80029124(0x129, 0);
func_8012A828(arg0, &D_801819F0);
}
switch ((s16)(*(u16 *)((s32)arg0 + 0x108))--) {
switch ((s16)(((Unkstruct_800B5CB8 *)arg0)->unk108)--) {
case 0:
*(u16 *)((s32)arg0 + 0x108) = (rand() & 0x3F) + 0x28;
((Unkstruct_800B5CB8 *)arg0)->unk108 = (rand() & 0x3F) + 0x28;
break;
case 1:
func_800183E0((s32)D_801920E0);
@@ -3068,18 +3068,18 @@ extern u8 D_8019A34C[];
extern s32 jtbl_8019BD08[];
void func_8017D610(void *arg0) {
if (*(s32 *)((s32)arg0 + 0x90) == (s32)&D_80181DE8) {
if (*(s16 *)((s32)arg0 + 0x98) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unk90 == (s32)&D_80181DE8) {
if (((Unkstruct_800B5CB8 *)arg0)->unk98 == 0) {
func_8012A828(arg0, D_80181E40);
}
}
if (*(s32 *)((s32)arg0 + 0x90) == (s32)&D_80181FB8) {
if (*(s16 *)((s32)arg0 + 0x98) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unk90 == (s32)&D_80181FB8) {
if (((Unkstruct_800B5CB8 *)arg0)->unk98 == 0) {
func_8012A828(arg0, &D_801820B0);
}
}
if (*(s32 *)((s32)arg0 + 0x90) == (s32)&D_80182138) {
if (*(s16 *)((s32)arg0 + 0x98) == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unk90 == (s32)&D_80182138) {
if (((Unkstruct_800B5CB8 *)arg0)->unk98 == 0) {
func_8012A828(arg0, &D_801820B0);
}
}
@@ -3095,9 +3095,9 @@ void func_8017D610(void *arg0) {
func_80029124(0x12C, 0);
func_8012A828(arg0, &D_80182138);
}
switch ((s16)(*(u16 *)((s32)arg0 + 0x108))--) {
switch ((s16)(((Unkstruct_800B5CB8 *)arg0)->unk108)--) {
case 0:
*(u16 *)((s32)arg0 + 0x108) = (rand() & 0x3F) + 0x3C;
((Unkstruct_800B5CB8 *)arg0)->unk108 = (rand() & 0x3F) + 0x3C;
break;
case 1:
func_800183E0((s32)D_8019A07C);
@@ -3117,7 +3117,7 @@ void func_8017D610(void *arg0) {
extern void (*D_801823B0[])(void);
void func_8017D7DC(void *a0) {
D_801823B0[*(u16 *)((s32)a0 + 0x2)]();
D_801823B0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3125,12 +3125,12 @@ extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2);
extern void func_8012A828(s32 a0, void * a1);
void func_8017D818(void *arg0) {
if (*(s16 *)((char *)arg0 + 0x10A) & 0x8000) {
*(s16 *)(*(s32 *)((char *)arg0 + 0x20) + 0x12) = func_80012ABC((s32)*(s16 *)(*(s32 *)((char *)arg0 + 0x20) + 0x12), *(s16 *)((char *)arg0 + 0x10A) & 0xFFF, 4);
if (((Unkstruct_800B5CB8 *)arg0)->unk10A & 0x8000) {
((Unkstruct_800B5CB8 *)*(s32 *)((char *)arg0 + 0x20))->unk12 = func_80012ABC((s32)*(s16 *)(((Unkstruct_800B5CB8 *)arg0)->unk20 + 0x12), ((Unkstruct_800B5CB8 *)arg0)->unk10A & 0xFFF, 4);
}
if (*(void **)((char *)arg0 + 0xF8) != 0 && *(void **)((char *)arg0 + 0x90) != *(void **)((char *)arg0 + 0xF8)) {
func_8012A828(arg0, *(void **)((char *)arg0 + 0xF8));
*(void **)((char *)arg0 + 0xF8) = 0;
if (CAST_SIGN(void *, (char *)arg0, 0xF8) != 0 && CAST_SIGN(void *, (char *)arg0, 0x90) != CAST_SIGN(void *, (char *)arg0, 0xF8)) {
func_8012A828(arg0, CAST_SIGN(void *, (char *)arg0, 0xF8));
CAST_SIGN(void *, (char *)arg0, 0xF8) = 0;
}
}
+16 -16
View File
@@ -3086,10 +3086,10 @@ extern s32 func_8012E57C(s32 a0, s32 a1);
void func_80185C54(void *a0, s32 a1, s32 a2) {
s32 v1 = func_8012E57C(0x61, (s32)(s16)a1);
if (v1 != 0) {
s32 v0 = *(s32 *)((char *)v1 + 0xCC);
s32 v0 = ((Unkstruct_800B5CB8 *)v1)->unkCC;
if (v0 == 0) {
*(s32 *)((char *)v1 + 0xCC) = a2;
*(s32 *)((char *)v1 + 0xD0) = (s32)a0;
((Unkstruct_800B5CB8 *)v1)->unkCC = a2;
((Unkstruct_800B5CB8 *)v1)->unkD0 = (s32)a0;
}
}
}
@@ -3112,14 +3112,14 @@ void func_80185CB8(s32 a0, s32 a1, s32 a2) {
if (v1 == 0) {
return;
}
if (*(s32 *)((char *)v1 + 0xCC) != s0) {
if (((Unkstruct_800B5CB8 *)v1)->unkCC != s0) {
return;
}
if (*(s32 *)((char *)v1 + 0xD0) != s1) {
if (((Unkstruct_800B5CB8 *)v1)->unkD0 != s1) {
return;
}
*(s32 *)((char *)v1 + 0xCC) = 0;
*(s32 *)((char *)v1 + 0xD0) = 0;
((Unkstruct_800B5CB8 *)v1)->unkCC = 0;
((Unkstruct_800B5CB8 *)v1)->unkD0 = 0;
}
@@ -3130,8 +3130,8 @@ extern s32 func_8012E57C(s32 a0, s32 a1);
void func_80185D2C(s32 a0, s32 a1) {
s32 v1 = func_8012E57C(0x61, (s32)(s16)a0);
if (v1 != 0) {
if (*(s16 *)(v1 + 0x10A) < a1) {
*(s16 *)(v1 + 0x10A) = a1;
if (((Unkstruct_800B5CB8 *)v1)->unk10A < a1) {
((Unkstruct_800B5CB8 *)v1)->unk10A = a1;
}
}
}
@@ -3141,7 +3141,7 @@ void func_80185D2C(s32 a0, s32 a1) {
extern void (*D_801B89F8[])(void);
void func_80185D84(void *a0) {
D_801B89F8[*(u16 *)((s32)a0 + 0x2)]();
D_801B89F8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3323,13 +3323,13 @@ s32 func_80185FA8(void *a0) {
p = D_801202A0;
end = p + 0x6480;
for (; p != end; p += 0x10C) {
tag = *(u16 *)p;
tag = ((Unkstruct_800B5CB8 *)p)->unk0;
if (tag != 0 && tag != 0x61 && func_801860B4((s32)p) != 0) {
t = *(s32 *)(p + 0x20);
if (t != 0 && *(s32 *)(t + 0x24) != 0 && *(s32 *)(t + 0x4) >= 0) {
in[0] = *(u16 *)(p + 0x6);
in[1] = *(u16 *)(p + 0xA);
in[2] = *(u16 *)(p + 0xE);
t = ((Unkstruct_800B5CB8 *)p)->unk20;
if (t != 0 && CAST_WIDTH(s32, t, 0x24) != 0 && CAST_WIDTH(s32, t, 0x4) >= 0) {
in[0] = ((Unkstruct_800B5CB8 *)p)->unk6;
in[1] = ((Unkstruct_800B5CB8 *)p)->unkA;
in[2] = ((Unkstruct_800B5CB8 *)p)->unkE;
func_8012F2E8((s32)a0, (s32)in, (s32)out);
if (func_8012CB64((s32)out, -0xA0, 0x80, -0xC0, 0x80) != 0) {
return 1;
+5 -5
View File
@@ -1924,7 +1924,7 @@ extern void func_80016ED4(void *a0);
extern void (*D_80182460[])(void);
void func_8016B4BC(void *a0) {
D_80182460[*(u16 *)((s32)a0 + 0x2)]();
D_80182460[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2040,7 +2040,7 @@ extern void func_80015954(s32 a0, s32 a1);
extern void (*D_801824B0[])(void);
void func_8016BBA4(void *a0) {
D_801824B0[*(u16 *)((s32)a0 + 0x2)]();
D_801824B0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2164,7 +2164,7 @@ extern s32 D_80126B9C;
extern void (*D_801824E8[])(void);
void func_8016CB84(void *a0) {
D_801824E8[*(u16 *)((s32)a0 + 0x2)]();
D_801824E8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2216,7 +2216,7 @@ extern void ApplyMatrixSV(void *a, void *b, void *c);
extern void (*D_8018250C[])(void);
void func_8016D428(void *a0) {
D_8018250C[*(u16 *)((s32)a0 + 0x2)]();
D_8018250C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2294,7 +2294,7 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D26)
extern void (*D_801825A8[])(void);
void func_8016DEA4(void *a0) {
D_801825A8[*(u16 *)((s32)a0 + 0x2)]();
D_801825A8[((Unkstruct_80126B58 *)a0)->unk2]();
}
+28 -28
View File
@@ -2626,34 +2626,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_801AA79C);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801AA790+0xC == &D_801AA79C; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2664,9 +2664,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) {
@@ -2675,11 +2675,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_801AA79C);
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_801AA790 + 0xC)) < 0x101) {
@@ -3303,7 +3303,7 @@ void func_8017BE60(void *a0) {
extern void (*D_80189218[])(void);
void func_8017BEBC(void *a0) {
D_80189218[*(u16 *)((s32)a0 + 0x2)]();
D_80189218[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3354,16 +3354,16 @@ void func_8017BEF8(s32 param_1) {
node = func_800D222C(param_1, &D_80189200, 0xFD);
if (node != 0) {
*(s32 *)(param_1 + 0x20) = node;
*(u32 *)(node + 4) = *(u32 *)(node + 4) | 0x5D000100;
CAST_WIDTH(u32, node, 4) = CAST_WIDTH(u32, node, 4) | 0x5D000100;
((void (*)(void *))func_8001CF30)((void *)node);
*(s16 *)(node + 0x18) = 0x4000;
*(s16 *)(node + 0x1A) = 0x200;
((Unkstruct_800B5CB8 *)node)->unk18 = 0x4000;
((Unkstruct_800B5CB8 *)node)->unk1A = 0x200;
*(s16 *)(param_1 + 0x16) = 0x200;
*(s16 *)(param_1 + 0x14) = 0x1000;
*(s16 *)(node + 0x28) = 0x240;
*(s16 *)(node + 0x2A) = 0x180;
*(s16 *)(node + 0x10) = w.vx;
*(s16 *)(node + 0x12) = w.vy;
((Unkstruct_800B5CB8 *)node)->unk28 = 0x240;
((Unkstruct_800B5CB8 *)node)->unk2A = 0x180;
((Unkstruct_800B5CB8 *)node)->unk10 = w.vx;
((Unkstruct_800B5CB8 *)node)->unk12 = w.vy;
*(s16 *)(param_1 + 2) = *(s16 *)(param_1 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(param_1);
@@ -3377,7 +3377,7 @@ void func_8017BEF8(s32 param_1) {
extern void (*D_80189220[])(void);
void func_8017C150(void *a0) {
D_80189220[*(u16 *)((s32)a0 + 0x2)]();
D_80189220[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3398,13 +3398,13 @@ void func_8017C18C(s32 a0) {
r = func_800D222C(a0, &D_8018920C, 0x18);
if (r != 0) {
*(s32 *)(a0 + 0x20) = r;
*(u32 *)(r + 4) = *(u32 *)(r + 4) | 0x5C000140;
CAST_WIDTH(u32, r, 4) = CAST_WIDTH(u32, r, 4) | 0x5C000140;
func_8001CF30((void *)r);
*(s16 *)(r + 0x10) = 0x400;
*(s16 *)(r + 0x18) = 0x3000;
*(s16 *)(r + 0x1A) = 0x3000;
*(s16 *)(r + 0x28) = 0x248;
*(s16 *)(r + 0x2A) = 0x180;
((Unkstruct_800B5CB8 *)r)->unk10 = 0x400;
((Unkstruct_800B5CB8 *)r)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)r)->unk28 = 0x248;
((Unkstruct_800B5CB8 *)r)->unk2A = 0x180;
*(s16 *)(a0 + 2) = *(s16 *)(a0 + 2) + 1;
} else {
((void (*)(s32))func_80146C3C)(a0);
+16 -16
View File
@@ -2845,7 +2845,7 @@ void func_801839D0(void *a0) {
extern void (*D_8019A5A0[])(void);
void func_80183B80(void *a0) {
D_8019A5A0[*(u16 *)((s32)a0 + 0x2)]();
D_8019A5A0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2853,7 +2853,7 @@ void func_80183B80(void *a0) {
extern void (*D_8019A5DC[])(void);
void func_80183BBC(void *a0) {
D_8019A5DC[*(u16 *)((s32)a0 + 0x2)]();
D_8019A5DC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2866,16 +2866,16 @@ void func_80183BF8(a0)
void *a0;
{
if (func_8012C354((s32)a0, (s32)&D_8019A4F0) != 0) {
*(u8 *)((s32)a0 + 0xC0) = 1;
*(s16 *)((s32)a0 + 0xAE) = -1;
((Unkstruct_800B5CB8 *)a0)->unkC0 = 1;
((Unkstruct_800B5CB8 *)a0)->unkAE = -1;
func_8012A828((s32 *)a0, (s32)D_801851C4);
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1;
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) |= 0x10;
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x18) = 0xE00;
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x1A) = 0xE00;
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x1C) = 0xE00;
*(u16 *)((s32)a0 + 0xFC) = 0x300;
*(u8 *)((s32)a0 + 0x75) = 8;
((Unkstruct_800B5CB8 *)a0)->unk2 = CAST_SIGN(u16, (s32)a0, 0x2) + 1;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk2C |= 0x10;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk18 = 0xE00;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk1A = 0xE00;
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x1C) = 0xE00;
((Unkstruct_800B5CB8 *)a0)->unkFC = 0x300;
((Unkstruct_800B5CB8 *)a0)->unk75 = 8;
}
}
@@ -2893,12 +2893,12 @@ s32 arg0;
s32 s0 = arg0;
if (func_8012C354(s0, (s32)D_8019A5A8) != 0) {
*(u8 *)(s0 + 0xC0) = 1;
((Unkstruct_800B5CB8 *)s0)->unkC0 = 1;
func_8012A828((s32 *)s0, (s32)D_801851C4);
*(u16 *)(s0 + 2) = *(u16 *)(s0 + 2) + 1;
*(u16 *)(*(s32 *)(s0 + 0x20) + 0x2C) = *(u16 *)(*(s32 *)(s0 + 0x20) + 0x2C) | 0x10;
*(u16 *)(*(s32 *)(s0 + 0x20) + 0x18) = 0xAAA;
*(u16 *)(*(s32 *)(s0 + 0x20) + 0x1C) = 0xAAA;
((Unkstruct_800B5CB8 *)s0)->unk2 = CAST_SIGN(u16, s0, 2) + 1;
((Unkstruct_800B5CB8 *)*(s32 *)(s0 + 0x20))->unk2C = ((Unkstruct_800B5CB8 *)*(s32 *)(s0 + 0x20))->unk2C | 0x10;
((Unkstruct_800B5CB8 *)*(s32 *)(s0 + 0x20))->unk18 = 0xAAA;
*(u16 *)(((Unkstruct_800B5CB8 *)s0)->unk20 + 0x1C) = 0xAAA;
}
}
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_8018779C[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_8018779C[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80187840[])(void);
void func_80159B70(void *a0) {
D_80187840[*(u16 *)((s32)a0 + 0x2)]();
D_80187840[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+59 -59
View File
@@ -2795,76 +2795,76 @@ void func_80184304(s32 a0) {
s32 s1;
s32 p;
if (*(s16 *)(a0 + 0xA) >= 0x10) {
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
func_80184F88(a0);
return;
}
if ((*(u32 *)(a0 + 0xE0) & 8) &&
(*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0)) {
if ((CAST_SIGN(u32, a0, 0xE0) & 8) &&
(CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0)) {
func_8012DBD0(a0, 0x50,
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
}
switch (*(u16 *)(a0 + 0x34)) {
switch (((Unkstruct_800B5CB8 *)a0)->unk34) {
case 0:
s1 = func_8012CBF4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (s1 & 0x2000) {
*(u16 *)(a0 + 0x34) += 1;
if (*(u8 **)(a0 + 0x90) == D_801D4CC0) {
((Unkstruct_800B5CB8 *)a0)->unk34 += 1;
if (CAST_SIGN(u8 *, a0, 0x90) == D_801D4CC0) {
((s32 (*)())func_80187EF4)(a0, 0x9B8);
}
return;
}
if (s1 & 0x4000) {
func_8012B23C(a0);
*(u16 *)(a0 + 0x34) = 2;
((Unkstruct_800B5CB8 *)a0)->unk34 = 2;
}
if (*(u8 *)(a0 + 0xC1) != 0xB) {
if (CAST_SIGN(u8, a0, 0xC1) != 0xB) {
return;
}
if (*(s32 *)(a0 + 0x14) < 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk14 < 0) {
return;
}
func_80131E00(a0, 6);
break;
case 1:
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
s1 = func_8012CBA4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (s1 & 0x4000) {
func_8012B23C(a0);
*(u16 *)(a0 + 0x34) = 2;
((Unkstruct_800B5CB8 *)a0)->unk34 = 2;
return;
}
if (!(s1 & 0x6000)) {
func_80131E00(a0, 0xD);
return;
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
p = func_80143B6C(a0, 1);
if (p != 0) {
*(s16 *)(*(s32 *)(p + 0xCC) + 0x18) = 0x6000;
*(s16 *)(*(s32 *)(p + 0xCC) + 0x1A) = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk18 = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk1A = 0x6000;
}
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 0x11) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
return;
}
if (*(u8 **)(a0 + 0x90) == D_801D4CC0) {
if (CAST_SIGN(u8 *, a0, 0x90) == D_801D4CC0) {
((s32 (*)())func_80187EF4)(a0, 0x9B8);
}
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
@@ -2874,79 +2874,79 @@ void func_80184304(s32 a0) {
case 2:
s1 = func_8012CBA4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (s1 & 0x2000) {
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
}
return;
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
p = func_80143B6C(a0, 1);
if (p != 0) {
*(s16 *)(*(s32 *)(p + 0xCC) + 0x18) = 0x6000;
*(s16 *)(*(s32 *)(p + 0xCC) + 0x1A) = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk18 = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk1A = 0x6000;
}
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x3D) {
return;
}
func_80131E00(a0, 0xD);
break;
case 3:
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
s1 = func_8012CBA4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (!(s1 & 0x6000)) {
func_80131E00(a0, 0xD);
return;
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
p = func_80143B6C(a0, 1);
if (p != 0) {
*(s16 *)(*(s32 *)(p + 0xCC) + 0x18) = 0x6000;
*(s16 *)(*(s32 *)(p + 0xCC) + 0x1A) = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk18 = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk1A = 0x6000;
}
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 5) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 5) {
return;
}
*(u8 *)(a0 + 0xC1) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC1 = 0;
{
u16 t = *(u16 *)(*(s32 *)(a0 + 0x78) + 2);
*(u16 *)(a0 + 0x5E) = 0;
*(u16 *)(a0 + 0x5C) = t;
u16 t = *(u16 *)(((Unkstruct_800B5CB8 *)a0)->unk78 + 2);
CAST_WIDTH(u16, a0, 0x5E) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = t;
}
if (*(u16 *)(a0 + 2) == 0xD) {
if (CAST_SIGN(u16, a0, 2) == 0xD) {
return;
}
*(u16 *)(a0 + 2) = 2;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
break;
case 4:
s1 = func_8012CBF4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (!(s1 & 0x2000)) {
return;
}
if (*(s16 *)(a0 + 0x98) != 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk98 != 0) {
return;
}
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
@@ -2970,8 +2970,8 @@ void func_80184768(s32 *a0) {
s32 pad[2];
func_80131B14();
func_8012B14C(s0, (s32)&D_801BD134);
*(u16 *)(s0 + 0x34) = 0;
*(u32 *)(s0 + 0xE0) |= 0x8;
((Unkstruct_800B5CB8 *)s0)->unk34 = 0;
CAST_SIGN(u32, s0, 0xE0) |= 0x8;
func_8012A828(s0, (void *)&(*(s32 *)D_801D4CC0));
func_80185578(s0, 0);
}
@@ -2981,19 +2981,19 @@ extern s32 D_801BD2B4[];
extern void func_8012A828(s32 a0, void *a1);
void func_801847CC(s32 *a0) {
func_8012A828((s32)a0, D_801BD2B4[*(u16 *)((s32)a0 + 0x70) & 0xF]);
*(s32 *)((s32)a0 + 0xE4) = 0;
func_8012A828((s32)a0, D_801BD2B4[CAST_SIGN(u16, (s32)a0, 0x70) & 0xF]);
((Unkstruct_800B5CB8 *)a0)->unkE4 = 0;
}
void func_80184818(s32 param_1) {
if (*(u8 *)(param_1 + 0xC1) != 0) {
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = func_80047948(*(s32 *)(param_1 + 0xE4) << 7) >> 5;
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x14) = func_8004787C(*(s32 *)(param_1 + 0xE4) << 7) >> 4;
if (CAST_SIGN(u8, param_1, 0xC1) != 0) {
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 = func_80047948(((Unkstruct_800B5CB8 *)param_1)->unkE4 << 7) >> 5;
*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x14) = func_8004787C(((Unkstruct_800B5CB8 *)param_1)->unkE4 << 7) >> 4;
func_8012B370(param_1);
*(s32 *)(param_1 + 0xE4) += 1;
((Unkstruct_800B5CB8 *)param_1)->unkE4 += 1;
}
}
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80191F30[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80191F30[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80191FD4[])(void);
void func_80159B70(void *a0) {
D_80191FD4[*(u16 *)((s32)a0 + 0x2)]();
D_80191FD4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+59 -59
View File
@@ -2829,76 +2829,76 @@ void func_801867DC(s32 a0) {
s32 s1;
s32 p;
if (*(s16 *)(a0 + 0xA) >= 0x10) {
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
func_80187460(a0);
return;
}
if ((*(u32 *)(a0 + 0xE0) & 8) &&
(*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0)) {
if ((CAST_SIGN(u32, a0, 0xE0) & 8) &&
(CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0)) {
func_8012DBD0(a0, 0x50,
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
}
switch (*(u16 *)(a0 + 0x34)) {
switch (((Unkstruct_800B5CB8 *)a0)->unk34) {
case 0:
s1 = func_8012CBF4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (s1 & 0x2000) {
*(u16 *)(a0 + 0x34) += 1;
if (*(u8 **)(a0 + 0x90) == D_801D3E04) {
((Unkstruct_800B5CB8 *)a0)->unk34 += 1;
if (CAST_SIGN(u8 *, a0, 0x90) == D_801D3E04) {
((s32 (*)())func_8018A3CC)(a0, 0x9B8);
}
return;
}
if (s1 & 0x4000) {
func_8012B23C(a0);
*(u16 *)(a0 + 0x34) = 2;
((Unkstruct_800B5CB8 *)a0)->unk34 = 2;
}
if (*(u8 *)(a0 + 0xC1) != 0xB) {
if (CAST_SIGN(u8, a0, 0xC1) != 0xB) {
return;
}
if (*(s32 *)(a0 + 0x14) < 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk14 < 0) {
return;
}
func_80131E00(a0, 6);
break;
case 1:
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
s1 = func_8012CBA4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (s1 & 0x4000) {
func_8012B23C(a0);
*(u16 *)(a0 + 0x34) = 2;
((Unkstruct_800B5CB8 *)a0)->unk34 = 2;
return;
}
if (!(s1 & 0x6000)) {
func_80131E00(a0, 0xD);
return;
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
p = func_80143B6C(a0, 1);
if (p != 0) {
*(s16 *)(*(s32 *)(p + 0xCC) + 0x18) = 0x6000;
*(s16 *)(*(s32 *)(p + 0xCC) + 0x1A) = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk18 = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk1A = 0x6000;
}
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 0x11) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
return;
}
if (*(u8 **)(a0 + 0x90) == D_801D3E04) {
if (CAST_SIGN(u8 *, a0, 0x90) == D_801D3E04) {
((s32 (*)())func_8018A3CC)(a0, 0x9B8);
}
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
@@ -2908,79 +2908,79 @@ void func_801867DC(s32 a0) {
case 2:
s1 = func_8012CBA4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (s1 & 0x2000) {
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
}
return;
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
p = func_80143B6C(a0, 1);
if (p != 0) {
*(s16 *)(*(s32 *)(p + 0xCC) + 0x18) = 0x6000;
*(s16 *)(*(s32 *)(p + 0xCC) + 0x1A) = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk18 = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk1A = 0x6000;
}
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x3D) {
return;
}
func_80131E00(a0, 0xD);
break;
case 3:
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
s1 = func_8012CBA4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (!(s1 & 0x6000)) {
func_80131E00(a0, 0xD);
return;
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
p = func_80143B6C(a0, 1);
if (p != 0) {
*(s16 *)(*(s32 *)(p + 0xCC) + 0x18) = 0x6000;
*(s16 *)(*(s32 *)(p + 0xCC) + 0x1A) = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk18 = 0x6000;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0xCC))->unk1A = 0x6000;
}
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 5) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 5) {
return;
}
*(u8 *)(a0 + 0xC1) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC1 = 0;
{
u16 t = *(u16 *)(*(s32 *)(a0 + 0x78) + 2);
*(u16 *)(a0 + 0x5E) = 0;
*(u16 *)(a0 + 0x5C) = t;
u16 t = *(u16 *)(((Unkstruct_800B5CB8 *)a0)->unk78 + 2);
CAST_WIDTH(u16, a0, 0x5E) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = t;
}
if (*(u16 *)(a0 + 2) == 0xD) {
if (CAST_SIGN(u16, a0, 2) == 0xD) {
return;
}
*(u16 *)(a0 + 2) = 2;
((Unkstruct_800B5CB8 *)a0)->unk2 = 2;
break;
case 4:
s1 = func_8012CBF4(a0);
if (s1 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (!(s1 & 0x2000)) {
return;
}
if (*(s16 *)(a0 + 0x98) != 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk98 != 0) {
return;
}
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
@@ -3004,8 +3004,8 @@ void func_80186C40(s32 *a0) {
s32 pad[2];
func_80131B14();
func_8012B14C(s0, (s32)&D_801BC278);
*(u16 *)(s0 + 0x34) = 0;
*(u32 *)(s0 + 0xE0) |= 0x8;
((Unkstruct_800B5CB8 *)s0)->unk34 = 0;
CAST_SIGN(u32, s0, 0xE0) |= 0x8;
func_8012A828(s0, (void *)&(*(s32 *)D_801D3E04));
func_80187A50(s0, 0);
}
@@ -3015,19 +3015,19 @@ extern void func_8012A828(s32 a0, void *a1);
extern s32 D_801BC3F8[];
void func_80186CA4(s32 param_1) {
func_8012A828(param_1, (void *)D_801BC3F8[*(u16 *)(param_1 + 0x70) & 0xF]);
*(s32 *)(param_1 + 0xE4) = 0;
func_8012A828(param_1, (void *)D_801BC3F8[CAST_SIGN(u16, param_1, 0x70) & 0xF]);
((Unkstruct_800B5CB8 *)param_1)->unkE4 = 0;
}
void func_80186CF0(s32 param_1) {
if (*(u8 *)(param_1 + 0xC1) != 0) {
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = func_80047948(*(s32 *)(param_1 + 0xE4) << 7) >> 5;
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x14) = func_8004787C(*(s32 *)(param_1 + 0xE4) << 7) >> 4;
if (CAST_SIGN(u8, param_1, 0xC1) != 0) {
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 = func_80047948(((Unkstruct_800B5CB8 *)param_1)->unkE4 << 7) >> 5;
*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x14) = func_8004787C(((Unkstruct_800B5CB8 *)param_1)->unkE4 << 7) >> 4;
func_8012B370(param_1);
*(s32 *)(param_1 + 0xE4) += 1;
((Unkstruct_800B5CB8 *)param_1)->unkE4 += 1;
}
}
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_801873D4[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_801873D4[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80187478[])(void);
void func_80159B70(void *a0) {
D_80187478[*(u16 *)((s32)a0 + 0x2)]();
D_80187478[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+34 -34
View File
@@ -3591,7 +3591,7 @@ extern void func_80171A1C(u8 *a0);
void func_8017DF50(void *arg0) {
s32 b;
s32 a;
a = *(s32 *)(arg0 + 0x20);
a = ((Unkstruct_80126B58 *)arg0)->unk20;
func_8017E100();
*(s16 *)(a + 0x12) = func_8014C568((s16 *)arg0, (s16 *)D_801B12E4);
if (func_80146E98(arg0) != 0) {
@@ -3600,10 +3600,10 @@ void func_8017DF50(void *arg0) {
func_80171A1C((u8 *)arg0);
} else {
((void (*)(s32 *))func_8017E230)(arg0);
if (*(s16 *)(arg0 + 0x20C) == 0) {
if ((*(u16 *)(arg0 + 0xB8) & 0x8000) != 0) {
*(u16 *)(arg0 + 0x20C) = 1;
*(u16 *)(arg0 + 0xB8) = *(u16 *)(arg0 + 0xBA);
if (((Unkstruct_80126B58 *)arg0)->unk20C == 0) {
if ((((Unkstruct_80126B58 *)arg0)->unkB8 & 0x8000) != 0) {
((Unkstruct_80126B58 *)arg0)->unk20C = 1;
((Unkstruct_80126B58 *)arg0)->unkB8 = ((Unkstruct_80126B58 *)arg0)->unkBA;
}
}
}
@@ -3645,7 +3645,7 @@ s32 func_8017E05C(void *a0)
func_80146E90(a0, 4);
func_8017E18C(a0, D_801B12E4, 4);
func_80154150((s32)a0, 0xF);
*(u16 *)((s32)a0 + 0x20C) = 0;
((Unkstruct_80126B58 *)a0)->unk20C = 0;
func_80171A34((s32 *)a0, 2);
return 1;
}
@@ -3764,13 +3764,13 @@ extern s32 D_80188844;
void func_8017E3C0(s32 a0)
{
if (func_8012C354(a0, (s32)D_80188804) != 0) {
*(u8 *)(a0 + 0xC0) = 1;
*(s32 *)(a0 + 0xB4) = -1;
*(s16 *)(a0 + 0xAE) = -1;
*(s16 *)(a0 + 0x2) = 1;
*(u8 *)(a0 + 0x75) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC0 = 1;
((Unkstruct_800B5CB8 *)a0)->unkB4 = -1;
((Unkstruct_800B5CB8 *)a0)->unkAE = -1;
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
((Unkstruct_800B5CB8 *)a0)->unk75 = 0;
func_8012A828(a0, &D_80188844);
*(s32 *)(a0 + 0x1C) = 0xA;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0xA;
}
}
@@ -3880,18 +3880,18 @@ void func_8017E4E0(void *a0)
func_8005A600((s32)p, 0, 0, (u16)tp, 0);
/* r0,r1,r2,r3 then g0..g3 then b0..b3 -- one load each */
*(u8 *)(p + 0x10) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x18) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x20) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x28) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x11) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x19) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x21) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x29) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x12) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x1A) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x22) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x2A) = *(s32 *)((u8 *)a0 + 0x1C);
*(u8 *)(p + 0x10) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x18) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x20) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x28) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x11) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x19) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x21) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x29) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x12) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x1A) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x22) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0x2A) = ((Unkstruct_800B5CB8 *)a0)->unk1C;
*(u8 *)(p + 0xF) = 8; /* tag len */
*(u8 *)(p + 0x13) = 0x3A; /* code */
@@ -3916,13 +3916,13 @@ extern void func_8012C218(void *a0);
void func_8017E648(void *a0)
{
switch (*(u16 *)((s32)a0 + 0x2)) {
switch (CAST_SIGN(u16, (s32)a0, 0x2)) {
case 0:
*(s32 *)((s32)a0 + 0x1C) = 0x7F;
*(u16 *)((s32)a0 + 0x2) = 1;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x7F;
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
break;
case 1:
if (--*(s32 *)((s32)a0 + 0x1C) > 0) {
if (--((Unkstruct_800B5CB8 *)a0)->unk1C > 0) {
func_8017E4E0(a0);
} else {
func_8012C218(a0);
@@ -4111,14 +4111,14 @@ void func_8017EA74(s32 a0) {
if (rec == 0) {
return;
}
if (*(u16 *)(rec + 0x2) >= 8) {
if (CAST_SIGN(u16, rec, 0x2) >= 8) {
return;
}
mode = *(s16 *)(a0 + 0x2);
switch (mode) {
case 0:
if (*(u16 *)(rec + 0x2) == 3) {
if (CAST_SIGN(u16, rec, 0x2) == 3) {
*(s16 *)(a0 + 0x2) = mode + 1;
}
break;
@@ -4133,15 +4133,15 @@ void func_8017EA74(s32 a0) {
case 2:
if (*(s16 *)(a0 + 0x8) < 2) {
vecA[0] = *(u16 *)(rec + 0x6);
vecA[1] = *(u16 *)(rec + 0xA);
vecA[2] = *(u16 *)(rec + 0xE);
vecA[0] = ((Unkstruct_800B5CB8 *)rec)->unk6;
vecA[1] = ((Unkstruct_800B5CB8 *)rec)->unkA;
vecA[2] = ((Unkstruct_800B5CB8 *)rec)->unkE;
*(s32 *)(a0 + 0xC) = 1;
} else {
vecA[0] = D_80126B5E;
vecA[1] = D_80126B62;
vecA[2] = D_80126B66;
if (*(u16 *)(rec + 0x2) == 4) {
if (CAST_SIGN(u16, rec, 0x2) == 4) {
*(s32 *)(a0 + 0xC) = 1;
} else {
*(s32 *)(a0 + 0xC) = 0;
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80180714[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80180714[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_801807B8[])(void);
void func_80159B70(void *a0) {
D_801807B8[*(u16 *)((s32)a0 + 0x2)]();
D_801807B8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_8018ECA8[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_8018ECA8[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_8018ED4C[])(void);
void func_80159B70(void *a0) {
D_8018ED4C[*(u16 *)((s32)a0 + 0x2)]();
D_8018ED4C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80184598[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80184598[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_8018463C[])(void);
void func_80159B70(void *a0) {
D_8018463C[*(u16 *)((s32)a0 + 0x2)]();
D_8018463C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80195A64[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80195A64[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80195B08[])(void);
void func_80159B70(void *a0) {
D_80195B08[*(u16 *)((s32)a0 + 0x2)]();
D_80195B08[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80193F74[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80193F74[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80194018[])(void);
void func_80159B70(void *a0) {
D_80194018[*(u16 *)((s32)a0 + 0x2)]();
D_80194018[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80184DBC[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80184DBC[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80184E60[])(void);
void func_80159B70(void *a0) {
D_80184E60[*(u16 *)((s32)a0 + 0x2)]();
D_80184E60[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80183C6C[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80183C6C[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80183D10[])(void);
void func_80159B70(void *a0) {
D_80183D10[*(u16 *)((s32)a0 + 0x2)]();
D_80183D10[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_80188F28[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80188F28[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80188FCC[])(void);
void func_80159B70(void *a0) {
D_80188FCC[*(u16 *)((s32)a0 + 0x2)]();
D_80188FCC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -2025,8 +2025,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);
@@ -2148,7 +2148,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);
}
@@ -2367,9 +2367,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_8018CB4C[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_8018CB4C[((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:
@@ -2384,13 +2384,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"
@@ -2404,7 +2404,7 @@ mask:
void func_80159B70(void *a0) {
extern void (*D_8018CBF0[])(void);
D_8018CBF0[*(u16 *)((s32)a0 + 0x2)]();
D_8018CBF0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2441,8 +2441,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);
+138 -138
View File
@@ -2091,7 +2091,7 @@ s32 arg0;
}
if (func_80149D9C(arg0) != 0) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149FA8)(arg0);
return;
}
@@ -2102,9 +2102,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_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8014A218)(arg0);
return;
}
@@ -2118,12 +2118,12 @@ s32 arg0;
case 2:
case 6:
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149AD4)(arg0);
return;
}
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149BAC)(arg0);
return;
}
@@ -2136,7 +2136,7 @@ s32 arg0;
break;
case 5:
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
func_800CCCC0(arg0);
return;
}
@@ -2144,18 +2144,18 @@ s32 arg0;
}
if (func_80149CD4(arg0) != 0) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8015E880)(arg0);
return;
}
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149704)(arg0);
return;
}
if (((s32 (*)(s32))func_801488A8)(arg0) == 0) {
sv = *(s32 *)(arg0 + 0x2C);
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
sv = ((Unkstruct_80126B58 *)arg0)->unk2C;
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
func_8014C010(arg0, 1);
((void (*)(s32, s32))func_80147078)(arg0, 0);
((void (*)(s32))func_80159B70)(arg0);
@@ -2166,41 +2166,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_8018CA2C));
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) {
@@ -2212,29 +2212,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) {
@@ -2248,11 +2248,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_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8015C6E0)(arg0);
return;
}
@@ -2260,18 +2260,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);
@@ -2297,7 +2297,7 @@ void func_8015AC48(s32 arg0)
extern M2C_UNK D_8018CA3C;
func_80154150(arg0, 9);
func_80146DB8((s32 *)arg0, &D_8018CA3C);
func_80161CD0(arg0, M2C_FIELD(arg0, u16 *, 0x16E));
func_80161CD0(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
}
@@ -2315,7 +2315,7 @@ void func_8015AC48(s32 arg0)
void func_8015AD3C(void *a0) {
extern void (*D_8018CC00[])(void);
D_8018CC00[*(u16 *)((s32)a0 + 0x2)]();
D_8018CC00[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2411,42 +2411,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_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((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);
}
@@ -2461,50 +2461,50 @@ s32 arg0;
break;
case 5:
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((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);
}
@@ -2512,14 +2512,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);
@@ -2531,7 +2531,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);
}
@@ -2541,79 +2541,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);
}
}
@@ -2621,22 +2621,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);
@@ -2645,10 +2645,10 @@ s32 arg0;
}
if (r == 0) {
if ((((s32 (*)(s32))func_8014A674)(arg0) != 0) && (((s32 (*)(s32))func_8014E434)(arg0) != 0)) {
D_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((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_8018CAA8[*(u16 *)arg0]((void *)arg0);
D_8018CAA8[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8015CF8C)(arg0);
} else {
((void (*)(s32))func_801725A4)(arg0);
+11 -11
View File
@@ -2025,8 +2025,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);
@@ -2148,7 +2148,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);
}
@@ -2367,9 +2367,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_80185670[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80185670[((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:
@@ -2384,13 +2384,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"
@@ -2404,7 +2404,7 @@ mask:
void func_80159B70(void *a0) {
extern void (*D_80185714[])(void);
D_80185714[*(u16 *)((s32)a0 + 0x2)]();
D_80185714[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2441,8 +2441,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);
+138 -138
View File
@@ -2092,7 +2092,7 @@ s32 arg0;
}
if (func_80149D9C(arg0) != 0) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149FA8)(arg0);
return;
}
@@ -2103,9 +2103,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_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8014A218)(arg0);
return;
}
@@ -2119,12 +2119,12 @@ s32 arg0;
case 2:
case 6:
if (((s32 (*)(s32))func_80149AA8)(arg0) != 0) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149AD4)(arg0);
return;
}
if (((s32 (*)(s32))func_80149B54)(arg0) != 0) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149BAC)(arg0);
return;
}
@@ -2137,7 +2137,7 @@ s32 arg0;
break;
case 5:
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
func_800CCCC0(arg0);
return;
}
@@ -2145,18 +2145,18 @@ s32 arg0;
}
if (func_80149CD4(arg0) != 0) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8015E880)(arg0);
return;
}
if (((s32 (*)(s32))func_801496D4)(arg0) != 0) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_80149704)(arg0);
return;
}
if (((s32 (*)(s32))func_801488A8)(arg0) == 0) {
sv = *(s32 *)(arg0 + 0x2C);
D_801855CC[*(u16 *)arg0]((void *)arg0);
sv = ((Unkstruct_80126B58 *)arg0)->unk2C;
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
func_8014C010(arg0, 1);
((void (*)(s32, s32))func_80147078)(arg0, 0);
((void (*)(s32))func_80159B70)(arg0);
@@ -2167,41 +2167,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_80185550));
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) {
@@ -2213,29 +2213,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) {
@@ -2249,11 +2249,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_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8015C6E0)(arg0);
return;
}
@@ -2261,18 +2261,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);
@@ -2298,7 +2298,7 @@ void func_8015AC48(s32 arg0)
extern M2C_UNK D_80185560;
func_80154150(arg0, 9);
func_80146DB8((s32 *)arg0, &D_80185560);
func_80161CD0(arg0, M2C_FIELD(arg0, u16 *, 0x16E));
func_80161CD0(arg0, ((Unkstruct_80126B58 *)arg0)->unk16E);
}
@@ -2316,7 +2316,7 @@ void func_8015AC48(s32 arg0)
void func_8015AD3C(void *a0) {
extern void (*D_80185724[])(void);
D_80185724[*(u16 *)((s32)a0 + 0x2)]();
D_80185724[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2412,42 +2412,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_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((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);
}
@@ -2462,50 +2462,50 @@ s32 arg0;
break;
case 5:
if (((s32 (*)(s32))func_80149A64)(arg0) != 0) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((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);
}
@@ -2513,14 +2513,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);
@@ -2532,7 +2532,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);
}
@@ -2542,79 +2542,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);
}
}
@@ -2622,22 +2622,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);
@@ -2646,10 +2646,10 @@ s32 arg0;
}
if (r == 0) {
if ((((s32 (*)(s32))func_8014A674)(arg0) != 0) && (((s32 (*)(s32))func_8014E434)(arg0) != 0)) {
D_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((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_801855CC[*(u16 *)arg0]((void *)arg0);
D_801855CC[((Unkstruct_80126B58 *)arg0)->unk0]((void *)arg0);
((void (*)(s32))func_8015CF8C)(arg0);
} else {
((void (*)(s32))func_801725A4)(arg0);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_8017FA40[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_8017FA40[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_8017FAE4[])(void);
void func_80159B70(void *a0) {
D_8017FAE4[*(u16 *)((s32)a0 + 0x2)]();
D_8017FAE4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+11 -11
View File
@@ -1171,8 +1171,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);
@@ -1284,7 +1284,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);
}
@@ -1489,9 +1489,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_801804E4[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_801804E4[((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:
@@ -1506,13 +1506,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"
@@ -1523,7 +1523,7 @@ mask:
extern void (*D_80180588[])(void);
void func_80159B70(void *a0) {
D_80180588[*(u16 *)((s32)a0 + 0x2)]();
D_80180588[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1558,8 +1558,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);
+20 -20
View File
@@ -2617,34 +2617,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_801A3D3C);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801A3D30+0xC == &D_801A3D3C; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2655,9 +2655,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) {
@@ -2666,11 +2666,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_801A3D3C);
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_801A3D30 + 0xC)) < 0x101) {
@@ -3962,7 +3962,7 @@ void func_8017DA7C(s32 *arg0) {
extern void (*D_801819E4[])(void);
void func_8017DACC(void *a0) {
D_801819E4[*(u16 *)((s32)a0 + 0x2)]();
D_801819E4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4008,13 +4008,13 @@ void func_8017DBCC(s32 param_1) {
s32 v0;
v0 = ((s32 (*)(void))func_8012C194)();
*(s32 *)(param_1 + 0x20) = v0;
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
if (v0 != 0) {
func_8001CB6C((u8 *)v0, (s32)D_801819F4, 0x1E8, 0x190);
*(u8 *)(v0 + 0x27) = 0x3C;
*(short *)(v0 + 0x1A) = 0x2000;
*(short *)(v0 + 0x18) = 0x2000;
*(short *)(param_1 + 0xFC) = 0;
((Unkstruct_800B5CB8 *)v0)->unk27 = 0x3C;
((Unkstruct_800B5CB8 *)v0)->unk1A = 0x2000;
((Unkstruct_800B5CB8 *)v0)->unk18 = 0x2000;
((Unkstruct_800B5CB8 *)param_1)->unkFC = 0;
func_8012AD50((void *)param_1);
}
}
@@ -4041,7 +4041,7 @@ void func_8017DC40(s32 param_1)
extern void (*D_80181A78[])(void);
void func_8017DCA8(void *a0) {
D_80181A78[*(u16 *)((s32)a0 + 0x2)]();
D_80181A78[((Unkstruct_80126B58 *)a0)->unk2]();
}
+11 -11
View File
@@ -1448,8 +1448,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);
@@ -1571,7 +1571,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);
}
@@ -1790,9 +1790,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_80184700[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80184700[((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:
@@ -1807,13 +1807,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"
@@ -1827,7 +1827,7 @@ mask:
void func_80159B70(void *a0) {
extern void (*D_801847A4[])(void);
D_801847A4[*(u16 *)((s32)a0 + 0x2)]();
D_801847A4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1864,8 +1864,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);
+11 -11
View File
@@ -2026,8 +2026,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);
@@ -2149,7 +2149,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);
}
@@ -2368,9 +2368,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_80180DC0[*(u16 *)param_1 & 0x7fff](param_1);
*(u32 *)(param_1 + 0x44) |= 0x8000000;
switch (*(u16 *)param_1) {
D_80180DC0[((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:
@@ -2385,13 +2385,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"
@@ -2405,7 +2405,7 @@ mask:
void func_80159B70(void *a0) {
extern void (*D_80180E64[])(void);
D_80180E64[*(u16 *)((s32)a0 + 0x2)]();
D_80180E64[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2442,8 +2442,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);