mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 14:59:48 -04:00
feat(t5): Claude wave t5q — 28 banked (sonnet 28/30, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5)
This commit is contained in:
@@ -5721,7 +5721,12 @@ void func_8017BEAC(void) {
|
||||
void func_8017BEB4(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012_jr_801789AC", func_8017BEBC);
|
||||
void func_8017BEBC(void) {
|
||||
extern u16 D_801853F0;
|
||||
|
||||
func_80016714(&D_801853F0, 8);
|
||||
}
|
||||
|
||||
|
||||
s32 func_8017BEE4(void) {
|
||||
extern void (*D_80181D6C[10])(void);
|
||||
@@ -5746,7 +5751,26 @@ void func_8017BF38(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012_jr_801789AC", func_8017BF70);
|
||||
void func_8017BF70(void) {
|
||||
extern s16 func_8017BFF8(void);
|
||||
extern void func_800D1D24(void);
|
||||
extern s16 D_801853F2;
|
||||
s32 a0;
|
||||
|
||||
if ((D_801853F2 = func_8017BFF8()) < 0) {
|
||||
func_8002D4C8(0x21, func_80028FBC() & 0xFFFF);
|
||||
func_8002D4C8(0x22, func_80029000() & 0xFFFF);
|
||||
if (func_80028D9C() == 0) {
|
||||
a0 = 0xC;
|
||||
} else {
|
||||
a0 = 0xB;
|
||||
}
|
||||
func_8002D4C8(a0, 0);
|
||||
func_80145934();
|
||||
func_800D1D24();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
s16 func_8017BFF8(void) {
|
||||
|
||||
|
||||
@@ -3152,9 +3152,48 @@ void func_8017F078(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017E5B8", func_8017F0E0);
|
||||
extern s32 func_8017D308(s32 a0, s32 a1);
|
||||
|
||||
void func_8017F0E0(void *a0) {
|
||||
if (*(s32 *)((s32)a0 + 0x1C) != 0) {
|
||||
*(s32 *)((s32)a0 + 0x1C) = *(s32 *)((s32)a0 + 0x1C) - 1;
|
||||
} else {
|
||||
func_8017D308(0, 0);
|
||||
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8017D2F8(void);
|
||||
extern void func_800D1724(s32 a0);
|
||||
|
||||
void func_8017F138(void *a0) {
|
||||
extern s32 D_8018C2D4;
|
||||
extern void *func_8017D060(void);
|
||||
extern s32 func_8017D35C(s32 a0);
|
||||
|
||||
s16 v1;
|
||||
s32 v0;
|
||||
|
||||
v1 = (s16)func_8017D2F8();
|
||||
v0 = *(&D_8018C2D4 + v1);
|
||||
if (v0 == 0) {
|
||||
if (v1 == 3) {
|
||||
func_8017D35C(0);
|
||||
v0 = *(u16 *)((s32)a0 + 2);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0;
|
||||
v0 = v0 - 1;
|
||||
goto skip;
|
||||
}
|
||||
v0 = (s32)func_8017D060();
|
||||
}
|
||||
func_800D1724(v0);
|
||||
v0 = *(u16 *)((s32)a0 + 2);
|
||||
v0 = v0 + 1;
|
||||
skip:
|
||||
*(u16 *)((s32)a0 + 2) = v0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017E5B8", func_8017F138);
|
||||
|
||||
void func_8017F1C8(void) {
|
||||
}
|
||||
|
||||
@@ -3412,7 +3412,32 @@ extern s32 D_801A3484;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8017E6F0", func_8017F6C8);
|
||||
extern void func_80139A44(s32 a0, u16 a1);
|
||||
extern s16 func_8017D430(void);
|
||||
extern s32 D_8019F144[];
|
||||
|
||||
s32 func_8017F6C8(s32 param_1) {
|
||||
s16 x;
|
||||
s32 type;
|
||||
s16 v;
|
||||
s16 idx;
|
||||
s32 ret;
|
||||
|
||||
x = func_8017D430();
|
||||
*(s16 *)(param_1 + 0x10A) = x;
|
||||
if (x != 0) {
|
||||
type = x >> 8;
|
||||
__asm__("" : "=r"(type) : "0"(type));
|
||||
v = (type - 1) * 5 - 1;
|
||||
idx = v + (x & 7);
|
||||
func_80139A44(D_8019F144[idx], 0);
|
||||
ret = 1;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3374,7 +3374,29 @@ void func_801828C0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_80181D78", func_80182964);
|
||||
extern s32 func_80029504(void);
|
||||
extern s32 func_80029178(s32 a0);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
|
||||
void func_80182964(s32 a0) {
|
||||
s32 v0;
|
||||
|
||||
v0 = func_80029504();
|
||||
if (v0 != 0x14) {
|
||||
goto L80182998;
|
||||
}
|
||||
v0 = func_80029178(0x10B) & 0xFF;
|
||||
if (v0 == 0) {
|
||||
goto L801829A8;
|
||||
}
|
||||
L80182998:
|
||||
func_8012CAE4((void *)a0);
|
||||
return;
|
||||
L801829A8:
|
||||
*(s16 *)(a0 + 0x2) = 1;
|
||||
*(s16 *)(a0 + 0x34) = 0;
|
||||
}
|
||||
|
||||
|
||||
extern u8 D_80078EAE;
|
||||
extern s32 D_8012704C;
|
||||
|
||||
@@ -4710,7 +4710,14 @@ void func_8017E8E4(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017E948);
|
||||
extern s32 func_800291B4(s32 arg);
|
||||
|
||||
void func_8017E948(s32 a0) {
|
||||
if ((func_800291B4(0xCC) & 0xFF) == 0xF) {
|
||||
*(s16 *)(a0 + 0x76) = 500;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_801270C8;
|
||||
extern s16 D_80193608[];
|
||||
|
||||
@@ -5261,7 +5261,17 @@ void func_80180CB8(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_8017CA80", func_80180DC4);
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_801807F4(void *arg0);
|
||||
|
||||
void func_80180DC4(s32 param_1) {
|
||||
if (((s32 (*)(s32))func_80178970)(param_1) != 0) {
|
||||
((void (*)(s32))func_80178D18)(param_1);
|
||||
func_801807F4((void *)param_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_801809B0(s32 a0, s32 a1);
|
||||
|
||||
|
||||
@@ -6039,7 +6039,37 @@ void func_80185660(s32 *a0, s32 *a1, s32 a2) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80185680);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8018574C);
|
||||
extern s32 rand(void);
|
||||
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8017E5C8(s32 a0);
|
||||
|
||||
void func_8018574C(void *a0) {
|
||||
register s32 s0 __asm__("$16") = (s32)a0;
|
||||
s32 rnd;
|
||||
s32 t;
|
||||
s32 base;
|
||||
s32 rem;
|
||||
s32 result;
|
||||
s16 tmp[3];
|
||||
u8 aux[8];
|
||||
|
||||
rnd = rand();
|
||||
t = *(s16 *)(s0 + 0xC);
|
||||
base = *(s16 *)(s0 + 0x14);
|
||||
__asm__("" : "=r"(t) : "0"(t), "r"(base));
|
||||
rem = rnd % (t >> 7);
|
||||
if (rand() & 1) {
|
||||
result = base + rem;
|
||||
} else {
|
||||
result = base - rem;
|
||||
}
|
||||
tmp[0] = result;
|
||||
tmp[1] = *(u16 *)(s0 + 0x16) + *(u16 *)(s0 + 0x1E);
|
||||
tmp[2] = *(u16 *)(s0 + 0x18);
|
||||
func_8012F214(*(s32 *)(s0 + 0x20), (s32)tmp, (s32)aux);
|
||||
func_8017E5C8((s32)aux);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6699,7 +6729,23 @@ void func_80186680(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8018676C);
|
||||
extern void func_8012A828(s32 arg0, void *arg1);
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern u8 D_801B2A58[];
|
||||
extern u8 D_801B2C40[];
|
||||
|
||||
void func_8018676C(s32 a0) {
|
||||
s32 s0;
|
||||
|
||||
s0 = a0;
|
||||
func_8012A828(a0, D_801B2A58);
|
||||
func_8012A828(*(s32 *)(s0 + 0x6C), D_801B2C40);
|
||||
func_8012C658(0x222, 0x8000, s0);
|
||||
*(s16 *)(s0 + 0x2) = 5;
|
||||
*(s16 *)(s0 + 0x34) = 0;
|
||||
*(s32 *)(s0 + 0x1C) = 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_801867D0);
|
||||
|
||||
@@ -6717,4 +6763,27 @@ void func_80186AE8(void *arg0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80186B24);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80186D54);
|
||||
extern s32 D_8018F04C;
|
||||
extern s32 func_80178B18(s32, s32);
|
||||
extern void func_8017C068(void);
|
||||
extern void func_800D0C48(s32);
|
||||
extern s32 D_80126B58;
|
||||
extern void func_8014704C(s32 *);
|
||||
|
||||
void func_80186D54(s32 param_1)
|
||||
{
|
||||
s32 *iVar1;
|
||||
s32 *iVar2;
|
||||
|
||||
iVar2 = *(s32 **)(param_1 + 0xCC);
|
||||
func_80178B18(param_1, (s32)&D_8018F04C);
|
||||
*(s16 *)(param_1 + 0x2) = 9;
|
||||
*(s16 *)(param_1 + 0x34) = 0;
|
||||
iVar1 = *(s32 **)((s32)iVar2 + 0x20);
|
||||
*(s16 *)((s32)iVar2 + 0x2) = 1;
|
||||
*(u32 *)((s32)iVar1 + 4) = *(u32 *)((s32)iVar1 + 4) & 0x7FFFFFFF;
|
||||
func_8017C068();
|
||||
func_800D0C48(1);
|
||||
func_8014704C(&D_80126B58);
|
||||
}
|
||||
|
||||
|
||||
@@ -3274,7 +3274,20 @@ void func_8017D030(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017D058);
|
||||
extern s32 *D_80126B78;
|
||||
extern s16 D_80126B3C;
|
||||
extern s16 D_80126B38;
|
||||
extern void func_80174684(void *a0);
|
||||
|
||||
s32 func_8017D058(void)
|
||||
{
|
||||
extern void func_8017D09C(void *a0);
|
||||
s32 *v0 = D_80126B78;
|
||||
D_80126B38 = 0;
|
||||
D_80126B3C = *(u16 *)((u8 *)v0 + 0x12);
|
||||
func_80174684((void *)func_8017D09C);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_80183F28[])(void);
|
||||
@@ -3634,7 +3647,26 @@ void func_8017D948(s32 s0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017D9C4);
|
||||
extern void func_80172710(void);
|
||||
extern s32 func_80178BF8();
|
||||
|
||||
s32 func_8017D9C4(void *a0)
|
||||
{
|
||||
extern void func_8012BE54(s32 a0);
|
||||
|
||||
s32 field;
|
||||
|
||||
field = *(s32 *)((s32)a0 + 0x64);
|
||||
if (*(s16 *)(field + 0x70) != 0) {
|
||||
if (((s32 (*)(s32))func_8012BE54)(field) < 0x1001) {
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x64) + 0x2) = 2;
|
||||
func_80178BF8();
|
||||
return (s32)func_80172710;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8017DA34(void);
|
||||
|
||||
|
||||
@@ -4520,7 +4520,44 @@ void func_80188F14(void *arg0) {
|
||||
DEFINE_func_80188F90() /* dedup: shared engine-core @0x80188F90 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_801863CC", func_80188FB0);
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
extern s32 func_801789AC(s32 arg0);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_801746DC(void);
|
||||
extern void func_80029514(s32);
|
||||
|
||||
void func_80188FB0(void *param_1) {
|
||||
extern s32 func_8012BD14(s32 a0);
|
||||
extern s32 func_8012B8A4(s16 *a0);
|
||||
extern s32 D_801D09F4;
|
||||
s16 state;
|
||||
s32 ret;
|
||||
|
||||
state = *(s16 *)((s32)param_1 + 0x10A);
|
||||
|
||||
switch (state) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
ret = func_8012BD14((s32)param_1);
|
||||
if (ret < 0x1001) {
|
||||
func_80178B18((s32)param_1, (s32)&D_801D09F4);
|
||||
func_801746DC();
|
||||
ret = func_8012B8A4((s16 *)param_1);
|
||||
*(s16 *)(*(s32 *)((s32)param_1 + 0x20) + 0x12) = (s16)ret;
|
||||
*(s16 *)((s32)param_1 + 0x10A) = 2;
|
||||
func_80029514(0x1D1);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (func_801789AC((s32)param_1) == 1) {
|
||||
((void (*)(s32))func_80178D18)((s32)param_1);
|
||||
*(s16 *)((s32)param_1 + 0x10A) = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012B030(u8 *a0);
|
||||
extern u16 D_801D099C;
|
||||
|
||||
@@ -3467,7 +3467,21 @@ void func_8017FBD8(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_jr_8017E1D0", func_8017FC50);
|
||||
extern void func_8012A828(s32 a0, s32 a1);
|
||||
extern void func_8012CBCC(s32 a0);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern u8 D_8018E8EC[];
|
||||
|
||||
void func_8017FC50(s32 param_1) {
|
||||
if ((*(u16 *)(param_1 + 0x72) & 0x4000) != 0) {
|
||||
func_8012A828(param_1, (s32)D_8018E8EC);
|
||||
*(s16 *)(param_1 + 2) = 9;
|
||||
*(s32 *)(param_1 + 0x1C) = 0;
|
||||
func_8002D4C8(0x776, 0);
|
||||
}
|
||||
func_8012CBCC(param_1);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012A828(s32 a0, s32 a1);
|
||||
extern u8 D_8018E3F4[];
|
||||
@@ -3591,7 +3605,32 @@ void func_8017FE6C(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_jr_8017E1D0", func_8017FF8C);
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, s32 a1);
|
||||
extern s32 func_80143970(s32 a0);
|
||||
extern s32 D_80185E94;
|
||||
extern s32 D_801AB1EC;
|
||||
|
||||
void func_8017FF8C(s32 param_1)
|
||||
{
|
||||
if (func_8012C354(param_1, (s32)&D_80185E94) == 0) {
|
||||
return;
|
||||
}
|
||||
func_8012A828(param_1, (s32)&D_801AB1EC);
|
||||
*(u8 *)(param_1 + 0xC0) = 1;
|
||||
*(s32 *)(param_1 + 0xB4) = -1;
|
||||
func_80143970(param_1);
|
||||
*(u16 *)(param_1 + 0xFC) = 0x20;
|
||||
*(u16 *)(param_1 + 2) += 1;
|
||||
if (*(s16 *)(param_1 + 0x70) == 1) {
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = 0x400;
|
||||
*(s16 *)(param_1 + 0x12) = -4;
|
||||
} else {
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = 0xC00;
|
||||
*(s16 *)(param_1 + 0x12) = 4;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012A828(s32 arg0, s32 arg1);
|
||||
@@ -4464,7 +4503,34 @@ void func_80181AA0(s32 arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_jr_8017E1D0", func_80181B34);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_801813E8(s32 a0);
|
||||
|
||||
void func_80181B34(s32 a0) {
|
||||
u16 v1 = *(u16 *)(a0 + 0x34);
|
||||
|
||||
switch (v1) {
|
||||
case 0:
|
||||
if (*(s16 *)(*(s32 *)(a0 + 0x64) + 0x100) != 0) {
|
||||
*(u16 *)(a0 + 0x34) = v1 + 1;
|
||||
*(u16 *)(a0 + 0x98) = 1;
|
||||
}
|
||||
return;
|
||||
case 1:
|
||||
if ((*(s32 *)(a0 + 0x1C) += 2) >= 0x7F) {
|
||||
*(s32 *)(a0 + 0x1C) = 0x7F;
|
||||
*(u16 *)(a0 + 0x34) = *(u16 *)(a0 + 0x34) + 1;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
func_801813E8(a0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
|
||||
@@ -6249,7 +6249,21 @@ void func_801807D8(void * arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_80180828);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
extern void func_80029124(s32, s32);
|
||||
extern void func_800D0F4C(s32 a0);
|
||||
extern u8 D_8018FCB4;
|
||||
|
||||
void func_80180828(s32 a0)
|
||||
{
|
||||
*(s16 *)(a0 + 2) = 5;
|
||||
func_80178B18(a0, (s32)&D_8018FCB4);
|
||||
func_80029124(0x106, 1);
|
||||
func_800D0F4C(0x58);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -6732,7 +6746,33 @@ void func_8018158C(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_80181644);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_80181644(void *a0)
|
||||
{
|
||||
void *s0;
|
||||
|
||||
func_8012AD80((s32)a0);
|
||||
s0 = a0;
|
||||
|
||||
*(u16 *)(*(s32 *)((char *)s0 + 0x20) + 0x10) =
|
||||
*(u16 *)(*(s32 *)((char *)s0 + 0x20) + 0x10) + *(u16 *)((char *)s0 + 0xFC);
|
||||
|
||||
*(u16 *)(*(s32 *)((char *)s0 + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)((char *)s0 + 0x20) + 0x12) + *(u16 *)((char *)s0 + 0xFE);
|
||||
|
||||
*(u16 *)(*(s32 *)((char *)s0 + 0x20) + 0x14) =
|
||||
*(u16 *)(*(s32 *)((char *)s0 + 0x20) + 0x14) + *(u16 *)((char *)s0 + 0x100);
|
||||
|
||||
if (func_8012BEE8((s32)s0) != 0) {
|
||||
func_8012C218(s0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_801816C8);
|
||||
|
||||
@@ -6776,7 +6816,14 @@ extern void func_8012B2CC(s32 a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_80181840);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
void func_80181840(void *arg0) {
|
||||
s32 *p = *(s32 **)((char *)arg0 + 0x20);
|
||||
*(short *)((char *)arg0 + 0x2) = 0x4;
|
||||
*(short *)((char *)p + 0x12) = 0x600;
|
||||
func_8012B2CC((s32)arg0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012C1B8(void);
|
||||
|
||||
@@ -3494,7 +3494,17 @@ void func_8017EE2C(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_jr_8017D604", func_8017EE5C);
|
||||
extern s32 D_80126B9C;
|
||||
extern s16 D_80187CE4[];
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
|
||||
void func_8017EE5C(void *a0) {
|
||||
if ((D_80126B9C & 0x8000000) != 0) {
|
||||
*(s16 *)((s32)a0 + 0x2) = 2;
|
||||
func_80178B18((s32)a0, (s32)&D_80187CE4);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
|
||||
@@ -5716,7 +5716,48 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017F9A
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017F9F4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017FA1C);
|
||||
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_8017FA1C; /* 0x20 bytes: m@0, t@0x14 */
|
||||
|
||||
extern s32 func_80017DC4(void *a0, void *a1);
|
||||
extern void func_80017DF8(s16 *a0, void *a1);
|
||||
extern void func_80015978(s32 a0, s32 *a1);
|
||||
extern void func_80017E68(void *a0, void *a1);
|
||||
extern void func_80017168(void *a0, void *a1);
|
||||
|
||||
void func_8017FA1C(s32 param_1, s32 param_2)
|
||||
{
|
||||
MTX_8017FA1C mtx;
|
||||
s32 buf2[2];
|
||||
s32 obj;
|
||||
|
||||
obj = *(s32 *)(param_1 + 0x20);
|
||||
*(s32 *)(param_2 + 0x1C) = 0x50000000;
|
||||
|
||||
func_80017DC4((void *)(obj + 0x18), &mtx);
|
||||
func_80017DF8((s16 *)(obj + 0x10), &mtx);
|
||||
|
||||
func_80015978(param_1 + 4, buf2);
|
||||
func_80017E68((void *)buf2, &mtx);
|
||||
func_80017168((void *)param_2, &mtx);
|
||||
|
||||
mtx.t[0] += *(s16 *)(param_1 + 0x38);
|
||||
mtx.t[1] += *(s16 *)(param_1 + 0x3A);
|
||||
mtx.t[2] += *(s16 *)(param_1 + 0x3C);
|
||||
func_80017168((void *)param_2, &mtx);
|
||||
func_80017E68((void *)buf2, &mtx);
|
||||
|
||||
mtx.t[0] += *(s16 *)(param_1 + 0x3E);
|
||||
mtx.t[1] += *(s16 *)(param_1 + 0x40);
|
||||
mtx.t[2] += *(s16 *)(param_1 + 0x42);
|
||||
func_80017168((void *)param_2, &mtx);
|
||||
func_80017E68((void *)buf2, &mtx);
|
||||
|
||||
mtx.t[0] += *(s16 *)(param_1 + 0x44);
|
||||
mtx.t[1] += *(s16 *)(param_1 + 0x46);
|
||||
mtx.t[2] += *(s16 *)(param_1 + 0x48);
|
||||
func_80017168((void *)param_2, &mtx);
|
||||
}
|
||||
|
||||
|
||||
void func_8017FB78(s32 *a0) {
|
||||
s16 *p;
|
||||
|
||||
@@ -4993,7 +4993,20 @@ void func_8017F390(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_jr_8017BEBC", func_8017F458);
|
||||
extern void func_80172710(void);
|
||||
extern s32 func_80178BF8();
|
||||
|
||||
s32 func_8017F458(s16 *arg0) {
|
||||
extern s32 func_8012BE54(s32 a0);
|
||||
|
||||
if (func_8012BE54(*(s32 *)((s32)arg0 + 0x64)) >= 0x2401) {
|
||||
return 0;
|
||||
}
|
||||
*(s16 *)(*(s32 *)((s32)arg0 + 0x64) + 0x2) = 2;
|
||||
func_80178BF8();
|
||||
return (s32)func_80172710;
|
||||
}
|
||||
|
||||
|
||||
s32 func_8017F4B4(void) {
|
||||
return 0x55;
|
||||
|
||||
@@ -3919,7 +3919,33 @@ void func_8017D064(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_jr_8017AE2C", func_8017D08C);
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8017D12C(void *a0);
|
||||
extern u8 D_80126948[];
|
||||
extern s32 D_80126954;
|
||||
extern s32 D_8012695C;
|
||||
extern s16 D_80126968;
|
||||
extern s16 D_8012696A;
|
||||
extern s16 D_8012696C;
|
||||
extern s16 D_80126976;
|
||||
extern s16 D_80126978;
|
||||
extern s16 D_8012697A;
|
||||
|
||||
void func_8017D08C(void) {
|
||||
D_80126954 = 0x190;
|
||||
D_8012695C = 0x320;
|
||||
D_80126968 = 0x155;
|
||||
D_8012696A = 0x600;
|
||||
D_80126978 = -0x60;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = 0;
|
||||
D_8012697A = 0x30;
|
||||
func_8012A018((s32)func_8017D12C, 0);
|
||||
func_8012A094((s32)D_80126948);
|
||||
func_8017D12C(D_80126948);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_80182530[])(void);
|
||||
|
||||
@@ -3498,7 +3498,28 @@ void func_8017D524(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_jr_8017BEBC", func_8017D560);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_80029124(s32 a0, s32 a1);
|
||||
extern void func_80016714(void *a0, s32 a1);
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern u8 D_80181D00[];
|
||||
|
||||
void func_8017D560(s32 a0) {
|
||||
*(u8 *)(a0 + 0xC1) = 0;
|
||||
*(s16 *)(a0 + 0x5E) = 0;
|
||||
*(s16 *)(a0 + 0x5C) = 0;
|
||||
func_80029124(0xBC, 1);
|
||||
if (*(s32 *)(a0 + 0xCC) != 0) {
|
||||
func_80016714((void *)*(s32 *)(a0 + 0xCC), 0x38);
|
||||
}
|
||||
func_80178B18(a0, (s32)D_80181D00);
|
||||
func_8012AD44((s32 *)a0, 2);
|
||||
func_8002D4C8(0xAAF, 0);
|
||||
}
|
||||
|
||||
|
||||
typedef struct { u8 b[4]; } Blk4_8017D5DC;
|
||||
|
||||
|
||||
@@ -3354,7 +3354,18 @@ u8 *a0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017E8E8);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017E8E8(a0)
|
||||
u8 *a0;
|
||||
{
|
||||
*(u16 *)(a0 + 0x74) = 0x1000;
|
||||
*(u16 *)(a0 + 0x72) = 0x1000;
|
||||
*(u16 *)(a0 + 0x70) = 0x1000;
|
||||
*(s32 *)(a0 + 0x200) = 0x10;
|
||||
func_80171990(a0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80171928(void *a0);
|
||||
void func_8017E91C(void *a0) {
|
||||
@@ -3376,9 +3387,41 @@ void func_8017E950(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017E98C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017E9CC);
|
||||
extern s32 func_8017EC2C(s32 a0);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017E9CC(u8 *a0)
|
||||
{
|
||||
s32 iVar1;
|
||||
|
||||
func_8017EC2C((s32)a0);
|
||||
iVar1 = *(s32 *)(a0 + 0x200) - 1;
|
||||
*(s32 *)(a0 + 0x200) = iVar1;
|
||||
if (iVar1 == -1) {
|
||||
func_80171990(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8017EC2C(s32 a0);
|
||||
extern s32 func_8013767C(s32 a0);
|
||||
extern void func_80154274(s32 *a0, s32 a1);
|
||||
extern void func_80147324(s32 a0);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
extern u8 D_80183058[];
|
||||
extern u8 D_80182D0C[];
|
||||
|
||||
void func_8017EA10(s32 *a0) {
|
||||
s32 *s0 = a0;
|
||||
|
||||
if (func_8017EC2C((s32)a0) < 0x190) {
|
||||
s0[0x198 / 4] = func_8013767C((s32)D_80183058);
|
||||
func_80154274(s0, (s32)D_80182D0C);
|
||||
func_80147324(0x7E7);
|
||||
func_80171990((u8 *)s0);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8017D5C0", func_8017EA10);
|
||||
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
extern s32 func_8017EC2C(s32 a0);
|
||||
|
||||
Reference in New Issue
Block a user