mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 13:33:34 -04:00
feat(decomp): ox wave eh overlays — 129 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
This commit is contained in:
@@ -699,7 +699,7 @@ void func_800D2454(s32 a0, s32 a1, s32 *a2) {
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D24D0);
|
||||
|
||||
extern s32 func_800D27A0(s32 a0, s32 a1);
|
||||
extern s32 func_800D27A0();
|
||||
extern void func_800D3234(s32 a0, s32 a1);
|
||||
extern void StFreeRing(s32 a0);
|
||||
|
||||
@@ -726,7 +726,65 @@ s32 func_800D2704(s32 a0, s32 a1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D27A0);
|
||||
extern s32 D_800EC9F4;
|
||||
extern s32 D_800EC9F8;
|
||||
extern s32 D_800D9484;
|
||||
extern s32 D_800D9488;
|
||||
|
||||
struct UnkS1 { s32 pad0; s32 f4; s32 pad8; s32 fC; s32 pad10; s32 pad14; s32 f18; u32 f1C; };
|
||||
|
||||
s32 func_800D27A0(void* arg0, struct UnkS1* arg1) {
|
||||
s32 sp10[2];
|
||||
u16 sp18[4];
|
||||
s32 ret;
|
||||
s32 i;
|
||||
|
||||
for (i = 0x8000; i != 0; i--) {
|
||||
if (StGetNext(&sp10[0], &sp10[1]) == 0) {
|
||||
goto found;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
found:
|
||||
if (*(u32*)(sp10[1] + 8) >= arg1->fC) {
|
||||
D_800EC9F4 = 1;
|
||||
}
|
||||
if (*(u32*)(sp10[1] + 8) >= arg1->fC - 15) {
|
||||
D_800EC9F8 = 1;
|
||||
} else {
|
||||
D_800EC9F8 = 0;
|
||||
}
|
||||
if (D_800D9484 != *(u16*)(sp10[1] + 0x10) || D_800D9488 != *(u16*)(sp10[1] + 0x12)) {
|
||||
u16 cur1;
|
||||
u16 cur2;
|
||||
sp18[0] = 0;
|
||||
sp18[1] = 0;
|
||||
sp18[2] = arg1->f4 != 0 ? (arg1->f18 * 3) / 2 : *(u16*)&arg1->f18;
|
||||
sp18[3] = arg1->f1C * 2;
|
||||
if (arg1->f4 != 0) {
|
||||
func_80059888(sp18, 0, 0, 0);
|
||||
} else {
|
||||
func_80059888(sp18, 0x40, 0x40, 0x40);
|
||||
}
|
||||
cur1 = *(u16*)(sp10[1] + 0x10);
|
||||
cur2 = *(u16*)(sp10[1] + 0x12);
|
||||
D_800D9484 = cur1;
|
||||
D_800D9488 = cur2;
|
||||
}
|
||||
{
|
||||
u16 t = arg1->f4 != 0 ? (D_800D9484 * 3) / 2 : *(u16*)&D_800D9484;
|
||||
u16 g;
|
||||
ret = sp10[0];
|
||||
g = *(u16*)&D_800D9488;
|
||||
*(u16*)(arg0 + 0x24) = t;
|
||||
*(u16*)(arg0 + 0x1C) = t;
|
||||
*(u16*)(arg0 + 0x26) = g;
|
||||
*(u16*)(arg0 + 0x1E) = g;
|
||||
*(u16*)(arg0 + 0x32) = g;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
typedef struct {
|
||||
s8 pad00[0x18];
|
||||
|
||||
@@ -66,7 +66,16 @@ void func_800CB054(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB05C);
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB0E8);
|
||||
void func_800CB0E8(void *a0) {
|
||||
extern s32 func_80146994(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
s32 v1;
|
||||
|
||||
v1 = func_80146994(0x15, (s32)a0, 0, 0);
|
||||
if (v1 != 0) {
|
||||
*(s32 *)(v1 + 0x30) = *(s16 *)((u8 *)a0 + 0x36);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB138);
|
||||
|
||||
|
||||
@@ -376,7 +376,20 @@ void func_800CBA60(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CBAF4);
|
||||
void func_800CBAF4(void *a0)
|
||||
{
|
||||
s32 s0;
|
||||
extern s32 func_80146E98(s32 a0);
|
||||
extern void func_800CBBF8();
|
||||
|
||||
s0 = *(s32 *)((s32)a0 + 0x10);
|
||||
if (func_80146E98((s32)a0) != 0) {
|
||||
func_800CBBF8();
|
||||
} else if (s0 != 0) {
|
||||
*(u16 *)((s32)s0 + 0x1A) = *(u16 *)((s32)s0 + 0x1A) - 0x400;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_800CBB50(void *a0) {
|
||||
*(u8 *)((s32)a0 + 0x27) = 0x1A;
|
||||
|
||||
@@ -50,7 +50,19 @@ void func_800CAF68(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB010);
|
||||
extern s32 func_8014C088(s32 a0, s32 a1);
|
||||
extern s32 func_80165A20(s32 a0);
|
||||
extern void func_800CB108();
|
||||
|
||||
void func_800CB010(void *arg0) {
|
||||
if (func_8014C088((s32)arg0, 0xB) == 0) {
|
||||
*(u8 *)((s32)arg0 + 0x197) += 1;
|
||||
func_80165A20((s32)arg0);
|
||||
} else if (*(u8 *)((s32)arg0 + 0xBE) != 0) {
|
||||
func_800CB108(arg0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_800CB108(void);
|
||||
void func_800CB078(void) {
|
||||
|
||||
@@ -532,4 +532,53 @@ void func_800CC004(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CC024);
|
||||
extern void func_80015954(s32 a0, s32 a1);
|
||||
extern s32 func_80047948(s32 a0);
|
||||
extern s32 func_8004787C(s32 a0);
|
||||
|
||||
void func_800CC024() {
|
||||
extern u8 D_800CC290[];
|
||||
s32 s2;
|
||||
s32 s3;
|
||||
s32 m;
|
||||
s32 ang;
|
||||
s32 r;
|
||||
s16 d[2];
|
||||
u16 v;
|
||||
u16 t;
|
||||
s32 obj;
|
||||
|
||||
{
|
||||
register s32 a0p __asm__("$4");
|
||||
obj = a0p;
|
||||
}
|
||||
|
||||
s2 = *(s32 *)(obj + 0x4C);
|
||||
s3 = *(s32 *)(obj + 0x20);
|
||||
if (s2 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
func_80015954((s32)D_800CC290, obj + 4);
|
||||
|
||||
v = *(u16 *)(obj + 0x60);
|
||||
m = v & 0x1F;
|
||||
ang = ((m << 8) & 0x7F00) >> 1;
|
||||
t = *(u16 *)(obj + 0xA);
|
||||
__asm__("" :: "r"(m), "r"(ang));
|
||||
*(u16 *)(obj + 0xA) = t - 0x10;
|
||||
*(u16 *)(obj + 0x60) = v + 1;
|
||||
|
||||
if (*(s32 *)(obj + 0x50) == 0) {
|
||||
r = func_80047948(m << 7);
|
||||
} else {
|
||||
r = 0x1000 - func_80047948(m << 7);
|
||||
}
|
||||
d[0] = r / 1024;
|
||||
d[1] = func_8004787C(ang) / 512;
|
||||
|
||||
*(u16 *)(obj + 6) += d[0];
|
||||
*(u16 *)(obj + 0xA) += d[1];
|
||||
*(s32 *)(s3 + 0x18) = *(s32 *)(*(s32 *)(s2 + 0x20) + 0x18);
|
||||
}
|
||||
|
||||
|
||||
@@ -164,7 +164,19 @@ INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB59C);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB620);
|
||||
void func_800CB620(s32 arg0) {
|
||||
s32 v;
|
||||
*(u16 *)(arg0 + 0x10) = *(u16 *)(arg0 + 6);
|
||||
*(u16 *)(arg0 + 0x12) = *(u16 *)(arg0 + 0xA);
|
||||
*(u16 *)(arg0 + 0x14) = *(u16 *)(arg0 + 0xE);
|
||||
v = rand() & 0x1F;
|
||||
v <<= 7;
|
||||
*(u16 *)(arg0 + 0x64) = v;
|
||||
*(u16 *)(arg0 + 0x66) = v;
|
||||
func_800CB684(arg0, 0x200);
|
||||
func_800CB6D4(arg0);
|
||||
}
|
||||
|
||||
|
||||
void func_800CB684(s32 a0, s32 a1) {
|
||||
extern s32 rand(void);
|
||||
|
||||
@@ -30,7 +30,24 @@ void func_800CAE78(u8 *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAEC0);
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAF60);
|
||||
void func_800CAF60(void *a0) {
|
||||
extern void func_80147A84(s32 a0);
|
||||
extern void func_801473EC(s32 *a0);
|
||||
extern void func_80148038(s32 a0, s32 a1);
|
||||
extern void func_80147460(s32 a0);
|
||||
extern s32 func_80161418(void *a0);
|
||||
extern s32 func_80155FD4(s32 a0, s32 a1);
|
||||
|
||||
*(u32 *)((u8 *)a0 + 0x44) |= 2;
|
||||
func_80147A84((s32)a0);
|
||||
func_801473EC((s32 *)a0);
|
||||
func_80148038((s32)a0, 0x20000);
|
||||
func_80147460((s32)a0);
|
||||
if (func_80161418(a0) == 0) {
|
||||
func_80155FD4((s32)a0, *(u8 *)((u8 *)a0 + 0x1AA));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_800CAFD0(void *a0) {
|
||||
extern u8 D_8011F9D0[];
|
||||
|
||||
@@ -291,7 +291,17 @@ void func_800CB5DC(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB6D4);
|
||||
void func_800CB6D4(void *a0)
|
||||
{
|
||||
extern void func_800CB76C(void *arg0);
|
||||
|
||||
if (*(u16 *)*(s32 *)((u8 *)a0 + 0x34) == 0) {
|
||||
*(u16 *)((u8 *)a0 + 2) = *(u16 *)((u8 *)a0 + 2) + 1;
|
||||
} else {
|
||||
func_800CB76C(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_80146C3C(void);
|
||||
|
||||
|
||||
@@ -190,7 +190,24 @@ tail:
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB2A8);
|
||||
extern void func_800CB378(s32 a0);
|
||||
|
||||
void func_800CB2A8(s32 a0) {
|
||||
s32 v1;
|
||||
u16 v0;
|
||||
|
||||
v1 = *(s32 *)(a0 + 0x20);
|
||||
v0 = *(u16 *)(v1 + 0x1A);
|
||||
v0 = v0 + 0x80;
|
||||
*(u16 *)(v1 + 0x1A) = v0;
|
||||
*(u16 *)(v1 + 0x18) = v0;
|
||||
if (func_80146E98((s32)a0) != 0) {
|
||||
func_80146CA0((void *)a0);
|
||||
} else {
|
||||
func_800CB378(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_800CB358(void);
|
||||
|
||||
|
||||
@@ -107,7 +107,22 @@ void func_800CCD04(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCDC4);
|
||||
extern s32 func_80146E98(s32 arg0);
|
||||
extern void func_801599A4(void *arg0);
|
||||
extern void func_80159B3C(void *arg0);
|
||||
extern s32 func_80161208();
|
||||
|
||||
void func_800CCDC4(s32 a0)
|
||||
{
|
||||
*(s32 *)(a0 + 0x44) |= 2;
|
||||
if (func_80146E98(a0) != 0) {
|
||||
func_801599A4((void *)a0);
|
||||
func_80159B3C((void *)a0);
|
||||
} else {
|
||||
func_80161208((void *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8014B5C4(s32 *a0, s32 a1, s32 a2);
|
||||
extern void func_8013C9C4(void *a0);
|
||||
@@ -135,7 +150,24 @@ s32 func_800CCEA0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCEAC);
|
||||
s32 func_800CCEAC(void *a0)
|
||||
{
|
||||
extern void func_801599A4(void *a0);
|
||||
extern void func_80159B3C(void *a0);
|
||||
extern s16 currentLocationId;
|
||||
|
||||
if (currentLocationId == 0x306F) {
|
||||
if (*(s32 *)((s32)a0 + 0x234) != 0) {
|
||||
(*(s32 *)((s32)a0 + 0x234))--;
|
||||
return 0;
|
||||
}
|
||||
func_801599A4(a0);
|
||||
func_80159B3C(a0);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -297,7 +297,11 @@ void func_800CD57C(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD5EC);
|
||||
void func_800CD5EC(void *a0) {
|
||||
func_800CD758((s32)a0);
|
||||
*(u16 *)((s32)a0 + 0x66) = (*(s32 *)((s32)a0 + 0x50) * 1365) & 0xFFF;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -371,7 +375,14 @@ void func_800CD834(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD848);
|
||||
extern s32 func_80012F74(s32, s32, s32, s32);
|
||||
|
||||
void func_800CD848(s32 param_1) {
|
||||
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x18) =
|
||||
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1A) =
|
||||
func_80012F74(*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1A), 0x1000, 4, 1);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80015978(s32 a0, s32 *a1);
|
||||
extern s32 func_80135260(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
@@ -492,7 +503,20 @@ void func_800CDA80(int param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDB4C);
|
||||
extern s32 func_80146E98(s32 a0);
|
||||
extern s32 func_80146C3C(void *a0);
|
||||
void func_800CDB4C(int param_1)
|
||||
{
|
||||
extern unsigned char D_800CEBF4[];
|
||||
unsigned char *base;
|
||||
|
||||
base = (unsigned char *)D_800CEBF4 + *(s32 *)(param_1 + 0x2C) * 0x40;
|
||||
base[2] = base[2] - 8;
|
||||
if (func_80146E98(param_1) != 0) {
|
||||
func_80146C3C((void *)param_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDBA8);
|
||||
|
||||
@@ -560,7 +584,16 @@ L_c3c:
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CE134);
|
||||
void func_800CE134(void) {
|
||||
register s32 a0v __asm__("$4");
|
||||
s32 param_1 = a0v;
|
||||
|
||||
*(s32 *)(param_1 + 0x30) = *(s32 *)(param_1 + 0x1C) * 8;
|
||||
func_80169A4C(a0v, param_1 + 0x38);
|
||||
if (--*(s32 *)(param_1 + 0x1C) == 0)
|
||||
func_80146C3C((void *)param_1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -224,7 +224,21 @@ void func_800CD4D0(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CD58C);
|
||||
void func_800CD58C(void *arg0) {
|
||||
extern u8 D_800CD6E0[];
|
||||
extern void func_80016714(void *a0, s32 a1);
|
||||
extern void func_800CCBC0(void);
|
||||
|
||||
if (*(s32 *)((s32)arg0 + 0x2C) != 0) {
|
||||
func_800CCDE8(arg0, 1, 0x37);
|
||||
func_800CCBC0();
|
||||
*(s32 *)((s32)arg0 + 0x2C) = 0;
|
||||
} else {
|
||||
func_80016714(D_800CD6E0, 0xC4);
|
||||
func_800CCDE8(arg0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_800CD5F8(void *arg0) {
|
||||
extern void func_801465C0(void);
|
||||
|
||||
@@ -9,7 +9,25 @@ void func_801E4C64(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E4CA0);
|
||||
void func_801E4CA0(s32 a0) {
|
||||
extern s32 func_8012C354(s32 arg0, s32 arg1);
|
||||
extern void func_8012A828(s32 arg0, void *arg1);
|
||||
extern s32 func_80143994(s32 arg0, s32 arg1);
|
||||
extern s32 D_80196BBC;
|
||||
extern void D_801E5DB4;
|
||||
extern void D_801E9F0C;
|
||||
s32 *ptr;
|
||||
|
||||
ptr = &D_80196BBC;
|
||||
*(s32 *)ptr = (s32)&D_801E9F0C;
|
||||
|
||||
if (func_8012C354(a0, (s32)ptr - 4) != 0) {
|
||||
func_8012A828(a0, &D_801E5DB4);
|
||||
*(s32 *)(a0 + 0xCC) = func_80143994(a0, 0x4000);
|
||||
*(u16 *)(a0 + 0x2) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_801E4D14(s32 a0) {
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
@@ -203,9 +221,39 @@ void func_801E51C0(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5240);
|
||||
void func_801E5240(s32 a0) {
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 func_801399F0(s32);
|
||||
extern void func_80139914(s32);
|
||||
extern void D_801E5DB4;
|
||||
|
||||
if (*(s32 *)(a0 + 0x94) >= 0x19) {
|
||||
func_8012A828(a0, &D_801E5DB4);
|
||||
}
|
||||
if (func_801399F0(*(s32 *)(a0 + 0xB0)) != 0) {
|
||||
func_80139914(*(s32 *)(a0 + 0xB0));
|
||||
*(s32 *)(a0 + 0x1C) = 0x18;
|
||||
*(u16 *)(a0 + 2) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_801E52BC(s32 a0) {
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_801270C8;
|
||||
extern void D_801E5DB4;
|
||||
|
||||
if (*(s32 *)(a0 + 0x94) >= 0x19) {
|
||||
func_8012A828(a0, &D_801E5DB4);
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) -= 1;
|
||||
if (*(s32 *)(a0 + 0x1C) == -1) {
|
||||
D_801270C8 = 0x11;
|
||||
*(s32 *)(a0 + 0x1C) = 8;
|
||||
*(u16 *)((s32)a0 + 2) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E52BC);
|
||||
|
||||
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5338);
|
||||
|
||||
@@ -427,7 +475,16 @@ void func_801E5894(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E58C0);
|
||||
void func_801E58C0(void *a0) {
|
||||
|
||||
extern void func_801439C0(u8 *a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
if (--*(s32 *)((s32)a0 + 0x1C) == 0) {
|
||||
func_801439C0(*(u8 **)((s32)a0 + 0xCC));
|
||||
func_8012C218(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_801E590C(void *a0) {
|
||||
|
||||
|
||||
@@ -220,7 +220,14 @@ void func_801E7FF0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E802C);
|
||||
extern void func_801E8054(s32 param_1, s16 *param_2);
|
||||
|
||||
void func_801E802C(s32 arg0) {
|
||||
extern s16 D_801274E8;
|
||||
|
||||
func_801E8054(arg0, &D_801274E8);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
|
||||
|
||||
@@ -220,7 +220,13 @@ void func_801E7FF8(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8034);
|
||||
extern void func_801E805C(s32 a0, s16 *a1);
|
||||
|
||||
void func_801E8034(void *a0) {
|
||||
extern s16 D_801274E8;
|
||||
func_801E805C((s32)a0, &D_801274E8);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
|
||||
|
||||
@@ -483,7 +483,22 @@ void func_801F0E6C(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026_jr_801F0748", func_801F0E9C);
|
||||
extern s32 D_801F832C;
|
||||
extern s32 D_801F84AC;
|
||||
|
||||
void func_801F0E9C(void) {
|
||||
typedef struct { s32 next; u8 pad[0xC]; } Node_801F0E9C;
|
||||
Node_801F0E9C *p;
|
||||
s32 i;
|
||||
|
||||
p = (Node_801F0E9C *)&D_801F832C;
|
||||
for (i = 0; i < D_801F84AC - 1; ) {
|
||||
p->next = (s32)(p + 1);
|
||||
i++;
|
||||
p = p + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80029504(void);
|
||||
extern void func_80029124(s32 a0, s32 a1);
|
||||
|
||||
@@ -203,7 +203,22 @@ void func_801A026C(s32 arg0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A04D4);
|
||||
extern s32 func_8016F1AC(void);
|
||||
extern s32 func_80178B18(s32 a0, s32 a1);
|
||||
|
||||
extern s16 D_801A698C;
|
||||
|
||||
void func_801A04D4(s32 arg0) {
|
||||
s32 s0 = arg0;
|
||||
|
||||
if (func_8016F1AC() == 0) {
|
||||
func_80178B18((s32)s0, (s32)&D_801A698C);
|
||||
*(s16 *)(s0 + 2) = 2;
|
||||
*(s16 *)(s0 + 0x34) = 0;
|
||||
*(s32 *)(s0 + 0x1C) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -302,7 +317,22 @@ void func_801A06E8(s32 arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A072C);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 func_8012C588(s32, s32);
|
||||
extern s32 D_801F1FD8;
|
||||
extern u16 D_801F43C0;
|
||||
extern s32 D_801F436C[];
|
||||
|
||||
void func_801A072C(s32 arg0) {
|
||||
*(s16 *)(arg0 + 0x2) = 8;
|
||||
*(s32 *)(arg0 + 0x1C) = 0x80;
|
||||
*(s32 *)(arg0 + 0xE4) = 0x50;
|
||||
*(s32 *)(*(s32 *)(arg0 + 0x20) + 0x24) = (s32)D_801F436C;
|
||||
func_8012A828(arg0, &D_801F1FD8);
|
||||
D_801F43C0 = 0x11;
|
||||
func_8012C588(0x3D0, arg0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A079C);
|
||||
|
||||
@@ -472,7 +502,25 @@ void func_801A0E28(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A10B0);
|
||||
extern void func_801A28AC(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8017F184(void);
|
||||
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
|
||||
extern u8 D_801F0478[];
|
||||
|
||||
void func_801A10B0(void *a0) {
|
||||
func_801A28AC((s32)a0);
|
||||
*(s16 *)((s32)a0 + 0x2) = 0xE;
|
||||
*(u16 *)((s32)a0 + 0x34) = 0;
|
||||
*(s32 *)((s32)a0 + 0xE4) = 0x50;
|
||||
func_8012A828((s32)a0, D_801F0478);
|
||||
func_8012B23C((s32)a0);
|
||||
*(s32 *)((s32)a0 + 0x14) = 0xFFE00000;
|
||||
func_8017F184();
|
||||
func_8012C658(0x34C, 4, (s32)a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1120);
|
||||
|
||||
@@ -600,7 +648,23 @@ void func_801A143C(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A16BC);
|
||||
extern void func_801A28AC(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern u8 D_801F1198[];
|
||||
|
||||
void func_801A16BC(s32 arg0) {
|
||||
s32 s0 = arg0;
|
||||
|
||||
func_801A28AC(s0);
|
||||
*(s16 *)(s0 + 2) = 0x12;
|
||||
*(s32 *)(s0 + 0xE4) = 0x50;
|
||||
func_8012A828(s0, D_801F1198);
|
||||
*(s16 *)(s0 + 0x34) = 0;
|
||||
*(s32 *)(s0 + 0xE0) &= ~0x8;
|
||||
func_8002D4C8(0xB79, 0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1724);
|
||||
|
||||
@@ -747,7 +811,19 @@ s32 func_801A19C8(s32 arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1ACC);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern u8 D_801A64C4[];
|
||||
|
||||
void func_801A1ACC(s32 arg0) {
|
||||
*(s16 *)(arg0 + 0x02) = 0x14;
|
||||
*(u16 *)(arg0 + 0x34) = 0;
|
||||
*(s32 *)(arg0 + 0x1C) = 0;
|
||||
*(s32 *)(arg0 + 0xE4) = 0x20;
|
||||
func_8012A828(arg0, D_801A64C4);
|
||||
*(s32 *)(arg0 + 0xD8) = func_8012C658(0x34C, 1, arg0);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -721,7 +721,24 @@ void func_801A2E90(s32 a0)
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2F34);
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A30C8);
|
||||
extern void func_801A46B8(s32 a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
void func_801A30C8(s32 a0)
|
||||
{
|
||||
s32 s0;
|
||||
u16 v0;
|
||||
|
||||
s0 = a0;
|
||||
v0 = *(u16 *)(s0 + 0x5C);
|
||||
*(u8 *)(s0 + 0xC1) = 0;
|
||||
*(u16 *)(s0 + 0x5E) = 0;
|
||||
*(u16 *)(s0 + 0x10A) = 0;
|
||||
*(u16 *)(s0 + 0x5C) = v0 & 0xDFFF;
|
||||
func_801A46B8(s0);
|
||||
func_8012AD44((s32 *)s0, 8);
|
||||
}
|
||||
|
||||
|
||||
extern void func_801A36F0(void *a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
@@ -832,7 +849,17 @@ void func_801A370C(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3744);
|
||||
extern void func_80132288(s32 *a0, s32 *a1, s32 a2);
|
||||
extern s32 *D_801AFB8C;
|
||||
extern s32 D_801BF01C;
|
||||
extern s32 D_801F8724;
|
||||
|
||||
void func_801A3744(s32 a0) {
|
||||
*(s16 *)(a0 + 0xE6) = 4;
|
||||
func_80132288(&D_801F8724, D_801AFB8C, D_801BF01C);
|
||||
*(s16 *)(a0 + 0x100) = -0x40;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3798);
|
||||
|
||||
@@ -937,9 +964,34 @@ void func_801A3F10(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3FB0);
|
||||
extern void func_801439C0(u8 *a0);
|
||||
|
||||
void func_801A3FB0(void *arg0) {
|
||||
register void *s0 __asm__("$16");
|
||||
register u8 *a0 __asm__("$4");
|
||||
s32 *v0p;
|
||||
|
||||
s0 = arg0;
|
||||
v0p = *(s32 **)((char *)s0 + 0x20);
|
||||
*(s32 *)((char *)v0p + 4) |= 0x80000000;
|
||||
|
||||
a0 = *(u8 **)((char *)s0 + 0xD0);
|
||||
if (a0 != NULL) {
|
||||
func_801439C0(a0);
|
||||
*(u8 **)((char *)s0 + 0xD0) = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80143970(s32 a0);
|
||||
|
||||
void func_801A4008(s32 a0) {
|
||||
*(s32 *)(*(s32 *)(a0 + 0x20) + 4) &= 0x7FFFFFFF;
|
||||
if (*(s32 *)(a0 + 0xD0) == 0) {
|
||||
*(s32 *)(a0 + 0xD0) = func_80143970(a0);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4008);
|
||||
|
||||
extern s32 func_8004787C(s32 a0);
|
||||
|
||||
@@ -2631,7 +2683,19 @@ void func_801A6E78(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6EF4);
|
||||
extern s32 func_8012B8A4(s16 *a0);
|
||||
extern void func_801A5698(u8 *s2, s32 a1);
|
||||
extern void func_801A54AC(s32 a0);
|
||||
|
||||
void func_801A6EF4(void *arg0) {
|
||||
s32 s0;
|
||||
|
||||
s0 = (s32)arg0;
|
||||
*(u16 *)(*(s32 *)((u8 *)s0 + 0x20) + 0x12) = func_8012B8A4((s16 *)s0);
|
||||
func_801A5698((u8 *)s0, *(s16 *)((u8 *)s0 + 0xFE));
|
||||
func_801A54AC(s0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
|
||||
@@ -3130,7 +3130,14 @@ void func_8017EFEC(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017E5B8", func_8017F028);
|
||||
void func_8017F028(s32 param_1) {
|
||||
if ((u32)func_80029504() < 5) {
|
||||
func_80029514(5);
|
||||
}
|
||||
*(s32 *)(param_1 + 0x1C) = 4;
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
|
||||
}
|
||||
|
||||
|
||||
void func_8017F078(void *a0) {
|
||||
if (*(s32 *)((s32)a0 + 0x1C) != 0) {
|
||||
|
||||
@@ -3763,7 +3763,24 @@ void func_801827FC(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8018057C", func_80182850);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8018057C", func_801828D0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern u8 D_801ED404[];
|
||||
|
||||
void func_801828D0(void *arg0) {
|
||||
s32 temp_v0;
|
||||
|
||||
if (*(s16 *)((u8 *)arg0 + 0x98) != 0) {
|
||||
temp_v0 = *(s32 *)((u8 *)arg0 + 0x1C) - 1;
|
||||
*(s32 *)((u8 *)arg0 + 0x1C) = temp_v0;
|
||||
if (temp_v0 == -1) {
|
||||
func_8012A828((s32)arg0, &D_801ED404);
|
||||
}
|
||||
} else {
|
||||
func_8012C218(arg0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3356,7 +3356,23 @@ void func_8017D184(int param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_8017BE9C", func_8017D1D8);
|
||||
extern void func_8014706C(void *a0);
|
||||
extern void func_80154274(s32 *a0, s32 a1);
|
||||
extern void func_80146DE8(s32 *a0, s32 a1, s32 a2, s32 a3);
|
||||
extern void func_80147324(s32 a0);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
extern M2C_UNK D_80182168;
|
||||
|
||||
void func_8017D1D8(void *a0) {
|
||||
func_8014706C(a0);
|
||||
func_80154274((s32 *)a0, (s32)&D_80182168);
|
||||
func_80146DE8((s32 *)a0, 0, 0x20000, 0);
|
||||
*(s32 *)((s32)a0 + 0x200) = 0x40;
|
||||
*(s16 *)((s32)a0 + 0x20C) = 1;
|
||||
func_80147324(0xBCA);
|
||||
func_80171990((u8 *)a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_8017BE9C", func_8017D244);
|
||||
|
||||
@@ -3437,7 +3453,19 @@ void func_8017D460(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_8017BE9C", func_8017D4D0);
|
||||
void func_8017D4D0(void *param_1) {
|
||||
s16 v;
|
||||
|
||||
v = *(s16 *)((s32)param_1 + 0x20E);
|
||||
v = v - 1;
|
||||
*(s16 *)((s32)param_1 + 0x20E) = v;
|
||||
if (v == -1) {
|
||||
func_8002D4C8(0xBE8, 0);
|
||||
*(s16 *)((s32)param_1 + 0x20E) = 0;
|
||||
func_80171990((u8 *)param_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
extern u8 D_80182200[];
|
||||
|
||||
@@ -5646,7 +5646,25 @@ void func_80180F6C(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80180FA8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181040);
|
||||
extern s32 D_80127190;
|
||||
extern void func_801292C8(u8 *a0);
|
||||
|
||||
void func_80181040(void *a0) {
|
||||
u16 v0;
|
||||
s32 v1;
|
||||
|
||||
*(u16 *)((s8 *)a0 + 0xA) = D_80127190 - 0x150;
|
||||
v1 = *(s32 *)((s8 *)a0 + 0x20);
|
||||
v0 = *(u16 *)(v1 + 0x18) + 0x80;
|
||||
*(u16 *)(v1 + 0x18) = v0;
|
||||
*(u16 *)(v1 + 0x1A) = v0;
|
||||
v0 = *(u16 *)((s8 *)a0 + 0x2E) - 1;
|
||||
*(u16 *)((s8 *)a0 + 0x2E) = v0;
|
||||
if ((s16)v0 == -1) {
|
||||
func_801292C8((u8 *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void (*D_8018A248[])(void);
|
||||
|
||||
@@ -5859,7 +5877,20 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181CA
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181D98);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181F5C);
|
||||
void func_80181F5C(void *arg0)
|
||||
{
|
||||
extern void func_80181D98(void *a0);
|
||||
extern void func_8017F268(void *a0);
|
||||
void *s0;
|
||||
|
||||
s0 = arg0;
|
||||
func_80181D98(arg0);
|
||||
if (*(s16 *)((s32)s0 + 0xFC) == 1) {
|
||||
func_8016ED8C((s32)func_8017F268, 0x1000000, *(s16 *)((s32)s0 + 0xFE));
|
||||
*(s16 *)((s32)s0 + 0xFC) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern u16 D_800B99DA;
|
||||
extern s32 D_801270D0;
|
||||
@@ -6114,7 +6145,21 @@ void func_80182AC4(s32 *param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80182B30);
|
||||
extern void func_80182B90(void *a0, s32 a1, s16 a2);
|
||||
|
||||
void func_80182B30(int param_1)
|
||||
{
|
||||
unsigned short t;
|
||||
|
||||
func_80182B90((void *)param_1, *(short *)(param_1 + 0xFC), *(short *)(param_1 + 0xFE));
|
||||
*(unsigned short *)(param_1 + 0xFC) = *(unsigned short *)(param_1 + 0xFC) + 1;
|
||||
t = *(unsigned short *)(param_1 + 0xFE) + 1;
|
||||
*(unsigned short *)(param_1 + 0xFE) = t;
|
||||
if ((short)t >= 0x10) {
|
||||
*(unsigned short *)(param_1 + 0xFE) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -3545,7 +3545,17 @@ void func_8017E290(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017CA80", func_8017E2CC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017CA80", func_8017E334);
|
||||
extern s32 func_8013767C(s32 a0);
|
||||
extern u16 D_80126980;
|
||||
|
||||
void func_8017E334(void *arg0) {
|
||||
if (D_80126980 & 0x8000) {
|
||||
*(s16 *)((s8 *)arg0 + 0x20C) = 0;
|
||||
*(s32 *)((s8 *)arg0 + 0x198) = func_8013767C(*(s32 *)((s8 *)arg0 + 0x198));
|
||||
(*(u8 *)((s8 *)arg0 + 0x214))++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8016F410(s32 a0);
|
||||
extern void func_80154274(s32 *a0, s32 a1);
|
||||
|
||||
@@ -3544,7 +3544,29 @@ void func_801809C4(Obj_801809C4 *obj) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80180CBC);
|
||||
void func_80180CBC(s32 param_1) {
|
||||
extern void func_8012A828(s32, void *);
|
||||
extern s32 D_80186B78;
|
||||
extern s16 D_8018A9D0;
|
||||
extern s16 D_8018A9D2;
|
||||
extern s16 D_801C774C;
|
||||
|
||||
s32 ptr;
|
||||
s32 tmp;
|
||||
|
||||
func_8012A828(param_1, &D_80186B78);
|
||||
*(s16 *)(param_1 + 2) = 2;
|
||||
*(s32 *)(param_1 + 0xDC) = D_8018A9D0;
|
||||
ptr = *(s32 *)(param_1 + 0x20);
|
||||
*(s32 *)(param_1 + 0xE0) = D_8018A9D2;
|
||||
*(s32 *)(param_1 + 0xE4) = 0;
|
||||
tmp = *(volatile s32 *)(param_1 + 0xE4);
|
||||
*(s16 *)(param_1 + 0xFC) = 0x18;
|
||||
*(s16 *)(ptr + 0x10) = (s16)tmp;
|
||||
*(s32 *)(param_1 + 0x1C) = 0x12C;
|
||||
D_801C774C = 1;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -3752,7 +3774,18 @@ void func_801818E0(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80181920);
|
||||
void func_80181920(void* a0)
|
||||
{
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_801A1A10;
|
||||
|
||||
*(s16 *)(a0 + 2) = 3;
|
||||
*(s16 *)(a0 + 0x34) = 0;
|
||||
*(s32 *)(a0 + 0x1C) = 0x3C;
|
||||
func_8012A828(a0, &D_801A1A10);
|
||||
*(s16 *)(a0 + 0xDC) = *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12);
|
||||
}
|
||||
|
||||
|
||||
void func_80181978(void *arg0) {
|
||||
extern void func_80142414(void *a0, s32 a1);
|
||||
@@ -4019,7 +4052,29 @@ void func_80182F90(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80182FEC);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern u8 D_801A21E0[];
|
||||
extern u8 D_801A2848[];
|
||||
|
||||
void func_80182FEC(s32 param_1)
|
||||
{
|
||||
s32 v1;
|
||||
|
||||
*(s16 *)(param_1 + 2) = 0xE;
|
||||
*(u16 *)(param_1 + 0x34) = 0;
|
||||
func_8012A828(param_1, D_801A21E0);
|
||||
v1 = *(s32 *)(param_1 + 0x20);
|
||||
*(u16 *)(param_1 + 0x5C) = 0xAA00;
|
||||
*(u16 *)(param_1 + 0x5E) = 0;
|
||||
*(u16 *)(v1 + 0x14) = 0;
|
||||
*(u16 *)(v1 + 0x10) = 0;
|
||||
func_8012B23C(param_1);
|
||||
func_8012A828(param_1, D_801A2848);
|
||||
*(s32 *)(param_1 + 0x1C) = 0x1E;
|
||||
*(u16 *)(param_1 + 0x34) = 1;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -4591,7 +4646,25 @@ INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80183D3
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80183DA4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80184090);
|
||||
extern void func_8012B21C(void *a0);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern u16 D_80126B62;
|
||||
|
||||
void func_80184090(void *a0) {
|
||||
u16 t;
|
||||
|
||||
t = *(u16 *)((s32)a0 + 0x5C);
|
||||
*(u16 *)((s32)a0 + 0x2) = 2;
|
||||
*(u16 *)((s32)a0 + 0x34) = 0;
|
||||
*(u16 *)((s32)a0 + 0x5C) = t & 0x7FFE;
|
||||
func_8012B21C(a0);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0;
|
||||
*(u16 *)((s32)a0 + 0x24) = *(u16 *)((s32)a0 + 0x6);
|
||||
*(u16 *)((s32)a0 + 0x28) = *(u16 *)((s32)a0 + 0xE);
|
||||
*(u16 *)((s32)a0 + 0x26) = D_80126B62;
|
||||
func_8002D4C8(0x4B4, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018AC10[])(void);
|
||||
@@ -5204,7 +5277,29 @@ void func_80184FC4(int param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_8018500C);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_80182FEC(int param_1);
|
||||
extern void D_801A1AB8;
|
||||
|
||||
void func_8018500C(int param_1)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
iVar1 = func_8012BEE8((s32)param_1);
|
||||
if (iVar1 != 0) {
|
||||
if (*(s16 *)(param_1 + 0x70) == 2) {
|
||||
func_80182FEC(param_1);
|
||||
} else {
|
||||
*(u16 *)(param_1 + 0x5e) = 0;
|
||||
*(u16 *)(param_1 + 0x5c) = 0xAA00;
|
||||
func_8012A828((s32)param_1, &D_801A1AB8);
|
||||
*(u16 *)(param_1 + 2) = 3;
|
||||
*(u16 *)(param_1 + 0xfe) = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
|
||||
@@ -3743,7 +3743,26 @@ void func_8017EA9C(void *param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017EAD4);
|
||||
|
||||
|
||||
void func_8017EAD4(void *param_1)
|
||||
{
|
||||
extern void func_8017EFB4();
|
||||
extern void func_8017EDF8();
|
||||
extern s32 func_8014C168(s32 *a0, s32 a1);
|
||||
extern Blk8 D_801274E8;
|
||||
extern s16 D_801274EC;
|
||||
extern s32 D_80126B58;
|
||||
|
||||
s32 ptr;
|
||||
|
||||
func_8017EFB4(param_1);
|
||||
ptr = func_8014C168(&D_80126B58, 0x3D);
|
||||
*(s16 *)&D_801274E8 = *(u16 *)(ptr + 6);
|
||||
D_801274EC = *(u16 *)(ptr + 0xE);
|
||||
func_8017EDF8(param_1, &D_801274E8);
|
||||
}
|
||||
|
||||
|
||||
void func_8017EB30(void) {
|
||||
}
|
||||
@@ -4060,7 +4079,14 @@ void func_8017F358(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F394);
|
||||
void func_8017F394(void *a0) {
|
||||
extern void func_80171B44(s32 *a0);
|
||||
|
||||
(*(u8 *)((s32)a0 + 0x214))++;
|
||||
*(u16 *)(*(u32 *)((s32)a0 + 0x20) + 0x12) = 0;
|
||||
((void (*)(void))func_80171B44)();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: plumbing
|
||||
|
||||
@@ -3284,7 +3284,21 @@ void func_80182810(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_801828D8);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_80186F14(void *a0);
|
||||
|
||||
void func_801828D8(void *arg0) {
|
||||
s32 s0 = (s32)arg0;
|
||||
u32 v;
|
||||
|
||||
v = *(u32 *)(s0 + 0xE8);
|
||||
*(u32 *)(s0 + 0xE8) = v | 1;
|
||||
func_8012AD44((s32 *)s0, 2);
|
||||
func_80186F14((void *)s0);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -3362,7 +3376,18 @@ void func_80182998(void) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80182A8C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80182D80);
|
||||
extern void func_80186178(s32 *a0);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_80186304();
|
||||
|
||||
void func_80182D80(s32 arg0) {
|
||||
func_80186178((s32 *)arg0);
|
||||
func_8012B23C(arg0);
|
||||
func_8012AD44((s32 *)arg0, 0xC);
|
||||
func_80186304((u8 *)arg0, 0, 2);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8018622C();
|
||||
|
||||
@@ -4109,7 +4134,21 @@ void func_8018415C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80184184);
|
||||
void func_80184184(s32 a0) {
|
||||
s32 a1;
|
||||
|
||||
a1 = *(s32 *)(a0 + 0x20);
|
||||
*(u8 *)(a0 + 0xC1) = 0;
|
||||
*(u16 *)(a0 + 0x5E) = 0;
|
||||
*(s32 *)(a0 + 0x1C) = 0x18;
|
||||
*(u32 *)(a1 + 4) |= 0x80000000;
|
||||
*(u16 *)(a0 + 2) = 4;
|
||||
if (*(s32 *)(a0 + 0xCC) != 0) {
|
||||
*(u16 *)*(s32 *)(a0 + 0xCC) = 0;
|
||||
}
|
||||
func_8002D4C8(0x509, 0);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -4232,7 +4271,22 @@ void func_80184404(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80184480);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_8012B200(u8 *a0);
|
||||
extern s32 D_801963FC;
|
||||
|
||||
void func_80184480(s32 arg0) {
|
||||
s32 s0 = arg0;
|
||||
|
||||
*(s32 *)(s0 + 0x58) = (s32)&D_801963FC;
|
||||
*(u16 *)(s0 + 0x5C) = 0x8C00;
|
||||
func_8012AD44((s32 *)s0, 1);
|
||||
func_8012B200((u8 *)s0);
|
||||
*(s32 *)(s0 + 0xC) = 0;
|
||||
*(s32 *)(s0 + 8) = 0;
|
||||
*(s32 *)(s0 + 4) = 0;
|
||||
}
|
||||
|
||||
|
||||
void func_801844D4(s32 arg0) {
|
||||
s32 self = arg0;
|
||||
@@ -4536,7 +4590,17 @@ void func_80184828(void *a0)
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_801849E4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80184A34);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
void func_80184A34(void *arg0) {
|
||||
*(u16 *)((s32)arg0 + 0xDC) = *(u16 *)((s32)arg0 + 0x6);
|
||||
*(u16 *)((s32)arg0 + 0xDE) = *(u16 *)((s32)arg0 + 0xA);
|
||||
*(u16 *)((s32)arg0 + 0xE0) = *(u16 *)((s32)arg0 + 0xE);
|
||||
func_8012AD44((s32 *)arg0, 5);
|
||||
*(u16 *)((s32)arg0 + 0x34) = 4;
|
||||
*(s32 *)((s32)arg0 + 0x1C) = 5;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -6004,7 +6068,18 @@ void func_80186F60(s32 a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80186F9C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80187070);
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
|
||||
void func_80187070(s32 arg0) {
|
||||
s32 self = arg0;
|
||||
s32 v1;
|
||||
|
||||
v1 = func_8012C658(0x56, 5, self);
|
||||
if (v1 != 0) {
|
||||
*(s32 *)(v1 + 0xCC) = *(s32 *)(self + 0xCC);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -6406,7 +6481,22 @@ void func_801877FC(s32 s0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_801878C0);
|
||||
void func_801878C0(void *arg0) {
|
||||
s32 s0 = (s32)arg0;
|
||||
|
||||
func_80182810((void *)s0);
|
||||
if (*(u32 *)(s0 + 0xE8) & 0x2000) {
|
||||
*(u32 *)(s0 + 0x1C) = 0x18;
|
||||
} else {
|
||||
*(u32 *)(s0 + 0x1C) = 0x30;
|
||||
}
|
||||
func_801828D8((void *)s0);
|
||||
*(u32 *)(s0 + 0xE8) = *(u32 *)(s0 + 0xE8) & 0xFFFFFF7F;
|
||||
}
|
||||
|
||||
extern void func_80182810();
|
||||
extern void func_801828D8();
|
||||
|
||||
|
||||
void func_8018791C(void *a0) {
|
||||
s32 s0 = (s32)a0;
|
||||
@@ -6446,7 +6536,17 @@ extern void func_80181900(void*);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80187A38);
|
||||
extern void func_80186F58();
|
||||
extern void func_80186304();
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
void func_80187A38(void *arg0) {
|
||||
*(u32 *)((s32)arg0 + 0xE8) |= 1;
|
||||
func_80186F58(arg0);
|
||||
func_80186304((u8 *)arg0, 0xE, 2);
|
||||
func_8012AD44((s32 *)arg0, 4);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -6733,7 +6833,19 @@ void func_8018810C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80188150);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern u16 D_801E4398;
|
||||
|
||||
void func_80188150(void *a0) {
|
||||
s32 s0 = (s32)a0;
|
||||
|
||||
func_8012BEE8(s0);
|
||||
if (*(s32 *)(s0 + 0x1C) == 1) {
|
||||
*(u16 *)(s0 + 0x76) = 0x1E;
|
||||
D_801E4398 = 0x1E;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_801830F4(s32, s32);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
@@ -10351,7 +10463,20 @@ void func_8018D7F0(void *a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_8018D8A8);
|
||||
extern s32 D_801270C8;
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8018EA04(s32 a0);
|
||||
|
||||
void func_8018D8A8(void *a0)
|
||||
{
|
||||
if (D_801270C8 == 0x15) {
|
||||
func_8018EA04(2);
|
||||
func_8002D4C8(5, 0);
|
||||
*(u32 *)((s32)a0 + 0x1C) = 0xE;
|
||||
*(u16 *)((s32)a0 + 2) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_8018D904(void *a0) {
|
||||
*(s16 *)((s32)a0 + 0x2) += 1;
|
||||
|
||||
@@ -7940,7 +7940,18 @@ extern void func_8018452C(void);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80183630);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80183954);
|
||||
extern void func_8012AD80(s32 a0);
|
||||
|
||||
s32 func_80183954(s32 a0) {
|
||||
u8 *s0;
|
||||
s16 val;
|
||||
|
||||
func_8012AD80(a0);
|
||||
s0 = (u8 *)a0;
|
||||
val = *(s16 *)(s0 + 0xA);
|
||||
return ((val - 0xB0) < -0xA01) ? 0 : 2;
|
||||
}
|
||||
|
||||
|
||||
extern s32 rand(void);
|
||||
extern u8 D_801202A0[];
|
||||
@@ -8420,7 +8431,18 @@ void func_80184964(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801849D4);
|
||||
extern s32 func_80029178(s32 arg);
|
||||
extern void func_80029124(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_801F45D4;
|
||||
|
||||
void func_801849D4(s32 param_1) {
|
||||
if ((func_80029178(0x125) & 0xFF) != 0) {
|
||||
func_8012A828(param_1, &D_801F45D4);
|
||||
func_80029124(0x125, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
s32 func_80184A28(s32 *a0) {
|
||||
return *(s16 *)((char *)a0 + 0xFE) == 0;
|
||||
@@ -10066,7 +10088,19 @@ void func_8018707C(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801870D0);
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_801870D0(s32 param_1) {
|
||||
s32 s0;
|
||||
|
||||
s0 = param_1;
|
||||
func_8012AD80(s0);
|
||||
if (*(s16 *)(s0 + 0x98) == 0) {
|
||||
func_8012C218((void *)s0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -6369,7 +6369,29 @@ void func_80184474(s32 param_1)
|
||||
void func_80184510(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_80184518);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801CC344;
|
||||
extern u8 D_801D0BB4;
|
||||
|
||||
void func_80184518(void *arg0)
|
||||
{
|
||||
s32 s0;
|
||||
s32 v0;
|
||||
|
||||
s0 = (s32)arg0;
|
||||
func_8012B23C(s0);
|
||||
func_8012B14C(s0, (s32)&D_801CC344);
|
||||
func_8012A828(s0, (void *)&D_801D0BB4);
|
||||
v0 = *(s32 *)(s0 + 0x20);
|
||||
*(s16 *)(v0 + 0x10) = -0x400;
|
||||
*(s16 *)(s0 + 2) = 3;
|
||||
*(s32 *)(s0 + 0x1C) = 0x28;
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
@@ -8414,7 +8436,26 @@ void func_801878A8(s32 param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_80187940);
|
||||
#include "common.h"
|
||||
|
||||
void func_80187940(s32 arg0) {
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_801E0F44;
|
||||
|
||||
s32 p1;
|
||||
s32 p2;
|
||||
|
||||
func_8012A828(arg0, (void *)&D_801E0F44);
|
||||
*(s16 *)(arg0 + 2) = 0x10;
|
||||
p1 = *(s32 *)(arg0 + 0x20);
|
||||
*(s32 *)(p1 + 4) |= 0x80000000;
|
||||
p2 = *(s32 *)(arg0 + 0x20);
|
||||
*(s16 *)(arg0 + 0x34) = 0;
|
||||
*(s16 *)(p2 + 0x1C) = 0x1000;
|
||||
*(s16 *)(p2 + 0x1A) = 0x1000;
|
||||
*(s16 *)(p2 + 0x18) = 0x1000;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -3781,9 +3781,29 @@ extern void func_80029514(s32 arg);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_8017C294", func_8017EEF8);
|
||||
extern void func_80029124(s32 a0, s32 a1);
|
||||
extern void func_80029514(s32 a0);
|
||||
|
||||
void func_8017EEF8(void) {
|
||||
func_80029514(0x118);
|
||||
func_80029124(0xF9, 1);
|
||||
func_80029124(0xFA, 0);
|
||||
func_80029124(0x109, 1);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80029514(s32 a0);
|
||||
extern void func_80029124(s32 a0, s32 a1);
|
||||
extern s32 func_801788B8(s32 a0, s32 a1);
|
||||
extern s32 func_8017F1B4(s32 a0);
|
||||
|
||||
void func_8017EF3C(s32 arg0) {
|
||||
func_80029514(0x118);
|
||||
func_80029124(0xF9, 0);
|
||||
func_80029124(0xFA, 1);
|
||||
func_801788B8(arg0, (s32)func_8017F1B4);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_8017C294", func_8017EF3C);
|
||||
|
||||
extern void func_800D0F4C(s32 arg);
|
||||
void func_8017EF90(void) {
|
||||
|
||||
@@ -5292,7 +5292,14 @@ void func_80181AD0(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8017D898", func_80181B48);
|
||||
void func_80181B48(int param_1)
|
||||
{
|
||||
void **fp = *(void ***)(*(int *)(param_1 + 0x64) + 0xDC);
|
||||
|
||||
if (fp != 0 && *fp != 0)
|
||||
(*(void (*)(void))*fp)();
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8017D898", func_80181B90);
|
||||
|
||||
|
||||
@@ -3772,7 +3772,27 @@ void func_801865A4(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_80184BD8", func_80186668);
|
||||
void func_80186668(s32 a0)
|
||||
{
|
||||
s32 sp18;
|
||||
s32 ret;
|
||||
|
||||
sp18 = *(s32 *)(a0 + 0x20);
|
||||
ret = func_80047948((*(s32 *)(a0 + 0x1C) << 9) >> 4);
|
||||
*(s16 *)(sp18 + 0x18) = *(s16 *)(sp18 + 0x1A) = *(s16 *)(sp18 + 0x1C) = ret * 2;
|
||||
if (*(s16 *)(a0 + 0x100) <= *(s16 *)(sp18 + 0x18)) {
|
||||
*(s16 *)(sp18 + 0x18) = *(s16 *)(sp18 + 0x1A) = *(s16 *)(sp18 + 0x1C) = *(s16 *)(a0 + 0x100);
|
||||
*(u16 *)(a0 + 2) = 1;
|
||||
*(u16 *)(a0 + 0x5C) = *(u16 *)(*(s32 *)(a0 + 0x78) + 2);
|
||||
*(u16 *)(a0 + 0x76) = *(u16 *)*(s32 *)(a0 + 0x78);
|
||||
*(s32 *)(a0 + 0xE0) &= ~1;
|
||||
if (!(*(u16 *)(a0 + 0x70) & 1)) {
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) &= ~0x10;
|
||||
}
|
||||
}
|
||||
--*(s32 *)(a0 + 0x1C);
|
||||
}
|
||||
|
||||
|
||||
typedef struct { u8 b[8]; } Blk8_80186740;
|
||||
typedef struct {
|
||||
@@ -4478,7 +4498,38 @@ void func_801875F0(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_80184BD8", func_801876C4);
|
||||
extern s32 D_801A9A78[];
|
||||
extern s32 D_801A9A7C[];
|
||||
extern s32 D_801A9A80[];
|
||||
extern s32 D_801A9A84[];
|
||||
extern s32 D_801A9A88[];
|
||||
extern s32 func_8012C51C(void *a0, s32 a1);
|
||||
|
||||
void func_801876C4(void *a0, s32 a1) {
|
||||
s32 sp10[5];
|
||||
s32 obj;
|
||||
register s32 w __asm__("$7");
|
||||
s32 x, y, z;
|
||||
register s32 t __asm__("$3");
|
||||
|
||||
obj = (s32)a0;
|
||||
x = D_801A9A78[a1 * 5];
|
||||
y = D_801A9A7C[a1 * 5];
|
||||
z = D_801A9A80[a1 * 5];
|
||||
w = D_801A9A84[a1 * 5];
|
||||
sp10[0] = x;
|
||||
sp10[1] = y;
|
||||
sp10[2] = z;
|
||||
sp10[3] = w;
|
||||
t = D_801A9A88[a1 * 5];
|
||||
sp10[4] = t;
|
||||
__asm__ __volatile__("" ::: "memory");
|
||||
((u16 *)sp10)[0] = ((u16 *)sp10)[0] + *(u16 *)(obj + 6);
|
||||
((u16 *)sp10)[1] = ((u16 *)sp10)[1] + *(u16 *)(obj + 0xA);
|
||||
((u16 *)sp10)[2] = ((u16 *)sp10)[2] + *(u16 *)(obj + 0xE);
|
||||
func_8012C51C(sp10, obj);
|
||||
}
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 a; /* 0x00 -> D_801D0120 */
|
||||
|
||||
@@ -3419,7 +3419,13 @@ DEFINE_func_80172760() /* dedup: shared engine-core @0x80172760 (src/shared) */
|
||||
DEFINE_func_80172780() /* dedup: shared engine-core @0x80172780 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801727D0);
|
||||
extern int (*D_8018718C[])(void);
|
||||
|
||||
s32 func_801727D0(void *a0)
|
||||
{
|
||||
D_8018718C[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8017280C() /* dedup: shared engine-core @0x8017280c (src/shared) */
|
||||
|
||||
@@ -3433,7 +3439,13 @@ void func_8017288C(void) {
|
||||
DEFINE_func_80172894() /* dedup: shared engine-core @0x80172894 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801728E4);
|
||||
extern void (*D_80187198[])(void);
|
||||
|
||||
s32 func_801728E4(void *a0)
|
||||
{
|
||||
D_80187198[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80172920() /* dedup: shared engine-core @0x80172920 (src/shared) */
|
||||
|
||||
@@ -3447,7 +3459,13 @@ void func_801729A8(void) {
|
||||
DEFINE_func_801729B0() /* dedup: shared engine-core @0x801729b0 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801729F0);
|
||||
extern void (*D_801871A4[])(void);
|
||||
|
||||
s32 func_801729F0(void *a0)
|
||||
{
|
||||
D_801871A4[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80172A2C() /* dedup: shared engine-core @0x80172a2c (src/shared) */
|
||||
|
||||
@@ -3464,7 +3482,13 @@ void func_80172B0C(void) {
|
||||
DEFINE_func_80172B14() /* dedup: shared engine-core @0x80172b14 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_80172B44);
|
||||
s32 func_80172B44(void *a0)
|
||||
{
|
||||
|
||||
extern void (*D_801871B4[])(void);
|
||||
D_801871B4[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80172B80() /* dedup: shared engine-core @0x80172b80 (src/shared) */
|
||||
|
||||
@@ -3499,7 +3523,12 @@ void func_80172D60(void) {
|
||||
DEFINE_func_80172D68() /* dedup: shared engine-core @0x80172d68 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_80172DAC);
|
||||
s32 func_80172DAC(void *a0)
|
||||
{
|
||||
extern void (*D_801871CC[])(void);
|
||||
D_801871CC[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80172DE8() /* dedup: shared engine-core @0x80172de8 (src/shared) */
|
||||
|
||||
@@ -3534,7 +3563,12 @@ DEFINE_func_80172FEC() /* dedup: shared engine-core @0x80172fec (src/shared) */
|
||||
DEFINE_func_8017303C() /* dedup: shared engine-core @0x8017303c (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_80173078);
|
||||
s32 func_80173078(void *a0)
|
||||
{
|
||||
extern void (*D_801871D8[])(void);
|
||||
D_801871D8[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_801730B4() /* dedup: shared engine-core @0x801730b4 (src/shared) */
|
||||
|
||||
@@ -3548,7 +3582,13 @@ void func_8017316C(void) {
|
||||
DEFINE_func_80173174() /* dedup: shared engine-core @0x80173174 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_8017319C);
|
||||
extern void (*D_801871E4[])(void);
|
||||
|
||||
s32 func_8017319C(void *a0)
|
||||
{
|
||||
D_801871E4[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_801731D8() /* dedup: shared engine-core @0x801731d8 (src/shared) */
|
||||
|
||||
@@ -3665,7 +3705,12 @@ void func_801736A8(void) {
|
||||
DEFINE_func_801736B0() /* dedup: shared engine-core @0x801736b0 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801736FC);
|
||||
s32 func_801736FC(void *a0) {
|
||||
|
||||
extern void (*D_80187204[])(void);
|
||||
D_80187204[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80173738() /* dedup: shared engine-core @0x80173738 (src/shared) */
|
||||
|
||||
@@ -3693,7 +3738,13 @@ void func_801738D4(void) {
|
||||
DEFINE_func_801738DC() /* dedup: shared engine-core @0x801738dc (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_8017390C);
|
||||
s32 func_8017390C(void *a0)
|
||||
{
|
||||
|
||||
extern void (*D_8018721C[])(void);
|
||||
D_8018721C[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_80173948() /* dedup: shared engine-core @0x80173948 (src/shared) */
|
||||
|
||||
@@ -3759,7 +3810,13 @@ void func_80174274(void) {
|
||||
DEFINE_func_8017427C() /* dedup: shared engine-core @0x8017427c (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801742A4);
|
||||
extern void (*D_8018724C[])(void);
|
||||
|
||||
s32 func_801742A4(void *a0)
|
||||
{
|
||||
D_8018724C[*(u8 *)((s32)a0 + 0x214)]();
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_801742E0() /* dedup: shared engine-core @0x801742e0 (src/shared) */
|
||||
|
||||
|
||||
@@ -5981,7 +5981,13 @@ void func_8017EB88(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_8017AE2C", func_8017EBC4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_8017AE2C", func_8017ED68);
|
||||
extern s32 func_8017EEC4(s32 arg0, void *arg1);
|
||||
extern s32 D_80187850;
|
||||
|
||||
void func_8017ED68(s32 arg0) {
|
||||
func_8017EEC4(arg0, &D_80187850);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s16 D_80126940;
|
||||
|
||||
@@ -7792,7 +7792,59 @@ s32 a0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_8017BEBC", func_80183014);
|
||||
extern s32 func_8012BC60(void *a0, void *a1);
|
||||
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
|
||||
extern void func_8012B0B4(unsigned int *p, int a1, int a2);
|
||||
extern s32 func_8012CEB0(void *a0, void *a1, s32 a2);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
|
||||
void func_80183014(s32 a0) {
|
||||
extern u8 D_801202A0[];
|
||||
u8 *p;
|
||||
s16 *self4;
|
||||
unsigned int *sc;
|
||||
s32 i;
|
||||
s32 ang;
|
||||
s16 v10[4]; /* sp+0x10 */
|
||||
s16 v18[4]; /* sp+0x18 */
|
||||
s32 sp20[2]; /* sp+0x20 — func_8012B0B4 output */
|
||||
|
||||
i = 0;
|
||||
p = D_801202A0;
|
||||
self4 = (s16 *)(a0 + 4);
|
||||
sc = (unsigned int *)sp20;
|
||||
do {
|
||||
switch (*(u16 *)p) {
|
||||
case 0x1DC:
|
||||
if ((u8 *)a0 != p) {
|
||||
if (func_8012BC60((void *)self4, (void *)(p + 4)) < 0x900) {
|
||||
ang = func_8012B6D4(self4, (s16 *)(p + 4));
|
||||
func_8012B0B4(sc, ang, 0x31);
|
||||
v18[0] = *(u16 *)(p + 6);
|
||||
v18[1] = *(u16 *)(p + 0xA);
|
||||
v18[2] = *(u16 *)(p + 0xE);
|
||||
v18[0] += sp20[0];
|
||||
v18[2] += sp20[0] >> 16;
|
||||
v10[0] = *(u16 *)(a0 + 0x3A);
|
||||
v10[1] = *(u16 *)(a0 + 0x3E);
|
||||
v10[2] = *(u16 *)(a0 + 0x42);
|
||||
if ((func_8012CEB0(v10, v18, 0) & 0x2000) != 0) {
|
||||
*(u16 *)(a0 + 6) = v18[0];
|
||||
*(u16 *)(a0 + 0xA) = v18[1];
|
||||
*(u16 *)(a0 + 0xE) = v18[2];
|
||||
return;
|
||||
}
|
||||
func_8012ADE4((u8 *)a0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
p += 0x10C;
|
||||
} while (i < 0x60);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
typedef struct { short a, b, c; } SV3_80181D44_8018317C; /* == the TU's own `SV3` (engine_types.h:612); renamed only because
|
||||
|
||||
@@ -3056,5 +3056,18 @@ void func_80184DDC(void *a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184DDC", func_80184F18);
|
||||
void func_80184F18(s32 *arg0)
|
||||
{
|
||||
extern void func_8012E88C(s32 a0);
|
||||
extern void func_8012A828(s32 a0, s32 a1);
|
||||
extern void func_80187750(s32 a0);
|
||||
extern short D_801C36E8;
|
||||
|
||||
*(s16 *)((s32)arg0 + 2) = 9;
|
||||
*(s16 *)((s32)arg0 + 0x34) = 0;
|
||||
func_8012E88C((s32)arg0);
|
||||
func_8012A828((s32)arg0, (s32)&D_801C36E8);
|
||||
func_80187750((s32)arg0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5088,6 +5088,21 @@ void func_80181B14(void) {
|
||||
void func_80181B1C(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_80181B24);
|
||||
void func_80181B24(s32 a0)
|
||||
{
|
||||
extern s32 D_801A4304;
|
||||
extern s32 func_80183550(s32 a0);
|
||||
extern void func_80183480(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_8012BD14(s32 a0);
|
||||
extern void func_8014CB68(void);
|
||||
|
||||
if (func_80183550(a0) != 0) {
|
||||
func_80183480(a0, (s32)&D_801A4304, 1, 0x70);
|
||||
}
|
||||
if (func_8012BD14(*(s32 *)(a0 + 0x64)) < 0x4001) {
|
||||
func_8014CB68();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_80181B88);
|
||||
|
||||
@@ -6517,7 +6517,13 @@ void func_8017F510(s32 arg0, s32 arg1, s32 arg2)
|
||||
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_80180CAC);
|
||||
void func_80180CAC(void) {
|
||||
func_80029124(0x142, 0);
|
||||
if ((func_800291B4(0xCC) & 0xFF) == 1) {
|
||||
func_800291A0(0xCC, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_80029124(s32 arg0, s32 arg1);
|
||||
void func_80180CF0(void) {
|
||||
@@ -13005,7 +13011,20 @@ void func_8018A2F8(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A384);
|
||||
void func_8018A384(s16 *param_1)
|
||||
{
|
||||
s32 s0 = (s32)param_1;
|
||||
u16 v;
|
||||
|
||||
v = *(u16 *)(s0 + 0xFE);
|
||||
v = v - 1;
|
||||
*(u16 *)(s0 + 0xFE) = v;
|
||||
if ((s32)(v << 16) <= 0) {
|
||||
func_80143B6C(param_1, 0);
|
||||
*(u16 *)(s0 + 0xFE) = 8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -13075,11 +13094,47 @@ void func_8018A4B4(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A538);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern u8 D_801E0084;
|
||||
extern s32 D_801D7E84;
|
||||
extern s32 D_801F7740;
|
||||
|
||||
void func_8018A538(s32 param_1) {
|
||||
s32 v1;
|
||||
|
||||
*(u16 *)(param_1 + 2) = 4;
|
||||
*(u16 *)(param_1 + 0x34) = 0;
|
||||
func_8012A828(param_1, &D_801E0084);
|
||||
v1 = D_801D7E84;
|
||||
*(s32 *)(param_1 + 0x1C) = 0x28;
|
||||
D_801F7740 = v1;
|
||||
func_8002D4C8(0x660, 0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A598);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A5C4);
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_80131E00();
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
|
||||
s32 func_8018A5C4_impl(s32 a0) __asm__("func_8018A5C4");
|
||||
s32 func_8018A5C4_impl(s32 a0)
|
||||
{
|
||||
s32 flags;
|
||||
|
||||
flags = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if ((flags & 0x1000) != 0) {
|
||||
((void (*)(s32, s32))func_80131E00)(a0, 0x12);
|
||||
return 0;
|
||||
}
|
||||
if (flags != 0x2000) {
|
||||
func_8012ADE4((u8 *)a0);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -5645,7 +5645,20 @@ void func_8017FA84(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_8017AE2C", func_8017FB40);
|
||||
void func_8017FB40(s32 param_1)
|
||||
{
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801BEC20[];
|
||||
|
||||
*(u16 *)(param_1 + 0x5C) = 0;
|
||||
*(s32 *)(param_1 + 0x1C) = 0x10;
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = 0;
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x2C) |= 0x10;
|
||||
*(s16 *)(param_1 + 0x34) = 0;
|
||||
*(s16 *)(param_1 + 0xA) = *(s16 *)(param_1 + 0xA) - 0x3C;
|
||||
func_8012A828(param_1, (void *)D_801BEC20);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_8017AE2C", func_8017FBA0);
|
||||
|
||||
|
||||
@@ -3450,7 +3450,16 @@ void func_80182A18(int param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_80181F94", func_80182A80);
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
|
||||
void func_80182A80(s32 param_1) {
|
||||
s32 ret;
|
||||
ret = func_8012BCCC(param_1);
|
||||
if (ret < 0x24001) {
|
||||
func_80182468(param_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012BEE8(s32 arg);
|
||||
extern s32 func_801824A8();
|
||||
|
||||
@@ -3421,7 +3421,20 @@ void func_8017DCA0(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DCC8);
|
||||
void func_8017DCC8(s32 *a0)
|
||||
{
|
||||
s32 v0;
|
||||
|
||||
v0 = func_800291B4(0xCE) & 0xFF;
|
||||
if (v0 == 9) {
|
||||
func_80171A04(a0);
|
||||
func_800291A0(0xCE, 0);
|
||||
} else {
|
||||
func_80171A10(a0);
|
||||
func_800291A0(0xCE, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8016EE40(s32 a0, s32 a1, s32 a2);
|
||||
void func_8017DD30(void) {
|
||||
@@ -4348,11 +4361,47 @@ void func_8017F584(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F64C);
|
||||
extern void func_8017EB88();
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
extern void func_80019064(void *a0);
|
||||
extern s32 D_80062BE8;
|
||||
|
||||
void func_8017F64C(s32 a0)
|
||||
{
|
||||
func_8017EB88(a0);
|
||||
if (func_8012BEE8(a0) != 0) {
|
||||
*(u16 *)(a0 + 0x104) = 0;
|
||||
*(s32 *)(a0 + 0x1C) = 0x18;
|
||||
func_8012AD50((void *)a0);
|
||||
}
|
||||
if ((*(u32 *)(a0 + 0x1C) & 7) == 0) {
|
||||
func_80019064(&D_80062BE8);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F6B8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F718);
|
||||
extern void func_8017EB88(s32 arg0);
|
||||
extern void func_801437D8(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s8 D_801852D0[];
|
||||
extern u8 D_80185300[];
|
||||
extern void func_80016450(s32 a0, s32 a1);
|
||||
|
||||
void func_8017F718(s32 arg0) {
|
||||
s32 temp;
|
||||
|
||||
func_8017EB88(arg0);
|
||||
func_801437D8(arg0 + 0x102, (s32)D_801852D0, (s32)D_80185300, 0);
|
||||
temp = *(u16 *)(arg0 + 0xFE) + 3;
|
||||
*(u16 *)(arg0 + 0xFE) = temp;
|
||||
if ((s16)temp >= 0x100) {
|
||||
*(u16 *)(arg0 + 0xFE) = 0xFF;
|
||||
}
|
||||
func_80016450(*(u8 *)(arg0 + 0xFE), 0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
|
||||
@@ -4234,7 +4234,27 @@ void func_8017DBE4(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_jr_8017AE2C", func_8017DCB4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_jr_8017AE2C", func_8017DE18);
|
||||
extern u16 D_800B99DC;
|
||||
extern u8 D_8017E8A4[];
|
||||
extern void func_8013C9C4(void *a0);
|
||||
extern void func_8017DCB4(s32 a0);
|
||||
extern void func_800D1724(s32 a0);
|
||||
extern u8 D_80181B58[];
|
||||
|
||||
void func_8017DE18(void *a0) {
|
||||
u16 val;
|
||||
|
||||
val = *(u16 *)((char *)a0 + 0xE6);
|
||||
val--;
|
||||
*(u16 *)((char *)a0 + 0xE6) = val;
|
||||
if ((val << 0x10) == 0) {
|
||||
*(u16 *)((char *)a0 + 0xE6) = (D_800B99DC & 7) + 1;
|
||||
func_8013C9C4(&D_8017E8A4);
|
||||
}
|
||||
func_8017DCB4((s32)a0);
|
||||
func_800D1724((s32)&D_80181B58);
|
||||
}
|
||||
|
||||
|
||||
void func_8017DE90(s32 *a0) {
|
||||
*(u16 *)((s32)a0 + 6) = *(u16 *)(*(s32 *)((s32)a0 + 100) + 0xDE);
|
||||
|
||||
@@ -3857,7 +3857,17 @@ void func_8017EBA0(s32 a0, s32 a1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_8017C730", func_8017ECD0);
|
||||
extern void func_80139A68(s32 a0, u16 a1);
|
||||
extern s16 D_80184E7C[];
|
||||
extern s32 D_80184E84[];
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
void func_8017ECD0(s32 a0) {
|
||||
func_80139A68(D_80184E7C[*(s16 *)(a0 + 0x70)], 0);
|
||||
func_80178B18(a0, D_80184E84[*(s16 *)(a0 + 0x70)]);
|
||||
func_8012AD44((s32 *)a0, 2);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
void func_8017ED40(s32 arg0) {
|
||||
|
||||
@@ -4681,7 +4681,24 @@ void func_8017E834(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017E8E4);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801933C0[];
|
||||
|
||||
void func_8017E8E4(s32 a0) {
|
||||
s32 s0;
|
||||
s32 v1;
|
||||
|
||||
s0 = a0;
|
||||
*(u16 *)(s0 + 6) = *(u16 *)(s0 + 6) - 3;
|
||||
v1 = *(s32 *)(s0 + 0x1C) - 1;
|
||||
*(s32 *)(s0 + 0x1C) = v1;
|
||||
*(u16 *)(s0 + 0xE) = *(u16 *)(s0 + 0xE) + 1;
|
||||
if (v1 == 0) {
|
||||
func_8012A828(a0, D_801933C0);
|
||||
*(s16 *)(s0 + 2) = 5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017E948);
|
||||
|
||||
@@ -4784,7 +4801,16 @@ void func_8017EB2C(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017EC30);
|
||||
extern s32 func_8012BD14(s32 a0);
|
||||
|
||||
void func_8017EC30(s32 a0)
|
||||
{
|
||||
if ((func_8016F1AC() == 0) && (func_8012BD14(a0) < 0x401)) {
|
||||
func_8017D884();
|
||||
*(s16 *)(a0 + 2) = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_800291B4(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
@@ -4816,7 +4842,22 @@ extern void func_8012CAE4(void *a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017ED30);
|
||||
extern s32 func_8012CBCC(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_8017ED30(s32 a0)
|
||||
{
|
||||
s32 s0;
|
||||
|
||||
s0 = a0;
|
||||
func_8012CBCC(a0);
|
||||
if (((u16)(*(u16 *)(s0 + 6) + 0x300) >= 0x601U) ||
|
||||
(*(s16 *)(s0 + 0xA) < -0x400) ||
|
||||
((u16)(*(u16 *)(s0 + 0xE) + 0x100) >= 0x701U)) {
|
||||
func_8012C218((void *)s0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
|
||||
@@ -6603,7 +6603,26 @@ void func_80186C98(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80186D0C);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012CBCC(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
extern u8 D_801AE46C[];
|
||||
|
||||
void func_80186D0C(void *a0)
|
||||
{
|
||||
if (((s32 (*)(s32))func_8012CBCC)(a0) & 0x8000) {
|
||||
*(s16 *)((s32)a0 + 0x2) = 0x11;
|
||||
func_8012A828(a0, D_801AE46C);
|
||||
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = *(u16 *)((s32)a0 + 0xFC);
|
||||
func_8002D4C8(0x640, 0);
|
||||
}
|
||||
|
||||
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) += 0x48;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -7359,7 +7378,17 @@ void func_80187C28(void *a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80187CF4);
|
||||
extern void func_80183264(s32 a0);
|
||||
|
||||
void func_80187CF4(void *a0) {
|
||||
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x1C) += 0xA00;
|
||||
if (*(s16 *)((s32)a0 + 0xFC) == 4) {
|
||||
*(u16 *)((s32)a0 + 0x2) = 2;
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0x79;
|
||||
}
|
||||
func_80183264((s32)a0);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
@@ -8037,7 +8066,19 @@ void func_80188F4C(void *a0)
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80188FF0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80189094);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_80189094(s32 param_1) {
|
||||
s32 v0;
|
||||
|
||||
*(u32 *)(*(s32 *)(param_1 + 0x20) + 4) ^= 0x80000000;
|
||||
v0 = *(s32 *)(param_1 + 0x1C) - 1;
|
||||
*(s32 *)(param_1 + 0x1C) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012C218((void *)param_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012CBCC(s32 a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
@@ -3734,7 +3734,29 @@ void func_8017FC50(void *param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FCE0);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_8012E504(s32 a0, s32 a1);
|
||||
extern s32 func_80029178(s32 arg);
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern s32 func_80143970(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
|
||||
extern u8 D_8018B720[];
|
||||
extern u8 D_80187B3C[];
|
||||
|
||||
void func_8017FCE0(void *a0) {
|
||||
if ((func_8012E504((s32)a0, 0x95) != 0) || ((func_80029178(0x9D) & 0xFF) != 0)) {
|
||||
func_8012CAE4(a0);
|
||||
} else if (func_8012C354((s32)a0, (s32)D_8018B720) != 0) {
|
||||
func_80143970((s32)a0);
|
||||
func_8012A828((s32)a0, D_80187B3C);
|
||||
*(s16 *)((s32)a0 + 2) = 1;
|
||||
*(s16 *)((s32)a0 + 0x34) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FD74);
|
||||
|
||||
|
||||
@@ -4664,7 +4664,21 @@ void func_8017EBF8(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8017EC34);
|
||||
extern void func_8014BF18(s32 a0);
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
|
||||
void func_8017EC34(s32 a0) {
|
||||
s32 s0 = a0;
|
||||
|
||||
func_8014BF18(4);
|
||||
func_8012C658(0xCA, 0, s0);
|
||||
func_8012C658(0xCA, 1, s0);
|
||||
func_8012C658(0xCA, 2, s0);
|
||||
func_8012C658(0xCA, 3, s0);
|
||||
func_8012AD50((void *)s0);
|
||||
}
|
||||
|
||||
|
||||
extern u8 func_8014BF6C(void);
|
||||
|
||||
@@ -5608,7 +5622,31 @@ void func_8018101C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8018107C);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32, void *);
|
||||
extern void func_8012C588();
|
||||
extern s32 rand(void);
|
||||
extern u8 D_801DCCE8[];
|
||||
extern s32 D_801DD860;
|
||||
|
||||
void func_8018107C(s32 a0) {
|
||||
register s32 v0 __asm__("$2");
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)a0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4((void *)a0);
|
||||
return;
|
||||
}
|
||||
func_8001C214(v0, (s32)D_801DCCE8);
|
||||
((void (*)(s32, s32))func_8012A828)((s32)a0, (s32)&D_801DD860);
|
||||
((void (*)(s32, s32))func_8012C588)(0x10F, (s32)a0);
|
||||
*(s32 *)((s32)a0 + 0x1C) = rand() % 31 + 0x3C;
|
||||
*(u16 *)((s32)a0 + 2) = 1;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8018112C);
|
||||
|
||||
@@ -5651,7 +5689,28 @@ void func_80181300(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8018133C);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_8012C588();
|
||||
|
||||
void func_8018133C(void *a0) {
|
||||
s32 v0;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)a0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(a0);
|
||||
return;
|
||||
}
|
||||
func_8001C214(v0, 0);
|
||||
*(u16 *)((s32)a0 + 0xFC) = *(u16 *)(*(s32 *)((s32)a0 + 0x64) + 0x36);
|
||||
*(u16 *)((s32)a0 + 0xFE) = 200;
|
||||
*(u16 *)((s32)a0 + 0x70) = *(u16 *)(*(s32 *)((s32)a0 + 0x64) + 0x70);
|
||||
func_8012C588(0x10B, a0);
|
||||
*(u16 *)((s32)a0 + 2) = 2;
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80181C08(void *a0);
|
||||
extern void func_80181708(void *a0);
|
||||
|
||||
@@ -3570,7 +3570,20 @@ s32 a0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_jr_8017BEBC", func_8017D758);
|
||||
void func_8017D758(s32 a0) {
|
||||
extern s16 D_80184A4A[];
|
||||
s32 t;
|
||||
|
||||
t = *(s32 *)(a0 + 0x1C) - 1;
|
||||
*(s32 *)(a0 + 0x1C) = t;
|
||||
if (t == 0) {
|
||||
s32 val = D_80184A4A[*(s16 *)(a0 + 0xFC) * 4];
|
||||
*(s16 *)(a0 + 0x2) = 3;
|
||||
*(s32 *)(a0 + 0x1C) = val;
|
||||
}
|
||||
func_8012DFD4((u8 *)a0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_8012DFD4(u8 *a0);
|
||||
|
||||
@@ -4418,7 +4418,19 @@ INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_801818E
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80181C84);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80182220);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_80183EE8(void);
|
||||
extern void func_80184604();
|
||||
|
||||
void func_80182220(s32 a0) {
|
||||
*(s16 *)((s32)a0 + 0x2) = 0xB;
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0x3C;
|
||||
*(s16 *)((s32)a0 + 0x34) = 0;
|
||||
func_8002D4C8(0x72C, 0);
|
||||
func_80183EE8();
|
||||
func_80184604(-1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8018226C);
|
||||
|
||||
@@ -6634,7 +6646,35 @@ void func_8018784C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80187890);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_80187890(void *arg0) {
|
||||
s32 t;
|
||||
s32 v0;
|
||||
|
||||
*(s32 *)((u8 *)arg0 + 0x20) = ((s32 (*)(void))func_8012C1B8)();
|
||||
if (*(s32 *)((u8 *)arg0 + 0x20) == 0) {
|
||||
func_8012CAE4((void *)arg0);
|
||||
return;
|
||||
}
|
||||
func_8001C214(*(s32 *)((u8 *)arg0 + 0x20), 0);
|
||||
*(s16 *)((u8 *)arg0 + 0x102) = -0x1AC;
|
||||
*(s16 *)((u8 *)arg0 + 0xFE) = -0x1AC;
|
||||
*(s16 *)((u8 *)arg0 + 0x104) = -0x1AC;
|
||||
*(s16 *)((u8 *)arg0 + 0x100) = -0x1AC;
|
||||
*(s32 *)((u8 *)arg0 + 0x1C) = 0x1F;
|
||||
t = *(u16 *)(*(s32 *)((u8 *)arg0 + 0x64) + 2);
|
||||
v0 = 0x775;
|
||||
if (t != 9) {
|
||||
v0 = 0x733;
|
||||
}
|
||||
func_8002D4C8(v0, 0);
|
||||
*(u16 *)((u8 *)arg0 + 2) = *(u16 *)((u8 *)arg0 + 2) + 1;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -6720,7 +6760,30 @@ void func_80188040(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8018807C);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern s32 rand(void);
|
||||
|
||||
void func_8018807C(s32 a0) {
|
||||
s32 obj;
|
||||
|
||||
obj = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)(a0 + 0x20) = obj;
|
||||
if (obj == 0) {
|
||||
func_8012CAE4((void *)a0);
|
||||
return;
|
||||
}
|
||||
|
||||
func_8001C214(obj, 0);
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x14) = *(u16 *)(a0 + 0xFC);
|
||||
func_8012B2CC(a0);
|
||||
|
||||
*(u16 *)(a0 + 0xFE) = rand() % 32 + 0x20;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x2) + 1;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -3497,7 +3497,16 @@ s32 func_8017D608(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017D628);
|
||||
void func_8017D628(s32 param_1) {
|
||||
s32 ret;
|
||||
|
||||
ret = func_800D0EC4();
|
||||
func_800D0F0C(ret, *(s16 *)(param_1 + 0x70) + 0x62);
|
||||
func_800291A0(0xDE, *(u8 *)(param_1 + 0x70));
|
||||
*(s16 *)(param_1 + 0x70) = 0;
|
||||
*(s32 *)(*(s32 *)(param_1 + 0x20) + 4) |= 0x80000000;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017D684);
|
||||
|
||||
|
||||
@@ -5256,9 +5256,38 @@ void func_80180B88(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_8017BEBC", func_80180BC4);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_8012AD50(s32);
|
||||
|
||||
void func_80180BC4(void *a0)
|
||||
{
|
||||
s32 v0;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)a0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(a0);
|
||||
return;
|
||||
}
|
||||
func_8001C214(v0, 0);
|
||||
func_8012AD50((s32)a0);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80029178(s32 arg);
|
||||
extern void func_8012AD50(s32);
|
||||
extern u8 D_80188B4C[];
|
||||
|
||||
void func_80180C18(void *a0) {
|
||||
if ((func_80029178(0xBB) & 0xFF) != 0) {
|
||||
*(s32 *)((s32)a0 + 0x58) = (s32)D_80188B4C;
|
||||
*(s16 *)((s32)a0 + 0x5C) = 0x80;
|
||||
func_8012AD50((s32)a0);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_8017BEBC", func_80180C18);
|
||||
|
||||
void func_80180C68(void) {
|
||||
}
|
||||
|
||||
@@ -4749,7 +4749,21 @@ void func_8017E380(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_8017E3BC);
|
||||
extern int func_800D0F8C(int a0);
|
||||
extern s32 func_800D0EC4(void);
|
||||
extern void func_800D0F0C(s32, s32);
|
||||
|
||||
void func_8017E3BC(s32 a0)
|
||||
{
|
||||
if (func_800D0F8C(a0 & 0xFF) == 0) {
|
||||
s32 ret;
|
||||
ret = func_800D0EC4();
|
||||
if (ret != 0) {
|
||||
func_800D0F0C(ret, a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012E8E0(s32 a0, s32 a1);
|
||||
extern void func_8012E88C(s32 a0);
|
||||
@@ -5778,7 +5792,31 @@ void func_80180334(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_801803CC);
|
||||
extern u16 D_800B99DA;
|
||||
extern s32 func_801842F8(u8 a0, u8 a1, u8 a2, u8 a3);
|
||||
extern void func_8012E88C(s32 a0);
|
||||
extern void func_8012A828(s32, s32);
|
||||
extern void func_801843B8(s32 a0);
|
||||
extern void func_801845FC(s32, s32, s32, s32);
|
||||
extern short D_801BEA50;
|
||||
extern s16 D_801B9560;
|
||||
extern void func_8018004C(s32 a0);
|
||||
|
||||
void func_801803CC(void *arg0)
|
||||
{
|
||||
if (*(s16 *)((char *)arg0 + 0xFC) != 0) {
|
||||
func_8018004C((s32)arg0);
|
||||
}
|
||||
if ((D_800B99DA & 3) == 0 && func_801842F8(9, 4, 0x12, 0) == 0) {
|
||||
*(s16 *)((char *)arg0 + 2) = 6;
|
||||
func_8012E88C((s32)arg0);
|
||||
func_8012A828((s32)arg0, (s32)&D_801BEA50);
|
||||
func_801843B8((s32)arg0);
|
||||
*(s16 *)((char *)arg0 + 0x34) = 0;
|
||||
func_801845FC((s32)arg0, (s32)&D_801B9560, 0, 0x60);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
|
||||
@@ -5380,7 +5380,25 @@ INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC", func_801806B
|
||||
void func_80180730(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC", func_80180738);
|
||||
extern s32 func_80029504(void);
|
||||
extern void func_80178CBC(s32 *a0, s32 a1);
|
||||
extern s32 D_80199868;
|
||||
extern s32 D_80199830;
|
||||
|
||||
void func_80180738(void *a0)
|
||||
{
|
||||
s32 v0;
|
||||
|
||||
if ((u32)func_80029504() >= 0x302) {
|
||||
func_80178CBC((s32 *)a0, &D_80199868);
|
||||
v0 = 4;
|
||||
} else {
|
||||
func_80178CBC((s32 *)a0, &D_80199830);
|
||||
v0 = 3;
|
||||
}
|
||||
*(s16 *)(a0 + 2) = v0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern int func_80178970(void);
|
||||
|
||||
@@ -10140,7 +10140,59 @@ s32 func_80186544(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_jr_8017BEBC", func_80186638);
|
||||
extern s32 func_8012BC60(void *a0, void *a1);
|
||||
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
|
||||
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
|
||||
extern s32 func_8012CEB0(void *a0, void *a1, s32 a2);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
|
||||
void func_80186638(s32 a0) {
|
||||
extern u8 D_801202A0[];
|
||||
u8 *p;
|
||||
s16 *self4;
|
||||
unsigned int *sc;
|
||||
s32 i;
|
||||
s32 ang;
|
||||
s16 v10[4];
|
||||
s16 v18[4];
|
||||
s32 sp20[2];
|
||||
|
||||
i = 0;
|
||||
p = D_801202A0;
|
||||
self4 = (s16 *)(a0 + 4);
|
||||
sc = (unsigned int *)sp20;
|
||||
do {
|
||||
switch (*(u16 *)p) {
|
||||
case 0x1DC:
|
||||
if ((u8 *)a0 != p) {
|
||||
if (func_8012BC60((void *)self4, (void *)(p + 4)) < 0x900) {
|
||||
ang = func_8012B6D4(self4, (s16 *)(p + 4));
|
||||
func_8012B0B4(sc, ang, 0x31);
|
||||
v18[0] = *(u16 *)(p + 6);
|
||||
v18[1] = *(u16 *)(p + 0xA);
|
||||
v18[2] = *(u16 *)(p + 0xE);
|
||||
v18[0] += sp20[0];
|
||||
v18[2] += sp20[0] >> 16;
|
||||
v10[0] = *(u16 *)(a0 + 0x3A);
|
||||
v10[1] = *(u16 *)(a0 + 0x3E);
|
||||
v10[2] = *(u16 *)(a0 + 0x42);
|
||||
if (func_8012CEB0(v10, v18, 0) & 0x2000) {
|
||||
*(u16 *)(a0 + 6) = v18[0];
|
||||
*(u16 *)(a0 + 0xA) = v18[1];
|
||||
*(u16 *)(a0 + 0xE) = v18[2];
|
||||
return;
|
||||
}
|
||||
func_8012ADE4((u8 *)a0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
p += 0x10C;
|
||||
} while (i < 0x60);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -9475,7 +9475,58 @@ s32 func_80185914(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_jr_8017BEBC", func_80185A08);
|
||||
#include "common.h"
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
|
||||
extern s32 func_8012BC60(struct Vec *a0, struct Vec *a1);
|
||||
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
|
||||
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
|
||||
s32 func_80185A08(s32 a0) {
|
||||
u8 *p;
|
||||
s16 *self4;
|
||||
unsigned int *sc;
|
||||
s32 i;
|
||||
s32 ang;
|
||||
s16 v10[4]; /* sp+0x10 */
|
||||
s16 v18[4]; /* sp+0x18 */
|
||||
s32 sp20[2]; /* sp+0x20 — func_8012B0B4 output */
|
||||
|
||||
i = 0;
|
||||
p = D_801202A0;
|
||||
self4 = (s16 *)(a0 + 4);
|
||||
sc = (unsigned int *)sp20;
|
||||
do {
|
||||
if (*(u16 *)p == 0x1DC && (u8 *)a0 != p) {
|
||||
if (func_8012BC60((struct Vec *)self4, (struct Vec *)(p + 4)) < 0x900) {
|
||||
ang = func_8012B6D4(self4, (s16 *)(p + 4));
|
||||
func_8012B0B4(sc, ang, 0x31);
|
||||
v18[0] = *(u16 *)(p + 6);
|
||||
v18[1] = *(u16 *)(p + 0xA);
|
||||
v18[2] = *(u16 *)(p + 0xE);
|
||||
v18[0] += sp20[0];
|
||||
v18[2] += sp20[0] >> 16;
|
||||
v10[0] = *(u16 *)(a0 + 0x3A);
|
||||
v10[1] = *(u16 *)(a0 + 0x3E);
|
||||
v10[2] = *(u16 *)(a0 + 0x42);
|
||||
if (func_8012CEB0((s32)v10, (s32)v18, 0) & 0x2000) {
|
||||
*(u16 *)(a0 + 6) = v18[0];
|
||||
*(u16 *)(a0 + 0xA) = v18[1];
|
||||
*(u16 *)(a0 + 0xE) = v18[2];
|
||||
return;
|
||||
}
|
||||
func_8012ADE4((u8 *)a0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
p += 0x10C;
|
||||
} while (i < 0x60);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
typedef struct { short a, b, c; } SV3_80181D44_80185B70; /* == the TU's own `SV3` (engine_types.h:612); renamed only because
|
||||
|
||||
@@ -4595,7 +4595,18 @@ s32 func_801809D4(s32 *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801809E0);
|
||||
extern void func_8018FC58(void *a0);
|
||||
|
||||
void func_801809E0(s32 arg0) {
|
||||
s32 s0;
|
||||
|
||||
s0 = arg0;
|
||||
func_8017FF80();
|
||||
func_8018FC58((void *)3);
|
||||
*(s32 *)(s0 + 0x1C) = 0xC0;
|
||||
*(s16 *)(s0 + 0x84) = 0x28;
|
||||
}
|
||||
|
||||
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8012BEE8(u8*);
|
||||
@@ -5444,7 +5455,22 @@ L80182380:
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801823C0);
|
||||
#include "common.h"
|
||||
|
||||
void func_801823C0(void *a0)
|
||||
{
|
||||
extern void func_8018637C(s32 arg0, s32 arg1);
|
||||
extern void func_80186BF8(void);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern struct { s32 f0; s32 f1; s32 f2; } D_801944EC[];
|
||||
|
||||
register s32 s0 __asm__("$16") = (s32)a0;
|
||||
|
||||
func_8018637C((s32)a0, D_801944EC[*(s16 *)(s0 + 0xE2)].f0);
|
||||
func_80186BF8();
|
||||
func_8012AD44((s32 *)s0, 0xB);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182420);
|
||||
|
||||
@@ -5492,7 +5518,20 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801827D
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182AF8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182B5C);
|
||||
void func_80182B5C(void *arg0) {
|
||||
extern u8 D_80194538[];
|
||||
extern void func_8018332C(s32 a0, s32 a1);
|
||||
extern void func_80186908();
|
||||
extern u16 D_801EFD40;
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
*(s16 *)((s32)arg0 + 0xF4) = 0;
|
||||
func_8018332C((s32)arg0, (s32)&D_80194538);
|
||||
func_80186908();
|
||||
D_801EFD40 |= 0x20;
|
||||
func_8012AD44((s32 *)arg0, 0xE);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -10452,7 +10491,24 @@ void func_80189FDC(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_8018A018);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8018A074(s32 arg0);
|
||||
extern void func_8001C924(void *a0, void *a1);
|
||||
extern void func_8018A42C(void *a0, void *a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 D_801E30C4;
|
||||
extern u8 D_801E5870[];
|
||||
|
||||
void func_8018A018(s32 arg0)
|
||||
{
|
||||
func_8018A074((s32)arg0);
|
||||
func_8001C924(*(void **)((s32)arg0 + 0x20), (void *)&D_801E30C4);
|
||||
func_8018A42C((void *)arg0, (void *)D_801E5870);
|
||||
*(s32 *)((s32)arg0 + 0x58) = 0;
|
||||
func_8002D4C8(0x84C, 0);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8018A0E0(s32 arg0);
|
||||
|
||||
@@ -3496,7 +3496,17 @@ void func_8017F030(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_jr_8017D604", func_8017F068);
|
||||
extern s32 func_801813AC(u8 a0, u8 a1, u8 a2, u8 a3);
|
||||
|
||||
void func_8017F068(s32 obj) {
|
||||
*(s32 *)(*(s32 *)(obj + 0xCC) + 0xB0) = 2;
|
||||
if (func_801813AC(5, 0, 5, 0x1E) != 0) {
|
||||
func_8017EDF4((void *)obj);
|
||||
} else if (func_80181388(7, 0x15) != 0) {
|
||||
func_8017EDB0(obj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_80178CBC(s32 arg0, s32 arg1);
|
||||
extern int func_80178970(void);
|
||||
|
||||
@@ -3615,7 +3615,21 @@ void func_8017D828(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_jr_8017BEBC", func_8017D864);
|
||||
void func_8017D864(s32 param_1) {
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8001D0E8(s32 a0, s32 a1, s32 a2);
|
||||
extern void (*D_80181E28[])(void);
|
||||
extern s32 D_80198064;
|
||||
s32 v0;
|
||||
|
||||
v0 = func_8012C354(param_1, (s32)D_80181E28);
|
||||
if (v0 != 0) {
|
||||
func_8001D0E8(*(s32 *)(param_1 + 0x20), 0x7FFF, 0x7FFF);
|
||||
*(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = D_80198064;
|
||||
*(u16 *)(param_1 + 0x2) = *(u16 *)(param_1 + 0x2) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_8017D8CC(void) {
|
||||
}
|
||||
|
||||
@@ -5333,7 +5333,32 @@ void func_80180260(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_8018029C);
|
||||
#include "common.h"
|
||||
|
||||
/* Callee spellings copied VERBATIM from this TU (law 2):
|
||||
* func_80178B18 @2535/@4800, func_8016F2A8 @1946, func_8016F2EC @1948,
|
||||
* func_8002D4C8 @59/@4802, func_8012AD44 @5060/@5182.
|
||||
* D_80189B10 is only address-taken (2nd arg of func_80178B18); spelled as a
|
||||
* dispatcher table to match the adjacent D_80189AF8 (@5329) / D_80189B18 (@5359)
|
||||
* declarations in this same TU. */
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
extern void func_8016F2A8(void);
|
||||
extern void func_8016F2EC(void);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
extern void (*D_80189B10[])(void);
|
||||
|
||||
void func_8018029C(s32 param_1) {
|
||||
func_80178B18(param_1, (s32)D_80189B10);
|
||||
func_8016F2A8();
|
||||
func_8016F2EC();
|
||||
*(u16 *)(param_1 + 0xFE) = 0x14;
|
||||
*(s32 *)(param_1 + 0x1C) = 4;
|
||||
func_8002D4C8(0x8FE, 0);
|
||||
func_8012AD44((s32 *)param_1, 2);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_80180304);
|
||||
|
||||
|
||||
@@ -3457,7 +3457,19 @@ void func_8017D490(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017D52C);
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
|
||||
void func_8017D52C(s32 a0)
|
||||
{
|
||||
extern s16 D_80126B62;
|
||||
|
||||
if (func_80178970() != 0 || D_80126B62 >= -447) {
|
||||
((void (*)(s32))func_80178D18)(a0);
|
||||
*(u16 *)(a0 + 2) -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_8017D58C(void) {
|
||||
}
|
||||
|
||||
@@ -3826,7 +3826,19 @@ void func_80185288(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_801852C4);
|
||||
void func_801852C4(s32 arg0)
|
||||
{
|
||||
extern void func_80187B80(s32 a0);
|
||||
extern void func_8017E910(void);
|
||||
void *s0;
|
||||
|
||||
func_80187B80(4);
|
||||
s0 = (void *)(arg0 + 0x76);
|
||||
func_8017BF08(s0, s0, 5, 0xD2);
|
||||
func_8017E910();
|
||||
func_8002D4C8(0x89E, 0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80187BAC(void);
|
||||
extern void func_8017E9B4(void);
|
||||
@@ -4105,7 +4117,22 @@ INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80185B2
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80185BD8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80185C80);
|
||||
void func_80185C80(s32 a0) {
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_8019273C[];
|
||||
extern void (*D_80188CCC)(void);
|
||||
|
||||
if (func_8012C354(a0, (s32)D_8019273C) != 0) {
|
||||
*(u32 *)(*(s32 *)(a0 + 0x20) + 4) = *(u32 *)(*(s32 *)(a0 + 0x20) + 4) | 0x80000000;
|
||||
*(s16 *)(a0 + 2) = 1;
|
||||
func_8012A828(a0, &D_80188CCC);
|
||||
*(u8 *)(a0 + 0x75) = 3;
|
||||
*(u8 *)(a0 + 0xC0) = 1;
|
||||
*(s16 *)(a0 + 0xAE) = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_80185CF8(void) {
|
||||
}
|
||||
@@ -4768,7 +4795,22 @@ void func_801872BC(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_8018738C);
|
||||
void func_8018738C(s32 a0) {
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void (*D_80188CCC)(void);
|
||||
extern void (*D_80192E00)(void);
|
||||
|
||||
if (func_8012C354(a0, (s32)&D_80192E00) != 0) {
|
||||
*(s32 *)(*(s32 *)(a0 + 0x20) + 4) = *(s32 *)(*(s32 *)(a0 + 0x20) + 4) | 0x40000040;
|
||||
*(u8 *)(a0 + 0xC0) = 1;
|
||||
*(u16 *)(a0 + 0x5C) = 0;
|
||||
func_8012A828(a0, &D_80188CCC);
|
||||
*(u16 *)(a0 + 2) = 1;
|
||||
*(s32 *)(a0 + 0x1C) = 6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012C218(void*);
|
||||
@@ -4782,7 +4824,24 @@ extern void func_8012C218(void*);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80187438);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_801874DC);
|
||||
extern void func_8012C218(void*);
|
||||
extern void func_8017ECE4(void);
|
||||
extern s32 D_801C7E64;
|
||||
|
||||
void func_801874DC(void *param_1) {
|
||||
s32 v;
|
||||
|
||||
v = *(s32 *)((u8 *)param_1 + 0x1C) - 1;
|
||||
*(s32 *)((u8 *)param_1 + 0x1C) = v;
|
||||
if (v == 0) {
|
||||
((void (*)(void))func_8012C218)();
|
||||
D_801C7E64 = 0;
|
||||
}
|
||||
*(u16 *)((u8 *)param_1 + 0xA) = 0;
|
||||
((void (*)(s32))func_8017ECE4)((s32)param_1);
|
||||
*(u16 *)((u8 *)param_1 + 0xA) -= 0x20;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -5127,7 +5127,13 @@ void func_8017ED1C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_8017ED58);
|
||||
void func_8017ED58(void *a0) {
|
||||
extern s32 D_801911C0;
|
||||
*(short *)((char *)a0 + 0x2) = 5;
|
||||
func_80178CBC((s32)a0, (s32)&D_801911C0);
|
||||
*(short *)((char *)a0 + 0x34) = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s16 func_80184B44(void);
|
||||
@@ -5172,7 +5178,19 @@ void func_8017EEC8(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_8017EF20);
|
||||
extern s32 func_801858E0(s32 a0);
|
||||
extern s32 func_80184CA4(s32 a0);
|
||||
extern void func_80185C54(void*, s32, s32);
|
||||
|
||||
void func_8017EF20(void *a0) {
|
||||
func_80185C54(a0, 0xC, 1);
|
||||
if (func_801858E0(0xC) != 0) {
|
||||
if (func_80184CA4((s32)a0) != 0) {
|
||||
func_8017E85C(a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_80184BD4(s32, s32, s32, s32);
|
||||
extern s32 func_801848AC(s32 arg0, s32 arg1);
|
||||
@@ -6095,7 +6113,32 @@ extern void func_801849B8(s32*, s32);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_801801B4);
|
||||
extern s16 func_80184B44(void);
|
||||
extern void func_801849B8(s32 *a0, s32 a1);
|
||||
extern void func_8012E88C(s32);
|
||||
extern void func_8012A828(s32, s32);
|
||||
extern void func_80184990(s32);
|
||||
|
||||
void func_801801B4(void *arg0) {
|
||||
|
||||
extern short D_8019142C;
|
||||
extern short D_801B9964;
|
||||
extern s32 D_801CE1C0;
|
||||
extern s32 D_801ECE70;
|
||||
|
||||
if (((s32 (*)(void))func_80184B44)() == 1) {
|
||||
*(short *)((char *)arg0 + 0x2) = 1;
|
||||
func_801849B8((s32 *)arg0, (s32)&D_8019142C);
|
||||
} else {
|
||||
*(short *)((char *)arg0 + 0x2) = 8;
|
||||
func_8012E88C((s32)arg0);
|
||||
func_8012A828((s32)arg0, (s32)&D_801B9964);
|
||||
func_80184990((s32)arg0);
|
||||
D_801CE1C0 = D_801ECE70;
|
||||
*(short *)((char *)arg0 + 0x34) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_801849B8(s32*, s32);
|
||||
|
||||
@@ -3590,6 +3590,69 @@ void func_80186B24(void)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_80186270", func_801874B0);
|
||||
void func_801874B0(void) {
|
||||
|
||||
extern s32 D_801151D0;
|
||||
extern s32 D_801151C8[];
|
||||
extern u16 xf02 __asm__("D_800B9A02");
|
||||
extern s16 xa __asm__("D_8011511A");
|
||||
extern u16 xb __asm__("D_8011511A");
|
||||
extern s32 xf168c(s32 a0) __asm__("func_8014168C");
|
||||
extern u8 D_80115138[];
|
||||
extern s32 D_801ED560;
|
||||
extern s32 D_80115130;
|
||||
extern s32 D_801B93CC[];
|
||||
extern s32 D_801ED564;
|
||||
extern u8 D_800B9A15;
|
||||
extern u16 D_80115112;
|
||||
extern s16 D_801ECE90;
|
||||
|
||||
extern s32 func_80188128(void);
|
||||
extern void func_80188478(void);
|
||||
extern s32 func_80188B1C(s32 a0, s32 a1);
|
||||
extern void func_80139954(void);
|
||||
extern s32 func_801376E8(s32 a0, s32 a1);
|
||||
extern void func_80137B80(void);
|
||||
|
||||
s32 pad[2];
|
||||
s32 v;
|
||||
s32 r2;
|
||||
s32 ret;
|
||||
s16 rn;
|
||||
s32 b;
|
||||
s32 *p30;
|
||||
u16 *p12;
|
||||
|
||||
D_801151D0 = ((s32 *)D_801151C8)[xf02];
|
||||
ret = func_80188128();
|
||||
func_80188478();
|
||||
r2 = xf168c(xa);
|
||||
b = D_80115138[xb];
|
||||
if (D_801ED560 == 0) {
|
||||
v = func_80188B1C(b, (s16)r2);
|
||||
} else {
|
||||
v = D_801ED560;
|
||||
}
|
||||
if (v != 0) {
|
||||
p30 = &D_80115130;
|
||||
if (v != *p30) {
|
||||
*p30 = v;
|
||||
func_80139954();
|
||||
D_801ED564 = func_801376E8(v, (s32)D_801B93CC);
|
||||
}
|
||||
}
|
||||
func_80137B80();
|
||||
rn = ret;
|
||||
if (rn < 0) {
|
||||
func_80139954();
|
||||
D_800B9A15 = 0;
|
||||
if (D_801ECE90 == 0) {
|
||||
func_8002D4C8(0x474, 0);
|
||||
}
|
||||
p12 = &D_80115112;
|
||||
*p12 += 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3434,7 +3434,29 @@ void func_8017EBFC(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017EC80);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8017FE44(void);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
extern s32 D_801151D4;
|
||||
|
||||
void func_8017EC80(s32 a0) {
|
||||
register s32 v0 __asm__("$2");
|
||||
s32 v1;
|
||||
|
||||
v1 = D_801151D4;
|
||||
v0 = *(u16 *)(v1 + 0x22) + 4;
|
||||
*(u16 *)(v1 + 0x22) = v0;
|
||||
*(s16 *)(v1 + 0x1A) = v0;
|
||||
|
||||
v0 = *(s32 *)((u8 *)a0 + 0x204) - 1;
|
||||
*(s32 *)((u8 *)a0 + 0x204) = v0;
|
||||
if (v0 == -1) {
|
||||
func_8002D4C8(0xC4C, 0);
|
||||
func_8017FE44();
|
||||
func_80171990((u8 *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017ECEC);
|
||||
|
||||
@@ -3745,7 +3767,19 @@ void func_8017F598(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017F608);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017F608(void *arg0) {
|
||||
s16 var;
|
||||
|
||||
var = *(s16 *)((u8 *)arg0 + 0x20E) - 1;
|
||||
*(s16 *)((u8 *)arg0 + 0x20E) = var;
|
||||
if (var == -1) {
|
||||
*(s16 *)((u8 *)arg0 + 0x20E) = 0;
|
||||
func_80171990((u8 *)arg0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
@@ -3791,7 +3825,22 @@ void func_8017F6C8(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017F754);
|
||||
extern s32 func_80171990(u8*);
|
||||
extern void func_8017F818(void *a0, s32 a1, s32 a2, s32 a3);
|
||||
extern void func_8017F990();
|
||||
|
||||
void func_8017F754(void *a0) {
|
||||
s32 v0;
|
||||
|
||||
v0 = *(s32 *)((u8 *)a0 + 0x200) - 0xA;
|
||||
*(s32 *)((u8 *)a0 + 0x200) = v0;
|
||||
if (v0 < 0x6F) {
|
||||
((void (*)(void *))func_80171990)(a0);
|
||||
}
|
||||
func_8017F818(a0, *(s16 *)((u8 *)a0 + 0x20C), *(s32 *)((u8 *)a0 + 0x200), 0);
|
||||
func_8017F990(a0, 0x800);
|
||||
}
|
||||
|
||||
|
||||
extern u8 D_800AE6BD;
|
||||
extern void func_80171928(void *);
|
||||
|
||||
@@ -4362,7 +4362,22 @@ extern s32 func_8018034C(void);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_jr_8017DB90", func_801807EC);
|
||||
extern s32 func_8018034C(void);
|
||||
extern void func_8017F2A0(void);
|
||||
extern s32 D_801F8084;
|
||||
extern void func_8017F308(void);
|
||||
extern void func_8017FECC(s32 a0);
|
||||
|
||||
void func_801807EC(void) {
|
||||
if (func_8018034C() != 0) {
|
||||
func_8017F2A0();
|
||||
}
|
||||
if (D_801F8084 == 0xC8) {
|
||||
func_8017F308();
|
||||
}
|
||||
func_8017FECC(4);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8018034C(void);
|
||||
extern s32 D_801F8084;
|
||||
|
||||
@@ -3958,7 +3958,16 @@ void func_8017E62C(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008_jr_8017C294", func_8017E694);
|
||||
void func_8017E694(s32 a0) {
|
||||
extern void func_801292C8();
|
||||
if (*(s32 *)(a0 + 0x1c) == 0) {
|
||||
func_801292C8(a0);
|
||||
} else {
|
||||
func_8017E6F0(a0);
|
||||
*(s32 *)(a0 + 0x1c) -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3957,7 +3957,20 @@ void func_8017E0FC(s32 a0) {
|
||||
void func_8017E174(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017E17C);
|
||||
void func_8017E17C(s32 param_1)
|
||||
{
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
s32 v;
|
||||
|
||||
v = *(u16 *)(param_1 + 0xA) + 0x10;
|
||||
*(u16 *)(param_1 + 0xA) = v;
|
||||
if ((s16)v >= -0x1C0) {
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) - 1;
|
||||
func_8002D4C8(4, 0xA66);
|
||||
func_8002D4C8(0xA67, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_8017E1DC(s32 a0) {
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
|
||||
@@ -3622,7 +3622,23 @@ void func_8017E4AC(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_8017E4FC);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8017EEFC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern u8 D_80195E24;
|
||||
extern s16 D_8019F708;
|
||||
extern s16 D_8019F710;
|
||||
extern u16 D_80188A1A;
|
||||
|
||||
void func_8017E4FC(s32 arg0)
|
||||
{
|
||||
func_8017EEFC(arg0, 7, 0, &D_80195E24);
|
||||
D_8019F708 = 0;
|
||||
D_8019F710 = D_80188A1A;
|
||||
func_8002D4C8(0xA97, 0);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -5574,7 +5590,16 @@ void func_80181D7C(s32 arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_80181DBC);
|
||||
extern s16 D_8019F710;
|
||||
extern void func_8017E7D0(void);
|
||||
|
||||
void func_80181DBC(void) {
|
||||
D_8019F710 = D_8019F710 - 1;
|
||||
if (D_8019F710 <= 0) {
|
||||
func_8017E7D0();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012AD80(s32 a0);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
|
||||
@@ -8808,7 +8808,17 @@ void func_801857CC(s32 param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_8017C24C", func_80185944);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801CC6E8[];
|
||||
|
||||
void func_80185944(s32 p) {
|
||||
*(u16 *)(p + 2) = 0x20;
|
||||
func_8012A828(p, D_801CC6E8);
|
||||
*(s32 *)(p + 0x1C) = 0;
|
||||
*(s32 *)(p + 0xE4) = 0;
|
||||
*(s32 *)(p + 0x48) = 0x4650;
|
||||
}
|
||||
|
||||
|
||||
// @class: regalloc-order
|
||||
// @stuck: none — MATCH (168/168). $s4/$s5 pins for base+&local28; s32 sVar1 for single lh;
|
||||
|
||||
@@ -8309,4 +8309,64 @@ void func_8018F694(void)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_80187AEC", func_8018FE0C);
|
||||
typedef struct { s32 a; s32 b[4]; } OtBlk_8018FE0C;
|
||||
|
||||
/* ==== simulated TU file-scope surface (verbatim from ov_SC06_018_jr_80187AEC.c) ==== */
|
||||
extern short D_800B9A02;
|
||||
extern s16 D_800B9A02;
|
||||
extern void func_8004914C(void *a0);
|
||||
extern void func_800491AC(void *a0);
|
||||
extern void func_8004914C(void *);
|
||||
extern void func_800491AC(void *);
|
||||
extern void func_8004914C();
|
||||
extern void func_800491AC();
|
||||
extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);
|
||||
extern u8 D_800A651C[];
|
||||
|
||||
void func_8018FE0C(s32 arg0, s32 arg1, s32 arg2)
|
||||
{
|
||||
extern void *func_80010A08(s32);
|
||||
extern void func_8004914C(void *);
|
||||
extern void func_800491AC(void *);
|
||||
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
|
||||
extern u8 D_800AF648;
|
||||
extern OtBlk_8018FE0C aD800A651C[] __asm__("D_800A651C");
|
||||
extern u8 D_800A6518[];
|
||||
extern short D_800B9A02;
|
||||
extern void func_80016638(void *a0, s32 a1, s32 a2);
|
||||
|
||||
s32 sp10;
|
||||
s32 sp14;
|
||||
s32 temp_v0_2;
|
||||
void *temp_v0;
|
||||
s32 ot;
|
||||
s32 depth4;
|
||||
register u16 *bidx __asm__("$8");
|
||||
register u32 mask1 __asm__("$7");
|
||||
register s32 rgb __asm__("$16");
|
||||
register u32 tag0 __asm__("$4");
|
||||
|
||||
rgb = arg2;
|
||||
__asm__("" : "=r"(rgb) : "0"(rgb));
|
||||
temp_v0 = func_80010A08(0x10);
|
||||
*(u8 *)((u8 *)temp_v0 + 3) = 3;
|
||||
*(s32 *)((u8 *)temp_v0 + 4) = rgb;
|
||||
*(u8 *)((u8 *)temp_v0 + 7) = 0x42;
|
||||
func_8004914C(&D_800AF648);
|
||||
func_800491AC(&D_800AF648);
|
||||
temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);
|
||||
if ((temp_v0_2 > 0) && (sp14 >= 0) &&
|
||||
(RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {
|
||||
mask1 = 0xFFFFFF;
|
||||
bidx = (u16 *)&D_800B9A02;
|
||||
depth4 = temp_v0_2 * 4;
|
||||
tag0 = *(u32 *)temp_v0;
|
||||
*(u32 *)temp_v0 = (tag0 & 0xFF000000) |
|
||||
(*(u32 *)(depth4 + aD800A651C[*bidx].a) & mask1);
|
||||
ot = aD800A651C[*bidx].a;
|
||||
*(u32 *)(depth4 + ot) =
|
||||
(*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & mask1);
|
||||
func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4680,7 +4680,15 @@ void func_8017F490(s32 p) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017F570);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801B5B88[];
|
||||
|
||||
void func_8017F570(s32 param_1) {
|
||||
*(s16 *)(param_1 + 2) = 27;
|
||||
func_8012A828(param_1, D_801B5B88);
|
||||
*(s32 *)(param_1 + 0x1C) = 0x20;
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_801833F4(void *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
|
||||
@@ -4775,7 +4775,26 @@ void func_80183138(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025_jr_8017EEC4", func_80183228);
|
||||
extern void func_8012BE54(s32 a0);
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern s32 D_801892CC;
|
||||
|
||||
void func_80183228(void *a0) {
|
||||
u16 *v0;
|
||||
|
||||
v0 = *(u16 **)((s32)a0 + 0x20);
|
||||
*(u16 *)((s32)v0 + 0x1C) = 0xC00;
|
||||
*(u16 *)((s32)v0 + 0x1A) = 0xC00;
|
||||
*(u16 *)((s32)v0 + 0x18) = 0xC00;
|
||||
if (((s32 (*)(s32))func_8012BE54)(a0) < 0x6401) {
|
||||
func_80178B18((s32)a0, (s32)&D_801892CC);
|
||||
*(u16 *)((s32)a0 + 0x2) = 2;
|
||||
*(u16 *)((s32)a0 + 0x34) = 0;
|
||||
func_8002D4C8(0xB01, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_80183298(void *a0)
|
||||
{
|
||||
|
||||
@@ -3604,7 +3604,18 @@ void func_8017D8B8(s32 param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_jr_8017BEBC", func_8017D92C);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_8019D2B8;
|
||||
extern s32 D_80199B1C;
|
||||
|
||||
void func_8017D92C(s32 param_1)
|
||||
{
|
||||
if (D_8019D2B8 == 1) {
|
||||
D_8019D2B8 = 0;
|
||||
func_8012A828(param_1, &D_80199B1C);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_jr_8017BEBC", func_8017D96C);
|
||||
|
||||
|
||||
@@ -3183,7 +3183,15 @@ void func_80183DA8(s32 p) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_801836FC", func_80183E88);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801C6B7C[];
|
||||
|
||||
void func_80183E88(s32 param_1) {
|
||||
*(s16 *)(param_1 + 2) = 0x1B;
|
||||
func_8012A828(param_1, D_801C6B7C);
|
||||
*(s32 *)(param_1 + 0x1C) = 0x20;
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012F214(s32, s32, s32);
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
|
||||
@@ -5867,7 +5867,22 @@ void func_80182E48(int param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_jr_8017C8D0", func_80182F2C);
|
||||
void func_80182F2C(void *a0)
|
||||
{
|
||||
extern u16 D_8019FF8A;
|
||||
s32 q;
|
||||
u16 g;
|
||||
|
||||
func_80182818(a0);
|
||||
q = *(s32 *)((s32)a0 + 0x20);
|
||||
*(u16 *)(q + 0x12) = *(u16 *)(q + 0x12) + 0x80;
|
||||
g = D_8019FF8A;
|
||||
*(u16 *)((s32)a0 + 0xE4) = *(u16 *)((s32)a0 + 0xE4) + *(u16 *)((s32)a0 + 0xE8);
|
||||
if (g & 0x4000) {
|
||||
func_8018260C((s32)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_80182F94(s32 arg0) {
|
||||
register s32 s0 __asm__("$16") = arg0;
|
||||
|
||||
@@ -4801,7 +4801,48 @@ void func_801828A4(s32 t)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_jr_8017BEBC", func_80182B8C);
|
||||
extern s32 D_801BFCEC;
|
||||
extern u8 D_8018E510[];
|
||||
extern u8 D_8018DF10;
|
||||
extern void func_8017D8A4(s32 a0, void *a1, void *a2, s32 a3, s32 a4);
|
||||
extern void func_80143C74(s32 a0, s32 a1);
|
||||
extern void func_80128EA8(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 rand(void);
|
||||
|
||||
void func_80182B8C(s32 param_1, s32 param_2) {
|
||||
s32 *q;
|
||||
s32 work;
|
||||
s32 rnd;
|
||||
s32 t;
|
||||
s32 u;
|
||||
|
||||
q = &D_801BFCEC;
|
||||
func_8017D8A4(*q + 0x48, D_8018E510, D_8018E510 + 0x24, param_2, 1);
|
||||
func_8017D8A4(*q + 0x54, D_8018E510 + 0xC, D_8018E510 + 0x30, param_2, 1);
|
||||
func_8017D8A4(*q + 0x60, D_8018E510 + 0x18, D_8018E510 + 0x3C, param_2, 1);
|
||||
work = ((s32 (*)())func_80143C74)(param_1, 0);
|
||||
if (work != 0) {
|
||||
*(u16 *)(work + 0xE) = *(u16 *)(work + 0xE) - *(u16 *)(D_801BFCEC + 0x48);
|
||||
rnd = rand();
|
||||
t = *(u16 *)(D_801BFCEC + 0x4A) - 0x20;
|
||||
*(u16 *)(work + 0xA) = *(u16 *)(work + 0xA) + (t + (rnd & 0x3F));
|
||||
rnd = rand();
|
||||
u = *(u16 *)(D_801BFCEC + 0x4C) - 0x20;
|
||||
*(u16 *)(work + 6) = *(u16 *)(work + 6) + (u + (rnd & 0x3F));
|
||||
rnd = rand() & 0xFF;
|
||||
*(u32 *)(work + 0x10) = (rnd - 0x80) << 10;
|
||||
rnd = rand() & 3;
|
||||
*(u16 *)(work + 0x16) = -(rnd + 4);
|
||||
*(u32 *)(work + 0x18) = (rand() & 0xFF) << 11;
|
||||
func_80128EA8(*(u32 *)(work + 0x20), (void *)(work + 0xD0), &D_8018DF10);
|
||||
func_8012C658(0x3AC, 6, work);
|
||||
func_8012C658(0x3AC, 6, work);
|
||||
func_8012C658(0x3AC, 6, work);
|
||||
func_8012C658(0x3AC, 6, work);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_jr_8017BEBC", func_80182D4C);
|
||||
|
||||
|
||||
@@ -4462,7 +4462,23 @@ s32 func_8017E4B0(void * arg0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8017E4C4);
|
||||
extern s32 D_801151D4;
|
||||
|
||||
void func_8017E4C4(s32 a0) {
|
||||
s32 p;
|
||||
s32 t;
|
||||
|
||||
p = D_801151D4;
|
||||
t = *(s32 *)(p + 0x10) - 2;
|
||||
*(s32 *)(p + 0x10) = t;
|
||||
*(s32 *)(p + 0x14) = t;
|
||||
if (*(s32 *)(p + 0x10) < 300) {
|
||||
*(s32 *)(p + 0x10) = 300;
|
||||
*(s32 *)(p + 0x14) = 300;
|
||||
func_80016714((void *)a0, 0x18);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_801151D4;
|
||||
|
||||
@@ -7062,7 +7078,19 @@ void func_801817D0(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_80181828);
|
||||
void func_80181828(s32 a0) {
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
extern void func_80181960();
|
||||
register s32 s0 __asm__("$16");
|
||||
|
||||
if (func_8012BEE8(a0) != 0) {
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
func_8012AD50((void *)a0);
|
||||
}
|
||||
func_80181960((void *)0xFFFFFF, 2, 0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_80181878);
|
||||
|
||||
|
||||
@@ -3901,7 +3901,24 @@ INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017D06
|
||||
void func_8017D0CC(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017D0D4);
|
||||
extern s16 D_800B9ABA[];
|
||||
extern s16 D_801274EA;
|
||||
extern s16 D_801274F2;
|
||||
|
||||
void func_8017D0D4(s32 a0)
|
||||
{
|
||||
s16 *p;
|
||||
|
||||
if (func_80171A88(a0) != 0) {
|
||||
func_80171928((void *)a0);
|
||||
return;
|
||||
}
|
||||
p = &D_801274EA;
|
||||
(*p) += 4;
|
||||
D_801274F2 += 8;
|
||||
D_800B9ABA[0] += 2;
|
||||
}
|
||||
|
||||
|
||||
extern void func_8016EE40(s32 a0, s32 a1, s32 a2);
|
||||
void func_8017D150(void) {
|
||||
@@ -4300,7 +4317,17 @@ s32 func_8017D994(s32 *arg0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017DA0C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017DA7C);
|
||||
void func_8017DA7C(s32 *arg0) {
|
||||
extern void func_800178C8(void *a0);
|
||||
|
||||
*(s16 *)((u8 *)arg0 + 4) = 4;
|
||||
*(s32 *)((u8 *)arg0 + 0x40) = 0x60000000;
|
||||
func_800178C8(arg0);
|
||||
*(s16 *)((u8 *)arg0 + 4) = 3;
|
||||
*(s32 *)((u8 *)arg0 + 0x40) = 0x50000000;
|
||||
func_800178C8(arg0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_801819E4[])(void);
|
||||
|
||||
Reference in New Issue
Block a user