mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-06 01:04:13 -04:00
feat(t5): Claude wave t5f — 34 banked (sonnet 34/35, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5)
This commit is contained in:
@@ -4889,7 +4889,17 @@ void func_80180E90(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_jr_8017D2DC", func_80180EEC);
|
||||
extern s32 D_801ED9F0;
|
||||
extern void (*D_80188E20[])(void);
|
||||
extern void func_801832BC(s32 param_1);
|
||||
|
||||
void func_80180EEC(s32 param_1) {
|
||||
D_80188E20[*(u16 *)(param_1 + 0x2)]();
|
||||
if ((1 < *(u16 *)(param_1 + 0x2)) && (D_801ED9F0 == 1)) {
|
||||
func_801832BC(param_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012C1B8(void);
|
||||
extern void func_8012CAE4(s32 a0);
|
||||
@@ -5025,7 +5035,41 @@ extern void func_8012A828(s32, s32);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_jr_8017D2DC", func_8018164C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_jr_8017D2DC", func_801816A4);
|
||||
extern s32 D_801ED9F8;
|
||||
extern u8 D_80187430[];
|
||||
extern void func_8012A828(s32 a0, s32 a1);
|
||||
extern s32 D_801ED9FC;
|
||||
extern u16 D_801877D0[];
|
||||
extern s32 func_80182B00(s32 a0);
|
||||
extern s32 D_801EDA08;
|
||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern u16 D_801873D8[];
|
||||
extern s32 D_801EDA00;
|
||||
|
||||
void func_801816A4(s32 a0)
|
||||
{
|
||||
register s32 s0 __asm__("$16");
|
||||
|
||||
s0 = a0;
|
||||
if (--D_801ED9F8 == 0) {
|
||||
func_8012A828(s0, (s32)&D_80187430);
|
||||
}
|
||||
if (--D_801ED9FC == 0) {
|
||||
func_8012A828(s0, (s32)&D_801877D0);
|
||||
}
|
||||
if (func_80182B00(s0) != 0 || D_801EDA08 != 0) {
|
||||
func_80143B6C(s0, 1);
|
||||
func_8002D4C8(0x42E, 0);
|
||||
func_8012A828(s0, (s32)&D_801873D8);
|
||||
{
|
||||
u16 tmp = *(u16 *)(s0 + 0x2);
|
||||
D_801EDA00 = 10;
|
||||
*(u16 *)(s0 + 0x2) = tmp + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_801EDA00;
|
||||
extern s32 D_801ED9E4;
|
||||
|
||||
@@ -3016,7 +3016,46 @@ void func_8017FE1C(void *param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_8017FE64);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 D_801270D8;
|
||||
extern s16 D_80126960;
|
||||
extern u8 D_800AF648;
|
||||
extern void func_8004974C(void *a0, void *a1);
|
||||
extern void ApplyMatrixSV(void *a0, void *a1, void *a2);
|
||||
extern void func_801292C8(void);
|
||||
|
||||
void func_8017FE64(void *a0) {
|
||||
u8 *s0 = (u8 *)a0;
|
||||
s32 buf[8];
|
||||
s16 sv[4];
|
||||
s32 v1;
|
||||
|
||||
v1 = D_801270D8;
|
||||
sv[0] = 0x100;
|
||||
sv[1] = -0x440;
|
||||
if (v1 == 0) {
|
||||
if (D_80126960 == 0x60) {
|
||||
sv[2] = 0x380;
|
||||
} else {
|
||||
sv[2] = 0x600;
|
||||
}
|
||||
} else {
|
||||
sv[2] = 0x600;
|
||||
}
|
||||
|
||||
func_8004974C((void *)&D_800AF648, (void *)buf);
|
||||
ApplyMatrixSV((void *)buf, (void *)sv, (void *)sv);
|
||||
|
||||
*(s16 *)(s0 + 0x6) = sv[0];
|
||||
*(s16 *)(s0 + 0xA) = sv[1];
|
||||
*(s16 *)(s0 + 0xE) = sv[2];
|
||||
|
||||
if (D_801270D8 >= 2) {
|
||||
((void (*)(u8 *))func_801292C8)(s0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018A904[])(void);
|
||||
@@ -3877,7 +3916,20 @@ void func_80181DEC(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80181ED4);
|
||||
extern void func_80181F3C(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_801A1B40;
|
||||
|
||||
void func_80181ED4(s32 a0) {
|
||||
if ((*(u16 *)(a0 + 0x100) & 4) != 0) {
|
||||
func_80181F3C(a0);
|
||||
} else {
|
||||
func_8012A828(a0, &D_801A1B40);
|
||||
*(s16 *)(a0 + 2) = 2;
|
||||
*(s32 *)(a0 + 0x1C) = 0x19;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void D_801A1AB8;
|
||||
@@ -4642,7 +4694,17 @@ void func_80183BD0(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80183D38);
|
||||
extern void (*D_8018ABC8[])();
|
||||
extern void (*D_8018ABD8[])();
|
||||
|
||||
void func_80183D38(void *a0) {
|
||||
if (*(s16 *)((u8 *)a0 + 0x70) != 1) {
|
||||
D_8018ABC8[*(u16 *)((u8 *)a0 + 0x2)](a0);
|
||||
} else {
|
||||
D_8018ABD8[*(u16 *)((u8 *)a0 + 0x2)](a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80183DA4);
|
||||
|
||||
|
||||
@@ -3665,7 +3665,34 @@ void func_8017F0B4(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8017F14C);
|
||||
extern void func_8012A018(s32 a0, s32 a1);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8017F27C(void *a0);
|
||||
|
||||
void func_8017F14C(void) {
|
||||
|
||||
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;
|
||||
extern u8 D_80126948[];
|
||||
D_80126954 = 0x10E;
|
||||
D_8012695C = 0x348;
|
||||
D_80126968 = 0;
|
||||
D_8012696A = 0xC00;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = 0;
|
||||
D_80126978 = -0x70;
|
||||
D_8012697A = 0;
|
||||
func_8012A018((s32)func_8017F27C, 5);
|
||||
func_8012A094((s32)D_80126948);
|
||||
func_8017F27C(D_80126948);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
@@ -4073,9 +4100,31 @@ void func_8017FF34(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8017FF70);
|
||||
extern s32 rand(void);
|
||||
|
||||
void func_8017FF70(s32 a0)
|
||||
{
|
||||
*(s32 *)(a0 + 0x1c) = rand();
|
||||
*(u16 *)(a0 + 0xfc) = *(u16 *)(a0 + 0xfc) + 1;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x2) + 1;
|
||||
}
|
||||
|
||||
|
||||
void func_8017FFB4(void *a0)
|
||||
{
|
||||
extern s32 func_80180770(void *a0);
|
||||
|
||||
s32 v1;
|
||||
s32 v0;
|
||||
|
||||
v1 = *(s32 *)((s32)a0 + 0x1C) + 1;
|
||||
v0 = *(s16 *)((s32)a0 + 0xFC);
|
||||
*(s32 *)((s32)a0 + 0x1C) = v1;
|
||||
if (v1 % v0 == 0) {
|
||||
func_80180770(a0);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8017FFB4);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5005,7 +5005,13 @@ DEFINE_func_8014C118() /* dedup: shared engine-core @0x8014c118 (src/shared) */
|
||||
DEFINE_func_8014C168() /* dedup: shared engine-core @0x8014c168 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_8013F350", func_8014C1A0);
|
||||
extern void func_8014C1C8(s32 arg0, s32 arg1, void *arg2);
|
||||
extern u8 D_8018584C;
|
||||
|
||||
void func_8014C1A0(s32 arg0, s32 arg1) {
|
||||
func_8014C1C8(arg0, arg1, &D_8018584C);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8014C1C8() /* dedup: shared engine-core @0x8014c1c8 (src/shared) */
|
||||
|
||||
|
||||
@@ -3321,7 +3321,12 @@ DEFINE_func_8017BEAC() /* dedup: shared engine-core @0x8017BEAC (src/shared) */
|
||||
|
||||
DEFINE_func_8017BEB4() /* dedup: shared engine-core @0x8017BEB4 (src/shared) */
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017AE2C", func_8017BEBC);
|
||||
extern void func_8017BF34(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
|
||||
void func_8017BEBC(s32 arg0, s32 arg1) {
|
||||
func_8017BF34(arg0, arg1, 0xC, 0);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8017BEE0() /* dedup: shared engine-core @0x8017BEE0 (src/shared) */
|
||||
|
||||
|
||||
@@ -4244,7 +4244,31 @@ void func_8017FBE8(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8017FC74);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80128ED8(s32 param_1, s32 *param_2);
|
||||
extern void func_801292C8(void);
|
||||
extern void func_8012931C(void *);
|
||||
|
||||
void func_8017FC74(s32 a0) {
|
||||
s32 v0;
|
||||
|
||||
v0 = *(s32 *)(a0 + 0x1C);
|
||||
if (v0 != 0) {
|
||||
v0 = v0 - 1;
|
||||
*(s32 *)(a0 + 0x1C) = v0;
|
||||
if (v0 == 0) {
|
||||
*(u32 *)(*(s32 *)(a0 + 0x20) + 4) &= 0x7FFFFFFF;
|
||||
}
|
||||
} else {
|
||||
func_8012931C((void *)a0);
|
||||
v0 = func_80128ED8(*(s32 *)(a0 + 0x20), (s32 *)(a0 + 0x24));
|
||||
if (v0 != 0) {
|
||||
((void (*)(s32))func_801292C8)(a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018E278[])(void);
|
||||
@@ -4254,7 +4278,32 @@ void func_8017FCF0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8017FD2C);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
|
||||
void func_8017FD2C(s32 a0) {
|
||||
s32 v0;
|
||||
s32 v1;
|
||||
u16 tmp;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)(a0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4((void *)a0);
|
||||
return;
|
||||
}
|
||||
func_8001C214(v0, 0);
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) |= 0x10;
|
||||
v1 = *(s32 *)(a0 + 0x20);
|
||||
*(s16 *)(v1 + 0x1A) = 0x1000;
|
||||
*(s16 *)(v1 + 0x18) = 0x1000;
|
||||
v1 = *(s32 *)(a0 + 0x64);
|
||||
tmp = *(u16 *)(v1 + 0x36);
|
||||
*(s16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x2) + 1;
|
||||
*(s16 *)(a0 + 0xFE) = tmp;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -3335,7 +3335,18 @@ void func_8017BF20(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8017AE2C", func_8017BF58);
|
||||
extern void func_80183228(void *a0);
|
||||
extern void func_80171A1C(u8 *a0);
|
||||
extern s32 func_80174650(s32 a0);
|
||||
|
||||
void func_8017BF58(void *a0) {
|
||||
if (((s32 (*)(void *))func_80183228)(a0) == 0) {
|
||||
return;
|
||||
}
|
||||
func_80171A1C(a0);
|
||||
func_80174650((s32)a0);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8017BF98() /* dedup: shared engine-core @0x8017BF98 (src/shared) */
|
||||
|
||||
@@ -3359,7 +3370,19 @@ void func_8017C004(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8017AE2C", func_8017C03C);
|
||||
extern s32 func_801831D0(void *a0);
|
||||
extern void func_80171A1C(u8 *a0);
|
||||
extern s32 func_80174650(s32 a0);
|
||||
|
||||
void func_8017C03C(void *a0) {
|
||||
s32 s0 = (s32)a0;
|
||||
if (func_801831D0(a0) == 0) {
|
||||
return;
|
||||
}
|
||||
func_80171A1C((u8 *)s0);
|
||||
func_80174650(s0);
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8017C07C() /* dedup: shared engine-core @0x8017C07C (src/shared) */
|
||||
|
||||
|
||||
@@ -4272,7 +4272,20 @@ DEFINE_func_80182904() /* dedup: shared engine-core @0x80182904 (src/shared) */
|
||||
DEFINE_func_80182910() /* dedup: shared engine-core @0x80182910 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8017FB84", func_8018291C);
|
||||
extern u8 D_801D4306;
|
||||
|
||||
void func_8018291C(void) {
|
||||
u8 *p = &D_801D4306;
|
||||
|
||||
asm("" : "=r"(p) : "0"(p));
|
||||
|
||||
if (*p < 0xF8) {
|
||||
*p += 4;
|
||||
p[-2] += 6;
|
||||
p[-1] += 6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8002D4C8(s32 arg0, s32 arg1);
|
||||
void func_8018295C(void *a0) {
|
||||
@@ -4613,7 +4626,40 @@ s32 arg0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8017FB84", func_8018302C);
|
||||
void func_8018302C(void *a0) {
|
||||
extern u8 D_801D4306;
|
||||
extern u8 D_801D4304;
|
||||
extern u8 D_801D4305;
|
||||
register s32 v __asm__("$2");
|
||||
register s32 c __asm__("$3");
|
||||
register s32 z __asm__("$0");
|
||||
register u8 *dp __asm__("$4");
|
||||
s16 *p;
|
||||
s32 frame_pad[3];
|
||||
|
||||
(void)&frame_pad;
|
||||
p = *(s16 **)((s32)a0 + 0x20);
|
||||
v = *(s16 *)(p + 0xC);
|
||||
c = v + z;
|
||||
if (v >= 0x801) {
|
||||
v = c - 0x200;
|
||||
*(s16 *)(p + 0xC) = v;
|
||||
}
|
||||
v = *(s16 *)(p + 0xD);
|
||||
c = v + z;
|
||||
if (v >= 0x801) {
|
||||
v = c - 0x200;
|
||||
*(s16 *)(p + 0xD) = v;
|
||||
}
|
||||
|
||||
dp = &D_801D4306;
|
||||
if (*dp >= 0xC1) {
|
||||
*dp -= 4;
|
||||
D_801D4304 -= 6;
|
||||
D_801D4305 -= 6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern u8 D_801D4304;
|
||||
extern u8 D_801D4305;
|
||||
|
||||
@@ -3813,11 +3813,65 @@ void func_8017E26C() {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_jr_8017BEBC", func_8017E6A0);
|
||||
extern u8 D_801ABB40[];
|
||||
extern u8 D_801ABB44[];
|
||||
|
||||
void func_8017E6A0(void *a0) {
|
||||
s32 i;
|
||||
s32 off;
|
||||
|
||||
i = 0;
|
||||
off = 0;
|
||||
do {
|
||||
*(s32 *)(D_801ABB40 + off) = 0;
|
||||
*(s32 *)(D_801ABB44 + off) = 0;
|
||||
off += 0x4C;
|
||||
i++;
|
||||
} while (i < 0x14);
|
||||
*(s16 *)((s8 *)a0 + 0x100) = 0;
|
||||
*(s16 *)((s8 *)a0 + 0x102) = 0x40;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_jr_8017BEBC", func_8017E6E0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_jr_8017BEBC", func_8017E960);
|
||||
#include "common.h"
|
||||
|
||||
void func_8017E960(s32 param_1, s32 param_2, s32 *param_3)
|
||||
{
|
||||
s32 dx, dy, dz;
|
||||
s32 ax, az;
|
||||
register s32 ay __asm__("$7");
|
||||
|
||||
dx = *(s16 *)(param_2 + 2) - *(s16 *)(param_1 + 2);
|
||||
dy = *(s16 *)(param_2 + 6) - *(s16 *)(param_1 + 6);
|
||||
dz = *(s16 *)(param_2 + 0xA) - *(s16 *)(param_1 + 0xA);
|
||||
|
||||
ax = dx;
|
||||
if (dx < 0) {
|
||||
ax = -dx;
|
||||
}
|
||||
ay = dy;
|
||||
if (dy < 0) {
|
||||
ay = -dy;
|
||||
}
|
||||
az = dz;
|
||||
if (dz < 0) {
|
||||
az = -dz;
|
||||
}
|
||||
|
||||
if (ay < ax) {
|
||||
ay = ax;
|
||||
}
|
||||
if (ay < az) {
|
||||
ay = az;
|
||||
}
|
||||
|
||||
param_3[0] = (dx << 16) / ay;
|
||||
param_3[1] = (dy << 16) / ay;
|
||||
param_3[2] = (dz << 16) / ay;
|
||||
}
|
||||
|
||||
|
||||
extern u8 D_801ABB40[];
|
||||
extern u8 D_801ABB44[];
|
||||
|
||||
@@ -3634,9 +3634,38 @@ void func_8017F080(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017F0BC);
|
||||
extern void func_8014706C(void *arg0);
|
||||
extern void func_8014708C(void *arg0);
|
||||
extern s32 func_801472C8(struct S *a0);
|
||||
extern void func_8017F818(void *a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017F0BC(void *a0) {
|
||||
func_8014706C(a0);
|
||||
func_8014708C(a0);
|
||||
func_801472C8(a0);
|
||||
*(s32 *)((u8 *)a0 + 0x200) = 100;
|
||||
*(s16 *)((u8 *)a0 + 0x20C) = 1;
|
||||
func_8017F818(a0, *(s16 *)((u8 *)a0 + 0x20C), *(s32 *)((u8 *)a0 + 0x200), 0);
|
||||
func_80171990((u8 *)a0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8017F818(void *a0, s32 a1, s32 a2, s32 a3);
|
||||
extern void func_8017F990(s32 a0, s32 a1);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017F120(s32 arg0)
|
||||
{
|
||||
func_8017F818((void *)arg0, *(s16 *)(arg0 + 0x20C), *(s32 *)(arg0 + 0x200), 0);
|
||||
func_8017F990(arg0, 0);
|
||||
*(s32 *)(arg0 + 0x200) += 0xA;
|
||||
if (*(s32 *)(arg0 + 0x200) >= 0x258) {
|
||||
*(s32 *)(arg0 + 0x204) = 0xA0000;
|
||||
func_80171990((u8 *)arg0);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017F120);
|
||||
|
||||
extern void func_8017F818(void *, s32, s32, s32);
|
||||
extern void func_8017F990(s32, s32);
|
||||
@@ -4257,7 +4286,13 @@ void func_8017FFD8(void *arg0) {
|
||||
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_80180014);
|
||||
extern void func_80180220(s32 arg0, s32 arg1);
|
||||
extern s16 D_80126940;
|
||||
|
||||
void func_80180014(void *arg0) {
|
||||
func_80180220((s32) arg0, (s32) &D_80126940);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4481,7 +4516,23 @@ void func_801805E0(void)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_80180644);
|
||||
void func_80180644(s32 arg0)
|
||||
{
|
||||
extern void func_8017FB8C(void);
|
||||
extern void func_80129CF8();
|
||||
extern void func_8012E8A8(u8 *arg0);
|
||||
extern s32 D_801E6748;
|
||||
|
||||
func_8017FB8C();
|
||||
func_80129CF8();
|
||||
*(s16 *)(arg0 + 2) = 3;
|
||||
*(s16 *)(arg0 + 0x34) = 0;
|
||||
*(s32 *)(arg0 + 0x1C) = 0;
|
||||
*(s16 *)(arg0 + 0x98) = 0;
|
||||
func_8012E8A8(arg0);
|
||||
D_801E6748 = 1;
|
||||
}
|
||||
|
||||
|
||||
typedef struct {
|
||||
u8 pad0[0x18];
|
||||
|
||||
@@ -7320,7 +7320,31 @@ void aF80181940(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_801819F4);
|
||||
void func_801819F4(void) {
|
||||
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;
|
||||
extern u8 D_80126948[];
|
||||
extern void func_80181A78(void *);
|
||||
extern void func_8012A018(s32, s32);
|
||||
|
||||
D_80126954 = 0x190;
|
||||
D_8012695C = 0x4B0;
|
||||
D_80126968 = 0x155;
|
||||
D_8012696A = 0;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = 0;
|
||||
D_80126978 = 0;
|
||||
D_8012697A = 0;
|
||||
func_8012A018((s32)func_80181A78, 0);
|
||||
func_80181A78((void *)D_80126948);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018C100[])(void);
|
||||
@@ -8135,7 +8159,22 @@ void func_80183088(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_801830C4);
|
||||
void func_801830C4(int param_1)
|
||||
{
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
|
||||
int v0;
|
||||
|
||||
*(unsigned short *)(param_1 + 0x5c) =
|
||||
*(unsigned short *)(param_1 + 0x5c) | 0x4000;
|
||||
*(short *)(param_1 + 0xae) = -1;
|
||||
*(unsigned char *)(param_1 + 0xc1) = 0;
|
||||
*(short *)(param_1 + 0x5e) = 0;
|
||||
func_8012C588(0x271, param_1);
|
||||
v0 = *(int *)(*(int *)(param_1 + 0x64) + 0x64);
|
||||
*(short *)(v0 + 0x102) = *(short *)(v0 + 0x102) - 1;
|
||||
}
|
||||
|
||||
|
||||
void func_80183130(void *param_1)
|
||||
{
|
||||
@@ -8293,9 +8332,51 @@ void func_801836E0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018371C);
|
||||
extern void func_80182A30(s32 arg0);
|
||||
extern void func_80182B68(s32 arg0);
|
||||
|
||||
void func_8018371C(s32 a0)
|
||||
{
|
||||
s32 v0;
|
||||
u16 v1;
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C2C4(s32 a0);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
extern s32 D_801AECB0;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)(a0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4((void *)a0);
|
||||
return;
|
||||
}
|
||||
func_8001C2C4(v0);
|
||||
v1 = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x100) = 0;
|
||||
*(u16 *)(a0 + 0xFE) = v1;
|
||||
func_80182A30(a0);
|
||||
func_80182B68(a0);
|
||||
D_801AECB0 = 0;
|
||||
func_8012AD50((void *)a0);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
#include "/home/musashi/bfm-decomp/src/shared/engine_types.h"
|
||||
|
||||
extern MatEntry D_8018C558[];
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
extern void func_801828DC(void);
|
||||
|
||||
void func_80183790(void *param_1)
|
||||
{
|
||||
if (*(s16 *)((s32)param_1 + 0x102) == 3) {
|
||||
func_80178B18((s32)param_1, (s32)D_8018C558);
|
||||
((void (*)(s32))func_801828DC)((s32)param_1);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_80183790);
|
||||
|
||||
extern void func_80178D18(void);
|
||||
|
||||
|
||||
@@ -3603,7 +3603,35 @@ void func_8017E190(s32 arg0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_8017E1D8);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8017EEFC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 func_8017EEB4(s32 arg0);
|
||||
extern s32 D_801963EC;
|
||||
extern s16 D_80188A16;
|
||||
extern s16 D_8019F6FC;
|
||||
extern s32 D_8019F700;
|
||||
extern s16 D_8019F704;
|
||||
|
||||
void func_8017E1D8(s32 arg0)
|
||||
{
|
||||
s16 ret;
|
||||
s32 v1;
|
||||
|
||||
func_8017EEFC(arg0, 5, 0, &D_801963EC);
|
||||
*(s16 *)(arg0 + 0x34) = 0;
|
||||
D_8019F6FC = 0;
|
||||
*(s32 *)(arg0 + 0x1C) = D_80188A16;
|
||||
ret = func_8017EEB4(arg0);
|
||||
D_8019F704 = ret;
|
||||
v1 = (ret == 0) ? 1 : -1;
|
||||
D_8019F700 = v1;
|
||||
func_8002D4C8(0x97E, 0);
|
||||
func_8002D4C8(0xA92, 0);
|
||||
*(s16 *)(arg0 + 0x84) = 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_8017E26C);
|
||||
|
||||
@@ -3733,7 +3761,44 @@ void func_8017E54C(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_8017E710);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8017EEFC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8017EB8C(void *arg0);
|
||||
extern void func_8017E7D0(s32 a0);
|
||||
extern s16 D_8019F720;
|
||||
extern s16 D_8019F70C;
|
||||
extern s16 D_8019F718;
|
||||
extern u8 D_80195E24;
|
||||
|
||||
void func_8017E710(s32 a0)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 bVar1;
|
||||
|
||||
if (D_8019F720 != 0) {
|
||||
D_8019F720 = D_8019F720 - 1;
|
||||
}
|
||||
iVar2 = func_8012BEE8(a0);
|
||||
if (iVar2 != 0) {
|
||||
*(u8 *)(a0 + 0xC1) = 0;
|
||||
bVar1 = D_8019F70C < 4;
|
||||
*(u16 *)(a0 + 0x5E) = 0;
|
||||
if (!bVar1) {
|
||||
func_8017E7D0(a0);
|
||||
} else {
|
||||
if (D_8019F718 == 7) {
|
||||
func_8017EEFC(a0, 7, 0, (s32)&D_80195E24);
|
||||
func_8002D4C8(0xA97, 0);
|
||||
} else {
|
||||
func_8017EB8C((void *)a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8017EEFC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 D_80195614;
|
||||
@@ -3779,9 +3844,36 @@ void func_8017E8A8(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_8017E910);
|
||||
extern void func_8017EEFC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s32 D_80195614;
|
||||
extern void func_8017ECE0(s32 a0);
|
||||
extern void func_8017EDA0(s32 arg0);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_8017E910(s32 arg0) {
|
||||
func_8017EEFC(arg0, 0xB, 0, &D_80195614);
|
||||
*(s32 *)(arg0 + 0x1C) = 0x10;
|
||||
func_8017ECE0(arg0);
|
||||
func_8017EDA0(arg0);
|
||||
func_8002D4C8(0x981, 0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8017EEFC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern s16 D_8019F708;
|
||||
extern s16 D_80188A22[];
|
||||
extern void func_8012E8A8(u8 *a0);
|
||||
|
||||
void func_8017E96C(s32 arg0) {
|
||||
s32 v0;
|
||||
|
||||
func_8017EEFC(arg0, 0xC, 0, 0);
|
||||
v0 = D_80188A22[D_8019F708];
|
||||
*(s16 *)(arg0 + 0x5C) = 0;
|
||||
*(s32 *)(arg0 + 0x1C) = v0;
|
||||
func_8012E8A8((u8 *)arg0);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_8017E96C);
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -4907,7 +4907,43 @@ void func_8017E9F0(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8017EA48);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80180FA4(s32, s32);
|
||||
extern s32 func_80181384(s32, s32);
|
||||
extern s32 func_8018107C(s32, s32, s32);
|
||||
extern void func_801810CC(s32, s32, s32);
|
||||
extern s32 func_80181280(s32 a0);
|
||||
extern void func_80180F94(s32 a0);
|
||||
extern s32 func_8012AD50(void*);
|
||||
|
||||
extern s32 D_801151D4;
|
||||
extern u8 D_80186C38;
|
||||
extern u8 D_80187E08;
|
||||
extern s16 D_80187DA8[];
|
||||
extern void (*D_80186B50[])();
|
||||
extern s32 D_80187D88;
|
||||
extern u8 D_80187CA8;
|
||||
|
||||
void func_8017EA48(s32 a0) {
|
||||
register s32 s1 __asm__("$17") = D_801151D4;
|
||||
s32 s0 = a0;
|
||||
|
||||
((s32 (*)(s32, void *, s32))func_80180FA4)(s0, (void *)&D_80186C38, 0);
|
||||
if (func_80181384(s0, 3) != 0) {
|
||||
*(s32 *)((u8 *)s1 + 0x14) -= 0x64;
|
||||
}
|
||||
((s32 (*)(s32, void *, s32))func_8018107C)(s0, (void *)&D_80187E08, 3);
|
||||
func_801810CC(s0, (s32)&D_80187DA8, 1);
|
||||
((s32 (*)(s32, s32, s32))func_80180FA4)(s0, (s32)D_80186B50, 1);
|
||||
func_801810CC(s0, (s32)&D_80187D88, 5);
|
||||
((s32 (*)(s32, s32, s32))func_80180FA4)(s0, (s32)&D_80187CA8, 5);
|
||||
if (func_80181280(s0) != 0) {
|
||||
func_80180F94(4);
|
||||
((void (*)(s32))func_8012AD50)(s0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -5392,7 +5428,12 @@ void func_8017F330(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8017F370);
|
||||
extern s32 func_801815B8(s32 a0, s32 a1);
|
||||
|
||||
void func_8017F370(s32 a0) {
|
||||
func_801815B8(a0, 0);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80180F84(void);
|
||||
extern void (*D_801885B8[])(int);
|
||||
@@ -6083,7 +6124,19 @@ s32 a0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8018004C);
|
||||
extern s32 func_8012AD50(void * arg0);
|
||||
extern s32 func_80180FA4(s32, s32);
|
||||
extern void func_80181048(void*, void*);
|
||||
|
||||
extern s32 D_80187F68;
|
||||
|
||||
void func_8018004C(s32 a0) {
|
||||
if (((s32 (*)(s32, void *, s32))func_80180FA4)(a0, (void *)&D_80187F68, 0) != 0) {
|
||||
func_80181048((void *)a0, (void *)&D_80187F68);
|
||||
func_8012AD50((void *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80180F84(void);
|
||||
extern void func_801813CC(s32 a0);
|
||||
@@ -6135,7 +6188,14 @@ void func_801800F4(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_80180188);
|
||||
void func_80180188(s32 a0) {
|
||||
*(u16 *)(a0 + 0xE) = *(u16 *)(a0 + 0xE) - 1;
|
||||
*(s32 *)(a0 + 0x1C) = *(s32 *)(a0 + 0x1C) + 0x100;
|
||||
if (*(s32 *)(a0 + 0x1C) == 0x1000) {
|
||||
func_8012AD50((void *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012AD50(void * arg0);
|
||||
extern s32 func_80181280(s32 a0);
|
||||
|
||||
Reference in New Issue
Block a user