T3: batch t3_S37 — restruct: batch t3_S37 rung S — 50 files (TUs; 1218 drawable) · 965 bodies: 1104 sites → members / 63 kept / 347 skipped · levers off 0 · compiles 351 in 314 s wall · final 50/50 identical · written 46 files | R22 check-all: 218 passed, 0 failed of 218 | type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 376565 cast sites in 54097 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 22:15:37 -06:00
parent 77c982aea5
commit 470d2b73bd
50 changed files with 5265 additions and 2570 deletions
+4 -4
View File
@@ -8539,12 +8539,12 @@ void func_80169BBC(s32 arg0) {
vec[1] = -0x400;
vec[2] = 0;
RotMatrixYXZ(vec, mtx);
*(s32 *)(s2 + 0x34) = (s32)D_80185B38;
CAST_WIDTH(s32, s2, 0x34) = (s32)D_80185B38;
RotMatrixYXZ(rot, D_80185B38);
func_80048D9C(D_80185B38, mtx);
*(u16 *)(s2 + 0x18) = 0x5000;
*(u16 *)(s2 + 0x1A) = 0x2000;
*(s32 *)(s2 + 4) = *(s32 *)(s2 + 4) | 0xC000140;
((Unkstruct_800B5CB8 *)s2)->unk18 = 0x5000;
((Unkstruct_800B5CB8 *)s2)->unk1A = 0x2000;
CAST_WIDTH(s32, s2, 4) = CAST_WIDTH(s32, s2, 4) | 0xC000140;
func_80128EA8(s2, arg0 + 0x24, (s32)D_8018141C);
*(u16 *)(arg0 + 2) = *(u16 *)(arg0 + 2) + 1;
} else {
+15 -15
View File
@@ -3449,13 +3449,13 @@ extern void D_80196F3C;
void func_80184594(s32 param) {
u16 v;
*(s16 *)(param + 2) = 3;
((Unkstruct_800B5CB8 *)param)->unk2 = 3;
((void (*)(s32, s32))func_8012A828)(param, (s32)&D_80196F3C);
v = *(u16 *)(*(s32 *)(param + 0x78) + 2);
*(s16 *)(param + 0x5e) = 0;
*(s16 *)(param + 0xdc) = 0;
*(s32 *)(param + 0x1c) = 0x2d;
*(s16 *)(param + 0x5c) = v;
v = *(u16 *)(((Unkstruct_800B5CB8 *)param)->unk78 + 2);
CAST_WIDTH(s16, param, 0x5e) = 0;
CAST_WIDTH(s16, param, 0xdc) = 0;
((Unkstruct_800B5CB8 *)param)->unk1C = 0x2d;
((Unkstruct_800B5CB8 *)param)->unk5C = v;
}
// @class: schedule
@@ -3504,8 +3504,8 @@ void func_8018469C(s32 param_1) {
}
void func_801846F8(s32 a0) {
*(s16 *)(a0 + 0x2) = 5;
*(s32 *)(a0 + 0x1C) = 0x14;
((Unkstruct_800B5CB8 *)a0)->unk2 = 5;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x14;
}
// @class: regalloc-order
@@ -4279,13 +4279,13 @@ void func_801858AC(s32 param_1, s32 param_2)
s16 v0;
int iVar3;
s0 = D_801B1568[*(short *)(param_1 + 0xfc)];
s0 = D_801B1568[((Unkstruct_800B5CB8 *)param_1)->unkFC];
s3 = param_2;
if (((short *)D_801B1568)[*(short *)(param_1 + 0xfc)] == 0) {
*(short *)(param_1 + 0xfc) = 0;
if (((short *)D_801B1568)[((Unkstruct_800B5CB8 *)param_1)->unkFC] == 0) {
((Unkstruct_800B5CB8 *)param_1)->unkFC = 0;
s0 = D_801B1568[0];
}
*(short *)(param_1 + 0xfc) = *(short *)(param_1 + 0xfc) + 1;
((Unkstruct_800B5CB8 *)param_1)->unkFC = ((Unkstruct_800B5CB8 *)param_1)->unkFC + 1;
v0 = (rand() & 3) * 0x400 + 0x1800;
s1 = (v0 - 0x1000) * 0x20;
iVar3 = ((int (*)(int))func_8012913C)(4);
@@ -4316,10 +4316,10 @@ extern s32 func_8012AD50(void *a0);
void func_801859AC(int param_1) {
short uVar1;
*(short *)(param_1 + 0xfc) = 0;
*(int *)(param_1 + 0x1c) = 1;
((Unkstruct_800B5CB8 *)param_1)->unkFC = 0;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 1;
uVar1 = *(unsigned short *)(param_1 + 0x70) & 7;
*(short *)(param_1 + 0xfe) = (uVar1 < 2) ? 0x1e : 0xf;
((Unkstruct_800B5CB8 *)param_1)->unkFE = (uVar1 < 2) ? 0x1e : 0xf;
if (uVar1 != 0) {
func_801858AC(param_1, -0x80);
func_801858AC(param_1, -0x30);
+4 -4
View File
@@ -7234,10 +7234,10 @@ void func_8018230C(s32 arg0) {
void func_801824D0(int param_1)
{
*(short *)(param_1 + 2) = 2;
*(int *)(param_1 + 0x1c) = 0x10;
*(unsigned int *)(*(int *)(param_1 + 0x20) + 4) =
*(unsigned int *)(*(int *)(param_1 + 0x20) + 4) & 0x7fffffff;
((Unkstruct_800B5CB8 *)param_1)->unk2 = 2;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0x10;
*(unsigned int *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 4) =
*(unsigned int *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 4) & 0x7fffffff;
return;
}
+6 -6
View File
@@ -204,10 +204,10 @@ int param_1;
void func_80182DF8(void *a0) {
*(short *)((char *)a0 + 0x2) = 0xB;
*(short *)((char *)a0 + 0x5C) = 0;
*(int *)((char *)a0 + 0x1C) = 0x1E;
*(short *)((char *)a0 + 0x98) = 0;
((Unkstruct_800B5CB8 *)a0)->unk2 = 0xB;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x1E;
((Unkstruct_800B5CB8 *)a0)->unk98 = 0;
}
@@ -745,8 +745,8 @@ extern M2C_UNK D_8018A568;
void func_801838F0(void *arg0) {
((void (*)(void *, void *))func_8012A828)(arg0, &D_8018A568);
*(s16 *)((s32)arg0 + 0x2) = 0x3;
*(s16 *)((s32)arg0 + 0x34) = 0;
((Unkstruct_800B5CB8 *)arg0)->unk2 = 0x3;
((Unkstruct_800B5CB8 *)arg0)->unk34 = 0;
}
+12 -12
View File
@@ -148,11 +148,11 @@ void func_801890C8(s32 a0) {
vec[1] = D_801960CE << 8;
vec[2] = D_801960D0 << 8;
func_800484EC(*(s32 *)(a0 + 0x20) + 0x34, (s32)vec, (s32)out);
func_800484EC(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x34, (s32)vec, (s32)out);
out[0] += *(s16 *)(a0 + 0x6) << 8;
out[1] += *(s16 *)(a0 + 0xA) << 8;
out[2] += *(s16 *)(a0 + 0xE) << 8;
out[0] += CAST_SIGN(s16, a0, 0x6) << 8;
out[1] += CAST_SIGN(s16, a0, 0xA) << 8;
out[2] += CAST_SIGN(s16, a0, 0xE) << 8;
sp.unk0 = out[0] / 256;
sp.unk2 = out[1] / 256;
@@ -3788,7 +3788,7 @@ void func_8018D720(void *param_1)
s32 flag;
u16 cnt;
m = (s32 *)(*(s32 *)((s32)param_1 + 0x20) + 0x34);
m = (s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x34);
gte_SetRotMatrix(m);
gte_SetTransMatrix(m);
@@ -3796,16 +3796,16 @@ void func_8018D720(void *param_1)
RotTransSV(D_801DF68C, sv0, &flag);
RotTransSV(D_801DF694, sv1, &flag);
func_8018D820(*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12), (s32)sv0,
*(s16 *)((s32)param_1 + 0xDC));
func_8018D820(*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12), (s32)sv1,
*(s16 *)((s32)param_1 + 0xDC));
func_8018D820(*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x12), (s32)sv0,
CAST_WIDTH(s16, (s32)param_1, 0xDC));
func_8018D820(*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x12), (s32)sv1,
CAST_WIDTH(s16, (s32)param_1, 0xDC));
cnt = *(u16 *)((s32)param_1 + 0xDC);
cnt = CAST_WIDTH(u16, (s32)param_1, 0xDC);
cnt = cnt + 1;
*(u16 *)((s32)param_1 + 0xDC) = cnt;
CAST_WIDTH(u16, (s32)param_1, 0xDC) = cnt;
if ((s16)cnt >= 3) {
*(u16 *)((s32)param_1 + 0xDC) = 2;
CAST_WIDTH(u16, (s32)param_1, 0xDC) = 2;
}
}
+57 -57
View File
@@ -2622,34 +2622,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_801B4A3C);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801B4A30+0xC == &D_801B4A3C; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2660,9 +2660,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) {
@@ -2671,11 +2671,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_801B4A3C);
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_801B4A30 + 0xC)) < 0x101) {
@@ -3305,7 +3305,7 @@ void func_8017BE60(void *a0) {
extern void (*D_80187E80[])(void);
void func_8017BEBC(void *a0) {
D_80187E80[*(u16 *)((s32)a0 + 0x2)]();
D_80187E80[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3356,16 +3356,16 @@ void func_8017BEF8(s32 param_1) {
node = func_800D222C(param_1, &D_80187E68, 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);
@@ -3379,7 +3379,7 @@ void func_8017BEF8(s32 param_1) {
extern void (*D_80187E88[])(void);
void func_8017C150(void *a0) {
D_80187E88[*(u16 *)((s32)a0 + 0x2)]();
D_80187E88[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3400,13 +3400,13 @@ void func_8017C18C(s32 a0) {
r = func_800D222C(a0, &D_80187E74, 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);
@@ -3610,22 +3610,22 @@ void func_8017C3C4(s32 a0) {
s32 u;
s32 w;
v1 = *(u8 **)(a0 + 0xDC);
v1 = CAST_SIGN(u8 *, a0, 0xDC);
if ((func_800291B4(v1[0] + 0x3A) & 0xFF) != 0) {
func_8012CAE4((void *)a0);
return;
}
if (*(s32 *)(a0 + 0x20) == 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk20 == 0) {
if (func_8012C354(a0, (s32)D_80187EB8) == 0) {
return;
}
func_8001C810(*(s32 *)(a0 + 0x20), (s32)&D_801B1420);
func_8001C810(((Unkstruct_800B5CB8 *)a0)->unk20, (s32)&D_801B1420);
func_8012A828(a0, (void *)&D_80187EF4[(s16)D_801152BA * 16]);
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) |= 0x20;
*(s32 *)(*(s32 *)(a0 + 0x20) + 0x80) = (s32)&D_801B3F48;
*(s32 *)(*(s32 *)(a0 + 0x20) + 0x4) |= 0x40000000;
*(s16 *)(a0 + 0xAE) = -3;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk2C |= 0x20;
*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x80) = (s32)&D_801B3F48;
*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x4) |= 0x40000000;
((Unkstruct_800B5CB8 *)a0)->unkAE = -3;
}
s1 = ((s32 (*)(s32, s32))func_8001D074)(0x7E, 0x100);
@@ -3634,7 +3634,7 @@ void func_8017C3C4(s32 a0) {
}
p = &D_801B3F78;
*(s32 *)(a0 + 0xCC) = s1;
((Unkstruct_800B5CB8 *)a0)->unkCC = s1;
func_8001CD50(s1, (s32)p);
D_801B3F7A = 0x80;
@@ -3649,11 +3649,11 @@ void func_8017C3C4(s32 a0) {
idx = (s16)D_801152BA;
dst = &tbl[idx];
*(s16 *)(s1 + 0x10) = 0x400;
*(s16 *)(s1 + 0x8) = *(u16 *)(a0 + 0x6);
t = *(u16 *)(a0 + 0xA) - 4;
*(u16 *)(a0 + 0xA) = t;
*(s16 *)(s1 + 0x8) = ((Unkstruct_800B5CB8 *)a0)->unk6;
t = ((Unkstruct_800B5CB8 *)a0)->unkA - 4;
((Unkstruct_800B5CB8 *)a0)->unkA = t;
*(s16 *)(s1 + 0xA) = t;
*(s16 *)(s1 + 0xC) = *(u16 *)(a0 + 0xE);
*(s16 *)(s1 + 0xC) = ((Unkstruct_800B5CB8 *)a0)->unkE;
*(s32 *)(s1 + 0x4) |= 0x50000000;
D_801B3F76 = 0xFF;
@@ -3670,7 +3670,7 @@ void func_8017C3C4(s32 a0) {
i = 5;
tbl2 = D_801B3FF8;
*(s32 *)(a0 + 0xD8) = (s32)&tbl2[(s16)D_801152BA];
((Unkstruct_800B5CB8 *)a0)->unkD8 = (s32)&tbl2[(s16)D_801152BA];
while (i < 0x28) {
if ((func_800291B4(i + 0x3B) & 0xFF) != 0) {
@@ -3679,14 +3679,14 @@ void func_8017C3C4(s32 a0) {
i++;
}
if (i != 0x28) {
*(s16 *)(a0 + 0x10A) = 1;
((Unkstruct_800B5CB8 *)a0)->unk10A = 1;
}
w = D_801152BA + 1;
u = *(u16 *)(a0 + 0x2) + 1;
u = CAST_SIGN(u16, a0, 0x2) + 1;
D_80115214 = 0;
D_801152BA = w;
*(u16 *)(a0 + 0x2) = u;
((Unkstruct_800B5CB8 *)a0)->unk2 = u;
}
@@ -3919,7 +3919,7 @@ void func_8017CB10(s32 a0) {
extern void (*D_80187FA0[])(void);
void func_8017CC90(void *a0) {
D_80187FA0[*(u16 *)((s32)a0 + 0x2)]();
D_80187FA0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3966,9 +3966,9 @@ void func_8017CE8C(s32 a0) {
s32 *s0_ptr;
u16 sp[8];
s0_ptr = *(s32 **)(a0 + 0xDC);
s0_ptr = CAST_SIGN(s32 *, a0, 0xDC);
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(a0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)a0)->unk20 = v0;
if (v0 == 0) {
return;
}
@@ -3976,18 +3976,18 @@ void func_8017CE8C(s32 a0) {
func_8001C214(v0, s0_ptr[1]);
func_8012A828(a0, (void *)s0_ptr[2]);
*(s16 *)(a0 + 0x5C) = 0;
*(s32 *)(a0 + 0x58) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
((Unkstruct_800B5CB8 *)a0)->unk58 = 0;
sp[0] = *(u16 *)(a0 + 0x6);
sp[1] = *(u16 *)(a0 + 0xA);
sp[2] = *(u16 *)(a0 + 0xE);
sp[0] = ((Unkstruct_800B5CB8 *)a0)->unk6;
sp[1] = ((Unkstruct_800B5CB8 *)a0)->unkA;
sp[2] = ((Unkstruct_800B5CB8 *)a0)->unkE;
func_800D20C0(&sp[0], &sp[4], 0);
func_800D23D0(&sp[4]);
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) = sp[5] + 0x800;
*(u16 *)(a0 + 0x2) += 1;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk12 = sp[5] + 0x800;
CAST_SIGN(u16, a0, 0x2) += 1;
}
@@ -4057,7 +4057,7 @@ void func_8017D0AC(void *a0) {
extern void (*D_80187FF8[])(void);
void func_8017D0E8(void *a0) {
D_80187FF8[*(u16 *)((s32)a0 + 0x2)]();
D_80187FF8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4224,7 +4224,7 @@ void func_8017D408(int param_1)
extern void (*D_8018800C[])(void);
void func_8017D714(void *a0) {
D_8018800C[*(u16 *)((s32)a0 + 0x2)]();
D_8018800C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4283,7 +4283,7 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D23)
extern void (*D_80188020[])(void);
void func_8017D9B4(void *a0) {
D_80188020[*(u16 *)((s32)a0 + 0x2)]();
D_80188020[((Unkstruct_80126B58 *)a0)->unk2]();
}
+6 -6
View File
@@ -4593,10 +4593,10 @@ s32 func_80187780(s16 *a0, s32 a1, s32 a2, s32 a3) {
return 0;
}
sub = *(s32 *)(obj + 0x20);
*(s32 *)(sub + 0x20) = (s32) D_801A9AA0;
*(u8 *)(sub + 0x27) = 0x56;
*(u16 *)(sub + 0x28) = 0x2A0;
*(u16 *)(sub + 0x2A) = 0x1A0;
((Unkstruct_800B5CB8 *)sub)->unk20 = (s32) D_801A9AA0;
((Unkstruct_800B5CB8 *)sub)->unk27 = 0x56;
((Unkstruct_800B5CB8 *)sub)->unk28 = 0x2A0;
((Unkstruct_800B5CB8 *)sub)->unk2A = 0x1A0;
base = rand() % 200;
if ((rand() & 1) == 0) {
@@ -4604,8 +4604,8 @@ s32 func_80187780(s16 *a0, s32 a1, s32 a2, s32 a3) {
} else {
spd = base + 0x400;
}
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
if (a3 == 0) {
s32 sign;
+4 -4
View File
@@ -7464,14 +7464,14 @@ s32 func_8018317C(s32 a0) {
if (rand() & 1) {
v1 = *(s32 *)(s2 + 0x20);
v0 = -0x2000;
*(s16 *)(v1 + 0x1C) = v0;
CAST_WIDTH(s16, v1, 0x1C) = v0;
} else {
v1 = *(s32 *)(s2 + 0x20);
v0 = 0x2000;
*(s16 *)(v1 + 0x1C) = v0;
CAST_WIDTH(s16, v1, 0x1C) = v0;
}
*(s16 *)(v1 + 0x1A) = v0;
do { *(s16 *)(v1 + 0x18) = v0; } while (0);
((Unkstruct_800B5CB8 *)v1)->unk1A = v0;
do { ((Unkstruct_800B5CB8 *)v1)->unk18 = v0; } while (0);
}
/* Zero-byte scheduling fence (§190-C). Without it BOTH sched1 and sched2
+7 -7
View File
@@ -5397,13 +5397,13 @@ void func_801869C0(s32 param_1, s32 param_2)
s16 v0;
int iVar3;
s0 = D_801E4D50[*(short *)(param_1 + 0xfc)];
s0 = D_801E4D50[((Unkstruct_800B5CB8 *)param_1)->unkFC];
s3 = param_2;
if (((short *)D_801E4D50)[*(short *)(param_1 + 0xfc)] == 0) {
*(short *)(param_1 + 0xfc) = 0;
if (((short *)D_801E4D50)[((Unkstruct_800B5CB8 *)param_1)->unkFC] == 0) {
((Unkstruct_800B5CB8 *)param_1)->unkFC = 0;
s0 = D_801E4D50[0];
}
*(short *)(param_1 + 0xfc) = *(short *)(param_1 + 0xfc) + 1;
((Unkstruct_800B5CB8 *)param_1)->unkFC = ((Unkstruct_800B5CB8 *)param_1)->unkFC + 1;
v0 = (rand() & 3) * 0x400 + 0x1800;
s1 = (v0 - 0x1000) * 0x20;
iVar3 = ((int (*)(int))func_8012913C)(4);
@@ -5435,10 +5435,10 @@ extern s32 func_8012AD50(void *a0);
void func_80186AC0(int param_1) {
short uVar1;
*(short *)(param_1 + 0xfc) = 0;
*(int *)(param_1 + 0x1c) = 1;
((Unkstruct_800B5CB8 *)param_1)->unkFC = 0;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 1;
uVar1 = *(unsigned short *)(param_1 + 0x70) & 7;
*(short *)(param_1 + 0xfe) = (uVar1 < 2) ? 0x1e : 0xf;
((Unkstruct_800B5CB8 *)param_1)->unkFE = (uVar1 < 2) ? 0x1e : 0xf;
if (uVar1 != 0) {
func_801869C0(param_1, -0x80);
func_801869C0(param_1, -0x30);
+17 -17
View File
@@ -3924,15 +3924,15 @@ void func_8017E884(s32 a0, s32 a1) {
return;
}
v0 = *(s32 *)(s0 + 0xC);
v1 = *(s32 *)(a0 + 0x20);
v1 = ((Unkstruct_800B5CB8 *)a0)->unk20;
v0 = v0 << 12;
*(s16 *)(v1 + 0x18) = v0;
*(s16 *)(v1 + 0x1A) = v0;
*(s16 *)(v1 + 0x18) = v0;
*(u16 *)(a0 + 6) = *(u16 *)(s0 + 0);
*(u16 *)(a0 + 0xA) = *(u16 *)(s0 + 2);
*(u16 *)(a0 + 0xE) = *(u16 *)(s0 + 4);
*(s32 *)(a0 + 0x14) = 0xFFE40000;
((Unkstruct_800B5CB8 *)v1)->unk18 = v0;
((Unkstruct_800B5CB8 *)v1)->unk1A = v0;
((Unkstruct_800B5CB8 *)v1)->unk18 = v0;
((Unkstruct_800B5CB8 *)a0)->unk6 = *(u16 *)(s0 + 0);
((Unkstruct_800B5CB8 *)a0)->unkA = *(u16 *)(s0 + 2);
((Unkstruct_800B5CB8 *)a0)->unkE = *(u16 *)(s0 + 4);
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFE40000;
}
@@ -3995,9 +3995,9 @@ void func_8017E92C(void* a0)
return;
}
ptr = *(s32 *)(obj + 0x20);
*(u16 *)(ptr + 0x18) = constK;
*(u16 *)(ptr + 0x1A) = constK;
*(u16 *)(ptr + 0x18) = constK;
((Unkstruct_800B5CB8 *)ptr)->unk18 = constK;
((Unkstruct_800B5CB8 *)ptr)->unk1A = constK;
((Unkstruct_800B5CB8 *)ptr)->unk18 = constK;
*(u16 *)(obj + 0x6) = (u16)outer;
*(u16 *)(obj + 0xE) = (u16)inner;
v1 = *(u16 *)(obj0 + 0xA);
@@ -4258,9 +4258,9 @@ void func_8017EF28(s32 arg0) {
void func_8017F0D0(s32 a0) {
if (*(s16 *)(a0 + 0xFC) != 0) {
if (((Unkstruct_800B5CB8 *)a0)->unkFC != 0) {
func_8002D4C8(4, 0x645);
*(s16 *)(a0 + 0xFC) = 0;
((Unkstruct_800B5CB8 *)a0)->unkFC = 0;
}
}
@@ -4629,7 +4629,7 @@ void func_8017F950(s32 a0)
obj = func_80132EF4(a0, 0x22);
if (obj != 0) {
func_80129374(obj, a0);
*(u16 *)(obj + 0x34) = 0x3000;
((Unkstruct_800B5CB8 *)obj)->unk34 = 0x3000;
}
}
v0 = func_8012BEE8(a0);
@@ -4762,9 +4762,9 @@ void func_8017FC44(s32 a0)
break;
}
tp = *(s32 *)(w + 0x20);
*(u16 *)(tp + 0x1C) = c;
*(u16 *)(tp + 0x1A) = c;
*(u16 *)(tp + 0x18) = c;
CAST_WIDTH(u16, tp, 0x1C) = c;
((Unkstruct_800B5CB8 *)tp)->unk1A = c;
((Unkstruct_800B5CB8 *)tp)->unk18 = c;
*(u16 *)(w + 6) = *(u16 *)(a0 + 6) + D_801854C2[i - 1];
*(u16 *)(w + 0xA) = *(u16 *)(a0 + 0xA) + D_801854D0[i];
*(u16 *)(w + 0xE) = *(u16 *)(a0 + 0xE) + D_801854E0[i];
+57 -57
View File
@@ -2616,34 +2616,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_801D99AC);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801D99A0+0xC == &D_801D99AC; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2654,9 +2654,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) {
@@ -2665,11 +2665,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_801D99AC);
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_801D99A0 + 0xC)) < 0x101) {
@@ -3299,7 +3299,7 @@ void func_8017BE60(void *a0) {
extern void (*D_8018B214[])(void);
void func_8017BEBC(void *a0) {
D_8018B214[*(u16 *)((s32)a0 + 0x2)]();
D_8018B214[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3350,16 +3350,16 @@ void func_8017BEF8(s32 param_1) {
node = func_800D222C(param_1, &D_8018B1FC, 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);
@@ -3373,7 +3373,7 @@ void func_8017BEF8(s32 param_1) {
extern void (*D_8018B21C[])(void);
void func_8017C150(void *a0) {
D_8018B21C[*(u16 *)((s32)a0 + 0x2)]();
D_8018B21C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3394,13 +3394,13 @@ void func_8017C18C(s32 a0) {
r = func_800D222C(a0, &D_8018B208, 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);
@@ -3604,22 +3604,22 @@ void func_8017C3C4(s32 a0) {
s32 u;
s32 w;
v1 = *(u8 **)(a0 + 0xDC);
v1 = CAST_SIGN(u8 *, a0, 0xDC);
if ((func_800291B4(v1[0] + 0x3A) & 0xFF) != 0) {
func_8012CAE4((void *)a0);
return;
}
if (*(s32 *)(a0 + 0x20) == 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk20 == 0) {
if (func_8012C354(a0, (s32)D_8018B24C) == 0) {
return;
}
func_8001C810(*(s32 *)(a0 + 0x20), (s32)&D_801D5FD4);
func_8001C810(((Unkstruct_800B5CB8 *)a0)->unk20, (s32)&D_801D5FD4);
func_8012A828(a0, (void *)&D_8018B288[(s16)D_801152BA * 16]);
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) |= 0x20;
*(s32 *)(*(s32 *)(a0 + 0x20) + 0x80) = (s32)&D_801D94C0;
*(s32 *)(*(s32 *)(a0 + 0x20) + 0x4) |= 0x40000000;
*(s16 *)(a0 + 0xAE) = -3;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk2C |= 0x20;
*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x80) = (s32)&D_801D94C0;
*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x4) |= 0x40000000;
((Unkstruct_800B5CB8 *)a0)->unkAE = -3;
}
s1 = ((s32 (*)(s32, s32))func_8001D074)(0x7E, 0x100);
@@ -3628,7 +3628,7 @@ void func_8017C3C4(s32 a0) {
}
p = &D_801D94F0;
*(s32 *)(a0 + 0xCC) = s1;
((Unkstruct_800B5CB8 *)a0)->unkCC = s1;
func_8001CD50(s1, (s32)p);
D_801D94F2 = 0x80;
@@ -3643,11 +3643,11 @@ void func_8017C3C4(s32 a0) {
idx = (s16)D_801152BA;
dst = &tbl[idx];
*(s16 *)(s1 + 0x10) = 0x400;
*(s16 *)(s1 + 0x8) = *(u16 *)(a0 + 0x6);
t = *(u16 *)(a0 + 0xA) - 4;
*(u16 *)(a0 + 0xA) = t;
*(s16 *)(s1 + 0x8) = ((Unkstruct_800B5CB8 *)a0)->unk6;
t = ((Unkstruct_800B5CB8 *)a0)->unkA - 4;
((Unkstruct_800B5CB8 *)a0)->unkA = t;
*(s16 *)(s1 + 0xA) = t;
*(s16 *)(s1 + 0xC) = *(u16 *)(a0 + 0xE);
*(s16 *)(s1 + 0xC) = ((Unkstruct_800B5CB8 *)a0)->unkE;
*(s32 *)(s1 + 0x4) |= 0x50000000;
D_801D94EE = 0xFF;
@@ -3664,7 +3664,7 @@ void func_8017C3C4(s32 a0) {
i = 5;
tbl2 = D_801D9570;
*(s32 *)(a0 + 0xD8) = (s32)&tbl2[(s16)D_801152BA];
((Unkstruct_800B5CB8 *)a0)->unkD8 = (s32)&tbl2[(s16)D_801152BA];
while (i < 0x28) {
if ((func_800291B4(i + 0x3B) & 0xFF) != 0) {
@@ -3673,14 +3673,14 @@ void func_8017C3C4(s32 a0) {
i++;
}
if (i != 0x28) {
*(s16 *)(a0 + 0x10A) = 1;
((Unkstruct_800B5CB8 *)a0)->unk10A = 1;
}
w = D_801152BA + 1;
u = *(u16 *)(a0 + 0x2) + 1;
u = CAST_SIGN(u16, a0, 0x2) + 1;
D_80115214 = 0;
D_801152BA = w;
*(u16 *)(a0 + 0x2) = u;
((Unkstruct_800B5CB8 *)a0)->unk2 = u;
}
@@ -3913,7 +3913,7 @@ void func_8017CB10(s32 a0) {
extern void (*D_8018B334[])(void);
void func_8017CC90(void *a0) {
D_8018B334[*(u16 *)((s32)a0 + 0x2)]();
D_8018B334[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3960,9 +3960,9 @@ void func_8017CE8C(s32 a0) {
s32 *s0_ptr;
u16 sp[8];
s0_ptr = *(s32 **)(a0 + 0xDC);
s0_ptr = CAST_SIGN(s32 *, a0, 0xDC);
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(a0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)a0)->unk20 = v0;
if (v0 == 0) {
return;
}
@@ -3970,18 +3970,18 @@ void func_8017CE8C(s32 a0) {
func_8001C214(v0, s0_ptr[1]);
func_8012A828(a0, (void *)s0_ptr[2]);
*(s16 *)(a0 + 0x5C) = 0;
*(s32 *)(a0 + 0x58) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
((Unkstruct_800B5CB8 *)a0)->unk58 = 0;
sp[0] = *(u16 *)(a0 + 0x6);
sp[1] = *(u16 *)(a0 + 0xA);
sp[2] = *(u16 *)(a0 + 0xE);
sp[0] = ((Unkstruct_800B5CB8 *)a0)->unk6;
sp[1] = ((Unkstruct_800B5CB8 *)a0)->unkA;
sp[2] = ((Unkstruct_800B5CB8 *)a0)->unkE;
func_800D20C0(&sp[0], &sp[4], 0);
func_800D23D0(&sp[4]);
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) = sp[5] + 0x800;
*(u16 *)(a0 + 0x2) += 1;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk12 = sp[5] + 0x800;
CAST_SIGN(u16, a0, 0x2) += 1;
}
@@ -4051,7 +4051,7 @@ void func_8017D0AC(void *a0) {
extern void (*D_8018B38C[])(void);
void func_8017D0E8(void *a0) {
D_8018B38C[*(u16 *)((s32)a0 + 0x2)]();
D_8018B38C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4218,7 +4218,7 @@ void func_8017D408(int param_1)
extern void (*D_8018B3A0[])(void);
void func_8017D714(void *a0) {
D_8018B3A0[*(u16 *)((s32)a0 + 0x2)]();
D_8018B3A0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4277,7 +4277,7 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D23)
extern void (*D_8018B3B4[])(void);
void func_8017D9B4(void *a0) {
D_8018B3B4[*(u16 *)((s32)a0 + 0x2)]();
D_8018B3B4[((Unkstruct_80126B58 *)a0)->unk2]();
}
+16 -16
View File
@@ -2875,11 +2875,11 @@ void func_801801AC(s32 a0) {
void func_80180234(void *a0) {
s32 v1 = *(s32 *)((s32)a0 + 0x20);
*(s16 *)((s32)a0 + 0x2) = 1;
*(s16 *)((s32)a0 + 0x34) = 0;
*(s16 *)(v1 + 0x10) = 0;
*(s16 *)((s32)a0 + 0x5E) = 0;
s32 v1 = ((Unkstruct_800B5CB8 *)a0)->unk20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 1;
((Unkstruct_800B5CB8 *)a0)->unk34 = 0;
((Unkstruct_800B5CB8 *)v1)->unk10 = 0;
CAST_WIDTH(s16, (s32)a0, 0x5E) = 0;
}
@@ -3834,9 +3834,9 @@ void func_80181708(void *a0) {
void func_801817D8(u8 *a0, u8 *a1) {
u16 sp0[3];
sp0[0] = *(u16 *)(a0 + 6);
sp0[1] = *(u16 *)(a0 + 0xA);
sp0[2] = *(u16 *)(a0 + 0xE);
sp0[0] = ((Unkstruct_800B5CB8 *)a0)->unk6;
sp0[1] = ((Unkstruct_800B5CB8 *)a0)->unkA;
sp0[2] = ((Unkstruct_800B5CB8 *)a0)->unkE;
sp0[0] += *(u16 *)(a1 + 0);
sp0[1] += *(u16 *)(a1 + 2);
@@ -5623,7 +5623,7 @@ void func_80183E70(void *param_1)
s32 flag;
u16 cnt;
m = (s32 *)(*(s32 *)((s32)param_1 + 0x20) + 0x34);
m = (s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x34);
gte_SetRotMatrix(m);
gte_SetTransMatrix(m);
@@ -5631,16 +5631,16 @@ void func_80183E70(void *param_1)
RotTransSV(D_801C4830, sv0, &flag);
RotTransSV(D_801C4838, sv1, &flag);
func_80183F70(*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12), (s32)sv0,
*(s16 *)((s32)param_1 + 0xDC));
func_80183F70(*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12), (s32)sv1,
*(s16 *)((s32)param_1 + 0xDC));
func_80183F70(*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x12), (s32)sv0,
CAST_WIDTH(s16, (s32)param_1, 0xDC));
func_80183F70(*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x12), (s32)sv1,
CAST_WIDTH(s16, (s32)param_1, 0xDC));
cnt = *(u16 *)((s32)param_1 + 0xDC);
cnt = CAST_WIDTH(u16, (s32)param_1, 0xDC);
cnt = cnt + 1;
*(u16 *)((s32)param_1 + 0xDC) = cnt;
CAST_WIDTH(u16, (s32)param_1, 0xDC) = cnt;
if ((s16)cnt >= 3) {
*(u16 *)((s32)param_1 + 0xDC) = 2;
CAST_WIDTH(u16, (s32)param_1, 0xDC) = 2;
}
}
+48 -48
View File
@@ -2622,34 +2622,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_801C620C);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801C6200+0xC == &D_801C620C; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2660,9 +2660,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) {
@@ -2671,11 +2671,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_801C620C);
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_801C6200 + 0xC)) < 0x101) {
@@ -3332,19 +3332,19 @@ void func_8017BF88(s32 a0) {
return;
}
*(s32 *)(a0 + 0x20) = s0;
*(s16 *)(s0 + 0x2A) = 0x1F0;
((Unkstruct_800B5CB8 *)s0)->unk2A = 0x1F0;
s3 = *(s32 *)(s2 + 0x20) + 0x34;
r = rand();
if (*(s32 *)(a0 + 0x2C) == 0) {
scale = 0x1000;
sp10[0] = (r & 0xFF) + 0x240;
*(s16 *)(s0 + 0x28) = 0x240;
*(s16 *)(s0 + 0x18) = scale;
((Unkstruct_800B5CB8 *)s0)->unk28 = 0x240;
((Unkstruct_800B5CB8 *)s0)->unk18 = scale;
} else {
scale = 0x200;
sp10[0] = ((r & 0xFF) << 2) + 0xD00;
*(s16 *)(s0 + 0x28) = 0x244;
*(s16 *)(s0 + 0x18) = 0x1800;
((Unkstruct_800B5CB8 *)s0)->unk28 = 0x244;
((Unkstruct_800B5CB8 *)s0)->unk18 = 0x1800;
}
sp10[1] = ((r & 0x7F00) >> 5) + 0xE00;
sp10[2] = 0;
@@ -3368,7 +3368,7 @@ void func_8017BF88(s32 a0) {
extern void (*D_80185D60[])(void);
void func_8017C0E4(void *a0) {
D_80185D60[*(u16 *)((s32)a0 + 0x2)]();
D_80185D60[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3590,22 +3590,22 @@ void func_8017C2B0(s32 a0) {
s32 u;
s32 w;
v1 = *(u8 **)(a0 + 0xDC);
v1 = CAST_SIGN(u8 *, a0, 0xDC);
if ((func_800291B4(v1[0] + 0x3A) & 0xFF) != 0) {
func_8012CAE4((void *)a0);
return;
}
if (*(s32 *)(a0 + 0x20) == 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk20 == 0) {
if (func_8012C354(a0, (s32)D_80185D90) == 0) {
return;
}
func_8001C810(*(s32 *)(a0 + 0x20), (s32)&D_801C07EC);
func_8001C810(((Unkstruct_800B5CB8 *)a0)->unk20, (s32)&D_801C07EC);
func_8012A828(a0, (void *)&D_80185DCC[(s16)D_801152BA * 16]);
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) |= 0x20;
*(s32 *)(*(s32 *)(a0 + 0x20) + 0x80) = (s32)&D_801C5EB8;
*(s32 *)(*(s32 *)(a0 + 0x20) + 0x4) |= 0x40000000;
*(s16 *)(a0 + 0xAE) = -3;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk2C |= 0x20;
*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x80) = (s32)&D_801C5EB8;
*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x4) |= 0x40000000;
((Unkstruct_800B5CB8 *)a0)->unkAE = -3;
}
s1 = ((s32 (*)(s32, s32))func_8001D074)(0x7E, 0x100);
@@ -3614,7 +3614,7 @@ void func_8017C2B0(s32 a0) {
}
p = &D_801C5EE8;
*(s32 *)(a0 + 0xCC) = s1;
((Unkstruct_800B5CB8 *)a0)->unkCC = s1;
func_8001CD50(s1, (s32)p);
D_801C5EEA = 0x80;
@@ -3629,11 +3629,11 @@ void func_8017C2B0(s32 a0) {
idx = (s16)D_801152BA;
dst = &tbl[idx];
*(s16 *)(s1 + 0x10) = 0x400;
*(s16 *)(s1 + 0x8) = *(u16 *)(a0 + 0x6);
t = *(u16 *)(a0 + 0xA) - 4;
*(u16 *)(a0 + 0xA) = t;
*(s16 *)(s1 + 0x8) = ((Unkstruct_800B5CB8 *)a0)->unk6;
t = ((Unkstruct_800B5CB8 *)a0)->unkA - 4;
((Unkstruct_800B5CB8 *)a0)->unkA = t;
*(s16 *)(s1 + 0xA) = t;
*(s16 *)(s1 + 0xC) = *(u16 *)(a0 + 0xE);
*(s16 *)(s1 + 0xC) = ((Unkstruct_800B5CB8 *)a0)->unkE;
*(s32 *)(s1 + 0x4) |= 0x50000000;
D_801C5EE6 = 0xFF;
@@ -3650,7 +3650,7 @@ void func_8017C2B0(s32 a0) {
i = 5;
tbl2 = D_801C5F68;
*(s32 *)(a0 + 0xD8) = (s32)&tbl2[(s16)D_801152BA];
((Unkstruct_800B5CB8 *)a0)->unkD8 = (s32)&tbl2[(s16)D_801152BA];
while (i < 0x28) {
if ((func_800291B4(i + 0x3B) & 0xFF) != 0) {
@@ -3659,14 +3659,14 @@ void func_8017C2B0(s32 a0) {
i++;
}
if (i != 0x28) {
*(s16 *)(a0 + 0x10A) = 1;
((Unkstruct_800B5CB8 *)a0)->unk10A = 1;
}
w = D_801152BA + 1;
u = *(u16 *)(a0 + 0x2) + 1;
u = CAST_SIGN(u16, a0, 0x2) + 1;
D_80115214 = 0;
D_801152BA = w;
*(u16 *)(a0 + 0x2) = u;
((Unkstruct_800B5CB8 *)a0)->unk2 = u;
}
@@ -3899,7 +3899,7 @@ void func_8017C9FC(s32 a0) {
extern void (*D_80185E78[])(void);
void func_8017CB7C(void *a0) {
D_80185E78[*(u16 *)((s32)a0 + 0x2)]();
D_80185E78[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3946,9 +3946,9 @@ void func_8017CD78(s32 a0) {
s32 *s0_ptr;
u16 sp[8];
s0_ptr = *(s32 **)(a0 + 0xDC);
s0_ptr = CAST_SIGN(s32 *, a0, 0xDC);
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(a0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)a0)->unk20 = v0;
if (v0 == 0) {
return;
}
@@ -3956,18 +3956,18 @@ void func_8017CD78(s32 a0) {
func_8001C214(v0, s0_ptr[1]);
func_8012A828(a0, (void *)s0_ptr[2]);
*(s16 *)(a0 + 0x5C) = 0;
*(s32 *)(a0 + 0x58) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
((Unkstruct_800B5CB8 *)a0)->unk58 = 0;
sp[0] = *(u16 *)(a0 + 0x6);
sp[1] = *(u16 *)(a0 + 0xA);
sp[2] = *(u16 *)(a0 + 0xE);
sp[0] = ((Unkstruct_800B5CB8 *)a0)->unk6;
sp[1] = ((Unkstruct_800B5CB8 *)a0)->unkA;
sp[2] = ((Unkstruct_800B5CB8 *)a0)->unkE;
func_800D20C0(&sp[0], &sp[4], 0);
func_800D23D0(&sp[4]);
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) = sp[5] + 0x800;
*(u16 *)(a0 + 0x2) += 1;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk12 = sp[5] + 0x800;
CAST_SIGN(u16, a0, 0x2) += 1;
}
@@ -4037,7 +4037,7 @@ void func_8017CF98(void *a0) {
extern void (*D_80185ED0[])(void);
void func_8017CFD4(void *a0) {
D_80185ED0[*(u16 *)((s32)a0 + 0x2)]();
D_80185ED0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4206,7 +4206,7 @@ void func_8017D2F4(int param_1)
extern void (*D_80185EE4[])(void);
void func_8017D600(void *a0) {
D_80185EE4[*(u16 *)((s32)a0 + 0x2)]();
D_80185EE4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4265,7 +4265,7 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D23)
extern void (*D_80185EF8[])(void);
void func_8017D8A0(void *a0) {
D_80185EF8[*(u16 *)((s32)a0 + 0x2)]();
D_80185EF8[((Unkstruct_80126B58 *)a0)->unk2]();
}
+3 -3
View File
@@ -3704,15 +3704,15 @@ extern void func_801292C8(u8 *a0);
void func_8017FB84(void *a0) {
s32 v0;
v0 = *(s32 *)((s32)a0 + 0x1C);
v0 = ((Unkstruct_800B5CB8 *)a0)->unk1C;
if (v0 == 0) {
func_8012931C((struct vec *)a0);
v0 = func_80128ED8(*(s32 *)((s32)a0 + 0x20), (s32 *)((s32)a0 + 0x24));
v0 = func_80128ED8(((Unkstruct_800B5CB8 *)a0)->unk20, (s32 *)((s32)a0 + 0x24));
if (v0 != 0) {
func_801292C8((u8 *)a0);
}
} else {
*(s32 *)((s32)a0 + 0x1C) = v0 - 1;
((Unkstruct_800B5CB8 *)a0)->unk1C = v0 - 1;
}
}
+8 -8
View File
@@ -7341,24 +7341,24 @@ s32 func_80186B00(void *a0, s32 a1, s32 a2, s32 a3) {
rvA = rand();
rvB = rvA;
sub = *(s32 *)(obj + 0x20);
*(s32 *)(sub + 0x20) = (s32) D_801A5BF8;
((Unkstruct_800B5CB8 *)sub)->unk20 = (s32) D_801A5BF8;
idx = a3 & 0xF;
{
u16 *tbl = D_801A5C04[idx];
*(u8 *)(sub + 0x27) = (u8) tbl[2];
*(u16 *)(sub + 0x28) = tbl[0];
*(u16 *)(sub + 0x2A) = tbl[1];
((Unkstruct_800B5CB8 *)sub)->unk27 = (u8) tbl[2];
((Unkstruct_800B5CB8 *)sub)->unk28 = tbl[0];
((Unkstruct_800B5CB8 *)sub)->unk2A = tbl[1];
}
if ((a3 & 0x8000) != 0) {
s16 spd = (rvA * 0x10000 >> 0x10) % 0x200 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
} else {
s16 spd = (rvA * 0x10000 >> 0x10) % 0xC00 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
}
+8 -8
View File
@@ -5685,24 +5685,24 @@ s32 func_801879A8(void *a0, s32 a1, s32 a2, s32 a3) {
rvA = rand();
rvB = rvA;
sub = *(s32 *)(obj + 0x20);
*(s32 *)(sub + 0x20) = (s32) D_801A8C24;
((Unkstruct_800B5CB8 *)sub)->unk20 = (s32) D_801A8C24;
idx = a3 & 0xF;
{
u16 *tbl = D_801A8C30[idx];
*(u8 *)(sub + 0x27) = (u8) tbl[2];
*(u16 *)(sub + 0x28) = tbl[0];
*(u16 *)(sub + 0x2A) = tbl[1];
((Unkstruct_800B5CB8 *)sub)->unk27 = (u8) tbl[2];
((Unkstruct_800B5CB8 *)sub)->unk28 = tbl[0];
((Unkstruct_800B5CB8 *)sub)->unk2A = tbl[1];
}
if ((a3 & 0x8000) != 0) {
s16 spd = (rvA * 0x10000 >> 0x10) % 0x200 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
} else {
s16 spd = (rvA * 0x10000 >> 0x10) % 0xC00 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
}
+8 -8
View File
@@ -5625,24 +5625,24 @@ s32 func_80181780(void *a0, s32 a1, s32 a2, s32 a3) {
rvA = rand();
rvB = rvA;
sub = *(s32 *)(obj + 0x20);
*(s32 *)(sub + 0x20) = (s32) D_801A8D9C;
((Unkstruct_800B5CB8 *)sub)->unk20 = (s32) D_801A8D9C;
idx = a3 & 0xF;
{
u16 *tbl = D_801A8DA8[idx];
*(u8 *)(sub + 0x27) = (u8) tbl[2];
*(u16 *)(sub + 0x28) = tbl[0];
*(u16 *)(sub + 0x2A) = tbl[1];
((Unkstruct_800B5CB8 *)sub)->unk27 = (u8) tbl[2];
((Unkstruct_800B5CB8 *)sub)->unk28 = tbl[0];
((Unkstruct_800B5CB8 *)sub)->unk2A = tbl[1];
}
if ((a3 & 0x8000) != 0) {
s16 spd = (rvA * 0x10000 >> 0x10) % 0x200 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
} else {
s16 spd = (rvA * 0x10000 >> 0x10) % 0xC00 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
}
+8 -8
View File
@@ -4916,24 +4916,24 @@ s32 func_80181F88(void *a0, s32 a1, s32 a2, s32 a3) {
rvA = rand();
rvB = rvA;
sub = *(s32 *)(obj + 0x20);
*(s32 *)(sub + 0x20) = (s32) D_8019E208;
((Unkstruct_800B5CB8 *)sub)->unk20 = (s32) D_8019E208;
idx = a3 & 0xF;
{
u16 *tbl = D_8019E214[idx];
*(u8 *)(sub + 0x27) = (u8) tbl[2];
*(u16 *)(sub + 0x28) = tbl[0];
*(u16 *)(sub + 0x2A) = tbl[1];
((Unkstruct_800B5CB8 *)sub)->unk27 = (u8) tbl[2];
((Unkstruct_800B5CB8 *)sub)->unk28 = tbl[0];
((Unkstruct_800B5CB8 *)sub)->unk2A = tbl[1];
}
if ((a3 & 0x8000) != 0) {
s16 spd = (rvA * 0x10000 >> 0x10) % 0x200 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
} else {
s16 spd = (rvA * 0x10000 >> 0x10) % 0xC00 + 0x400;
*(u16 *)(sub + 0x1A) = spd;
*(u16 *)(sub + 0x18) = spd;
((Unkstruct_800B5CB8 *)sub)->unk1A = spd;
((Unkstruct_800B5CB8 *)sub)->unk18 = spd;
*(s32 *)(obj + 0x34) = spd;
}
+13 -13
View File
@@ -3154,7 +3154,7 @@ void func_80187434(void *a0)
*(s16 *)((s32)s0 + 0x06) = out[0];
*(s16 *)((s32)s0 + 0x0A) = out[1];
*(s16 *)((s32)s0 + 0x0E) = out[2];
*(u16 *)(*(s32 *)((s32)s0 + 0x20) + 0x2C) = 0xC020;
((Unkstruct_800B5CB8 *)*(s32 *)((s32)s0 + 0x20))->unk2C = 0xC020;
}
}
@@ -3514,8 +3514,8 @@ void func_80187A30(void *arg0, s32 yy, s32 zz)
*(u16 *)(p + 0xA) = vt[0].vy;
*(s16 *)(p + 0xE) = (vt[0].vz + vt[1].vz) >> 1;
*(s32 *)(p + 0x14) = 0x100000;
*(s16 *)(*(s32 *)(p + 0x20) + 0x18) = *(s16 *)(*(s32 *)(p + 0x20) + 0x1A) = ((rand() % 2) + 2) << 12;
*(u16 *)(*(s32 *)(p + 0x20) + 0x2C) = 0xC010;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0x20))->unk18 = ((Unkstruct_800B5CB8 *)*(s32 *)(p + 0x20))->unk1A = ((rand() % 2) + 2) << 12;
((Unkstruct_800B5CB8 *)*(s32 *)(p + 0x20))->unk2C = 0xC010;
*(s32 *)(p + 0x1C) = rand() % 5;
}
}
@@ -3534,7 +3534,7 @@ out:
w = func_80132EF4((s32)arg0, 0x4D);
if (w != 0) {
*(s32 *)(w + 0x14) = -0x80000 - ((rand() % 5) << 16);
*(s16 *)(*(s32 *)(w + 0x20) + 0x18) = *(s16 *)(*(s32 *)(w + 0x20) + 0x1A) = ((rand() % 4) + 2) << 12;
((Unkstruct_800B5CB8 *)*(s32 *)(w + 0x20))->unk18 = ((Unkstruct_800B5CB8 *)*(s32 *)(w + 0x20))->unk1A = ((rand() % 4) + 2) << 12;
t = rand() % 30;
*(s16 *)(w + 0x6) = ((rand() & 1) == 0) ? -t : t;
*(s16 *)(w + 0xA) = -188;
@@ -3805,9 +3805,9 @@ void func_80188510(s32 a0)
s32 *v0;
v0 = CAST_SIGN(s32 *, ((u8 *)a0), 0x20);
*(s16 *)(((u8 *)v0) + 0x1C) = 0;
*(s16 *)(((u8 *)v0) + 0x1A) = 0;
*(s16 *)(((u8 *)v0) + 0x18) = 0;
CAST_WIDTH(s16, ((u8 *)v0), 0x1C) = 0;
((Unkstruct_800B5CB8 *)v0)->unk1A = 0;
((Unkstruct_800B5CB8 *)v0)->unk18 = 0;
func_8012AD44((s32 *)a0, 1);
func_8002D4C8(0x72E, 0);
}
@@ -4053,10 +4053,10 @@ s32 func_80188A94(s32 a0) {
q = D_801BCA48;
p[0] = p[1] = p[2] = ((t * 128) >> 12) + 0x80;
if (q != 0) {
*(s16 *)(q + 0x18) = *(s16 *)(q + 0x1A) = ((t * 1024) >> 12) + 0x800;
*(u16 *)(q + 0x8) = *(u16 *)(a0 + 0x6);
*(u16 *)(q + 0xA) = *(u16 *)(a0 + 0xA);
*(u16 *)(q + 0xC) = *(u16 *)(a0 + 0xE);
((Unkstruct_800B5CB8 *)q)->unk18 = ((Unkstruct_800B5CB8 *)q)->unk1A = ((t * 1024) >> 12) + 0x800;
((Unkstruct_800B5CB8 *)q)->unk8 = *(u16 *)(a0 + 0x6);
((Unkstruct_800B5CB8 *)q)->unkA = *(u16 *)(a0 + 0xA);
CAST_ALIAS(u16, q, 0xC) = *(u16 *)(a0 + 0xE);
D_8018F208 = D_8018F209 = D_8018F20A = ((t * 96) >> 12) + 0x60;
}
}
@@ -4509,8 +4509,8 @@ void func_80189454(void *a0) {
idx = *(s32 *)((s32)a0 + 0x2C);
func_8001CBDC((s32)s1, (s32)D_8018F380, D_8018F31C[idx][0], D_8018F31C[idx][1]);
uVar1 = D_8018F348[*(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;
+4 -4
View File
@@ -8574,12 +8574,12 @@ void func_80169BBC(s32 arg0) {
vec[1] = -0x400;
vec[2] = 0;
RotMatrixYXZ(vec, mtx);
*(s32 *)(s2 + 0x34) = (s32)D_8019BBF8;
CAST_WIDTH(s32, s2, 0x34) = (s32)D_8019BBF8;
RotMatrixYXZ(rot, D_8019BBF8);
func_80048D9C(D_8019BBF8, mtx);
*(u16 *)(s2 + 0x18) = 0x5000;
*(u16 *)(s2 + 0x1A) = 0x2000;
*(s32 *)(s2 + 4) = *(s32 *)(s2 + 4) | 0xC000140;
((Unkstruct_800B5CB8 *)s2)->unk18 = 0x5000;
((Unkstruct_800B5CB8 *)s2)->unk1A = 0x2000;
CAST_WIDTH(s32, s2, 4) = CAST_WIDTH(s32, s2, 4) | 0xC000140;
func_80128EA8(s2, arg0 + 0x24, (s32)D_80185544);
*(u16 *)(arg0 + 2) = *(u16 *)(arg0 + 2) + 1;
} else {
+54 -54
View File
@@ -3024,7 +3024,7 @@ void func_8017D790(s16 *a0) {
if ((u32)(out[1] + 8) >= 0x1C9) {
return;
}
if ((u32)*(u16 *)p - 2 >= 2) {
if ((u32)((Unkstruct_80126B58 *)p)->unk0 - 2 >= 2) {
D_80126B8C = 0;
D_80126B62 = *(s16 *)&D_80126B62 - 4;
}
@@ -3041,7 +3041,7 @@ void func_8017D790(s16 *a0) {
extern void (*D_80181E94[])(void);
void func_8017D8A4(void *a0) {
D_80181E94[*(u16 *)((s32)a0 + 0x2)]();
D_80181E94[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3061,17 +3061,17 @@ void func_8017D8E0(void *a0)
s32 v1;
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)((u8 *)s0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)s0)->unk20 = v0;
if (!v0) {
func_8012CAE4(s0);
} else {
func_8001C214(v0, *(s32 *)((u8 *)s0 + 0xDC));
*(s32 *)(*(s32 *)((u8 *)s0 + 0x20) + 0x28) = 0x1800180;
v1 = *(s16 *)((u8 *)s0 + 0x70);
*(s32 *)((u8 *)s0 + 0x58) = (s32)&D_80181E54 | 0x40000000;
*(s16 *)((u8 *)s0 + 0x5C) = 0x4C00;
*(u8 *)((u8 *)s0 + 0x75) = 8;
func_8001C214(v0, ((Unkstruct_800B5CB8 *)s0)->unkDC);
*(s32 *)(((Unkstruct_800B5CB8 *)s0)->unk20 + 0x28) = 0x1800180;
v1 = ((Unkstruct_800B5CB8 *)s0)->unk70;
((Unkstruct_800B5CB8 *)s0)->unk58 = (s32)&D_80181E54 | 0x40000000;
((Unkstruct_800B5CB8 *)s0)->unk5C = 0x4C00;
((Unkstruct_800B5CB8 *)s0)->unk75 = 8;
if (v1 == 0) {
func_8017D644(s0);
} else {
@@ -3138,25 +3138,25 @@ void func_8017D9D8(s32 a0)
void func_8017DAA0(s32 *a0) {
s16 w;
if (*(s16 *)((s32)a0 + 0x70) == 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk70 == 0) {
if (func_8012BEE8() != 0) {
w = *(u16 *)((s32)a0 + 0xFC) - 2;
*(u16 *)((s32)a0 + 0xFC) = w;
w = CAST_SIGN(u16, (s32)a0, 0xFC) - 2;
((Unkstruct_800B5CB8 *)a0)->unkFC = w;
if ((s16)w < 0x10) {
*(s32 *)((s32)a0 + 0x1C) = 0x40;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x40;
func_8012AD44(a0, 2);
}
} else {
if (*(s16 *)((s32)a0 + 0xFC) < 0x100) {
*(s16 *)((s32)a0 + 0xFC) = *(s16 *)((s32)a0 + 0xFC) + 4;
if (((Unkstruct_800B5CB8 *)a0)->unkFC < 0x100) {
((Unkstruct_800B5CB8 *)a0)->unkFC = ((Unkstruct_800B5CB8 *)a0)->unkFC + 4;
}
if (*(s32 *)((s32)a0 + 0x1C) == 1) {
if (((Unkstruct_800B5CB8 *)a0)->unk1C == 1) {
func_8002D4C8(0x721, 0);
func_8002D4C8(4, 0x720);
}
}
} else if (*(s16 *)((s32)a0 + 0xFC) < 0x100) {
*(s16 *)((s32)a0 + 0xFC) = *(s16 *)((s32)a0 + 0xFC) + 4;
} else if (((Unkstruct_800B5CB8 *)a0)->unkFC < 0x100) {
((Unkstruct_800B5CB8 *)a0)->unkFC = ((Unkstruct_800B5CB8 *)a0)->unkFC + 4;
}
}
@@ -3176,27 +3176,27 @@ void func_8017DB84(void *arg0) {
s0 = arg0;
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)((u8 *)s0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)s0)->unk20 = v0;
if (v0 == 0) {
func_8012CAE4(s0);
} else {
func_8001C2C4(v0);
*(s16 *)((u8 *)s0 + 0xFE) = *(u16 *)((u8 *)s0 + 0x70) & 0x100;
((Unkstruct_800B5CB8 *)s0)->unkFE = CAST_SIGN(u16, (u8 *)s0, 0x70) & 0x100;
mask = *(u16 *)((u8 *)s0 + 0x70) & 3;
*(u16 *)((u8 *)s0 + 0x70) = mask;
mask = CAST_SIGN(u16, (u8 *)s0, 0x70) & 3;
((Unkstruct_800B5CB8 *)s0)->unk70 = mask;
if (*(s16 *)((u8 *)s0 + 0xFE) == 0) {
*(u16 *)(*(s32 *)((u8 *)s0 + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(*(s32 *)((u8 *)s0 + 0x64) + 0x20) + 0x12) + (mask << 10);
*(s32 *)((u8 *)s0 + 0x58) = (s32)&D_80181E74 | 0x40000000;
*(s16 *)((u8 *)s0 + 0x5C) = 0x4C00;
*(u8 *)((u8 *)s0 + 0x75) = 8;
if (((Unkstruct_800B5CB8 *)s0)->unkFE == 0) {
((Unkstruct_800B5CB8 *)*(s32 *)((u8 *)s0 + 0x20))->unk12 =
*(u16 *)(*(s32 *)(((Unkstruct_800B5CB8 *)s0)->unk64 + 0x20) + 0x12) + (mask << 10);
((Unkstruct_800B5CB8 *)s0)->unk58 = (s32)&D_80181E74 | 0x40000000;
((Unkstruct_800B5CB8 *)s0)->unk5C = 0x4C00;
((Unkstruct_800B5CB8 *)s0)->unk75 = 8;
} else {
*(s32 *)((u8 *)s0 + 0x58) = (s32)&D_80181E84;
*(s16 *)((u8 *)s0 + 0x5C) = 0x4800;
((Unkstruct_800B5CB8 *)s0)->unk58 = (s32)&D_80181E84;
((Unkstruct_800B5CB8 *)s0)->unk5C = 0x4800;
}
func_8012AD50(s0);
@@ -3234,7 +3234,7 @@ s32 func_8017DCDC(void) {
extern void (*D_80181F18[])(void);
void func_8017DCE4(void *a0) {
D_80181F18[*(u16 *)((s32)a0 + 0x2)]();
D_80181F18[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3271,8 +3271,8 @@ void func_8017DD20(s32 a0) {
extern u8 D_8017E678[];
s32 s0 = a0;
if (func_8012C354(a0, (s32)&D_80181EAC)) {
*(u8 *)(s0 + 0xC0) = 1;
*(u16 *)(s0 + 0x2) = 1;
((Unkstruct_800B5CB8 *)s0)->unkC0 = 1;
((Unkstruct_800B5CB8 *)s0)->unk2 = 1;
((void (*)(s32*, s32))func_8012A828)((s32 *)s0, (s32)D_8017E678);
func_801788B8(s0, (s32)func_8017DE18);
}
@@ -3330,7 +3330,7 @@ void *a0;
extern void (*D_80197274[])(void);
void func_8017DE74(void *a0) {
D_80197274[*(u16 *)((s32)a0 + 0x2)]();
D_80197274[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3350,20 +3350,20 @@ void func_8017DEB0(s32 param_1) {
s32 v;
if (((s32 (*)(s32, void *))func_8012C354)(
param_1, &D_80197174[(*(u16 *)(param_1 + 0x70) & 0xF) * 0x34]) != 0) {
if ((*(u16 *)(param_1 + 0x70) & 1) == 0) {
param_1, &D_80197174[(CAST_SIGN(u16, param_1, 0x70) & 0xF) * 0x34]) != 0) {
if ((CAST_SIGN(u16, param_1, 0x70) & 1) == 0) {
v = func_8012C658(0x1E3, 1, param_1);
*(s32 *)(param_1 + 0x6C) = v;
((Unkstruct_800B5CB8 *)param_1)->unk6C = v;
if (v == 0) {
((void (*)(s32))func_8012CAE4)(param_1);
} else {
*(s16 *)(param_1 + 0x2) = 1;
*(s32 *)(param_1 + 0xCC) =
((Unkstruct_800B5CB8 *)param_1)->unk2 = 1;
((Unkstruct_800B5CB8 *)param_1)->unkCC =
((s32 (*)(s32, void *))func_801788B8)(param_1, func_8017E1AC);
}
} else {
*(s16 *)(param_1 + 0x2) = 5;
*(u16 *)(param_1 + 0x100) = *(u16 *)(*(s32 *)(param_1 + 0x64) + 0x36);
((Unkstruct_800B5CB8 *)param_1)->unk2 = 5;
((Unkstruct_800B5CB8 *)param_1)->unk100 = *(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk64 + 0x36);
func_8012A828(param_1, D_80197734);
}
}
@@ -3397,7 +3397,7 @@ void func_8017DFB0(void) {
extern void func_80178CBC(s32 a0, s32 a1);
extern short D_80197224;
void func_8017DFB8(void * arg0) {
*(short *)((char *)arg0 + 0x2) = 4;
((Unkstruct_800B5CB8 *)arg0)->unk2 = 4;
func_80178CBC((int)arg0, (int)&D_80197224);
}
@@ -3428,23 +3428,23 @@ void func_8017E024(void *a0) {
extern u8 D_8019784C[];
s16 mode;
if (*(s16 *)((s32)a0 + 0x100) != *(s16 *)(*(s32 *)((s32)a0 + 0x64) + 0x36)) {
if (((Unkstruct_800B5CB8 *)a0)->unk100 != *(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) = 6;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 6;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_80197744);
*(s16 *)((s32)a0 + 0x5C) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0;
func_8002D4C8(0x5BF, 0);
} else if (mode == 2) {
*(s16 *)((s32)a0 + 0x2) = 6;
*(s32 *)((s32)a0 + 0x1C) = 0x20;
((Unkstruct_800B5CB8 *)a0)->unk2 = 6;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x20;
func_8012A828((s32)a0, D_8019784C);
*(u16 *)((s32)a0 + 0x5C) = 0x8C00;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0x8C00;
}
}
@@ -3454,13 +3454,13 @@ void func_8017E0E4(s32 arg0) {
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
if (*(s16 *) (arg0 + 0x98) == 0) {
if (*(s16 *) (arg0 + 0xFE) == 2) {
if (((Unkstruct_800B5CB8 *)arg0)->unk98 == 0) {
if (((Unkstruct_800B5CB8 *)arg0)->unkFE == 2) {
func_8002D4C8(0x888, 0);
func_8012A828(arg0, D_80197734);
}
*(s16 *) (arg0 + 2) = 5;
*(s16 *) (arg0 + 0xFE) = 0;
((Unkstruct_800B5CB8 *)arg0)->unk2 = 5;
((Unkstruct_800B5CB8 *)arg0)->unkFE = 0;
}
}
+82 -82
View File
@@ -2746,56 +2746,56 @@ void func_80181F74(s32 param_1)
s32 iVar1;
if (*(s16 *)(param_1 + 0xa) >= 0x10) {
if (CAST_SIGN(s16, param_1, 0xa) >= 0x10) {
((void (*)(void *))func_80182858)((void *)param_1);
return;
}
switch (*(u16 *)(param_1 + 0x34)) {
switch (((Unkstruct_800B5CB8 *)param_1)->unk34) {
case 0:
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) -= 0x100;
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 -= 0x100;
iVar1 = func_8012CC64(param_1, &D_801A8340);
if ((iVar1 & 0xff) == 0x1a) {
goto EXIT;
}
if ((iVar1 & 0x2000) != 0) {
*(s32 *)(param_1 + 0x1c) = 0;
*(u16 *)(param_1 + 0x34) += 1;
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
((Unkstruct_800B5CB8 *)param_1)->unk34 += 1;
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 = 0;
goto TAIL;
}
if ((iVar1 & 0x4000) != 0) {
*(u16 *)(param_1 + 0x34) = 4;
*(s32 *)(param_1 + 0x1c) = 0;
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk34 = 4;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 = 0;
func_8012B23C(param_1);
goto TAIL;
}
*(s32 *)(param_1 + 0x1c) += 1;
if (*(s32 *)(param_1 + 0x1c) < 0x3c) {
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)param_1)->unk1C < 0x3c) {
goto TAIL;
}
*(u16 *)(param_1 + 0x34) = 2;
((Unkstruct_800B5CB8 *)param_1)->unk34 = 2;
goto TAIL;
case 1:
*(s32 *)(param_1 + 0x10) = *(s32 *)(param_1 + 0x10) * 15 / 16;
*(s32 *)(param_1 + 0x18) = *(s32 *)(param_1 + 0x18) * 15 / 16;
CAST_WIDTH(s32, param_1, 0x10) = CAST_WIDTH(s32, param_1, 0x10) * 15 / 16;
CAST_WIDTH(s32, param_1, 0x18) = CAST_WIDTH(s32, param_1, 0x18) * 15 / 16;
iVar1 = func_8012CC1C(param_1, &D_801A8340);
if ((iVar1 & 0xff) == 0x1a) {
goto EXIT;
}
if ((iVar1 & 0x6000) == 0) {
*(s32 *)(param_1 + 0x1c) = 0;
*(u16 *)(param_1 + 0x34) += 1;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
((Unkstruct_800B5CB8 *)param_1)->unk34 += 1;
func_8012B23C(param_1);
goto TAIL;
}
if ((*(s32 *)(param_1 + 0x1c) & 3) == 0) {
if ((((Unkstruct_800B5CB8 *)param_1)->unk1C & 3) == 0) {
func_80143B6C(param_1, 1);
}
*(s32 *)(param_1 + 0x1c) += 1;
if (*(s32 *)(param_1 + 0x1c) >= 0x10) {
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)param_1)->unk1C >= 0x10) {
goto C78;
}
goto TAIL;
@@ -2807,7 +2807,7 @@ void func_80181F74(s32 param_1)
goto C78;
}
if ((iVar1 & 0x4000) != 0) {
*(u16 *)(param_1 + 0x34) = 4;
((Unkstruct_800B5CB8 *)param_1)->unk34 = 4;
func_80143B6C(param_1, 1);
func_8012B23C(param_1);
goto TAIL;
@@ -2815,8 +2815,8 @@ void func_80181F74(s32 param_1)
goto L22C;
case 3:
*(s32 *)(param_1 + 0x1c) += 1;
if (*(s32 *)(param_1 + 0x1c) >= 0x10) {
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)param_1)->unk1C >= 0x10) {
goto C78;
}
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
@@ -2838,12 +2838,12 @@ void func_80181F74(s32 param_1)
func_80131C78(param_1);
goto TAIL;
L210:
if ((*(s32 *)(param_1 + 0x1c) & 3) == 0) {
if ((((Unkstruct_800B5CB8 *)param_1)->unk1C & 3) == 0) {
func_80143B6C(param_1, 1);
}
L22C:
*(s32 *)(param_1 + 0x1c) += 1;
if (*(s32 *)(param_1 + 0x1c) < 0x3c) {
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)param_1)->unk1C < 0x3c) {
goto TAIL;
}
func_80131E00(param_1, 0xd);
@@ -2851,8 +2851,8 @@ void func_80181F74(s32 param_1)
TAIL:
((s32 (*)(s32))func_80182944)(param_1);
if (0x100000 < *(s32 *)(param_1 + 0x14)) {
*(s32 *)(param_1 + 0x14) = 0x100000;
if (0x100000 < ((Unkstruct_800B5CB8 *)param_1)->unk14) {
((Unkstruct_800B5CB8 *)param_1)->unk14 = 0x100000;
}
}
@@ -2921,22 +2921,22 @@ void func_80182384(s32 param_1) {
s32 uVar3;
s32 pad[2];
if (0xf < *(s16 *)(param_1 + 0xa)) {
if (0xf < CAST_SIGN(s16, param_1, 0xa)) {
((void (*)(void *))func_80182858)((void *)param_1);
return;
}
if ((*(s32 *)(param_1 + 0x10) != 0) || (*(s32 *)(param_1 + 0x18) != 0)) {
if ((CAST_WIDTH(s32, param_1, 0x10) != 0) || (CAST_WIDTH(s32, param_1, 0x18) != 0)) {
func_8012DBD0(param_1, 0x50,
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12) + 0x800, 0x1D);
*(s16 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 0x12) + 0x800, 0x1D);
}
bVar1 = *(u8 *)(param_1 + 0xc2);
bVar1 = ((Unkstruct_800B5CB8 *)param_1)->unkC2;
switch (bVar1) {
case 0:
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) -= 0x100;
*(s32 *)(param_1 + 0x1c) += 1;
if (0x28 < *(s32 *)(param_1 + 0x1c)) {
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 -= 0x100;
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (0x28 < ((Unkstruct_800B5CB8 *)param_1)->unk1C) {
goto LAB_80180730;
}
uVar3 = func_8012CC64(param_1, &D_801A8340);
@@ -2947,22 +2947,22 @@ void func_80182384(s32 param_1) {
if ((uVar3 & 0xff) == 0x1a) {
goto LAB_8018066C;
}
*(u8 *)(param_1 + 0xc2) = 2;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 2;
func_80143B6C(param_1, 1);
*(s32 *)(param_1 + 0x14) = 0xFFF30000;
*(s32 *)(param_1 + 0x1c) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk14 = 0xFFF30000;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
}
goto LAB_80180740;
case 2: {
s32 saved14;
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) -= 0x100;
*(s32 *)(param_1 + 0x1c) += 1;
if (0x28 < *(s32 *)(param_1 + 0x1c)) {
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 -= 0x100;
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (0x28 < ((Unkstruct_800B5CB8 *)param_1)->unk1C) {
goto LAB_80180730;
}
saved14 = *(s32 *)(param_1 + 0x14);
saved14 = ((Unkstruct_800B5CB8 *)param_1)->unk14;
uVar3 = func_8012CC64(param_1, &D_801A8340);
if ((uVar3 & 0x4000) != 0) {
goto LAB_80180644;
@@ -2972,18 +2972,18 @@ void func_80182384(s32 param_1) {
goto LAB_8018066C;
}
func_80143B6C(param_1, 1);
*(s32 *)(param_1 + 0x14) = saved14;
*(u8 *)(param_1 + 0xc2) = 3;
*(s32 *)(param_1 + 0x1c) = 0;
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk14 = saved14;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 3;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk10 = 0;
}
goto LAB_80180740;
}
case 3:
*(s32 *)(param_1 + 0x10) = *(s32 *)(param_1 + 0x10) * 15 / 16;
*(s32 *)(param_1 + 0x18) = *(s32 *)(param_1 + 0x18) * 15 / 16;
if ((*(u8 *)(param_1 + 0xc3) & 1) == 0) {
CAST_WIDTH(s32, param_1, 0x10) = CAST_WIDTH(s32, param_1, 0x10) * 15 / 16;
CAST_WIDTH(s32, param_1, 0x18) = CAST_WIDTH(s32, param_1, 0x18) * 15 / 16;
if ((((Unkstruct_800B5CB8 *)param_1)->unkC3 & 1) == 0) {
goto CASE3_CC64;
}
uVar3 = func_8012CC1C(param_1, &D_801A8340);
@@ -2999,7 +2999,7 @@ void func_80182384(s32 param_1) {
}
LAB_80180644:
func_8012B23C(param_1);
*(u8 *)(param_1 + 0xc2) = 4;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 4;
goto LAB_80180740;
CASE3_NO4000:
@@ -3014,14 +3014,14 @@ void func_80182384(s32 param_1) {
return;
CASE3_SETFLAG:
*(u8 *)(param_1 + 0xc3) = *(u8 *)(param_1 + 0xc3) | 1;
((Unkstruct_800B5CB8 *)param_1)->unkC3 = ((Unkstruct_800B5CB8 *)param_1)->unkC3 | 1;
CASE3_TAIL:
if ((*(u32 *)(param_1 + 0x1c) & 3) == 3) {
if ((CAST_SIGN(u32, param_1, 0x1c) & 3) == 3) {
func_80143B6C(param_1, 1);
}
*(s32 *)(param_1 + 0x1c) += 1;
if (*(s32 *)(param_1 + 0x1c) < 0x11) {
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)param_1)->unk1C < 0x11) {
goto LAB_80180740;
}
if ((uVar3 & 0x6000) == 0) {
@@ -3040,11 +3040,11 @@ void func_80182384(s32 param_1) {
goto LAB_80180740;
CASE4_COUNTER:
if ((*(u32 *)(param_1 + 0x1c) & 3) == 3) {
if ((CAST_SIGN(u32, param_1, 0x1c) & 3) == 3) {
func_80143B6C(param_1, 1);
}
*(s32 *)(param_1 + 0x1c) += 1;
if (*(s32 *)(param_1 + 0x1c) < 0x3d) {
((Unkstruct_800B5CB8 *)param_1)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)param_1)->unk1C < 0x3d) {
goto LAB_80180740;
}
goto LAB_80180730;
@@ -3069,12 +3069,12 @@ void func_80182708(s32 param_1)
extern void func_8012B23C(s32 a0);
s32 ptr;
*(u16 *)(param_1 + 0x5c) &= ~1;
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = (*(u16 *)(param_1 + 0x62) + 0x800) & 0xfff;
ptr = *(s32 *)(param_1 + 0x20);
*(u16 *)(ptr + 0x14) = 0;
*(u16 *)(ptr + 0x10) = 0;
*(s32 *)(param_1 + 0x1c) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk5C &= ~1;
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk12 = (((Unkstruct_800B5CB8 *)param_1)->unk62 + 0x800) & 0xfff;
ptr = ((Unkstruct_800B5CB8 *)param_1)->unk20;
CAST_WIDTH(u16, ptr, 0x14) = 0;
((Unkstruct_800B5CB8 *)ptr)->unk10 = 0;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
func_8012B2CC(param_1);
func_8012B23C(param_1);
}
@@ -3086,8 +3086,8 @@ void func_8018276C(s32 param_1) {
extern s32 func_8012B030(u8 *a0);
extern s32 D_80185A54;
*(s16 *)(param_1 + 2) = 1;
*(s16 *)(param_1 + 0x5C) = *(u16 *)(*(s32 *)(param_1 + 0x78) + 2);
((Unkstruct_800B5CB8 *)param_1)->unk2 = 1;
((Unkstruct_800B5CB8 *)param_1)->unk5C = *(u16 *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 2);
func_8012A828(param_1, &D_80185A54);
func_8012B030((u8 *)param_1);
}
@@ -3137,23 +3137,23 @@ void func_80182858(s32 a0)
extern void func_8018290C(s32);
extern void func_801439C0(u8 *a0);
u16 flags = *(u16 *)(a0 + 0x70);
u16 flags = CAST_SIGN(u16, a0, 0x70);
if ((flags & 2) != 0) {
if ((flags & 0x10) != 0) {
*(s16 *)(a0 + 0x2) = 8;
*(s8 *)(a0 + 0xC1) = 0;
*(s16 *)(a0 + 0x5E) = 0;
*(s16 *)(a0 + 0x5C) = *(u16 *)(*(s32 *)(a0 + 0x78) + 0x2);
((Unkstruct_800B5CB8 *)a0)->unk2 = 8;
((Unkstruct_800B5CB8 *)a0)->unkC1 = 0;
CAST_WIDTH(s16, a0, 0x5E) = 0;
((Unkstruct_800B5CB8 *)a0)->unk5C = *(u16 *)(((Unkstruct_800B5CB8 *)a0)->unk78 + 0x2);
func_8012E8A8((u8 *)a0);
*(s16 *)(a0 + 0x6) = *(u16 *)(a0 + 0x88);
*(s16 *)(a0 + 0xA) = *(u16 *)(a0 + 0x8A);
*(s16 *)(a0 + 0xE) = *(u16 *)(a0 + 0x8C);
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) = 0;
((Unkstruct_800B5CB8 *)a0)->unk6 = ((Unkstruct_800B5CB8 *)a0)->unk88;
((Unkstruct_800B5CB8 *)a0)->unkA = ((Unkstruct_800B5CB8 *)a0)->unk8A;
((Unkstruct_800B5CB8 *)a0)->unkE = ((Unkstruct_800B5CB8 *)a0)->unk8C;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk12 = 0;
func_8012B2CC(a0);
{
s32 temp = *(s32 *)(a0 + 0xCC);
s32 temp = ((Unkstruct_800B5CB8 *)a0)->unkCC;
if (temp != 0) {
func_801439C0((u8 *)temp);
}
@@ -3191,23 +3191,23 @@ void func_80182944(void *arg0) {
u8 *s2 = (u8 *)D_800AF630;
V8x_80180D2C out;
v0 = *(s32 *)(s1 + 0xD0);
v0 = ((Unkstruct_800B5CB8 *)s1)->unkD0;
if (v0 != 0) {
s0 = v0;
func_8012F214((s32)arg0, (s32)&D_801A8338, (s32)&out);
*(V8x_80180D2C *)(s0 + 8) = out;
CAST_WIDTH(V8x_80180D2C, s0, 8) = out;
if (*(u32 *)(*(s32 *)(s1 + 0x20) + 4) & 0x80000000) {
*(s32 *)(s0 + 4) |= 0x80000000;
if (*(u32 *)(((Unkstruct_800B5CB8 *)s1)->unk20 + 4) & 0x80000000) {
CAST_WIDTH(s32, s0, 4) |= 0x80000000;
} else {
*(s32 *)(s0 + 4) &= 0x7FFFFFFF;
CAST_WIDTH(s32, s0, 4) &= 0x7FFFFFFF;
}
{
u16 x = *(u16 *)(s2 + 0xA3AA);
s16 r = (func_8004787C(((x * 7) << 3) & 0x7F8) >> 4) + 0x455;
*(s16 *)(s0 + 0x1A) = r;
*(s16 *)(s0 + 0x18) = r;
((Unkstruct_800B5CB8 *)s0)->unk1A = r;
((Unkstruct_800B5CB8 *)s0)->unk18 = r;
}
}
}
+78 -78
View File
@@ -2877,7 +2877,7 @@ void func_8017D110(s32 param_1)
s32 s4;
s32 v0;
if (*(s16 *)(param_1 + 0x70) & 0x8000) {
if (((Unkstruct_800B5CB8 *)param_1)->unk70 & 0x8000) {
s1 = -0x202;
sp10.v[3] = 0x336;
sp10.v[5] = 0;
@@ -2886,60 +2886,60 @@ void func_8017D110(s32 param_1)
sp10.w = 0;
sp10.v[1] = s1;
if (*(s32 *)(param_1 + 0xCC) == 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unkCC == 0) {
sp10.v[1] = -0x260;
sp10.v[4] = 0;
sp10.v[0] = 0;
sp10.v[2] = 0x318;
*(s32 *)(param_1 + 0xCC) = func_8012C51C(&sp10, param_1);
((Unkstruct_800B5CB8 *)param_1)->unkCC = func_8012C51C(&sp10, param_1);
}
if (*(s32 *)(param_1 + 0xD0) == 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unkD0 == 0) {
sp10.v[4] = 1;
sp10.v[0] = 0x70;
sp10.v[1] = s1;
sp10.v[2] = 0x1E0;
*(s32 *)(param_1 + 0xD0) = func_8012C51C(&sp10, param_1);
((Unkstruct_800B5CB8 *)param_1)->unkD0 = func_8012C51C(&sp10, param_1);
}
if (*(s32 *)(param_1 + 0xD4) == 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unkD4 == 0) {
sp10.v[4] = 2;
sp10.v[0] = 0;
sp10.v[1] = s1;
sp10.v[2] = 0x140;
*(s32 *)(param_1 + 0xD4) = func_8012C51C(&sp10, param_1);
((Unkstruct_800B5CB8 *)param_1)->unkD4 = func_8012C51C(&sp10, param_1);
}
if (*(s32 *)(param_1 + 0xD8) == 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unkD8 == 0) {
sp10.v[4] = 3;
sp10.v[0] = 0x40;
sp10.v[1] = s1;
sp10.v[2] = -0x320;
*(s32 *)(param_1 + 0xD8) = func_8012C51C(&sp10, param_1);
((Unkstruct_800B5CB8 *)param_1)->unkD8 = func_8012C51C(&sp10, param_1);
}
if (*(s32 *)(param_1 + 0xEC) == 0) {
if (CAST_WIDTH(s32, param_1, 0xEC) == 0) {
sp10.v[4] = 4;
sp10.v[0] = -9;
sp10.v[1] = -0x2A6;
sp10.v[2] = 0x304;
*(s32 *)(param_1 + 0xEC) = func_8012C51C(&sp10, param_1);
CAST_WIDTH(s32, param_1, 0xEC) = func_8012C51C(&sp10, param_1);
}
if (*(s32 *)(param_1 + 0xF0) == 0) {
if (CAST_WIDTH(s32, param_1, 0xF0) == 0) {
sp10.v[4] = 5;
sp10.v[0] = 9;
sp10.v[1] = -0x2A6;
sp10.v[2] = 0x304;
*(s32 *)(param_1 + 0xF0) = func_8012C51C(&sp10, param_1);
CAST_WIDTH(s32, param_1, 0xF0) = func_8012C51C(&sp10, param_1);
}
if (*(s32 *)(param_1 + 0xF4) == 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unkF4 == 0) {
sp10.v[4] = 6;
sp10.v[1] = -0x2AC;
sp10.v[0] = 0;
sp10.v[2] = 0x2F0;
*(s32 *)(param_1 + 0xF4) = func_8012C51C(&sp10, param_1);
((Unkstruct_800B5CB8 *)param_1)->unkF4 = func_8012C51C(&sp10, param_1);
}
if (*(s32 *)(param_1 + 0xCC) != 0 && *(s32 *)(param_1 + 0xD0) != 0 &&
*(s32 *)(param_1 + 0xD4) != 0 && *(s32 *)(param_1 + 0xD8) != 0 &&
*(s32 *)(param_1 + 0xEC) != 0 && *(s32 *)(param_1 + 0xF0) != 0 &&
*(s32 *)(param_1 + 0xF4) != 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unkCC != 0 && ((Unkstruct_800B5CB8 *)param_1)->unkD0 != 0 &&
((Unkstruct_800B5CB8 *)param_1)->unkD4 != 0 && ((Unkstruct_800B5CB8 *)param_1)->unkD8 != 0 &&
CAST_WIDTH(s32, param_1, 0xEC) != 0 && CAST_WIDTH(s32, param_1, 0xF0) != 0 &&
((Unkstruct_800B5CB8 *)param_1)->unkF4 != 0) {
D_801A9678[0] = 0xF0;
D_801A9678[2] = 0xA0;
D_801A9678[1] = 0xA0;
@@ -2947,13 +2947,13 @@ void func_8017D110(s32 param_1)
D_801A9678[4] = 0;
D_801A9678[6] = 0;
func_800233CC(D_801A9678, 0xB);
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
((Unkstruct_800B5CB8 *)param_1)->unk2 = CAST_SIGN(u16, param_1, 2) + 1;
}
} else {
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = v0;
((Unkstruct_800B5CB8 *)param_1)->unk20 = v0;
if (v0 != 0) {
switch (*(s16 *)(param_1 + 0x70)) {
switch (((Unkstruct_800B5CB8 *)param_1)->unk70) {
case 0:
s3 = (s32)&D_80196BD0;
s2 = (s32)D_801824A8;
@@ -2980,24 +2980,24 @@ void func_8017D110(s32 param_1)
break;
case 4:
case 5:
func_8001CA88(*(s32 *)(param_1 + 0x20), D_801A9678);
func_8001CA88(((Unkstruct_800B5CB8 *)param_1)->unk20, D_801A9678);
s1 = 9;
*(s32 *)(*(s32 *)(param_1 + 0x20) + 4) |= 0x50000000;
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x2E) = 0xC010;
*(s32 *)(((Unkstruct_800B5CB8 *)param_1)->unk20 + 4) |= 0x50000000;
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk2E = 0xC010;
break;
case 6:
func_8001C2C4(*(s32 *)(param_1 + 0x20));
func_8001C2C4(((Unkstruct_800B5CB8 *)param_1)->unk20);
s1 = 0xA;
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = -0xC0;
CAST_ALIAS(s16, *(s32 *)(param_1 + 0x20), 0x10) = -0xC0;
break;
}
if (*(s16 *)(param_1 + 0x70) < 4) {
func_8001C214(*(s32 *)(param_1 + 0x20), s3);
if (((Unkstruct_800B5CB8 *)param_1)->unk70 < 4) {
func_8001C214(((Unkstruct_800B5CB8 *)param_1)->unk20, s3);
func_8012A828(param_1, (void *)s2);
func_80143994(param_1, 0x3000);
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = s4;
((Unkstruct_800B5CB8 *)*(s32 *)(param_1 + 0x20))->unk12 = s4;
}
*(s16 *)(param_1 + 2) = s1;
((Unkstruct_800B5CB8 *)param_1)->unk2 = s1;
}
}
}
@@ -3074,7 +3074,7 @@ void func_8017D518(void *a0)
extern void (*D_80183228[])(void);
void func_8017D704(void *a0) {
D_80183228[*(u16 *)((s32)a0 + 0x2)]();
D_80183228[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3161,26 +3161,26 @@ void func_8017D928(s32 p)
s32 w;
u8 c;
if (*(void **)(p + 0x90) == (void *)&D_801824A8[0]) {
w = *(s32 *)(p + 0x1c);
if (CAST_SIGN(void *, p, 0x90) == (void *)&D_801824A8[0]) {
w = ((Unkstruct_800B5CB8 *)p)->unk1C;
if (w != 0) {
w--;
*(s32 *)(p + 0x1c) = w;
((Unkstruct_800B5CB8 *)p)->unk1C = w;
if (w == 0) {
*(s32 *)(p + 0x1c) = 0;
*(s16 *)(p + 0x98) = 1;
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 1;
}
}
if ((*(u16 *)(p + 0x72) & 0x4000) != 0) {
*(s16 *)(p + 0x98) = 0;
*(s32 *)(p + 0x1c) = 0x14;
if ((((Unkstruct_800B5CB8 *)p)->unk72 & 0x4000) != 0) {
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
((Unkstruct_800B5CB8 *)p)->unk1C = 0x14;
}
c = (u8)func_80029178(0x12c);
if (c != 0) {
func_8012A828(p, (void *)&D_80182640[0]);
*(s32 *)(p + 0x1c) = 0;
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
}
} else if (*(void **)(p + 0x90) == (void *)&D_80182640[0]) {
} else if (CAST_SIGN(void *, p, 0x90) == (void *)&D_80182640[0]) {
c = (u8)func_80029178(0x130);
if (c != 0) {
func_8012A828(p, (void *)&D_80182778[0]);
@@ -3215,26 +3215,26 @@ void func_8017DA30(s32 a0) {
s32 v0;
s32 v1;
if (*(s16 *)((u8 *)a0 + 0x98) == 0) {
v1 = *(s32 *)((u8 *)a0 + 0x90);
if (((Unkstruct_800B5CB8 *)a0)->unk98 == 0) {
v1 = ((Unkstruct_800B5CB8 *)a0)->unk90;
if (v1 == (s32)&D_80182908) {
func_8012A828(a0, &D_80182A60);
*(s32 *)((u8 *)a0 + 0xF8) = 0;
((Unkstruct_800B5CB8 *)a0)->unkF8 = 0;
} else if (v1 == (s32)&D_80182BD0) {
func_8012A828(a0, &D_80182C58);
*(s32 *)((u8 *)a0 + 0xF8) = 0;
((Unkstruct_800B5CB8 *)a0)->unkF8 = 0;
func_800183E0((s32)D_801A1F84);
} else if (v1 != (s32)&D_80182C58) {
goto e58_chk;
} else {
func_8012A828(a0, &D_80182E58);
*(s32 *)((u8 *)a0 + 0xF8) = 0;
((Unkstruct_800B5CB8 *)a0)->unkF8 = 0;
}
}
if ((*(s32 *)((u8 *)a0 + 0x90) != (s32)&D_80182C58)) {
if ((((Unkstruct_800B5CB8 *)a0)->unk90 != (s32)&D_80182C58)) {
e58_chk:
if ((*(s32 *)((u8 *)a0 + 0x90) != (s32)&D_80182E58)) {
v1 = *(s32 *)((u8 *)a0 + 0x1C);
if ((((Unkstruct_800B5CB8 *)a0)->unk90 != (s32)&D_80182E58)) {
v1 = ((Unkstruct_800B5CB8 *)a0)->unk1C;
if (v1 == 0) {
func_800183E0((s32)D_801A1A64);
v0 = (rand() & 0x1F) + 0xF;
@@ -3242,9 +3242,9 @@ e58_chk:
if (v1 == 2) {
func_800183E0((s32)D_801A1CF4);
}
v0 = *(s32 *)((u8 *)a0 + 0x1C) - 1;
v0 = ((Unkstruct_800B5CB8 *)a0)->unk1C - 1;
}
*(s32 *)((u8 *)a0 + 0x1C) = v0;
((Unkstruct_800B5CB8 *)a0)->unk1C = v0;
}
}
func_8017D740(a0);
@@ -3325,7 +3325,7 @@ void func_8017DCC0(s32 arg0)
extern void (*D_80183254[])(void);
void func_8017DD64(void *a0) {
D_80183254[*(u16 *)((s32)a0 + 0x2)]();
D_80183254[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3342,13 +3342,13 @@ void func_8017DDA0(s32 param_1)
s32 v0;
s0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = s0;
((Unkstruct_800B5CB8 *)param_1)->unk20 = s0;
if (s0 != 0) {
func_8001C214(s0, D_8018325C[*(s16 *)(param_1 + 0x70)]);
func_8001C214(s0, D_8018325C[((Unkstruct_800B5CB8 *)param_1)->unk70]);
func_8001D0E8(s0, 0x7FFF, 0x7FFF);
v0 = *(s32 *)(param_1 + 8);
*(s16 *)(param_1 + 0xFC) = 0;
*(s32 *)(param_1 + 0x14) = v0;
v0 = CAST_WIDTH(s32, param_1, 8);
((Unkstruct_800B5CB8 *)param_1)->unkFC = 0;
((Unkstruct_800B5CB8 *)param_1)->unk14 = v0;
func_8012AD50((void *)param_1);
} else {
func_8012C098((void *)param_1);
@@ -3377,7 +3377,7 @@ void func_8017DE30(s32 arg0)
extern void (*D_80183264[])(void);
void func_8017DEA8(void *a0) {
D_80183264[*(u16 *)((s32)a0 + 0x2)]();
D_80183264[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3395,14 +3395,14 @@ void func_8017DEE4(s32 a0) {
var_v0 = func_8012C194();
var_s2 = (s32)&D_801A96B8;
*(s32 *)(a0 + 0x20) = var_v0;
((Unkstruct_800B5CB8 *)a0)->unk20 = var_v0;
if (var_v0 != 0) {
func_8001CD9C(var_v0, (void *)var_s2);
*(u16 *)(var_v0 + 0x1A) = 0x3000;
*(s32 *)(var_v0 + 4) |= 0x50000000;
((Unkstruct_800B5CB8 *)var_v0)->unk1A = 0x3000;
CAST_WIDTH(s32, var_v0, 4) |= 0x50000000;
func_800233CC((void *)var_s2, 0x80);
func_8017E014(a0, var_s2);
*(u16 *)(a0 + 0x100) = 0;
((Unkstruct_800B5CB8 *)a0)->unk100 = 0;
func_8012AD50((void *)a0);
} else {
func_8012C098((void *)a0);
@@ -3421,9 +3421,9 @@ void func_8017DF88(s32 a0) {
func_8017E014(a0, &D_801A96B8);
if (D_800B99DA & 1) {
for (i = 0; i < 4; i++) {
func_8017E070(a0, (s16)(*(u16 *)(a0 + 0x100) + i * 0x400));
func_8017E070(a0, (s16)(CAST_SIGN(u16, a0, 0x100) + i * 0x400));
}
*(u16 *)(a0 + 0x100) += 0xE3;
CAST_SIGN(u16, a0, 0x100) += 0xE3;
}
}
@@ -3436,8 +3436,8 @@ void func_8017E014(s32 a0, s32 a1)
s16 temp;
// Load u16 from a0 + 0xFC, add 0x2D, store back
temp = *(u16 *)(a0 + 0xFC) + 0x2D;
*(s16 *)(a0 + 0xFC) = temp;
temp = CAST_SIGN(u16, a0, 0xFC) + 0x2D;
((Unkstruct_800B5CB8 *)a0)->unkFC = temp;
// Sign extend and call func_8004787C
v0 = temp;
@@ -3497,17 +3497,17 @@ extern void func_8012931C(struct vec *a0);
extern void func_801292C8(u8 *a0);
void func_8017E170(void *a0) {
if (*(u16 *)((s32)a0 + 0x2) == 0) {
if (CAST_SIGN(u16, (s32)a0, 0x2) == 0) {
func_8017E270(a0);
return;
}
if (*(s32 *)((s32)a0 + 0x1C) != 0) {
*(s32 *)((s32)a0 + 0x1C) -= 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C != 0) {
((Unkstruct_800B5CB8 *)a0)->unk1C -= 1;
func_8012931C((struct vec *)a0);
if (*(s16 *)((s32)a0 + 0x32) == 0) {
u16 t = *(u16 *)((s32)a0 + 0xA) + 0x1000;
u16 t = ((Unkstruct_800B5CB8 *)a0)->unkA + 0x1000;
if (t >= 0x1001) {
func_801292C8((u8 *)a0);
return;
@@ -3518,12 +3518,12 @@ void func_8017E170(void *a0) {
return;
}
*(s32 *)((s32)a0 + 0x14) += *(s32 *)((s32)a0 + 0x34);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x14) += *(u16 *)((s32)a0 + 0x30);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x8) = *(u16 *)((s32)a0 + 0x6);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0xA) = *(u16 *)((s32)a0 + 0xA);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0xC) = *(u16 *)((s32)a0 + 0xE);
func_8017E2EC((void *)*(s32 *)((s32)a0 + 0x20));
((Unkstruct_800B5CB8 *)a0)->unk14 += CAST_WIDTH(s32, (s32)a0, 0x34);
*(u16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x14) += CAST_WIDTH(u16, (s32)a0, 0x30);
((Unkstruct_800B5CB8 *)*(s32 *)((s32)a0 + 0x20))->unk8 = ((Unkstruct_800B5CB8 *)a0)->unk6;
((Unkstruct_800B5CB8 *)*(s32 *)((s32)a0 + 0x20))->unkA = ((Unkstruct_800B5CB8 *)a0)->unkA;
((Unkstruct_800B5CB8 *)*(s32 *)((s32)a0 + 0x20))->unkC = ((Unkstruct_800B5CB8 *)a0)->unkE;
func_8017E2EC((void *)((Unkstruct_800B5CB8 *)a0)->unk20);
}
@@ -3831,7 +3831,7 @@ int func_8017E94C(short *pos, int a1, int a2)
if (a2 != 0) {
u8 *ptr = *(u8 **)(v1 + 0x20);
*(s32 *)(ptr + 0x24) = a2;
CAST_WIDTH(s32, ptr, 0x24) = a2;
}
}
+17 -17
View File
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
extern void (*D_8018231C[])(void);
void func_80155580(void *a0) {
D_8018231C[*(u16 *)((s32)a0 + 0x2)]();
D_8018231C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1149,7 +1149,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
extern void (*D_80182790[])(void);
void func_80157544(void *a0) {
D_80182790[*(u16 *)((s32)a0 + 0x2)]();
D_80182790[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1229,7 +1229,7 @@ extern u8 D_80182798;
void func_801578C0(s32 param_1)
{
((void (*)(void))func_80156648)();
*(u8 *)(param_1 + 0x1AA) = 9;
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
func_80154274((s32 *)param_1, (s32)&D_800D5128);
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
func_80147324(0xC20);
@@ -1279,8 +1279,8 @@ void func_8015795C(int param_1)
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
((int (*)(int, int))func_80147A10)(param_1, 0x400);
if (*(int *)(param_1 + 0x2c) >= 0) {
*(int *)(param_1 + 0x2c) = 0;
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
}
func_80147A84(param_1);
((void (*)(int))func_801473EC)(param_1);
@@ -1303,7 +1303,7 @@ void func_8015795C(int param_1)
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
((void (*)(int, void *))func_80146DB8)(param_1, &D_801827A8);
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
*(short *)(param_1 + 2) = 4;
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
}
((void (*)(int))func_801725A4)(param_1);
}
@@ -1368,7 +1368,7 @@ void func_80157D20(void *param_1, s32 param_2)
extern void (*D_801827F8[])(void);
void func_80157DC4(void *a0) {
D_801827F8[*(u16 *)((s32)a0 + 0x2)]();
D_801827F8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1384,7 +1384,7 @@ void func_80157DC4(void *a0) {
extern void (*D_80182800[])(void);
void func_80157FC4(void *a0) {
D_80182800[*(u16 *)((s32)a0 + 0x2)]();
D_80182800[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1406,11 +1406,11 @@ extern s32 D_801827CC;
void func_80158038(void * param)
{
*(u8 *)(param + 0x1aa) = 0xe;
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
func_80154274((s32 *)param, (s32)&D_800D51E0);
func_80154A74(param, 0x15);
func_80146DB8((s32 *)param, &D_801827CC);
*(s32 *)(param + 0x234) = 0;
((Unkstruct_80126B58 *)param)->unk234 = 0;
func_80146994(5, param, 0xc, 0);
func_80147324(0x455);
func_80146CA0((void *)param);
@@ -1425,7 +1425,7 @@ void func_80158038(void * param)
extern void (*D_8018280C[])(void);
void func_8015824C(void *a0) {
D_8018280C[*(u16 *)((s32)a0 + 0x2)]();
D_8018280C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1463,15 +1463,15 @@ void func_80158434(s32 param_1)
s32 frame_pad[4];
(void)&frame_pad;
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
((s32 (*)(void))func_8014CBF8)();
((void (*)(s32))func_801474EC)(param_1);
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_801827DC);
}
if (*(s32 *)(param_1 + 0x234) != 0) {
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
func_80148038(param_1, 0x10000);
func_80147460(param_1);
func_80147AD4(param_1, 0, 0, 0);
@@ -1490,7 +1490,7 @@ LAB_80158508:
((void (*)(s32))func_80146CA0)(param_1);
return;
LAB_80158528:
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
}
@@ -1596,5 +1596,5 @@ extern void (*D_80182848[])(s32 *);
void func_80158880(s32 *param) {
func_80149020(param);
D_80182848[*(u8 *)((s32)param + 0x4F)](param);
D_80182848[((Unkstruct_80126B58 *)param)->unk4F](param);
}
+17 -17
View File
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
extern void (*D_80184720[])(void);
void func_80155580(void *a0) {
D_80184720[*(u16 *)((s32)a0 + 0x2)]();
D_80184720[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1149,7 +1149,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
extern void (*D_80184B94[])(void);
void func_80157544(void *a0) {
D_80184B94[*(u16 *)((s32)a0 + 0x2)]();
D_80184B94[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1229,7 +1229,7 @@ extern u8 D_80184B9C;
void func_801578C0(s32 param_1)
{
((void (*)(void))func_80156648)();
*(u8 *)(param_1 + 0x1AA) = 9;
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
func_80154274((s32 *)param_1, (s32)&D_800D5128);
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
func_80147324(0xC20);
@@ -1279,8 +1279,8 @@ void func_8015795C(int param_1)
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
((int (*)(int, int))func_80147A10)(param_1, 0x400);
if (*(int *)(param_1 + 0x2c) >= 0) {
*(int *)(param_1 + 0x2c) = 0;
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
}
func_80147A84(param_1);
((void (*)(int))func_801473EC)(param_1);
@@ -1303,7 +1303,7 @@ void func_8015795C(int param_1)
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
((void (*)(int, void *))func_80146DB8)(param_1, &D_80184BAC);
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
*(short *)(param_1 + 2) = 4;
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
}
((void (*)(int))func_801725A4)(param_1);
}
@@ -1368,7 +1368,7 @@ void func_80157D20(void *param_1, s32 param_2)
extern void (*D_80184BFC[])(void);
void func_80157DC4(void *a0) {
D_80184BFC[*(u16 *)((s32)a0 + 0x2)]();
D_80184BFC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1384,7 +1384,7 @@ void func_80157DC4(void *a0) {
extern void (*D_80184C04[])(void);
void func_80157FC4(void *a0) {
D_80184C04[*(u16 *)((s32)a0 + 0x2)]();
D_80184C04[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1406,11 +1406,11 @@ extern s32 D_80184BD0;
void func_80158038(void * param)
{
*(u8 *)(param + 0x1aa) = 0xe;
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
func_80154274((s32 *)param, (s32)&D_800D51E0);
func_80154A74(param, 0x15);
func_80146DB8((s32 *)param, &D_80184BD0);
*(s32 *)(param + 0x234) = 0;
((Unkstruct_80126B58 *)param)->unk234 = 0;
func_80146994(5, param, 0xc, 0);
func_80147324(0x455);
func_80146CA0((void *)param);
@@ -1425,7 +1425,7 @@ void func_80158038(void * param)
extern void (*D_80184C10[])(void);
void func_8015824C(void *a0) {
D_80184C10[*(u16 *)((s32)a0 + 0x2)]();
D_80184C10[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1463,15 +1463,15 @@ void func_80158434(s32 param_1)
s32 frame_pad[4];
(void)&frame_pad;
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
((s32 (*)(void))func_8014CBF8)();
((void (*)(s32))func_801474EC)(param_1);
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_80184BE0);
}
if (*(s32 *)(param_1 + 0x234) != 0) {
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
func_80148038(param_1, 0x10000);
func_80147460(param_1);
func_80147AD4(param_1, 0, 0, 0);
@@ -1490,7 +1490,7 @@ LAB_80158508:
((void (*)(s32))func_80146CA0)(param_1);
return;
LAB_80158528:
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
}
@@ -1596,5 +1596,5 @@ extern void (*D_80184C4C[])(s32 *);
void func_80158880(s32 *param) {
func_80149020(param);
D_80184C4C[*(u8 *)((s32)param + 0x4F)](param);
D_80184C4C[((Unkstruct_80126B58 *)param)->unk4F](param);
}
+17 -17
View File
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
extern void (*D_8018672C[])(void);
void func_80155580(void *a0) {
D_8018672C[*(u16 *)((s32)a0 + 0x2)]();
D_8018672C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1149,7 +1149,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
extern void (*D_80186BA0[])(void);
void func_80157544(void *a0) {
D_80186BA0[*(u16 *)((s32)a0 + 0x2)]();
D_80186BA0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1229,7 +1229,7 @@ extern u8 D_80186BA8;
void func_801578C0(s32 param_1)
{
((void (*)(void))func_80156648)();
*(u8 *)(param_1 + 0x1AA) = 9;
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
func_80154274((s32 *)param_1, (s32)&D_800D5128);
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
func_80147324(0xC20);
@@ -1279,8 +1279,8 @@ void func_8015795C(int param_1)
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
((int (*)(int, int))func_80147A10)(param_1, 0x400);
if (*(int *)(param_1 + 0x2c) >= 0) {
*(int *)(param_1 + 0x2c) = 0;
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
}
func_80147A84(param_1);
((void (*)(int))func_801473EC)(param_1);
@@ -1303,7 +1303,7 @@ void func_8015795C(int param_1)
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
((void (*)(int, void *))func_80146DB8)(param_1, &D_80186BB8);
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
*(short *)(param_1 + 2) = 4;
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
}
((void (*)(int))func_801725A4)(param_1);
}
@@ -1368,7 +1368,7 @@ void func_80157D20(void *param_1, s32 param_2)
extern void (*D_80186C08[])(void);
void func_80157DC4(void *a0) {
D_80186C08[*(u16 *)((s32)a0 + 0x2)]();
D_80186C08[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1384,7 +1384,7 @@ void func_80157DC4(void *a0) {
extern void (*D_80186C10[])(void);
void func_80157FC4(void *a0) {
D_80186C10[*(u16 *)((s32)a0 + 0x2)]();
D_80186C10[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1406,11 +1406,11 @@ extern s32 D_80186BDC;
void func_80158038(void * param)
{
*(u8 *)(param + 0x1aa) = 0xe;
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
func_80154274((s32 *)param, (s32)&D_800D51E0);
func_80154A74(param, 0x15);
func_80146DB8((s32 *)param, &D_80186BDC);
*(s32 *)(param + 0x234) = 0;
((Unkstruct_80126B58 *)param)->unk234 = 0;
func_80146994(5, param, 0xc, 0);
func_80147324(0x455);
func_80146CA0((void *)param);
@@ -1425,7 +1425,7 @@ void func_80158038(void * param)
extern void (*D_80186C1C[])(void);
void func_8015824C(void *a0) {
D_80186C1C[*(u16 *)((s32)a0 + 0x2)]();
D_80186C1C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1463,15 +1463,15 @@ void func_80158434(s32 param_1)
s32 frame_pad[4];
(void)&frame_pad;
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
((s32 (*)(void))func_8014CBF8)();
((void (*)(s32))func_801474EC)(param_1);
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_80186BEC);
}
if (*(s32 *)(param_1 + 0x234) != 0) {
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
func_80148038(param_1, 0x10000);
func_80147460(param_1);
func_80147AD4(param_1, 0, 0, 0);
@@ -1490,7 +1490,7 @@ LAB_80158508:
((void (*)(s32))func_80146CA0)(param_1);
return;
LAB_80158528:
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
}
@@ -1596,5 +1596,5 @@ extern void (*D_80186C58[])(s32 *);
void func_80158880(s32 *param) {
func_80149020(param);
D_80186C58[*(u8 *)((s32)param + 0x4F)](param);
D_80186C58[((Unkstruct_80126B58 *)param)->unk4F](param);
}
+17 -17
View File
@@ -964,7 +964,7 @@ s32 func_80155458(s32 param_1)
extern void (*D_8018B7D8[])(void);
void func_80155580(void *a0) {
D_8018B7D8[*(u16 *)((s32)a0 + 0x2)]();
D_8018B7D8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1149,7 +1149,7 @@ void func_80156A1C(s32 param_1, s32 param_2)
extern void (*D_8018BC4C[])(void);
void func_80157544(void *a0) {
D_8018BC4C[*(u16 *)((s32)a0 + 0x2)]();
D_8018BC4C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1229,7 +1229,7 @@ extern u8 D_8018BC54;
void func_801578C0(s32 param_1)
{
((void (*)(void))func_80156648)();
*(u8 *)(param_1 + 0x1AA) = 9;
((Unkstruct_80126B58 *)param_1)->unk1AA = 9;
func_80154274((s32 *)param_1, (s32)&D_800D5128);
((void (*)(s32 *, s32))func_80154A74)((s32 *)param_1, 0x15);
func_80147324(0xC20);
@@ -1279,8 +1279,8 @@ void func_8015795C(int param_1)
*(unsigned int *)(param_1 + 0x44) = *(unsigned int *)(param_1 + 0x44) | 2;
((int (*)(int, int))func_80147A10)(param_1, 0x400);
if (*(int *)(param_1 + 0x2c) >= 0) {
*(int *)(param_1 + 0x2c) = 0;
if (((Unkstruct_80126B58 *)param_1)->unk2C >= 0) {
((Unkstruct_80126B58 *)param_1)->unk2C = 0;
}
func_80147A84(param_1);
((void (*)(int))func_801473EC)(param_1);
@@ -1303,7 +1303,7 @@ void func_8015795C(int param_1)
((void (*)(int, void *))func_80154274)(param_1, &D_800D5178);
((void (*)(int, void *))func_80146DB8)(param_1, &D_8018BC64);
((void (*)(int, int))func_801477E8)(param_1, 0xfff40000);
*(short *)(param_1 + 2) = 4;
((Unkstruct_80126B58 *)param_1)->unk2 = 4;
}
((void (*)(int))func_801725A4)(param_1);
}
@@ -1368,7 +1368,7 @@ void func_80157D20(void *param_1, s32 param_2)
extern void (*D_8018BCB4[])(void);
void func_80157DC4(void *a0) {
D_8018BCB4[*(u16 *)((s32)a0 + 0x2)]();
D_8018BCB4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1384,7 +1384,7 @@ void func_80157DC4(void *a0) {
extern void (*D_8018BCBC[])(void);
void func_80157FC4(void *a0) {
D_8018BCBC[*(u16 *)((s32)a0 + 0x2)]();
D_8018BCBC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1406,11 +1406,11 @@ extern s32 D_8018BC88;
void func_80158038(void * param)
{
*(u8 *)(param + 0x1aa) = 0xe;
((Unkstruct_80126B58 *)param)->unk1AA = 0xe;
func_80154274((s32 *)param, (s32)&D_800D51E0);
func_80154A74(param, 0x15);
func_80146DB8((s32 *)param, &D_8018BC88);
*(s32 *)(param + 0x234) = 0;
((Unkstruct_80126B58 *)param)->unk234 = 0;
func_80146994(5, param, 0xc, 0);
func_80147324(0x455);
func_80146CA0((void *)param);
@@ -1425,7 +1425,7 @@ void func_80158038(void * param)
extern void (*D_8018BCC8[])(void);
void func_8015824C(void *a0) {
D_8018BCC8[*(u16 *)((s32)a0 + 0x2)]();
D_8018BCC8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1463,15 +1463,15 @@ void func_80158434(s32 param_1)
s32 frame_pad[4];
(void)&frame_pad;
*(u32 *)(param_1 + 0x44) = *(u32 *)(param_1 + 0x44) | 2;
if ((*(u16 *)(param_1 + 0xB8) & 0x4000) != 0) {
*(s32 *)(param_1 + 0x234) = *(s32 *)(param_1 + 0x234) + 1;
((Unkstruct_80126B58 *)param_1)->unk44 = ((Unkstruct_80126B58 *)param_1)->unk44 | 2;
if ((((Unkstruct_80126B58 *)param_1)->unkB8 & 0x4000) != 0) {
((Unkstruct_80126B58 *)param_1)->unk234 = ((Unkstruct_80126B58 *)param_1)->unk234 + 1;
((s32 (*)(void))func_8014CBF8)();
((void (*)(s32))func_801474EC)(param_1);
((void (*)(s32, s32))func_801477E8)(param_1, 0xFFFA0000);
((void (*)(s32, s32))func_80146DB8)(param_1, (s32)&D_8018BC98);
}
if (*(s32 *)(param_1 + 0x234) != 0) {
if (((Unkstruct_80126B58 *)param_1)->unk234 != 0) {
func_80148038(param_1, 0x10000);
func_80147460(param_1);
func_80147AD4(param_1, 0, 0, 0);
@@ -1490,7 +1490,7 @@ LAB_80158508:
((void (*)(s32))func_80146CA0)(param_1);
return;
LAB_80158528:
((void (*)(s32, s32))func_80155FF8)(param_1, *(u8 *)(param_1 + 0x1AA));
((void (*)(s32, s32))func_80155FF8)(param_1, ((Unkstruct_80126B58 *)param_1)->unk1AA);
}
@@ -1596,5 +1596,5 @@ extern void (*D_8018BD04[])(s32 *);
void func_80158880(s32 *param) {
func_80149020(param);
D_8018BD04[*(u8 *)((s32)param + 0x4F)](param);
D_8018BD04[((Unkstruct_80126B58 *)param)->unk4F](param);
}
+1 -1
View File
@@ -5546,7 +5546,7 @@ void func_8017FE48(void *a0) {
default:
p = D_801202A0;
for (i = 0; i < 0x60; i++) {
if (*(u16 *)p == *(s16 *)(r + 6)) {
if (((Unkstruct_800B5CB8 *)p)->unk0 == *(s16 *)(r + 6)) {
((void (*)(void *, void *, void *))func_8012F214)(p, r, out);
func_801290DC(0x56, (u8 *)out);
}
+7 -7
View File
@@ -4798,7 +4798,7 @@ void func_8017F894(void *a0) {
default:
p = D_801202A0;
for (i = 0; i < 0x60; i++) {
if (*(u16 *)p == *(s16 *)(r + 6)) {
if (((Unkstruct_800B5CB8 *)p)->unk0 == *(s16 *)(r + 6)) {
((void (*)(void *, void *, void *))func_8012F214)(p, r, out);
func_801290DC(0x56, (u8 *)out);
}
@@ -9237,15 +9237,15 @@ s32 func_80185B70(s32 a0) {
if (rand() & 1) {
v1 = *(s32 *)(s2 + 0x20);
v0 = -0x2000;
*(s16 *)(v1 + 0x1C) = v0;
*(s16 *)(v1 + 0x1A) = v0;
*(s16 *)(v1 + 0x18) = v0;
CAST_WIDTH(s16, v1, 0x1C) = v0;
((Unkstruct_800B5CB8 *)v1)->unk1A = v0;
((Unkstruct_800B5CB8 *)v1)->unk18 = v0;
} else {
v1 = *(s32 *)(s2 + 0x20);
v0 = 0x2000;
*(s16 *)(v1 + 0x1C) = v0;
*(s16 *)(v1 + 0x1A) = v0;
*(s16 *)(v1 + 0x18) = v0;
CAST_WIDTH(s16, v1, 0x1C) = v0;
((Unkstruct_800B5CB8 *)v1)->unk1A = v0;
((Unkstruct_800B5CB8 *)v1)->unk18 = v0;
}
}
+27 -27
View File
@@ -2033,7 +2033,7 @@ extern void func_80016ED4(void *a0);
extern void (*D_80181CAC[])(void);
void func_8016B4BC(void *a0) {
D_80181CAC[*(u16 *)((s32)a0 + 0x2)]();
D_80181CAC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2211,7 +2211,7 @@ s32 func_8016B9F8(s32 param_1)
extern void (*D_80181CFC[])(void);
void func_8016BBA4(void *a0) {
D_80181CFC[*(u16 *)((s32)a0 + 0x2)]();
D_80181CFC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2276,16 +2276,16 @@ void func_8016BCC0(void *arg0) {
func_8016BF50();
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
func_8016BFA8(arg0, &D_801912F4, &D_801912F8, temp_s0 + 0x18);
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
}
}
@@ -2393,7 +2393,7 @@ void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3) {
extern void (*D_80181D2C[])(void);
void func_8016C14C(void *a0) {
D_80181D2C[*(u16 *)((s32)a0 + 0x2)]();
D_80181D2C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2527,9 +2527,9 @@ s32 func_8016C49C(s32 param_1_arg) {
short sVar1;
iVar5 = *(int *)(param_1 + 0x18);
iVar6 = *(int *)(param_1 + 0x1a);
iVar6 = CAST_MISALIGNED(int, param_1, 0x1a);
param_1[0x14] = *(u16 *)(iVar5 + 0x36);
if ((*(u32 *)(param_1 + 0x16) & 0x8000) == 0) {
if ((CAST_MISALIGNED(u32, param_1, 0x16) & 0x8000) == 0) {
short iVar4 = 0;
u16 *psVar3 = (u16 *)&D_8011D030;
do {
@@ -2569,7 +2569,7 @@ s32 func_8016C49C(s32 param_1_arg) {
return;
}
func_8001CD9C(iVar5b, D_80191310);
*(u32 *)(iVar5b + 4) |= 0x50000000;
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
uVar2 = ((int(*)())rand)();
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
@@ -2584,9 +2584,9 @@ s32 func_8016C49C(s32 param_1_arg) {
param_1[0xb] = sv[1];
param_1[0xd] = sv[2];
*(int *)(param_1 + 0x10) = iVar5b;
*(int *)(param_1 + 0xe) = 8;
CAST_MISALIGNED(int, param_1, 0xe) = 8;
func_8016CF04((s32)param_1, 0);
*(int *)(param_1 + 0x16) = 0;
CAST_MISALIGNED(int, param_1, 0x16) = 0;
sVar1 = param_1[1] + 1;
}
do { param_1[1] = sVar1; } while (0);
@@ -2659,7 +2659,7 @@ void func_8016C998(s32 param_1)
extern void (*D_80181D34[])(void);
void func_8016CB84(void *a0) {
D_80181D34[*(u16 *)((s32)a0 + 0x2)]();
D_80181D34[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2873,7 +2873,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
extern void (*D_80181D50[])(void);
void func_8016D19C(void *a0) {
D_80181D50[*(u16 *)((s32)a0 + 0x2)]();
D_80181D50[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2974,7 +2974,7 @@ void func_8016D1D8(int param_1) {
extern void (*D_80181D58[])(void);
void func_8016D428(void *a0) {
D_80181D58[*(u16 *)((s32)a0 + 0x2)]();
D_80181D58[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3133,10 +3133,10 @@ ddb0:
D_801919F4 = *(u16 *)(iVar4 + 0xe);
func_800D1FC8((s32)param_1, 7);
*(s32 *)((u8 *)param_1 + 0x20) = iVar2;
*(u16 *)(iVar2 + 0x1a) = 0x3000;
*(u16 *)(iVar2 + 0x18) = 0x3000;
*(u8 *)(iVar2 + 0x26) = 0xff;
*(u32 *)(iVar2 + 4) = *(u32 *)(iVar2 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar2)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk26 = 0xff;
CAST_WIDTH(u32, iVar2, 4) = CAST_WIDTH(u32, iVar2, 4) | 0x50000000;
func_80128EA8(iVar2, (s32)param_1 + 0x24, (s32)D_80181DD4);
func_80128ED8((void *)iVar2, (void *)((s32)param_1 + 0x24));
*(u16 *)((u8 *)param_1 + 2) = *(u16 *)((u8 *)param_1 + 2) + 1;
@@ -3151,7 +3151,7 @@ end:
extern void (*D_80181DF4[])(void);
void func_8016DEA4(void *a0) {
D_80181DF4[*(u16 *)((s32)a0 + 0x2)]();
D_80181DF4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3161,7 +3161,7 @@ void func_8016DEA4(void *a0) {
extern void (*D_80181DFC[])(void);
void func_8016DF20(void *a0) {
D_80181DFC[*(u16 *)((s32)a0 + 0x2)]();
D_80181DFC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3269,7 +3269,7 @@ void func_8016DF5C(s32 param_1)
extern void (*D_80181E50[])(void);
void func_8016E5B8(void *a0) {
D_80181E50[*(u16 *)((s32)a0 + 0x2)]();
D_80181E50[((Unkstruct_80126B58 *)a0)->unk2]();
}
+6 -6
View File
@@ -5354,12 +5354,12 @@ void func_8017F0EC(s32 a0) {
}
d = (*(s16 *)(a0 + 0x76) * 12288) / 100;
p = *(s32 *)(a0 + 0xCC);
*(u16 *)(p + 0x1A) = d;
*(u16 *)(p + 0x18) = d;
((Unkstruct_800B5CB8 *)p)->unk1A = d;
((Unkstruct_800B5CB8 *)p)->unk18 = d;
p = *(s32 *)(a0 + 0xCC);
*(u16 *)(p + 0x8) = *(u16 *)(a0 + 0x6);
*(u16 *)(p + 0xA) = *(u16 *)(a0 + 0xA);
*(u16 *)(p + 0xC) = *(u16 *)(a0 + 0xE);
((Unkstruct_800B5CB8 *)p)->unk8 = *(u16 *)(a0 + 0x6);
((Unkstruct_800B5CB8 *)p)->unkA = *(u16 *)(a0 + 0xA);
((Unkstruct_800B5CB8 *)p)->unkC = *(u16 *)(a0 + 0xE);
func_80128ED8(p, (s32 *)(a0 + 0xD0));
}
@@ -7294,7 +7294,7 @@ void func_80181830(s32 a0) {
case 10:
case 12:
func_8001C810(v0, D_801B297C[*p][0]);
*(s32 *)(v0 + 4) |= 0x8040;
CAST_WIDTH(s32, v0, 4) |= 0x8040;
break;
default:
func_8001C214(v0, D_801B297C[*p][0]);
+27 -27
View File
@@ -2033,7 +2033,7 @@ extern void func_80016ED4(void *a0);
extern void (*D_80181CAC[])(void);
void func_8016B4BC(void *a0) {
D_80181CAC[*(u16 *)((s32)a0 + 0x2)]();
D_80181CAC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2211,7 +2211,7 @@ s32 func_8016B9F8(s32 param_1)
extern void (*D_80181CFC[])(void);
void func_8016BBA4(void *a0) {
D_80181CFC[*(u16 *)((s32)a0 + 0x2)]();
D_80181CFC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2276,16 +2276,16 @@ void func_8016BCC0(void *arg0) {
func_8016BF50();
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
func_8016BFA8(arg0, &D_80195E94, &D_80195E98, temp_s0 + 0x18);
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
}
}
@@ -2393,7 +2393,7 @@ void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3) {
extern void (*D_80181D2C[])(void);
void func_8016C14C(void *a0) {
D_80181D2C[*(u16 *)((s32)a0 + 0x2)]();
D_80181D2C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2527,9 +2527,9 @@ s32 func_8016C49C(s32 param_1_arg) {
short sVar1;
iVar5 = *(int *)(param_1 + 0x18);
iVar6 = *(int *)(param_1 + 0x1a);
iVar6 = CAST_MISALIGNED(int, param_1, 0x1a);
param_1[0x14] = *(u16 *)(iVar5 + 0x36);
if ((*(u32 *)(param_1 + 0x16) & 0x8000) == 0) {
if ((CAST_MISALIGNED(u32, param_1, 0x16) & 0x8000) == 0) {
short iVar4 = 0;
u16 *psVar3 = (u16 *)&D_8011D030;
do {
@@ -2569,7 +2569,7 @@ s32 func_8016C49C(s32 param_1_arg) {
return;
}
func_8001CD9C(iVar5b, D_80195EB0);
*(u32 *)(iVar5b + 4) |= 0x50000000;
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
uVar2 = ((int(*)())rand)();
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
@@ -2584,9 +2584,9 @@ s32 func_8016C49C(s32 param_1_arg) {
param_1[0xb] = sv[1];
param_1[0xd] = sv[2];
*(int *)(param_1 + 0x10) = iVar5b;
*(int *)(param_1 + 0xe) = 8;
CAST_MISALIGNED(int, param_1, 0xe) = 8;
func_8016CF04((s32)param_1, 0);
*(int *)(param_1 + 0x16) = 0;
CAST_MISALIGNED(int, param_1, 0x16) = 0;
sVar1 = param_1[1] + 1;
}
do { param_1[1] = sVar1; } while (0);
@@ -2659,7 +2659,7 @@ void func_8016C998(s32 param_1)
extern void (*D_80181D34[])(void);
void func_8016CB84(void *a0) {
D_80181D34[*(u16 *)((s32)a0 + 0x2)]();
D_80181D34[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2873,7 +2873,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
extern void (*D_80181D50[])(void);
void func_8016D19C(void *a0) {
D_80181D50[*(u16 *)((s32)a0 + 0x2)]();
D_80181D50[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2974,7 +2974,7 @@ void func_8016D1D8(int param_1) {
extern void (*D_80181D58[])(void);
void func_8016D428(void *a0) {
D_80181D58[*(u16 *)((s32)a0 + 0x2)]();
D_80181D58[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3133,10 +3133,10 @@ ddb0:
D_80196594 = *(u16 *)(iVar4 + 0xe);
func_800D1FC8((s32)param_1, 7);
*(s32 *)((u8 *)param_1 + 0x20) = iVar2;
*(u16 *)(iVar2 + 0x1a) = 0x3000;
*(u16 *)(iVar2 + 0x18) = 0x3000;
*(u8 *)(iVar2 + 0x26) = 0xff;
*(u32 *)(iVar2 + 4) = *(u32 *)(iVar2 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar2)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk26 = 0xff;
CAST_WIDTH(u32, iVar2, 4) = CAST_WIDTH(u32, iVar2, 4) | 0x50000000;
func_80128EA8(iVar2, (s32)param_1 + 0x24, (s32)D_80181DD4);
func_80128ED8((void *)iVar2, (void *)((s32)param_1 + 0x24));
*(u16 *)((u8 *)param_1 + 2) = *(u16 *)((u8 *)param_1 + 2) + 1;
@@ -3151,7 +3151,7 @@ end:
extern void (*D_80181DF4[])(void);
void func_8016DEA4(void *a0) {
D_80181DF4[*(u16 *)((s32)a0 + 0x2)]();
D_80181DF4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3161,7 +3161,7 @@ void func_8016DEA4(void *a0) {
extern void (*D_80181DFC[])(void);
void func_8016DF20(void *a0) {
D_80181DFC[*(u16 *)((s32)a0 + 0x2)]();
D_80181DFC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3269,7 +3269,7 @@ void func_8016DF5C(s32 param_1)
extern void (*D_80181E50[])(void);
void func_8016E5B8(void *a0) {
D_80181E50[*(u16 *)((s32)a0 + 0x2)]();
D_80181E50[((Unkstruct_80126B58 *)a0)->unk2]();
}
+18 -18
View File
@@ -3416,11 +3416,11 @@ void func_8017C100(s32 param_1)
} else {
func_8001CC3C(s0, (s32)D_80190BC4, 0x3c0, 0xa0);
}
*(u8 *)(s0 + 0x27) = 0xfc;
*(u16 *)(s0 + 0x1a) = 0x3c00;
*(u16 *)(s0 + 0x18) = 0x3c00;
*(u32 *)(s0 + 0x4) |= 0x01000000;
*(u32 *)(s0 + 0x34) = *(u32 *)(param_1 + 0x30);
((Unkstruct_800B5CB8 *)s0)->unk27 = 0xfc;
((Unkstruct_800B5CB8 *)s0)->unk1A = 0x3c00;
((Unkstruct_800B5CB8 *)s0)->unk18 = 0x3c00;
CAST_WIDTH(u32, s0, 0x4) |= 0x01000000;
CAST_WIDTH(u32, s0, 0x34) = *(u32 *)(param_1 + 0x30);
(*(u16 *)(param_1 + 0x2))++;
}
@@ -3568,16 +3568,16 @@ void func_8017C374(s32 param_1) {
node = func_800D222C(param_1, &D_80190C70, 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);
@@ -3614,13 +3614,13 @@ void func_8017C608(s32 a0) {
r = func_800D222C(a0, &D_80190C7C, 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);
+1 -1
View File
@@ -11486,7 +11486,7 @@ int func_80188194(short *pos, int a1, int a2)
if (a2 != 0) {
u8 *ptr = *(u8 **)(v1 + 0x20);
*(s32 *)(ptr + 0x24) = a2;
CAST_WIDTH(s32, ptr, 0x24) = a2;
}
}
+50 -50
View File
@@ -2700,7 +2700,7 @@ extern void func_8017BEB4(void);
extern void (*D_8018248C[])(void);
void func_8017CD9C(void *a0) {
D_8018248C[*(u16 *)((s32)a0 + 0x2)]();
D_8018248C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2751,16 +2751,16 @@ void func_8017CDD8(s32 param_1) {
node = func_800D222C(param_1, &D_80182474, 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);
@@ -2776,7 +2776,7 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D22)
extern void (*D_80182494[])(void);
void func_8017D030(void *a0) {
D_80182494[*(u16 *)((s32)a0 + 0x2)]();
D_80182494[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2797,13 +2797,13 @@ void func_8017D06C(s32 a0) {
r = func_800D222C(a0, &D_80182480, 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);
@@ -3451,7 +3451,7 @@ void func_8017DCD0(s32 param_1)
extern void (*D_8018F8A4[])(void);
void func_8017E044(void *a0) {
D_8018F8A4[*(u16 *)((s32)a0 + 0x2)]();
D_8018F8A4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3469,37 +3469,37 @@ void func_8017E080(void *a0) {
extern s32 D_8018F8F0[];
extern u8 D_8017EDB4[];
if (func_8012C354((s32)a0, (s32)D_8018F8BC) != 0) {
u16 v1 = *(u16 *)((s32)a0 + 0x70);
u16 v1 = CAST_SIGN(u16, (s32)a0, 0x70);
if (v1 & 0x10) {
u16 v0 = v1 & ~0x10;
*(u16 *)((s32)a0 + 0x70) = v0;
func_8001C214(*(s32 *)((s32)a0 + 0x20), D_8018F8F0[(s16)v0]);
*(s32 *)(*(s32 *)((s32)a0 + 0x20) + 0x4) |= 0x60000040;
((Unkstruct_800B5CB8 *)a0)->unk70 = v0;
func_8001C214(((Unkstruct_800B5CB8 *)a0)->unk20, D_8018F8F0[(s16)v0]);
*(s32 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x4) |= 0x60000040;
} else {
func_8001C214(*(s32 *)((s32)a0 + 0x20), D_8018F8F0[(s16)v1]);
func_8001C214(((Unkstruct_800B5CB8 *)a0)->unk20, D_8018F8F0[(s16)v1]);
}
if (*(s16 *)((s32)a0 + 0x70) == 8 || *(s16 *)((s32)a0 + 0x70) == 0xA) {
*(s16 *)((s32)a0 + 0x34) = 3;
*(u16 *)((s32)a0 + 0x5C) = 0x8800;
if (((Unkstruct_800B5CB8 *)a0)->unk70 == 8 || ((Unkstruct_800B5CB8 *)a0)->unk70 == 0xA) {
((Unkstruct_800B5CB8 *)a0)->unk34 = 3;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0x8800;
}
if (*(s16 *)((s32)a0 + 0x70) == 9) {
*(s16 *)((s32)a0 + 0x34) = 2;
*(u16 *)((s32)a0 + 0x5C) = 0x8800;
if (((Unkstruct_800B5CB8 *)a0)->unk70 == 9) {
((Unkstruct_800B5CB8 *)a0)->unk34 = 2;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0x8800;
}
if (*(s16 *)((s32)a0 + 0x70) == 0xB) {
*(s16 *)((s32)a0 + 0x34) = 4;
if (((Unkstruct_800B5CB8 *)a0)->unk70 == 0xB) {
((Unkstruct_800B5CB8 *)a0)->unk34 = 4;
}
*(u8 *)((s32)a0 + 0xC0) = 1;
*(s32 *)((s32)a0 + 0xB4) = -1;
*(u8 *)((s32)a0 + 0x75) = 8;
((Unkstruct_800B5CB8 *)a0)->unkC0 = 1;
((Unkstruct_800B5CB8 *)a0)->unkB4 = -1;
((Unkstruct_800B5CB8 *)a0)->unk75 = 8;
func_8012A828((s32 *)a0, (s32)D_8017EDB4);
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1;
((Unkstruct_800B5CB8 *)a0)->unk2 = CAST_SIGN(u16, (s32)a0, 0x2) + 1;
func_8012B23C(a0);
*(s16 *)((s32)a0 + 0xAE) = -1;
((Unkstruct_800B5CB8 *)a0)->unkAE = -1;
}
}
@@ -3573,7 +3573,7 @@ void func_8017E1C8(void *a0) {
extern void (*D_8018F920[])(void);
void func_8017E378(void *a0) {
D_8018F920[*(u16 *)((s32)a0 + 0x2)]();
D_8018F920[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3581,7 +3581,7 @@ void func_8017E378(void *a0) {
extern void (*D_8018F95C[])(void);
void func_8017E3B4(void *a0) {
D_8018F95C[*(u16 *)((s32)a0 + 0x2)]();
D_8018F95C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3594,16 +3594,16 @@ void func_8017E3F0(a0)
void *a0;
{
if (func_8012C354((s32)a0, (s32)&D_8018F870) != 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_8017EDB4);
*(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;
}
}
@@ -3621,12 +3621,12 @@ s32 arg0;
s32 s0 = arg0;
if (func_8012C354(s0, (s32)D_8018F928) != 0) {
*(u8 *)(s0 + 0xC0) = 1;
((Unkstruct_800B5CB8 *)s0)->unkC0 = 1;
func_8012A828((s32 *)s0, (s32)D_8017EDB4);
*(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;
}
}
+8 -8
View File
@@ -3581,12 +3581,12 @@ void func_801825DC(void *a0) {
void *s0;
s0 = a0;
*(s32 *)((u8 *)s0 + 0xC) = 0;
*(s32 *)((u8 *)s0 + 0x8) = 0;
*(s32 *)((u8 *)s0 + 0x4) = 0;
func_80132784((s32)s0, *(s32 *)((u8 *)s0 + 0x64), 4);
CAST_WIDTH(s32, (u8 *)s0, 0xC) = 0;
CAST_WIDTH(s32, (u8 *)s0, 0x8) = 0;
CAST_WIDTH(s32, (u8 *)s0, 0x4) = 0;
func_80132784((s32)s0, ((Unkstruct_800B5CB8 *)s0)->unk64, 4);
if (*(u16 *)((u8 *)(*(s32 *)((u8 *)s0 + 0x64)) + 2) != 10) {
if (*(u16 *)((u8 *)(((Unkstruct_800B5CB8 *)s0)->unk64) + 2) != 10) {
func_8012C218(s0);
}
}
@@ -3610,7 +3610,7 @@ void func_80182638(int param_1)
func_8001C214(v0, 0);
v1 = func_80132EF4(param_1, 0x5D);
if (v1 != 0) {
*(int *)(v1 + 0x2C) = param_1;
CAST_WIDTH(int, v1, 0x2C) = param_1;
*(unsigned short *)(v1 + 0x30) = *(unsigned short *)(param_1 + 0x36);
}
*(short *)(param_1 + 2) = 1;
@@ -3712,7 +3712,7 @@ void func_80182810(int param_1)
func_8001C214(v0, 0);
v1 = func_80132EF4(param_1, 0x5E);
if (v1 != 0) {
*(int *)(v1 + 0x2C) = param_1;
CAST_WIDTH(int, v1, 0x2C) = param_1;
*(unsigned short *)(v1 + 0x30) = *(unsigned short *)(param_1 + 0x36);
}
*(short *)(param_1 + 2) = 1;
@@ -3964,7 +3964,7 @@ void func_80182D1C(void *a0)
h = *(u16 *)((s32)s2 + 0x12) + 0x800;
q = CAST_SIGN(u32, (s32)p, 0x20);
y = h & 0xFFF;
if (*(u16 *)((s32)q + 0x12) & 0x400) {
if (((Unkstruct_800B5CB8 *)q)->unk12 & 0x400) {
r1 = func_80012A60(y, 0x400);
if (!((s16)r1 > (s16)func_80012A60(y, 0xC00))) {
*(s16 *)((s32)s2 + 0x12) = 0x400;
+1 -1
View File
@@ -6762,7 +6762,7 @@ int func_8018D364(short *pos, int a1, int a2)
if (a2 != 0) {
u8 *ptr = *(u8 **)(v1 + 0x20);
*(s32 *)(ptr + 0x24) = a2;
CAST_WIDTH(s32, ptr, 0x24) = a2;
}
}
+5 -5
View File
@@ -6385,12 +6385,12 @@ void func_80182DB0(void *a0) {
obj = (void *)func_8012C194();
if (obj != NULL) {
func_8001CD9C((int)obj, D_80190900);
flags = *(s32 *)((s32)obj + 0x4);
flags = CAST_WIDTH(s32, (s32)obj, 0x4);
flags |= 0x50000000;
*(u16 *)((s32)obj + 0x2C) = 0xC030;
*(s16 *)((s32)obj + 0x1A) = 0x400;
*(s16 *)((s32)obj + 0x18) = 0x400;
*(s32 *)((s32)obj + 0x4) = flags;
((Unkstruct_800B5CB8 *)obj)->unk2C = 0xC030;
((Unkstruct_800B5CB8 *)obj)->unk1A = 0x400;
((Unkstruct_800B5CB8 *)obj)->unk18 = 0x400;
CAST_WIDTH(s32, (s32)obj, 0x4) = flags;
}
*slot = obj;
slot++;
+125 -125
View File
@@ -836,21 +836,21 @@ void func_8012E9C0(int param_1)
{
int iVar1;
if (*(short *)(param_1 + 0x60) != 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
*(short *)(param_1 + 0x82) = 0;
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
}
if (*(int *)(param_1 + 0x78) != 0) {
iVar1 = *(short *)(param_1 + 0x60) *
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
if (iVar1 < 1) {
iVar1 = 1;
}
} else {
iVar1 = *(short *)(param_1 + 0x60);
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
}
func_8016AA50(param_1, iVar1);
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
@@ -1004,10 +1004,10 @@ void func_8012F8C8(u8* arg0) {
s32 func_8012FCC4(s32 param_1) {
extern int D_80186B70;
int v1 = *(int *)(((int)param_1) + 0xC4);
*(char *)(((int)param_1) + 0xC1) = 8;
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
if (v1 & 2) {
*(char *)(((int)param_1) + 0xC1) = 1;
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
func_80131CA8(((int)param_1), 3);
return;
}
@@ -1015,20 +1015,20 @@ s32 func_8012FCC4(s32 param_1) {
((void (*)(int, int))func_80131E00)(((int)param_1), 1);
return;
}
if (*(int *)(((int)param_1) + 0xB4) & 0x100) {
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
((void (*)(int))func_80131B14)(((int)param_1));
if (*(short *)(((int)param_1) + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
((void (*)(int, int))func_80131E00)(((int)param_1), 0xC);
return;
}
if (((s32(*)(s32, s32))func_80131A34)(((int)param_1), 4) != 0) {
*(char *)(((int)param_1) + 0xC2) = 0;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
} else {
*(short *)(((int)param_1) + 0x98) = 0;
*(char *)(((int)param_1) + 0xC2) = 1;
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
}
((void (*)(int, void *))func_8012B14C)(((int)param_1), &D_80186B70);
*(int *)(((int)param_1) + 0x1C) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
func_80131CA8(((int)param_1), 0x1C);
return;
}
@@ -1124,12 +1124,12 @@ void func_80130D48(s32 arg0)
s32 r;
s32 ret;
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
if (val == 0) {
return;
}
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
ret = func_8012C658(0x33, 0, arg0);
} else {
switch (val & 0xFFFF0000) {
@@ -1246,7 +1246,7 @@ void func_80130D48(s32 arg0)
}
if (ret != 0) {
*(u16 *)(ret + 0xA) -= 0x20;
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
}
}
@@ -1264,34 +1264,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
extern u8 D_80186B4C[];
func_80131B14();
*(u8 *)(((u8 *)p) + 0xC2) = 0;
*(u8 *)(((u8 *)p) + 0xC3) = 0;
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
if (((u8 *)b) == 0) {
((u8 *)b) = D_80186B4C;
}
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
*(s32 *)(((u8 *)p) + 0x1C) = 0;
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
if (c != 0) {
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
} else {
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
}
} else {
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
} else {
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
}
}
tail:
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
return;
}
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
@@ -1443,12 +1443,12 @@ void func_80131340(s32 a0)
s32 temp;
s32 var_a1;
if (*(s16 *)(a0 + 0xA) >= 0x10) {
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
func_801319E0(a0);
return;
}
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
if (temp != 0) {
sp10.vz = 0;
sp10.vx = 0;
@@ -1457,31 +1457,31 @@ void func_80131340(s32 a0)
sp10 = D_80186CA0;
}
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
if (var_a1 == 0) {
var_a1 = 0x50;
}
func_8012DBD0(a0, var_a1,
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
}
switch (*(u8 *)(a0 + 0xC2)) {
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
case 0:
case 1:
if (*(s32 *)(a0 + 0xC4) & 4) {
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
if (*(u8 *)(a0 + 0xC2) == 0) {
*(u8 *)(a0 + 0xC2) = 1;
sp18.vx = *(u16 *)(a0 + 0x3A);
sp18.vy = *(u16 *)(a0 + 0x3E);
sp18.vz = *(u16 *)(a0 + 0x42);
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
sp20 = sp18;
sp20.vx += sp10.vx;
sp20.vy += sp10.vy;
@@ -1491,82 +1491,82 @@ void func_80131340(s32 a0)
sp20.vx -= sp10.vx;
sp20.vy -= sp10.vy;
sp20.vz -= sp10.vz;
*(u16 *)(a0 + 0x3A) = sp20.vx;
*(u16 *)(a0 + 0x3E) = sp20.vy;
*(u16 *)(a0 + 0x42) = sp20.vz;
*(u16 *)(a0 + 0x6) = sp20.vx;
*(u16 *)(a0 + 0xA) = sp20.vy;
*(u16 *)(a0 + 0xE) = sp20.vz;
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
}
D_8019A3D8 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
if (D_8019A3D8 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_8019A3D8 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
} else if (D_8019A3D8 & 0x2000) {
if (func_80131D68(a0, D_8019A3D8) == 1) {
return;
}
*(u8 *)(a0 + 0xC2) = 2;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
func_80143B6C(a0, 1);
*(s32 *)(a0 + 0x14) = 0xFFF30000;
*(s32 *)(a0 + 0x1C) = 0;
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
} else if (D_8019A3D8 & 0x8000) {
*(u8 *)(a0 + 0xC2) = 2;
*(s32 *)(a0 + 0x1C) = 0;
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
break;
case 2:
if (*(s32 *)(a0 + 0xC4) & 4) {
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
D_8019A3DC = *(s32 *)(a0 + 0x14);
D_8019A3DC = ((Unkstruct_800B5CB8 *)a0)->unk14;
D_8019A3D8 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
if (D_8019A3D8 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_8019A3D8 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
} else if (D_8019A3D8 & 0x2000) {
if (func_80131D68(a0, D_8019A3D8) == 1) {
return;
}
func_80143B6C(a0, 1);
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
*(s32 *)(a0 + 0x14) = (-D_8019A3DC) / 3;
*(s32 *)(a0 + 0x1C) = 0;
*(u8 *)(a0 + 0xC2) = 3;
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_8019A3DC) / 3;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
} else if (D_8019A3D8 & 0x8000) {
*(u8 *)(a0 + 0xC2) = 3;
*(s32 *)(a0 + 0x1C) = 0;
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
break;
case 3:
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
if (*(u8 *)(a0 + 0xC3) & 1) {
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
D_8019A3D8 = ((s32 (*)(s32))func_8012CBA4)(a0);
if (D_8019A3D8 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (func_80131D68(a0, D_8019A3D8) == 1) {
return;
@@ -1578,28 +1578,28 @@ void func_80131340(s32 a0)
} else {
D_8019A3D8 = ((s32 (*)(s32))func_8012CBF4)(a0);
if (D_8019A3D8 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_8019A3D8 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
break;
} else if (D_8019A3D8 & 0x2000) {
if (func_80131D68(a0, D_8019A3D8) == 1) {
return;
}
*(u8 *)(a0 + 0xC3) |= 1;
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
} else if (D_8019A3D8 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
func_80143B6C(a0, 1);
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 0x11) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
break;
}
if (!(D_8019A3D8 & 0x6000)) {
@@ -1607,7 +1607,7 @@ void func_80131340(s32 a0)
return;
}
/* polarity MUST match case 4's — see the cross-jump note in the header. */
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
@@ -1617,24 +1617,24 @@ void func_80131340(s32 a0)
case 4:
D_8019A3D8 = ((s32 (*)(s32))func_8012CBA4)(a0);
if (D_8019A3D8 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_8019A3D8 & 0x2000) {
if (func_80131D68(a0, D_8019A3D8) == 1) {
return;
}
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
}
} else {
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
func_80143B6C(a0, 1);
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
@@ -1689,47 +1689,47 @@ void func_80131B14() {
u8 *p = a0v;
s32 e = *(u8 *)(p + 0x5E);
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
if (*(s16 *)(p + 0x60) != 0) {
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
if (e == 0x1D) {
*(s16 *)(p + 0x82) = 0;
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
}
{
s32 dec;
s32 q = *(s32 *)(p + 0x78);
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
if (q != 0) {
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
if (dec <= 0) dec = 1;
}
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
}
((void (*)(void *))func_8016AA50)(p);
if (*(u16 *)(p + 0x82) & 1) {
if (CAST_SIGN(u16, p, 0x82) & 1) {
((void (*)(void *))func_8016B428)(p);
((void(*)(void *))func_80019064)(&D_80186CA8);
}
}
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
if (e != 0x1D) {
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
}
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
{
s32 r = *(s32 *)(p + 0x20);
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
{
s32 r2 = *(s32 *)(p + 0x20);
*(s16 *)(r2 + 0x14) = 0;
*(s16 *)(r2 + 0x10) = 0;
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
CAST_WIDTH(s16, r2, 0x14) = 0;
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
}
}
@@ -1823,7 +1823,7 @@ void func_80131E00(struct S80131E00 *a0, s32 a1) {
extern void (*D_80186D10[])(void);
void func_80131EEC(void *a0) {
D_80186D10[*(u16 *)((s32)a0 + 0x2)]();
D_80186D10[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1831,7 +1831,7 @@ void func_80131EEC(void *a0) {
extern void (*D_80186D58[])(void);
void func_80131F28(void *a0) {
D_80186D58[*(u16 *)((s32)a0 + 0x2)]();
D_80186D58[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1839,7 +1839,7 @@ void func_80131F28(void *a0) {
extern void (*D_80186D60[])(void);
void func_80131F64(void *a0) {
D_80186D60[*(u16 *)((s32)a0 + 0x2)]();
D_80186D60[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1847,7 +1847,7 @@ void func_80131F64(void *a0) {
extern void (*D_80186D68[])(void);
void func_80131FA0(void *a0) {
D_80186D68[*(u16 *)((s32)a0 + 0x2)]();
D_80186D68[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1855,7 +1855,7 @@ void func_80131FA0(void *a0) {
extern void (*D_80186D70[])(void);
void func_80131FDC(void *a0) {
D_80186D70[*(u16 *)((s32)a0 + 0x2)]();
D_80186D70[((Unkstruct_80126B58 *)a0)->unk2]();
}
+31 -31
View File
@@ -2662,7 +2662,7 @@ void func_8016B234(s32 param_1) {
void func_8016B4BC(void *a0) {
extern void (*D_8018D5F4[])(void);
D_8018D5F4[*(u16 *)((s32)a0 + 0x2)]();
D_8018D5F4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2928,7 +2928,7 @@ s32 func_8016B9F8(s32 param_1)
void func_8016BBA4(void *a0) {
extern void (*D_8018D644[])(void);
D_8018D644[*(u16 *)((s32)a0 + 0x2)]();
D_8018D644[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2996,16 +2996,16 @@ extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);
func_8016BF50();
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
func_8016BFA8(arg0, &D_801F549C, &D_801F54A0, temp_s0 + 0x18);
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
}
}
@@ -3185,7 +3185,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
void func_8016C14C(void *a0) {
extern void (*D_8018D674[])(void);
D_8018D674[*(u16 *)((s32)a0 + 0x2)]();
D_8018D674[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3330,9 +3330,9 @@ s32 func_8016C49C(s32 param_1_arg) {
short sVar1;
iVar5 = *(int *)(param_1 + 0x18);
iVar6 = *(int *)(param_1 + 0x1a);
iVar6 = CAST_MISALIGNED(int, param_1, 0x1a);
param_1[0x14] = *(u16 *)(iVar5 + 0x36);
if ((*(u32 *)(param_1 + 0x16) & 0x8000) == 0) {
if ((CAST_MISALIGNED(u32, param_1, 0x16) & 0x8000) == 0) {
short iVar4 = 0;
u16 *psVar3 = (u16 *)&D_8011D030;
do {
@@ -3372,7 +3372,7 @@ s32 func_8016C49C(s32 param_1_arg) {
return;
}
func_8001CD9C(iVar5b, D_801F54B8);
*(u32 *)(iVar5b + 4) |= 0x50000000;
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
uVar2 = ((int(*)())rand)();
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
@@ -3387,9 +3387,9 @@ s32 func_8016C49C(s32 param_1_arg) {
param_1[0xb] = sv[1];
param_1[0xd] = sv[2];
*(int *)(param_1 + 0x10) = iVar5b;
*(int *)(param_1 + 0xe) = 8;
CAST_MISALIGNED(int, param_1, 0xe) = 8;
func_8016CF04((s32)param_1, 0);
*(int *)(param_1 + 0x16) = 0;
CAST_MISALIGNED(int, param_1, 0x16) = 0;
sVar1 = param_1[1] + 1;
}
do { param_1[1] = sVar1; } while (0);
@@ -3464,7 +3464,7 @@ void func_8016C998(s32 param_1)
void func_8016CB84(void *a0) {
extern void (*D_8018D67C[])(void);
D_8018D67C[*(u16 *)((s32)a0 + 0x2)]();
D_8018D67C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3682,7 +3682,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
void func_8016D19C(void *a0) {
extern void (*D_8018D698[])(void);
D_8018D698[*(u16 *)((s32)a0 + 0x2)]();
D_8018D698[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3782,7 +3782,7 @@ void func_8016D1D8(int param_1) {
void func_8016D428(void *a0) {
extern void (*D_8018D6A0[])(void);
D_8018D6A0[*(u16 *)((s32)a0 + 0x2)]();
D_8018D6A0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3941,10 +3941,10 @@ void func_8016DA7C(s32 param_1)
} else {
*(s32 *)(param_1 + 0x20) = iVar1;
((void (*)(s32, s32, s32, s32))func_8001CC3C)(iVar1, (s32)&D_8018D6AC, 0x250, 0x100);
*(u8 *)(iVar1 + 0x27) = 0x90;
*(u16 *)(iVar1 + 0x18) = 0x3000;
*(u16 *)(iVar1 + 0x1a) = 0x4000;
*(u32 *)(iVar1 + 4) = *(u32 *)(iVar1 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar1)->unk27 = 0x90;
((Unkstruct_800B5CB8 *)iVar1)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar1)->unk1A = 0x4000;
CAST_WIDTH(u32, iVar1, 4) = CAST_WIDTH(u32, iVar1, 4) | 0x50000000;
func_80128EA8(iVar1, param_1 + 0x24, (s32)&D_8018D6B8);
*(s32 *)(param_1 + 0x10) = 0;
*(s32 *)(param_1 + 0x14) = 0xfff40000;
@@ -4032,10 +4032,10 @@ ddb0:
D_801F5B9C = *(u16 *)(iVar4 + 0xe);
func_800D1FC8((s32)param_1, 7);
*(s32 *)((u8 *)param_1 + 0x20) = iVar2;
*(u16 *)(iVar2 + 0x1a) = 0x3000;
*(u16 *)(iVar2 + 0x18) = 0x3000;
*(u8 *)(iVar2 + 0x26) = 0xff;
*(u32 *)(iVar2 + 4) = *(u32 *)(iVar2 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar2)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk26 = 0xff;
CAST_WIDTH(u32, iVar2, 4) = CAST_WIDTH(u32, iVar2, 4) | 0x50000000;
func_80128EA8(iVar2, (s32)param_1 + 0x24, (s32)D_8018D71C);
((s32 (*)(void *, void *))func_80128ED8)((void *)iVar2, (void *)((s32)param_1 + 0x24));
*(u16 *)((u8 *)param_1 + 2) = *(u16 *)((u8 *)param_1 + 2) + 1;
@@ -4051,7 +4051,7 @@ end:
void func_8016DEA4(void *a0) {
extern void (*D_8018D73C[])(void);
D_8018D73C[*(u16 *)((s32)a0 + 0x2)]();
D_8018D73C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4069,7 +4069,7 @@ void func_8016DEE0(s32 a0) {
void func_8016DF20(void *a0) {
extern void (*D_8018D744[])(void);
D_8018D744[*(u16 *)((s32)a0 + 0x2)]();
D_8018D744[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4189,7 +4189,7 @@ extern void func_80146C3C(u8 *a0);
void func_8016E5B8(void *a0) {
extern void (*D_8018D798[])(void);
D_8018D798[*(u16 *)((s32)a0 + 0x2)]();
D_8018D798[((Unkstruct_80126B58 *)a0)->unk2]();
}
+31 -31
View File
@@ -2650,7 +2650,7 @@ void func_8016B234(s32 param_1) {
void func_8016B4BC(void *a0) {
extern void (*D_80186118[])(void);
D_80186118[*(u16 *)((s32)a0 + 0x2)]();
D_80186118[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2916,7 +2916,7 @@ s32 func_8016B9F8(s32 param_1)
void func_8016BBA4(void *a0) {
extern void (*D_80186168[])(void);
D_80186168[*(u16 *)((s32)a0 + 0x2)]();
D_80186168[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2984,16 +2984,16 @@ extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);
func_8016BF50();
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
func_8016BFA8(arg0, &D_801C6C04, &D_801C6C08, temp_s0 + 0x18);
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
}
}
@@ -3173,7 +3173,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
void func_8016C14C(void *a0) {
extern void (*D_80186198[])(void);
D_80186198[*(u16 *)((s32)a0 + 0x2)]();
D_80186198[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3318,9 +3318,9 @@ s32 func_8016C49C(s32 param_1_arg) {
short sVar1;
iVar5 = *(int *)(param_1 + 0x18);
iVar6 = *(int *)(param_1 + 0x1a);
iVar6 = CAST_MISALIGNED(int, param_1, 0x1a);
param_1[0x14] = *(u16 *)(iVar5 + 0x36);
if ((*(u32 *)(param_1 + 0x16) & 0x8000) == 0) {
if ((CAST_MISALIGNED(u32, param_1, 0x16) & 0x8000) == 0) {
short iVar4 = 0;
u16 *psVar3 = (u16 *)&D_8011D030;
do {
@@ -3360,7 +3360,7 @@ s32 func_8016C49C(s32 param_1_arg) {
return;
}
func_8001CD9C(iVar5b, D_801C6C20);
*(u32 *)(iVar5b + 4) |= 0x50000000;
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
uVar2 = ((int(*)())rand)();
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
@@ -3375,9 +3375,9 @@ s32 func_8016C49C(s32 param_1_arg) {
param_1[0xb] = sv[1];
param_1[0xd] = sv[2];
*(int *)(param_1 + 0x10) = iVar5b;
*(int *)(param_1 + 0xe) = 8;
CAST_MISALIGNED(int, param_1, 0xe) = 8;
func_8016CF04((s32)param_1, 0);
*(int *)(param_1 + 0x16) = 0;
CAST_MISALIGNED(int, param_1, 0x16) = 0;
sVar1 = param_1[1] + 1;
}
do { param_1[1] = sVar1; } while (0);
@@ -3452,7 +3452,7 @@ void func_8016C998(s32 param_1)
void func_8016CB84(void *a0) {
extern void (*D_801861A0[])(void);
D_801861A0[*(u16 *)((s32)a0 + 0x2)]();
D_801861A0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3670,7 +3670,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
void func_8016D19C(void *a0) {
extern void (*D_801861BC[])(void);
D_801861BC[*(u16 *)((s32)a0 + 0x2)]();
D_801861BC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3770,7 +3770,7 @@ void func_8016D1D8(int param_1) {
void func_8016D428(void *a0) {
extern void (*D_801861C4[])(void);
D_801861C4[*(u16 *)((s32)a0 + 0x2)]();
D_801861C4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3929,10 +3929,10 @@ void func_8016DA7C(s32 param_1)
} else {
*(s32 *)(param_1 + 0x20) = iVar1;
((void (*)(s32, s32, s32, s32))func_8001CC3C)(iVar1, (s32)&D_801861D0, 0x250, 0x100);
*(u8 *)(iVar1 + 0x27) = 0x90;
*(u16 *)(iVar1 + 0x18) = 0x3000;
*(u16 *)(iVar1 + 0x1a) = 0x4000;
*(u32 *)(iVar1 + 4) = *(u32 *)(iVar1 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar1)->unk27 = 0x90;
((Unkstruct_800B5CB8 *)iVar1)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar1)->unk1A = 0x4000;
CAST_WIDTH(u32, iVar1, 4) = CAST_WIDTH(u32, iVar1, 4) | 0x50000000;
func_80128EA8(iVar1, param_1 + 0x24, (s32)&D_801861DC);
*(s32 *)(param_1 + 0x10) = 0;
*(s32 *)(param_1 + 0x14) = 0xfff40000;
@@ -4020,10 +4020,10 @@ ddb0:
D_801C7304 = *(u16 *)(iVar4 + 0xe);
func_800D1FC8((s32)param_1, 7);
*(s32 *)((u8 *)param_1 + 0x20) = iVar2;
*(u16 *)(iVar2 + 0x1a) = 0x3000;
*(u16 *)(iVar2 + 0x18) = 0x3000;
*(u8 *)(iVar2 + 0x26) = 0xff;
*(u32 *)(iVar2 + 4) = *(u32 *)(iVar2 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar2)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk26 = 0xff;
CAST_WIDTH(u32, iVar2, 4) = CAST_WIDTH(u32, iVar2, 4) | 0x50000000;
func_80128EA8(iVar2, (s32)param_1 + 0x24, (s32)D_80186240);
((s32 (*)(void *, void *))func_80128ED8)((void *)iVar2, (void *)((s32)param_1 + 0x24));
*(u16 *)((u8 *)param_1 + 2) = *(u16 *)((u8 *)param_1 + 2) + 1;
@@ -4039,7 +4039,7 @@ end:
void func_8016DEA4(void *a0) {
extern void (*D_80186260[])(void);
D_80186260[*(u16 *)((s32)a0 + 0x2)]();
D_80186260[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4057,7 +4057,7 @@ void func_8016DEE0(s32 a0) {
void func_8016DF20(void *a0) {
extern void (*D_80186268[])(void);
D_80186268[*(u16 *)((s32)a0 + 0x2)]();
D_80186268[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4177,7 +4177,7 @@ extern void func_80146C3C(u8 *a0);
void func_8016E5B8(void *a0) {
extern void (*D_801862BC[])(void);
D_801862BC[*(u16 *)((s32)a0 + 0x2)]();
D_801862BC[((Unkstruct_80126B58 *)a0)->unk2]();
}
+5 -5
View File
@@ -5616,7 +5616,7 @@ void func_8017FCAC(s32 a0) {
s32 s1 = a0;
s0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(s1 + 0x20) = s0;
((Unkstruct_800B5CB8 *)s1)->unk20 = s0;
if (s0 != 0) {
func_8001C214(s0, (s32)&D_801B5C84);
*(s32 *)(s0 + 0x28) = 0x7FFF7FFF;
@@ -5958,7 +5958,7 @@ void func_80180324(s32 a0) {
s1 = a0;
s0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(s1 + 0x20) = s0;
((Unkstruct_800B5CB8 *)s1)->unk20 = s0;
if (s0 != 0) {
func_8001C214(s0, (s32)&D_801BA63C);
@@ -6183,7 +6183,7 @@ void func_80180730(s32 a0) {
if (func_80180F84() == 0x11) {
func_8018122C(s0, D_80188CA4);
func_8012C588(0x388, s0);
*(s16 *)(s0 + 0xFC) = 0;
((Unkstruct_800B5CB8 *)s0)->unkFC = 0;
func_8012AD50((void *)s0);
}
}
@@ -6402,7 +6402,7 @@ void func_80180BC0(void *a0) {
s32 s0;
s1 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(s2 + 0x20) = s1;
((Unkstruct_800B5CB8 *)s2)->unk20 = s1;
if (!s1) {
return;
@@ -7857,7 +7857,7 @@ extern void func_80171928(void *a0);
void func_80182BA8(s32 a0) {
u8 *p = CAST_SIGN(u8 *, a0, 0x20);
*(u16 *)(p + 0x12) = *(u16 *)(p + 0x12) - 0x2D;
((Unkstruct_800B5CB8 *)p)->unk12 = ((Unkstruct_800B5CB8 *)p)->unk12 - 0x2D;
if (func_80171A88(a0) != 0) {
func_80180F94(0x18);
func_80171928((void *)a0);
+125 -125
View File
@@ -836,21 +836,21 @@ void func_8012E9C0(int param_1)
{
int iVar1;
if (*(short *)(param_1 + 0x60) != 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
*(short *)(param_1 + 0x82) = 0;
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
}
if (*(int *)(param_1 + 0x78) != 0) {
iVar1 = *(short *)(param_1 + 0x60) *
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
if (iVar1 < 1) {
iVar1 = 1;
}
} else {
iVar1 = *(short *)(param_1 + 0x60);
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
}
func_8016AA50(param_1, iVar1);
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
@@ -1004,10 +1004,10 @@ void func_8012F8C8(u8* arg0) {
s32 func_8012FCC4(s32 param_1) {
extern int D_8017D688;
int v1 = *(int *)(((int)param_1) + 0xC4);
*(char *)(((int)param_1) + 0xC1) = 8;
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
if (v1 & 2) {
*(char *)(((int)param_1) + 0xC1) = 1;
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
func_80131CA8(((int)param_1), 3);
return;
}
@@ -1015,20 +1015,20 @@ s32 func_8012FCC4(s32 param_1) {
((void (*)(int, int))func_80131E00)(((int)param_1), 1);
return;
}
if (*(int *)(((int)param_1) + 0xB4) & 0x100) {
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
((void (*)(int))func_80131B14)(((int)param_1));
if (*(short *)(((int)param_1) + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
((void (*)(int, int))func_80131E00)(((int)param_1), 0xC);
return;
}
if (((s32(*)(s32, s32))func_80131A34)(((int)param_1), 4) != 0) {
*(char *)(((int)param_1) + 0xC2) = 0;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
} else {
*(short *)(((int)param_1) + 0x98) = 0;
*(char *)(((int)param_1) + 0xC2) = 1;
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
}
((void (*)(int, void *))func_8012B14C)(((int)param_1), &D_8017D688);
*(int *)(((int)param_1) + 0x1C) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
func_80131CA8(((int)param_1), 0x1C);
return;
}
@@ -1124,12 +1124,12 @@ void func_80130D48(s32 arg0)
s32 r;
s32 ret;
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
if (val == 0) {
return;
}
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
ret = func_8012C658(0x33, 0, arg0);
} else {
switch (val & 0xFFFF0000) {
@@ -1246,7 +1246,7 @@ void func_80130D48(s32 arg0)
}
if (ret != 0) {
*(u16 *)(ret + 0xA) -= 0x20;
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
}
}
@@ -1264,34 +1264,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
extern u8 D_8017D664[];
func_80131B14();
*(u8 *)(((u8 *)p) + 0xC2) = 0;
*(u8 *)(((u8 *)p) + 0xC3) = 0;
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
if (((u8 *)b) == 0) {
((u8 *)b) = D_8017D664;
}
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
*(s32 *)(((u8 *)p) + 0x1C) = 0;
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
if (c != 0) {
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
} else {
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
}
} else {
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
} else {
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
}
}
tail:
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
return;
}
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
@@ -1443,12 +1443,12 @@ void func_80131340(s32 a0)
s32 temp;
s32 var_a1;
if (*(s16 *)(a0 + 0xA) >= 0x10) {
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
func_801319E0(a0);
return;
}
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
if (temp != 0) {
sp10.vz = 0;
sp10.vx = 0;
@@ -1457,31 +1457,31 @@ void func_80131340(s32 a0)
sp10 = D_8017D7B8;
}
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
if (var_a1 == 0) {
var_a1 = 0x50;
}
func_8012DBD0(a0, var_a1,
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
}
switch (*(u8 *)(a0 + 0xC2)) {
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
case 0:
case 1:
if (*(s32 *)(a0 + 0xC4) & 4) {
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
if (*(u8 *)(a0 + 0xC2) == 0) {
*(u8 *)(a0 + 0xC2) = 1;
sp18.vx = *(u16 *)(a0 + 0x3A);
sp18.vy = *(u16 *)(a0 + 0x3E);
sp18.vz = *(u16 *)(a0 + 0x42);
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
sp20 = sp18;
sp20.vx += sp10.vx;
sp20.vy += sp10.vy;
@@ -1491,82 +1491,82 @@ void func_80131340(s32 a0)
sp20.vx -= sp10.vx;
sp20.vy -= sp10.vy;
sp20.vz -= sp10.vz;
*(u16 *)(a0 + 0x3A) = sp20.vx;
*(u16 *)(a0 + 0x3E) = sp20.vy;
*(u16 *)(a0 + 0x42) = sp20.vz;
*(u16 *)(a0 + 0x6) = sp20.vx;
*(u16 *)(a0 + 0xA) = sp20.vy;
*(u16 *)(a0 + 0xE) = sp20.vz;
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
}
D_801952C0 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
if (D_801952C0 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801952C0 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
} else if (D_801952C0 & 0x2000) {
if (func_80131D68(a0, D_801952C0) == 1) {
return;
}
*(u8 *)(a0 + 0xC2) = 2;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
func_80143B6C(a0, 1);
*(s32 *)(a0 + 0x14) = 0xFFF30000;
*(s32 *)(a0 + 0x1C) = 0;
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
} else if (D_801952C0 & 0x8000) {
*(u8 *)(a0 + 0xC2) = 2;
*(s32 *)(a0 + 0x1C) = 0;
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
break;
case 2:
if (*(s32 *)(a0 + 0xC4) & 4) {
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
D_801952C4 = *(s32 *)(a0 + 0x14);
D_801952C4 = ((Unkstruct_800B5CB8 *)a0)->unk14;
D_801952C0 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
if (D_801952C0 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801952C0 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
} else if (D_801952C0 & 0x2000) {
if (func_80131D68(a0, D_801952C0) == 1) {
return;
}
func_80143B6C(a0, 1);
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
*(s32 *)(a0 + 0x14) = (-D_801952C4) / 3;
*(s32 *)(a0 + 0x1C) = 0;
*(u8 *)(a0 + 0xC2) = 3;
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_801952C4) / 3;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
} else if (D_801952C0 & 0x8000) {
*(u8 *)(a0 + 0xC2) = 3;
*(s32 *)(a0 + 0x1C) = 0;
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
break;
case 3:
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
if (*(u8 *)(a0 + 0xC3) & 1) {
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
D_801952C0 = ((s32 (*)(s32))func_8012CBA4)(a0);
if (D_801952C0 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (func_80131D68(a0, D_801952C0) == 1) {
return;
@@ -1578,28 +1578,28 @@ void func_80131340(s32 a0)
} else {
D_801952C0 = ((s32 (*)(s32))func_8012CBF4)(a0);
if (D_801952C0 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801952C0 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
break;
} else if (D_801952C0 & 0x2000) {
if (func_80131D68(a0, D_801952C0) == 1) {
return;
}
*(u8 *)(a0 + 0xC3) |= 1;
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
} else if (D_801952C0 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
func_80143B6C(a0, 1);
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 0x11) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
break;
}
if (!(D_801952C0 & 0x6000)) {
@@ -1607,7 +1607,7 @@ void func_80131340(s32 a0)
return;
}
/* polarity MUST match case 4's — see the cross-jump note in the header. */
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
@@ -1617,24 +1617,24 @@ void func_80131340(s32 a0)
case 4:
D_801952C0 = ((s32 (*)(s32))func_8012CBA4)(a0);
if (D_801952C0 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801952C0 & 0x2000) {
if (func_80131D68(a0, D_801952C0) == 1) {
return;
}
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
}
} else {
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
func_80143B6C(a0, 1);
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
@@ -1689,47 +1689,47 @@ void func_80131B14() {
u8 *p = a0v;
s32 e = *(u8 *)(p + 0x5E);
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
if (*(s16 *)(p + 0x60) != 0) {
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
if (e == 0x1D) {
*(s16 *)(p + 0x82) = 0;
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
}
{
s32 dec;
s32 q = *(s32 *)(p + 0x78);
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
if (q != 0) {
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
if (dec <= 0) dec = 1;
}
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
}
((void (*)(void *))func_8016AA50)(p);
if (*(u16 *)(p + 0x82) & 1) {
if (CAST_SIGN(u16, p, 0x82) & 1) {
((void (*)(void *))func_8016B428)(p);
((void(*)(void *))func_80019064)(&D_8017D7C0);
}
}
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
if (e != 0x1D) {
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
}
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
{
s32 r = *(s32 *)(p + 0x20);
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
{
s32 r2 = *(s32 *)(p + 0x20);
*(s16 *)(r2 + 0x14) = 0;
*(s16 *)(r2 + 0x10) = 0;
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
CAST_WIDTH(s16, r2, 0x14) = 0;
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
}
}
@@ -1823,7 +1823,7 @@ void func_80131E00(struct S80131E00 *a0, s32 a1) {
extern void (*D_8017D828[])(void);
void func_80131EEC(void *a0) {
D_8017D828[*(u16 *)((s32)a0 + 0x2)]();
D_8017D828[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1831,7 +1831,7 @@ void func_80131EEC(void *a0) {
extern void (*D_8017D870[])(void);
void func_80131F28(void *a0) {
D_8017D870[*(u16 *)((s32)a0 + 0x2)]();
D_8017D870[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1839,7 +1839,7 @@ void func_80131F28(void *a0) {
extern void (*D_8017D878[])(void);
void func_80131F64(void *a0) {
D_8017D878[*(u16 *)((s32)a0 + 0x2)]();
D_8017D878[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1847,7 +1847,7 @@ void func_80131F64(void *a0) {
extern void (*D_8017D880[])(void);
void func_80131FA0(void *a0) {
D_8017D880[*(u16 *)((s32)a0 + 0x2)]();
D_8017D880[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1855,7 +1855,7 @@ void func_80131FA0(void *a0) {
extern void (*D_8017D888[])(void);
void func_80131FDC(void *a0) {
D_8017D888[*(u16 *)((s32)a0 + 0x2)]();
D_8017D888[((Unkstruct_80126B58 *)a0)->unk2]();
}
+125 -125
View File
@@ -836,21 +836,21 @@ void func_8012E9C0(int param_1)
{
int iVar1;
if (*(short *)(param_1 + 0x60) != 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unk60 != 0) {
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
*(short *)(param_1 + 0x82) = 0;
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
((Unkstruct_800B5CB8 *)param_1)->unk82 = 0;
((Unkstruct_800B5CB8 *)param_1)->unk7C = *(unsigned short *)(param_1 + 6);
((Unkstruct_800B5CB8 *)param_1)->unk7E = *(unsigned short *)(param_1 + 0xa);
((Unkstruct_800B5CB8 *)param_1)->unk80 = *(unsigned short *)(param_1 + 0xe);
}
if (*(int *)(param_1 + 0x78) != 0) {
iVar1 = *(short *)(param_1 + 0x60) *
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
if (((Unkstruct_800B5CB8 *)param_1)->unk78 != 0) {
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60 *
*(short *)(((Unkstruct_800B5CB8 *)param_1)->unk78 + 0x30) >> 0xc;
if (iVar1 < 1) {
iVar1 = 1;
}
} else {
iVar1 = *(short *)(param_1 + 0x60);
iVar1 = ((Unkstruct_800B5CB8 *)param_1)->unk60;
}
func_8016AA50(param_1, iVar1);
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
@@ -1004,10 +1004,10 @@ void func_8012F8C8(u8* arg0) {
s32 func_8012FCC4(s32 param_1) {
extern int D_8017E12C;
int v1 = *(int *)(((int)param_1) + 0xC4);
*(char *)(((int)param_1) + 0xC1) = 8;
int v1 = ((Unkstruct_800B5CB8 *)param_1)->unkC4;
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 8;
if (v1 & 2) {
*(char *)(((int)param_1) + 0xC1) = 1;
((Unkstruct_800B5CB8 *)param_1)->unkC1 = 1;
func_80131CA8(((int)param_1), 3);
return;
}
@@ -1015,20 +1015,20 @@ s32 func_8012FCC4(s32 param_1) {
((void (*)(int, int))func_80131E00)(((int)param_1), 1);
return;
}
if (*(int *)(((int)param_1) + 0xB4) & 0x100) {
if (((Unkstruct_800B5CB8 *)param_1)->unkB4 & 0x100) {
((void (*)(int))func_80131B14)(((int)param_1));
if (*(short *)(((int)param_1) + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)param_1)->unk76 <= 0) {
((void (*)(int, int))func_80131E00)(((int)param_1), 0xC);
return;
}
if (((s32(*)(s32, s32))func_80131A34)(((int)param_1), 4) != 0) {
*(char *)(((int)param_1) + 0xC2) = 0;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 0;
} else {
*(short *)(((int)param_1) + 0x98) = 0;
*(char *)(((int)param_1) + 0xC2) = 1;
((Unkstruct_800B5CB8 *)param_1)->unk98 = 0;
((Unkstruct_800B5CB8 *)param_1)->unkC2 = 1;
}
((void (*)(int, void *))func_8012B14C)(((int)param_1), &D_8017E12C);
*(int *)(((int)param_1) + 0x1C) = 0;
((Unkstruct_800B5CB8 *)param_1)->unk1C = 0;
func_80131CA8(((int)param_1), 0x1C);
return;
}
@@ -1124,12 +1124,12 @@ void func_80130D48(s32 arg0)
s32 r;
s32 ret;
val = func_80131CF4(*(s32 *)((s8 *)arg0 + 0xBC), 0x15);
val = func_80131CF4(((Unkstruct_800B5CB8 *)arg0)->unkBC, 0x15);
if (val == 0) {
return;
}
if (*(u8 *)((s8 *)arg0 + 0x5E) == 0xB) {
if (((Unkstruct_800B5CB8 *)arg0)->unk5E == 0xB) {
ret = func_8012C658(0x33, 0, arg0);
} else {
switch (val & 0xFFFF0000) {
@@ -1246,7 +1246,7 @@ void func_80130D48(s32 arg0)
}
if (ret != 0) {
*(u16 *)(ret + 0xA) -= 0x20;
((Unkstruct_800B5CB8 *)ret)->unkA -= 0x20;
}
}
@@ -1264,34 +1264,34 @@ void func_80131170(s32 p, s32 b, s32 c) {
extern u8 D_8017E108[];
func_80131B14();
*(u8 *)(((u8 *)p) + 0xC2) = 0;
*(u8 *)(((u8 *)p) + 0xC3) = 0;
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unkC2 = 0;
((Unkstruct_800B5CB8 *)p)->unkC3 = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
if (((u8 *)b) == 0) {
((u8 *)b) = D_8017E108;
}
func_8012B14C((s32)((u8 *)p), (s32)((u8 *)b));
*(s32 *)(((u8 *)p) + 0x1C) = 0;
((Unkstruct_800B5CB8 *)p)->unk1C = 0;
if (c != 0) {
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), c) != 0) goto tail;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
} else {
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
}
} else {
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x24) != 0) goto tail;
*(s32 *)(((u8 *)p) + 0xC4) &= ~4;
((Unkstruct_800B5CB8 *)p)->unkC4 &= ~4;
if (((s32(*)(s32, s32))func_80131A34)((s32)((u8 *)p), 0x20) != 0) {
*(s32 *)(((u8 *)p) + 0xC4) |= 4;
((Unkstruct_800B5CB8 *)p)->unkC4 |= 4;
} else {
*(s16 *)(((u8 *)p) + 0x98) = 0;
((Unkstruct_800B5CB8 *)p)->unk98 = 0;
}
}
tail:
if (*(s16 *)(((u8 *)p) + 0x76) > 0) {
if (((Unkstruct_800B5CB8 *)p)->unk76 > 0) {
return;
}
if (((s32(*)(s32))func_8012BCCC)((s32)((u8 *)p)) <= 0x8FFF) {
@@ -1443,12 +1443,12 @@ void func_80131340(s32 a0)
s32 temp;
s32 var_a1;
if (*(s16 *)(a0 + 0xA) >= 0x10) {
if (CAST_SIGN(s16, a0, 0xA) >= 0x10) {
func_801319E0(a0);
return;
}
temp = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x2E);
temp = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x2E);
if (temp != 0) {
sp10.vz = 0;
sp10.vx = 0;
@@ -1457,31 +1457,31 @@ void func_80131340(s32 a0)
sp10 = D_8017E25C;
}
if (*(s32 *)(a0 + 0x10) != 0 || *(s32 *)(a0 + 0x18) != 0) {
var_a1 = func_80131CF4(*(s32 *)(a0 + 0xBC), 0x19);
if (CAST_WIDTH(s32, a0, 0x10) != 0 || CAST_WIDTH(s32, a0, 0x18) != 0) {
var_a1 = func_80131CF4(((Unkstruct_800B5CB8 *)a0)->unkBC, 0x19);
if (var_a1 == 0) {
var_a1 = 0x50;
}
func_8012DBD0(a0, var_a1,
*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12) + 0x800, 0x1D);
*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12) + 0x800, 0x1D);
}
switch (*(u8 *)(a0 + 0xC2)) {
switch (((Unkstruct_800B5CB8 *)a0)->unkC2) {
case 0:
case 1:
if (*(s32 *)(a0 + 0xC4) & 4) {
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
if (*(u8 *)(a0 + 0xC2) == 0) {
*(u8 *)(a0 + 0xC2) = 1;
sp18.vx = *(u16 *)(a0 + 0x3A);
sp18.vy = *(u16 *)(a0 + 0x3E);
sp18.vz = *(u16 *)(a0 + 0x42);
if (((Unkstruct_800B5CB8 *)a0)->unkC2 == 0) {
((Unkstruct_800B5CB8 *)a0)->unkC2 = 1;
sp18.vx = ((Unkstruct_800B5CB8 *)a0)->unk3A;
sp18.vy = ((Unkstruct_800B5CB8 *)a0)->unk3E;
sp18.vz = ((Unkstruct_800B5CB8 *)a0)->unk42;
sp20 = sp18;
sp20.vx += sp10.vx;
sp20.vy += sp10.vy;
@@ -1491,82 +1491,82 @@ void func_80131340(s32 a0)
sp20.vx -= sp10.vx;
sp20.vy -= sp10.vy;
sp20.vz -= sp10.vz;
*(u16 *)(a0 + 0x3A) = sp20.vx;
*(u16 *)(a0 + 0x3E) = sp20.vy;
*(u16 *)(a0 + 0x42) = sp20.vz;
*(u16 *)(a0 + 0x6) = sp20.vx;
*(u16 *)(a0 + 0xA) = sp20.vy;
*(u16 *)(a0 + 0xE) = sp20.vz;
((Unkstruct_800B5CB8 *)a0)->unk3A = sp20.vx;
((Unkstruct_800B5CB8 *)a0)->unk3E = sp20.vy;
((Unkstruct_800B5CB8 *)a0)->unk42 = sp20.vz;
((Unkstruct_800B5CB8 *)a0)->unk6 = sp20.vx;
((Unkstruct_800B5CB8 *)a0)->unkA = sp20.vy;
((Unkstruct_800B5CB8 *)a0)->unkE = sp20.vz;
}
D_801A2950 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
if (D_801A2950 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801A2950 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
} else if (D_801A2950 & 0x2000) {
if (func_80131D68(a0, D_801A2950) == 1) {
return;
}
*(u8 *)(a0 + 0xC2) = 2;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
func_80143B6C(a0, 1);
*(s32 *)(a0 + 0x14) = 0xFFF30000;
*(s32 *)(a0 + 0x1C) = 0;
((Unkstruct_800B5CB8 *)a0)->unk14 = 0xFFF30000;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
} else if (D_801A2950 & 0x8000) {
*(u8 *)(a0 + 0xC2) = 2;
*(s32 *)(a0 + 0x1C) = 0;
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 2;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
break;
case 2:
if (*(s32 *)(a0 + 0xC4) & 4) {
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) -= 0x100;
if (((Unkstruct_800B5CB8 *)a0)->unkC4 & 4) {
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 -= 0x100;
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
D_801A2954 = *(s32 *)(a0 + 0x14);
D_801A2954 = ((Unkstruct_800B5CB8 *)a0)->unk14;
D_801A2950 = ((s32 (*)(s32, s32))func_8012CC64)(a0, (s32)&sp10);
if (D_801A2950 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801A2950 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
} else if (D_801A2950 & 0x2000) {
if (func_80131D68(a0, D_801A2950) == 1) {
return;
}
func_80143B6C(a0, 1);
/* MUST precede the 0x1C/0xC2 stores — see the header note on the /3 block. */
*(s32 *)(a0 + 0x14) = (-D_801A2954) / 3;
*(s32 *)(a0 + 0x1C) = 0;
*(u8 *)(a0 + 0xC2) = 3;
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unk14 = (-D_801A2954) / 3;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
} else if (D_801A2950 & 0x8000) {
*(u8 *)(a0 + 0xC2) = 3;
*(s32 *)(a0 + 0x1C) = 0;
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x10) = 0;
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 3;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0;
((Unkstruct_800B5CB8 *)*(s32 *)(a0 + 0x20))->unk10 = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
break;
case 3:
*(s32 *)(a0 + 0x10) = *(s32 *)(a0 + 0x10) * 15 / 16;
*(s32 *)(a0 + 0x18) = *(s32 *)(a0 + 0x18) * 15 / 16;
if (*(u8 *)(a0 + 0xC3) & 1) {
CAST_WIDTH(s32, a0, 0x10) = CAST_WIDTH(s32, a0, 0x10) * 15 / 16;
CAST_WIDTH(s32, a0, 0x18) = CAST_WIDTH(s32, a0, 0x18) * 15 / 16;
if (((Unkstruct_800B5CB8 *)a0)->unkC3 & 1) {
D_801A2950 = ((s32 (*)(s32))func_8012CBA4)(a0);
if (D_801A2950 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (func_80131D68(a0, D_801A2950) == 1) {
return;
@@ -1578,28 +1578,28 @@ void func_80131340(s32 a0)
} else {
D_801A2950 = ((s32 (*)(s32))func_8012CBF4)(a0);
if (D_801A2950 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801A2950 & 0x4000) {
func_8012B23C(a0);
*(u8 *)(a0 + 0xC2) = 4;
((Unkstruct_800B5CB8 *)a0)->unkC2 = 4;
break;
} else if (D_801A2950 & 0x2000) {
if (func_80131D68(a0, D_801A2950) == 1) {
return;
}
*(u8 *)(a0 + 0xC3) |= 1;
((Unkstruct_800B5CB8 *)a0)->unkC3 |= 1;
} else if (D_801A2950 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
}
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
func_80143B6C(a0, 1);
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) < 0x11) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C < 0x11) {
break;
}
if (!(D_801A2950 & 0x6000)) {
@@ -1607,7 +1607,7 @@ void func_80131340(s32 a0)
return;
}
/* polarity MUST match case 4's — see the cross-jump note in the header. */
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
@@ -1617,24 +1617,24 @@ void func_80131340(s32 a0)
case 4:
D_801A2950 = ((s32 (*)(s32))func_8012CBA4)(a0);
if (D_801A2950 & 0x8000) {
*(s32 *)(a0 + 0x18) = 0;
*(s32 *)(a0 + 0x10) = 0;
CAST_WIDTH(s32, a0, 0x18) = 0;
CAST_WIDTH(s32, a0, 0x10) = 0;
}
if (D_801A2950 & 0x2000) {
if (func_80131D68(a0, D_801A2950) == 1) {
return;
}
if (*(s16 *)(a0 + 0x76) <= 0) {
if (((Unkstruct_800B5CB8 *)a0)->unk76 <= 0) {
func_80131E00(a0, 6);
} else {
func_80131C78(a0);
}
} else {
if ((*(s32 *)(a0 + 0x1C) & 3) == 3) {
if ((((Unkstruct_800B5CB8 *)a0)->unk1C & 3) == 3) {
func_80143B6C(a0, 1);
}
*(s32 *)(a0 + 0x1C) += 1;
if (*(s32 *)(a0 + 0x1C) >= 0x3D) {
((Unkstruct_800B5CB8 *)a0)->unk1C += 1;
if (((Unkstruct_800B5CB8 *)a0)->unk1C >= 0x3D) {
func_80131E00(a0, 0xD);
return;
}
@@ -1689,47 +1689,47 @@ void func_80131B14() {
u8 *p = a0v;
s32 e = *(u8 *)(p + 0x5E);
s32 e = ((Unkstruct_800B5CB8 *)p)->unk5E;
if (*(s16 *)(p + 0x60) != 0) {
if (((Unkstruct_800B5CB8 *)p)->unk60 != 0) {
if (e == 0x1D) {
*(s16 *)(p + 0x82) = 0;
*(s16 *)(p + 0x7C) = *(u16 *)(p + 0x06);
*(s16 *)(p + 0x7E) = *(u16 *)(p + 0x0A);
*(s16 *)(p + 0x80) = *(u16 *)(p + 0x0E);
((Unkstruct_800B5CB8 *)p)->unk82 = 0;
((Unkstruct_800B5CB8 *)p)->unk7C = ((Unkstruct_800B5CB8 *)p)->unk6;
((Unkstruct_800B5CB8 *)p)->unk7E = ((Unkstruct_800B5CB8 *)p)->unkA;
((Unkstruct_800B5CB8 *)p)->unk80 = ((Unkstruct_800B5CB8 *)p)->unkE;
}
{
s32 dec;
s32 q = *(s32 *)(p + 0x78);
s32 q = ((Unkstruct_800B5CB8 *)p)->unk78;
if (q != 0) {
dec = ((s32)*(s16 *)(p + 0x60) * (s32)*(s16 *)(q + 0x30)) >> 12;
dec = ((s32)((Unkstruct_800B5CB8 *)p)->unk60 * (s32)*(s16 *)(q + 0x30)) >> 12;
if (dec <= 0) dec = 1;
}
*(u16 *)(p + 0x76) = *(u16 *)(p + 0x76) - dec;
((Unkstruct_800B5CB8 *)p)->unk76 = CAST_SIGN(u16, p, 0x76) - dec;
}
((void (*)(void *))func_8016AA50)(p);
if (*(u16 *)(p + 0x82) & 1) {
if (CAST_SIGN(u16, p, 0x82) & 1) {
((void (*)(void *))func_8016B428)(p);
((void(*)(void *))func_80019064)(&D_8017E264);
}
}
*(u16 *)(p + 0x5C) = *(u16 *)(p + 0x5C) & 0xFFFE;
((Unkstruct_800B5CB8 *)p)->unk5C = ((Unkstruct_800B5CB8 *)p)->unk5C & 0xFFFE;
if (e != 0x1D) {
if (*(u8 *)(p + 0xC8)) func_8002A520(p);
if (*(u8 *)(p + 0xC9)) func_8002A790(p);
if (((Unkstruct_800B5CB8 *)p)->unkC8) func_8002A520(p);
if (((Unkstruct_800B5CB8 *)p)->unkC9) func_8002A790(p);
}
if (*(s16 *)(p + 0x76) <= 0) *(s16 *)(p + 0x5C) = 0;
if (((Unkstruct_800B5CB8 *)p)->unk76 <= 0) ((Unkstruct_800B5CB8 *)p)->unk5C = 0;
{
s32 r = *(s32 *)(p + 0x20);
*(s16 *)(r + 0x12) = (*(u16 *)(p + 0x62) + 0x800) & 0xFFF;
s32 r = ((Unkstruct_800B5CB8 *)p)->unk20;
((Unkstruct_800B5CB8 *)r)->unk12 = (((Unkstruct_800B5CB8 *)p)->unk62 + 0x800) & 0xFFF;
{
s32 r2 = *(s32 *)(p + 0x20);
*(s16 *)(r2 + 0x14) = 0;
*(s16 *)(r2 + 0x10) = 0;
s32 r2 = ((Unkstruct_800B5CB8 *)p)->unk20;
CAST_WIDTH(s16, r2, 0x14) = 0;
((Unkstruct_800B5CB8 *)r2)->unk10 = 0;
}
}
@@ -1823,7 +1823,7 @@ void func_80131E00(struct S80131E00 *a0, s32 a1) {
extern void (*D_8017E2CC[])(void);
void func_80131EEC(void *a0) {
D_8017E2CC[*(u16 *)((s32)a0 + 0x2)]();
D_8017E2CC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1831,7 +1831,7 @@ void func_80131EEC(void *a0) {
extern void (*D_8017E314[])(void);
void func_80131F28(void *a0) {
D_8017E314[*(u16 *)((s32)a0 + 0x2)]();
D_8017E314[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1839,7 +1839,7 @@ void func_80131F28(void *a0) {
extern void (*D_8017E31C[])(void);
void func_80131F64(void *a0) {
D_8017E31C[*(u16 *)((s32)a0 + 0x2)]();
D_8017E31C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1847,7 +1847,7 @@ void func_80131F64(void *a0) {
extern void (*D_8017E324[])(void);
void func_80131FA0(void *a0) {
D_8017E324[*(u16 *)((s32)a0 + 0x2)]();
D_8017E324[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -1855,7 +1855,7 @@ void func_80131FA0(void *a0) {
extern void (*D_8017E32C[])(void);
void func_80131FDC(void *a0) {
D_8017E32C[*(u16 *)((s32)a0 + 0x2)]();
D_8017E32C[((Unkstruct_80126B58 *)a0)->unk2]();
}
+31 -31
View File
@@ -2091,7 +2091,7 @@ void func_8016B234(s32 param_1) {
void func_8016B4BC(void *a0) {
extern void (*D_801851A8[])(void);
D_801851A8[*(u16 *)((s32)a0 + 0x2)]();
D_801851A8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2357,7 +2357,7 @@ s32 func_8016B9F8(s32 param_1)
void func_8016BBA4(void *a0) {
extern void (*D_801851F8[])(void);
D_801851F8[*(u16 *)((s32)a0 + 0x2)]();
D_801851F8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2425,16 +2425,16 @@ extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);
func_8016BF50();
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
func_8016BFA8(arg0, &D_801A70FC, &D_801A7100, temp_s0 + 0x18);
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
}
}
@@ -2614,7 +2614,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
void func_8016C14C(void *a0) {
extern void (*D_80185228[])(void);
D_80185228[*(u16 *)((s32)a0 + 0x2)]();
D_80185228[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2759,9 +2759,9 @@ s32 func_8016C49C(s32 param_1_arg) {
short sVar1;
iVar5 = *(int *)(param_1 + 0x18);
iVar6 = *(int *)(param_1 + 0x1a);
iVar6 = CAST_MISALIGNED(int, param_1, 0x1a);
param_1[0x14] = *(u16 *)(iVar5 + 0x36);
if ((*(u32 *)(param_1 + 0x16) & 0x8000) == 0) {
if ((CAST_MISALIGNED(u32, param_1, 0x16) & 0x8000) == 0) {
short iVar4 = 0;
u16 *psVar3 = (u16 *)&D_8011D030;
do {
@@ -2801,7 +2801,7 @@ s32 func_8016C49C(s32 param_1_arg) {
return;
}
func_8001CD9C(iVar5b, D_801A7118);
*(u32 *)(iVar5b + 4) |= 0x50000000;
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
uVar2 = ((int(*)())rand)();
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
@@ -2816,9 +2816,9 @@ s32 func_8016C49C(s32 param_1_arg) {
param_1[0xb] = sv[1];
param_1[0xd] = sv[2];
*(int *)(param_1 + 0x10) = iVar5b;
*(int *)(param_1 + 0xe) = 8;
CAST_MISALIGNED(int, param_1, 0xe) = 8;
func_8016CF04((s32)param_1, 0);
*(int *)(param_1 + 0x16) = 0;
CAST_MISALIGNED(int, param_1, 0x16) = 0;
sVar1 = param_1[1] + 1;
}
do { param_1[1] = sVar1; } while (0);
@@ -2893,7 +2893,7 @@ void func_8016C998(s32 param_1)
void func_8016CB84(void *a0) {
extern void (*D_80185230[])(void);
D_80185230[*(u16 *)((s32)a0 + 0x2)]();
D_80185230[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3111,7 +3111,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
void func_8016D19C(void *a0) {
extern void (*D_8018524C[])(void);
D_8018524C[*(u16 *)((s32)a0 + 0x2)]();
D_8018524C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3213,7 +3213,7 @@ void func_8016D1D8(int param_1) {
void func_8016D428(void *a0) {
extern void (*D_80185254[])(void);
D_80185254[*(u16 *)((s32)a0 + 0x2)]();
D_80185254[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3372,10 +3372,10 @@ void func_8016DA7C(s32 param_1)
} else {
*(s32 *)(param_1 + 0x20) = iVar1;
((void (*)(s32, s32, s32, s32))func_8001CC3C)(iVar1, (s32)&D_80185260, 0x250, 0x100);
*(u8 *)(iVar1 + 0x27) = 0x90;
*(u16 *)(iVar1 + 0x18) = 0x3000;
*(u16 *)(iVar1 + 0x1a) = 0x4000;
*(u32 *)(iVar1 + 4) = *(u32 *)(iVar1 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar1)->unk27 = 0x90;
((Unkstruct_800B5CB8 *)iVar1)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar1)->unk1A = 0x4000;
CAST_WIDTH(u32, iVar1, 4) = CAST_WIDTH(u32, iVar1, 4) | 0x50000000;
func_80128EA8(iVar1, param_1 + 0x24, (s32)&D_8018526C);
*(s32 *)(param_1 + 0x10) = 0;
*(s32 *)(param_1 + 0x14) = 0xfff40000;
@@ -3468,10 +3468,10 @@ ddb0:
D_801A77FC = *(u16 *)(obj + 0xE);
func_800D1FC8(param_1, 7);
*(s32 *)(param_1 + 0x20) = node;
*(u16 *)(node + 0x1A) = 0x3000;
*(u16 *)(node + 0x18) = 0x3000;
*(u8 *)(node + 0x26) = 0xFF;
*(u32 *)(node + 4) = *(u32 *)(node + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)node)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)node)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)node)->unk26 = 0xFF;
CAST_WIDTH(u32, node, 4) = CAST_WIDTH(u32, node, 4) | 0x50000000;
func_80128EA8(node, param_1 + 0x24, (s32)&D_801852D0);
func_80128ED8(node, param_1 + 0x24);
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
@@ -3487,7 +3487,7 @@ done:
void func_8016DEA4(void *a0) {
extern void (*D_801852F0[])(void);
D_801852F0[*(u16 *)((s32)a0 + 0x2)]();
D_801852F0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3505,7 +3505,7 @@ void func_8016DEE0(s32 a0) {
void func_8016DF20(void *a0) {
extern void (*D_801852F8[])(void);
D_801852F8[*(u16 *)((s32)a0 + 0x2)]();
D_801852F8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3625,7 +3625,7 @@ extern void func_80146C3C(u8 *a0);
void func_8016E5B8(void *a0) {
extern void (*D_8018534C[])(void);
D_8018534C[*(u16 *)((s32)a0 + 0x2)]();
D_8018534C[((Unkstruct_80126B58 *)a0)->unk2]();
}
+31 -31
View File
@@ -2650,7 +2650,7 @@ void func_8016B234(s32 param_1) {
void func_8016B4BC(void *a0) {
extern void (*D_80181868[])(void);
D_80181868[*(u16 *)((s32)a0 + 0x2)]();
D_80181868[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2916,7 +2916,7 @@ s32 func_8016B9F8(s32 param_1)
void func_8016BBA4(void *a0) {
extern void (*D_801818B8[])(void);
D_801818B8[*(u16 *)((s32)a0 + 0x2)]();
D_801818B8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -2984,16 +2984,16 @@ extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);
func_8016BF50();
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
temp_v0 = ((Unkstruct_800B5CB8 *)temp_s0)->unk1A + temp_a2;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = temp_v0;
((Unkstruct_800B5CB8 *)temp_s0)->unk12 = (u16) ((((Unkstruct_800B5CB8 *)temp_s0)->unk12 + 0x71) & 0xFFF);
func_8016BFA8(arg0, &D_8018F794, &D_8018F798, temp_s0 + 0x18);
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
if ((s16) ((Unkstruct_800B5CB8 *)temp_s0)->unk1A >= 0x1001) {
((Unkstruct_800B5CB8 *)temp_s0)->unk18 = 0x1000U;
((Unkstruct_800B5CB8 *)temp_s0)->unk1A = 0x1000U;
func_80146E90(arg0, ((Unkstruct_80126B58 *)arg0)->unk30);
((Unkstruct_80126B58 *)arg0)->unk2 = (u16) (((Unkstruct_80126B58 *)arg0)->unk2 + 1);
}
}
@@ -3173,7 +3173,7 @@ void func_8016BFD0(s32 a0, s32 a1, s32 a2, s32 a3, void *a4) {
void func_8016C14C(void *a0) {
extern void (*D_801818E8[])(void);
D_801818E8[*(u16 *)((s32)a0 + 0x2)]();
D_801818E8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3318,9 +3318,9 @@ s32 func_8016C49C(s32 param_1_arg) {
short sVar1;
iVar5 = *(int *)(param_1 + 0x18);
iVar6 = *(int *)(param_1 + 0x1a);
iVar6 = CAST_MISALIGNED(int, param_1, 0x1a);
param_1[0x14] = *(u16 *)(iVar5 + 0x36);
if ((*(u32 *)(param_1 + 0x16) & 0x8000) == 0) {
if ((CAST_MISALIGNED(u32, param_1, 0x16) & 0x8000) == 0) {
short iVar4 = 0;
u16 *psVar3 = (u16 *)&D_8011D030;
do {
@@ -3360,7 +3360,7 @@ s32 func_8016C49C(s32 param_1_arg) {
return;
}
func_8001CD9C(iVar5b, D_8018F7B0);
*(u32 *)(iVar5b + 4) |= 0x50000000;
CAST_WIDTH(u32, iVar5b, 4) |= 0x50000000;
uVar2 = ((int(*)())rand)();
sv[0] = (uVar2 & 0x7f) * 8 - 0x80;
sv[1] = ((uVar2 & 0x7f00) >> 4) - 0x400;
@@ -3375,9 +3375,9 @@ s32 func_8016C49C(s32 param_1_arg) {
param_1[0xb] = sv[1];
param_1[0xd] = sv[2];
*(int *)(param_1 + 0x10) = iVar5b;
*(int *)(param_1 + 0xe) = 8;
CAST_MISALIGNED(int, param_1, 0xe) = 8;
func_8016CF04((s32)param_1, 0);
*(int *)(param_1 + 0x16) = 0;
CAST_MISALIGNED(int, param_1, 0x16) = 0;
sVar1 = param_1[1] + 1;
}
do { param_1[1] = sVar1; } while (0);
@@ -3452,7 +3452,7 @@ void func_8016C998(s32 param_1)
void func_8016CB84(void *a0) {
extern void (*D_801818F0[])(void);
D_801818F0[*(u16 *)((s32)a0 + 0x2)]();
D_801818F0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3670,7 +3670,7 @@ short func_8016CF04(s32 param_1, s32 param_2) {
void func_8016D19C(void *a0) {
extern void (*D_8018190C[])(void);
D_8018190C[*(u16 *)((s32)a0 + 0x2)]();
D_8018190C[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3770,7 +3770,7 @@ void func_8016D1D8(int param_1) {
void func_8016D428(void *a0) {
extern void (*D_80181914[])(void);
D_80181914[*(u16 *)((s32)a0 + 0x2)]();
D_80181914[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3929,10 +3929,10 @@ void func_8016DA7C(s32 param_1)
} else {
*(s32 *)(param_1 + 0x20) = iVar1;
((void (*)(s32, s32, s32, s32))func_8001CC3C)(iVar1, (s32)&D_80181920, 0x250, 0x100);
*(u8 *)(iVar1 + 0x27) = 0x90;
*(u16 *)(iVar1 + 0x18) = 0x3000;
*(u16 *)(iVar1 + 0x1a) = 0x4000;
*(u32 *)(iVar1 + 4) = *(u32 *)(iVar1 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar1)->unk27 = 0x90;
((Unkstruct_800B5CB8 *)iVar1)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar1)->unk1A = 0x4000;
CAST_WIDTH(u32, iVar1, 4) = CAST_WIDTH(u32, iVar1, 4) | 0x50000000;
func_80128EA8(iVar1, param_1 + 0x24, (s32)&D_8018192C);
*(s32 *)(param_1 + 0x10) = 0;
*(s32 *)(param_1 + 0x14) = 0xfff40000;
@@ -4020,10 +4020,10 @@ ddb0:
D_8018FE94 = *(u16 *)(iVar4 + 0xe);
func_800D1FC8((s32)param_1, 7);
*(s32 *)((u8 *)param_1 + 0x20) = iVar2;
*(u16 *)(iVar2 + 0x1a) = 0x3000;
*(u16 *)(iVar2 + 0x18) = 0x3000;
*(u8 *)(iVar2 + 0x26) = 0xff;
*(u32 *)(iVar2 + 4) = *(u32 *)(iVar2 + 4) | 0x50000000;
((Unkstruct_800B5CB8 *)iVar2)->unk1A = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk18 = 0x3000;
((Unkstruct_800B5CB8 *)iVar2)->unk26 = 0xff;
CAST_WIDTH(u32, iVar2, 4) = CAST_WIDTH(u32, iVar2, 4) | 0x50000000;
func_80128EA8(iVar2, (s32)param_1 + 0x24, (s32)D_80181990);
((s32 (*)(void *, void *))func_80128ED8)((void *)iVar2, (void *)((s32)param_1 + 0x24));
*(u16 *)((u8 *)param_1 + 2) = *(u16 *)((u8 *)param_1 + 2) + 1;
@@ -4039,7 +4039,7 @@ end:
void func_8016DEA4(void *a0) {
extern void (*D_801819B0[])(void);
D_801819B0[*(u16 *)((s32)a0 + 0x2)]();
D_801819B0[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4057,7 +4057,7 @@ void func_8016DEE0(s32 a0) {
void func_8016DF20(void *a0) {
extern void (*D_801819B8[])(void);
D_801819B8[*(u16 *)((s32)a0 + 0x2)]();
D_801819B8[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -4177,7 +4177,7 @@ extern void func_80146C3C(u8 *a0);
void func_8016E5B8(void *a0) {
extern void (*D_80181A0C[])(void);
D_80181A0C[*(u16 *)((s32)a0 + 0x2)]();
D_80181A0C[((Unkstruct_80126B58 *)a0)->unk2]();
}