mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 07:31:59 -04:00
feat(decomp): ox wave ag — 161 banked\n\nCard-fuelled ox drafts, reloc_identity pre-filtered, gated via sweep_parallel.\nfunc_8017EF88 func_8017F1A4 func_8017F590 func_8017FA2C func_8017FC50 func_8017FDB4 func_80180250 func_80180904 func_80180B44 func_80180E94 func_80181598 func_801817D8 func_801818EC func_80182360 func_80182580 func_80182958 func_80183154 func_801831B4 func_80183214 func_80183600 func_80183878 func_80183928 func_80183968 func_801844B0 func_80184B18 func_80184D34 func_80185378 func_80185D08 func_80185F38 func_80186CE4 func_80186D90 func_80186F9C func_801870B8 func_8018723C func_8017DE5C func_8017E454 func_8017E4F8 func_8017F118 func_8017F244 func_8017F748 …
This commit is contained in:
@@ -3188,7 +3188,39 @@ void func_8017CF90(s32 arg0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017DE5C);
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8017E97C(void *a0);
|
||||
|
||||
|
||||
void func_8017DE5C(void) {
|
||||
/* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every
|
||||
LATER function in this TU, which blocks a byte-true decl of a different type.
|
||||
Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */
|
||||
extern u8 D_80126948[];
|
||||
extern s32 D_80126954;
|
||||
extern s32 D_80126950;
|
||||
extern s32 D_8012695C;
|
||||
extern s16 D_80126968;
|
||||
extern s16 D_8012696A;
|
||||
extern s16 D_8012696C;
|
||||
extern s16 D_80126976;
|
||||
extern s16 D_80126978;
|
||||
extern s16 D_8012697A;
|
||||
D_80126954 = 0x12C;
|
||||
D_80126950 = 0x12C;
|
||||
D_8012695C = 0x28A;
|
||||
D_80126968 = 0x238;
|
||||
D_8012696A = 0x600;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = -0x80;
|
||||
D_80126978 = 0;
|
||||
D_8012697A = -0x80;
|
||||
((void (*)(void *, s32))func_8012A018)((void *)func_8017E97C, 0);
|
||||
func_8012A094((s32)D_80126948);
|
||||
func_8017E97C((void *)D_80126948);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_8017E97C();
|
||||
@@ -3423,9 +3455,78 @@ void func_8017E348(void)
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017E424);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017E454);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8012A0E0(void);
|
||||
extern void func_8017E97C(void *a0);
|
||||
|
||||
void func_8017E454(void) {
|
||||
extern u8 D_80126948[];
|
||||
extern s32 D_80126954;
|
||||
extern s32 D_8012695C;
|
||||
extern s16 D_80126968;
|
||||
extern s16 D_8012696A;
|
||||
extern s16 D_8012696C;
|
||||
extern s16 D_80126976;
|
||||
extern s16 D_80126978;
|
||||
extern s16 D_8012697A;
|
||||
D_80126954 = 0x224;
|
||||
D_8012695C = 0x3A0;
|
||||
D_80126968 = 0x75;
|
||||
D_8012696A = 0x800;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = 0;
|
||||
D_80126978 = -0x35;
|
||||
D_8012697A = 0;
|
||||
func_8012A018((s32)func_8017E97C, 1);
|
||||
func_8012A094((s32)D_80126948);
|
||||
func_8017E97C(D_80126948);
|
||||
func_8012A0E0();
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_80126E60[];
|
||||
extern void func_8012A048(void *a0, s32 a1, u8 a2);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8017E97C(void *a0);
|
||||
extern void func_8012A100(s8 a0);
|
||||
|
||||
s32 func_8017E4F8(void)
|
||||
{
|
||||
extern s32 D_80126E6C;
|
||||
extern s32 D_80126E74;
|
||||
extern s16 D_80126E80;
|
||||
extern s16 D_80126E82;
|
||||
extern s16 D_80126E84;
|
||||
extern s16 D_80126E8E;
|
||||
extern s16 D_80126E90;
|
||||
extern s16 D_80126E92;
|
||||
extern s16 D_80126F00;
|
||||
|
||||
s32 *s0 = (s32 *)D_80126E60;
|
||||
|
||||
D_80126E6C = 0x12C;
|
||||
D_80126E74 = 0x21C;
|
||||
D_80126E80 = -0x71;
|
||||
D_80126E82 = 0xA00;
|
||||
{
|
||||
s32 temp_func = (s32)func_8017E97C;
|
||||
s32 temp_v0 = -0xA0;
|
||||
D_80126E84 = 0;
|
||||
D_80126E8E = 0;
|
||||
D_80126E90 = temp_v0;
|
||||
D_80126E92 = 0;
|
||||
|
||||
func_8012A048(s0, temp_func, 0x7);
|
||||
D_80126F00 = -0x5;
|
||||
func_8012A094((s32)s0);
|
||||
func_8017E97C((void *)s0);
|
||||
func_8012A100(0x1);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017E4F8);
|
||||
|
||||
extern void func_8012A0E0(void);
|
||||
void func_8017E5AC(void) {
|
||||
@@ -3609,7 +3710,28 @@ s32 func_8017F0FC(u8 *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F118);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8001BFD0(void);
|
||||
extern void func_800D0C48(s32 a0);
|
||||
extern void func_800167B8(s32 a0);
|
||||
|
||||
s32 func_8017F118(void *a0) {
|
||||
s32 v0;
|
||||
s32 v1 = -1;
|
||||
v0 = *(s32 *)(a0 + 0x28);
|
||||
v0 += -1;
|
||||
*(s32 *)(a0 + 0x28) = v0;
|
||||
if (v0 == v1) {
|
||||
func_8002D4C8(0x1C, 0);
|
||||
func_8001BFD0();
|
||||
func_8002D4C8(0x1D, 0);
|
||||
func_800D0C48(2);
|
||||
func_800167B8(4);
|
||||
*(u8 *)(a0 + 0x15) = *(u8 *)(a0 + 0x15) + 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F194);
|
||||
|
||||
@@ -3628,7 +3750,26 @@ extern void func_80171B44(s32 *a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F244);
|
||||
extern s32 func_80171B4C(s32 a0, s32 a1);
|
||||
extern s32 func_800CF854(void);
|
||||
extern void func_80154274(s32 *a0, s32 a1);
|
||||
extern s32 func_8013767C(s32 a0);
|
||||
extern u8 D_800D5A34[];
|
||||
|
||||
void func_8017F244(int param_1)
|
||||
{
|
||||
if (func_80171B4C(param_1, 0x1E) != 0) {
|
||||
if (func_800CF854() != 0) {
|
||||
*(unsigned char *)(param_1 + 0x214) = 3;
|
||||
} else {
|
||||
func_80154274((s32 *)param_1, (s32)&D_800D5A34);
|
||||
*(unsigned char *)(param_1 + 0x4D) += 1;
|
||||
*(s32 *)(param_1 + 0x198) = func_8013767C(*(s32 *)(param_1 + 0x198));
|
||||
*(unsigned char *)(param_1 + 0x214) += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_801399F0(s32);
|
||||
extern void func_80139914(s32 a0);
|
||||
@@ -3727,13 +3868,47 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F6A
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F6E8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F748);
|
||||
#include "common.h"
|
||||
|
||||
void func_8017F748(void *a0) {
|
||||
typedef struct { u8 b[8]; } Blk8x;
|
||||
extern Blk8x D_801E2DD0;
|
||||
extern s32 func_80171D78(s32 a0, s32 a1);
|
||||
extern void func_80142454(s32 a0);
|
||||
extern s32 D_801270C8;
|
||||
Blk8x buffer;
|
||||
|
||||
buffer = D_801E2DD0;
|
||||
if (func_80171D78((s32)a0, (s32)&buffer)) {
|
||||
D_801270C8 = 8;
|
||||
func_80142454(-0x80);
|
||||
*(s32 *)((s32)a0 + 0x204) = 0x20;
|
||||
*(u8 *)((s32)a0 + 0x214) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F7CC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F898);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F924);
|
||||
extern s32 func_801399F0(s32 a0);
|
||||
extern void func_80139914(s32 a0);
|
||||
extern void func_80154274(s32 *a0, s32 a1);
|
||||
extern s32 func_8013767C(s32 a0);
|
||||
extern u16 D_801943B0[];
|
||||
extern s32 D_8019727C;
|
||||
|
||||
void func_8017F924(s32 arg0) {
|
||||
s32 s0 = arg0;
|
||||
if (func_801399F0(*(s32 *)(s0 + 0x198)) != 0) {
|
||||
func_80139914(*(s32 *)(s0 + 0x198));
|
||||
func_80154274((s32 *)s0, (s32)D_801943B0);
|
||||
*(s32 *)(s0 + 0x198) = func_8013767C((s32)&D_8019727C);
|
||||
*(u8 *)(s0 + 0x214) = *(u8 *)(s0 + 0x214) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F998);
|
||||
|
||||
@@ -3755,7 +3930,24 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017FB1
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017FB80);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017FC64);
|
||||
extern void func_80175454(void);
|
||||
|
||||
void func_8017FC64(u8 *a0) {
|
||||
u16 var;
|
||||
if ((*(u16 *)((s32)a0 + 0xB8) & 0x8000) != 0) {
|
||||
if (*(s16 *)((s32)a0 + 0x20E) < 0x1000) {
|
||||
var = *(u16 *)((s32)a0 + 0x210) + 0xA;
|
||||
*(u16 *)((s32)a0 + 0x210) = var;
|
||||
*(u16 *)((s32)a0 + 0x20E) += var;
|
||||
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = *(u16 *)((s32)a0 + 0x20C) + *(u16 *)((s32)a0 + 0x20E);
|
||||
} else {
|
||||
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = *(u16 *)((s32)a0 + 0x20C);
|
||||
func_80175454();
|
||||
*(u8 *)((s32)a0 + 0x214) += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017FCFC);
|
||||
|
||||
@@ -3772,11 +3964,46 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017FF8
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017FFF0);
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_80180060);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_80154274(s32 *a0, s32 a1);
|
||||
extern void func_8014706C(void *arg0);
|
||||
extern u8 D_800D5A34[];
|
||||
extern s32 D_801270C8;
|
||||
|
||||
void func_80180060(void *arg0) {
|
||||
extern s16 D_80126968;
|
||||
|
||||
if (D_801270C8 == 0x15) {
|
||||
func_80154274((s32 *)arg0, (s32)D_800D5A34);
|
||||
func_8014706C(arg0);
|
||||
D_80126968 = -0x71;
|
||||
*(s32 *)((s32)arg0 + 0x204) = 0x12;
|
||||
(*(u8 *)((s32)arg0 + 0x214))++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_801800CC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8018016C);
|
||||
extern s32 func_801399F0(s32);
|
||||
extern void func_80139914(s32);
|
||||
extern void func_80147060(u8 * a0);
|
||||
extern void func_801903DC(void *arg0);
|
||||
extern s32 func_8017E4F8();
|
||||
|
||||
void func_8018016C(s32 a0) {
|
||||
s32 s0 = a0;
|
||||
if (func_801399F0(*(s32 *)(s0 + 0x198)) != 0) {
|
||||
func_80139914(*(s32 *)(s0 + 0x198));
|
||||
func_80147060((u8 *)s0);
|
||||
func_801903DC(0);
|
||||
func_8017E4F8();
|
||||
*(s32 *)(s0 + 0x204) = 0xA0;
|
||||
*(u8 *)(s0 + 0x214) = *(u8 *)(s0 + 0x214) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_801801DC);
|
||||
|
||||
@@ -3851,7 +4078,20 @@ void func_80180AE0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_80180B18);
|
||||
|
||||
|
||||
void func_80180B18(u32 arg0) {
|
||||
extern Blk8 D_801E2E00;
|
||||
extern s16 D_8012696A;
|
||||
Blk8 buffer;
|
||||
|
||||
buffer = D_801E2E00;
|
||||
if (func_80171D78(arg0, &buffer)) {
|
||||
D_8012696A = 0x400;
|
||||
*(u8 *)((s32)arg0 + 0x214) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_80180B90);
|
||||
|
||||
@@ -3899,7 +4139,29 @@ void func_80181028(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_80181060);
|
||||
extern void func_8017E898();
|
||||
extern void func_80181270(s32 a0);
|
||||
|
||||
void func_80181060(s32 param_1)
|
||||
{
|
||||
extern s32 D_80126958;
|
||||
extern s32 D_8012695C;
|
||||
extern u16 D_80126970;
|
||||
extern s16 D_80126976;
|
||||
|
||||
if (func_801399F0(*(s32 *)(param_1 + 0x198)) != 0) {
|
||||
func_80139914(*(s32 *)(param_1 + 0x198));
|
||||
func_8017E898();
|
||||
*(s32 *)(param_1 + 0x204) = 0x30;
|
||||
func_80181270(param_1);
|
||||
D_80126970 = 0;
|
||||
D_80126976 = 0;
|
||||
D_80126958 = 0x190;
|
||||
D_8012695C = 0x190;
|
||||
*(unsigned char *)(param_1 + 0x214) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_801810F0);
|
||||
|
||||
@@ -3942,7 +4204,25 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8018141
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_801814B4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_80181570);
|
||||
void func_80181570(s32 a0) {
|
||||
extern s32 D_800D5C00[];
|
||||
extern s32 D_800D6004[];
|
||||
extern s32 D_80194370;
|
||||
s32 v1;
|
||||
s32 v0;
|
||||
|
||||
func_801816CC(a0, 0xC000);
|
||||
v1 = *(s32 *)((s32)a0 + 0x20);
|
||||
v0 = *(s16 *)(v1 + 0x10);
|
||||
if (v0 < 0xC00) {
|
||||
*(s16 *)(v1 + 0x10) = 0xC00;
|
||||
func_80154274((s32 *)a0, (s32)D_800D5C00);
|
||||
func_80154B4C((u8 *)a0, (s32)D_800D6004);
|
||||
func_800D1724((s32)&D_80194370);
|
||||
*(u8 *)((s32)a0 + 0x214) += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_801815FC);
|
||||
|
||||
@@ -3974,7 +4254,24 @@ s32 func_801816CC(s32 a0, s32 a1) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_801816FC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_80181900);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_80186304(u8 *a0, s32 a1, s32 a2);
|
||||
extern void func_801844D4(s32 a0);
|
||||
|
||||
void func_80181900(s32 a0) {
|
||||
func_8012AD44((s32 *)a0, 3);
|
||||
func_80186304((u8 *)a0, 7, 2);
|
||||
if (*(s16 *)((s32)a0 + 0xE0) >= 0) {
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0x1F;
|
||||
} else {
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0x2F;
|
||||
}
|
||||
if (*(s32 *)((s32)a0 + 0xE8) & 0x2000) {
|
||||
*(s32 *)((s32)a0 + 0x1C) -= 0x10;
|
||||
}
|
||||
func_801844D4(*(s32 *)((s32)a0 + 0xD0));
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_80181984);
|
||||
|
||||
|
||||
@@ -5325,7 +5325,10 @@ void func_8017E72C(int a, s16 *b, SVECTOR_8017E72C *c, SVECTOR_8017E72C *d,
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8017EAC0);
|
||||
void func_8017EAC0(void *a0, s32 a1, s32 a2) {
|
||||
func_80146A6C(0x2C, a0, 0, (s16)a1, 0, a2, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_80194C98[])(void);
|
||||
@@ -5810,7 +5813,17 @@ void func_8017F578(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8017F5B4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8017F630);
|
||||
extern void func_80146E90(s32 *a0, s32 a1);
|
||||
extern s32 func_80146E98(s32 a0);
|
||||
|
||||
void func_8017F630(void *a0) {
|
||||
if (func_80146E98((s32)a0) != 0) {
|
||||
func_80146E90((s32 *)a0, 8);
|
||||
*(s16 *)((u8 *)a0 + 0x28) = 0x20;
|
||||
*(u16 *)((u8 *)a0 + 2) = *(u16 *)((u8 *)a0 + 2) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017F67C;
|
||||
typedef struct {
|
||||
@@ -7147,9 +7160,29 @@ void func_801820B8(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801820F4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182148);
|
||||
void func_80182148(s32 a0) {
|
||||
s16 buf[3];
|
||||
|
||||
buf[0] = -0xE0;
|
||||
buf[2] = 0x3D2;
|
||||
buf[1] = *(s16 *)(a0 + 0xA);
|
||||
if (func_80171D78(a0, (s32)buf) != 0) {
|
||||
func_801722CC((s32 *)a0);
|
||||
func_80171990((u8 *)a0);
|
||||
}
|
||||
func_80182344(a0);
|
||||
}
|
||||
|
||||
|
||||
void func_801821AC(s32 param_1) {
|
||||
func_80172304((s32 *)param_1);
|
||||
func_80171EC8(param_1);
|
||||
if (func_80172664((s32 *)param_1) == 0) {
|
||||
func_80171990((u8 *)param_1);
|
||||
}
|
||||
func_80182344((u8 *)param_1);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801821AC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801821FC);
|
||||
|
||||
@@ -7157,7 +7190,12 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018226
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801822F4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182344);
|
||||
extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
|
||||
void func_80182344(s32 param_1) {
|
||||
*(s16 *)(param_1 + 6) = func_80012F74(*(s16 *)(param_1 + 6), -0xE0, 10, 1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182380);
|
||||
|
||||
@@ -7324,11 +7362,24 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182AF
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182B88);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182D60);
|
||||
void func_80182D60(void *a0) {
|
||||
extern void (*D_801955B0[])(void *);
|
||||
if (func_80182DB8(a0) == 1) {
|
||||
D_801955B0[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182DB8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182E68);
|
||||
void func_80182E68(void *a0) {
|
||||
if ((func_800291B4(0xCD) & 0xFF) == 0 || (func_80029178(0x9E) & 0xFF) != 0) {
|
||||
func_8012CAE4(a0);
|
||||
} else {
|
||||
*(u16 *)((s32)a0 + 2) = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80182EC8);
|
||||
|
||||
@@ -7347,7 +7398,15 @@ extern void func_8012A828(s32, void*);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80183080);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018312C);
|
||||
void func_8018312C(s32 a0) {
|
||||
extern s16 D_80195198;
|
||||
*(s16 *)(a0 + 2) = 7;
|
||||
func_80178CBC(a0, (s32)&D_80195198);
|
||||
func_8012B23C(a0);
|
||||
*(s16 *)(a0 + 0x34) = 9;
|
||||
func_80184A54();
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80183178);
|
||||
|
||||
@@ -7444,15 +7503,44 @@ void func_8018446C(s32 param_1) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018452C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80184590);
|
||||
void func_80184590(s32 param_1) {
|
||||
extern u8 D_80126B5C;
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
|
||||
*(s32 *)(param_1 + 4) = *(s32 *)&D_80126B5C;
|
||||
func_8012C588(0xBA, param_1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801845C0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801845F4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80184738);
|
||||
void func_80184738(s32 a0) {
|
||||
extern u8 D_801202A0[];
|
||||
u8 *p;
|
||||
s32 i;
|
||||
|
||||
p = D_801202A0;
|
||||
for (i = 0; i < 0x60; i++, p += 0x10C) {
|
||||
if (*(u16 *)p == 0xB0) {
|
||||
if ((*(u16 *)(p + 0x70) & 0xF) == 0) {
|
||||
*(s16 *)(p + 0xFC) = a0;
|
||||
*(u16 *)(p + 0x70) |= 0x800;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_8018479C(void) {
|
||||
extern u16 D_80126B66;
|
||||
extern u16 D_80126B5E;
|
||||
extern s32 D_80195414;
|
||||
|
||||
D_80195414 = ((u32)D_80126B5E | (((s32)(s16)D_80126B66 - 0x180) << 16));
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018479C);
|
||||
|
||||
extern void func_8012A568(void (*a0)(void));
|
||||
extern s32 func_8018263C();
|
||||
@@ -7494,7 +7582,15 @@ void func_8018490C(s32 *a0, s32 a1, s16 a2) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80184918);
|
||||
extern void func_800D0C48(s32 a0);
|
||||
|
||||
void func_80184918(s32 arg0, s32 arg1) {
|
||||
func_800D0C48(1);
|
||||
*(s16 *)((s32)arg0 + 0x104) = 1;
|
||||
*(s32 *)((s32)arg0 + 0xE4) = 0x1E;
|
||||
*(s32 *)((s32)arg0 + 0xE0) = arg1;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80184964);
|
||||
|
||||
@@ -7523,7 +7619,21 @@ void func_80184ACC(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80184B08);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80184C0C);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_801F432C;
|
||||
extern s32 D_80195744;
|
||||
|
||||
void func_80184C0C(s32 param_1) {
|
||||
*(u16 *)(param_1 + 6) = *(u16 *)(*(s32 *)(param_1 + 0x64) + 6);
|
||||
*(u16 *)(param_1 + 0xE) = *(u16 *)(*(s32 *)(param_1 + 0x64) + 0xE);
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = *(u16 *)(*(s32 *)(*(s32 *)(param_1 + 0x64) + 0x20) + 0x12);
|
||||
if (*(s32 *)(*(s32 *)(param_1 + 0x64) + 0x90) == (s32)&D_801F432C) {
|
||||
*(s16 *)(param_1 + 2) = 3;
|
||||
func_8012A828(param_1, &D_80195744);
|
||||
*(s32 *)(param_1 + 0x1c) = 0xe;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80184C98);
|
||||
|
||||
@@ -8079,7 +8189,16 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018618
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801861FC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80186250);
|
||||
void func_80186250(s32 arg0) {
|
||||
extern void func_80186548(s32 *a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s8 D_801959A8[];
|
||||
|
||||
*(s32 *)((s32)arg0 + 0x58) = (s32)&D_801959A8;
|
||||
func_80186548((s32 *)arg0);
|
||||
func_8012AD44((s32 *)arg0, 6);
|
||||
}
|
||||
|
||||
|
||||
s32 func_80186290(s32 arg0) {
|
||||
return *(u16*)(arg0 + 0x2) == 0x6;
|
||||
@@ -8221,7 +8340,18 @@ void func_80186548(s32 *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80186558);
|
||||
void func_80186558(s32 a0) {
|
||||
s32 v;
|
||||
|
||||
func_8012AD80(a0);
|
||||
v = *(s32 *)(a0 + 0x14);
|
||||
if (v > 0x14000) {
|
||||
*(s32 *)(a0 + 0x48) = -0x1400;
|
||||
} else if (v < -0x14000) {
|
||||
*(s32 *)(a0 + 0x48) = 0x1400;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_801865B0(s32 arg0) {
|
||||
s32 *p = *(s32 **)((s32)arg0 + 0xcc);
|
||||
@@ -8489,7 +8619,20 @@ void func_80186F74(s32 a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80187018);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018707C);
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_8018707C(s32 a0)
|
||||
{
|
||||
extern s16 D_801EBA08;
|
||||
|
||||
if (func_80178970() == 0) return;
|
||||
if (D_801EBA08 != 0) return;
|
||||
((void (*)(s32))func_80178D18)(a0);
|
||||
((void (*)(s32))func_8012C218)(a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801870D0);
|
||||
|
||||
@@ -8997,7 +9140,19 @@ extern void func_8002D4C8(s32 arg0, s32 arg1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801883EC);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8002A04C(void);
|
||||
extern void func_8012C098(void);
|
||||
|
||||
void func_801883EC(s32 a0) {
|
||||
if (*(s16 *)(a0 + 0x102) == 0) {
|
||||
func_8002A04C();
|
||||
}
|
||||
|
||||
((void (*)(s32))func_8012C098)(a0);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
#include "/home/musashi/bfm-decomp/src/shared/engine_core.h"
|
||||
@@ -9180,7 +9335,19 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188A1
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188D54);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188D80);
|
||||
extern void func_80188DC8(void*);
|
||||
extern void func_80188DF4();
|
||||
extern short D_801D4494;
|
||||
|
||||
void func_80188D80(s32 a0) {
|
||||
s32 a1 = 4;
|
||||
if (*(s16 *)((s32)a0 + 0x100) == 0) {
|
||||
((void (*)(s32))func_80188DC8)(a0);
|
||||
} else {
|
||||
((void (*)(s32, s32, s32, s32))func_80188DF4)(a0, a1, 0x1E, (s32)&D_801D4494);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012A828(s32, void*);
|
||||
@@ -9191,7 +9358,15 @@ extern void func_8012A828(s32, void*);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188DF4);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
|
||||
void func_80188DF4(s32 arg0, s32 arg1, s32 arg2, void *arg3) {
|
||||
*(short *)((char *)arg0 + 0x34) = arg1;
|
||||
*(short *)((char *)arg0 + 0x2) = 4;
|
||||
func_8012A828(arg0, arg3);
|
||||
*(s32 *)((char *)arg0 + 0x1C) = arg2;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80188E3C);
|
||||
|
||||
@@ -9377,7 +9552,19 @@ extern void func_8012A828(s32, void*);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801895CC);
|
||||
void func_801895CC(s32 a0) {
|
||||
s32 v0;
|
||||
if (*(s16 *)(a0 + 0x100) == 0) {
|
||||
v0 = 0xB;
|
||||
} else {
|
||||
if (func_8012BD3C(a0, 0x400, 0x40000) == 0) {
|
||||
return;
|
||||
}
|
||||
v0 = 0xD;
|
||||
}
|
||||
*(s16 *)(a0 + 0x2) = v0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012A828(s32, void*);
|
||||
@@ -9388,7 +9575,13 @@ extern void func_8012A828(s32, void*);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018964C);
|
||||
void func_8018964C(void *arg0) {
|
||||
if (*(u16 *)((s32)arg0 + 0x72) & 0x4000) {
|
||||
*(u16 *)((s32)arg0 + 0x2) = 9;
|
||||
*(u16 *)((s32)arg0 + 0x100) = 3;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80189674);
|
||||
|
||||
@@ -9431,7 +9624,18 @@ void func_801896B4(s32 param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018974C);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern u8 D_801D3ACC[];
|
||||
|
||||
void func_8018974C(s32 a0) {
|
||||
s32 s0 = a0;
|
||||
func_8012A828(a0, D_801D3ACC);
|
||||
*(u16 *)(s0 + 2) = 0x10;
|
||||
func_8012B23C(s0);
|
||||
*(s32 *)(*(s32 *)(s0 + 0x20) + 4) |= 0x80000000;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -9778,7 +9982,20 @@ extern s32 func_8012AD50(void *a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018A640);
|
||||
extern s32 D_80126B58;
|
||||
extern s32 func_80172688(s32 *a0);
|
||||
extern void func_8012BF4C(s32 *a0, s32 a1);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
void func_8018A1A4(void *a0);
|
||||
|
||||
void func_8018A640(s32 *a0) {
|
||||
if (func_80172688(&D_80126B58)) {
|
||||
func_8018A1A4(a0);
|
||||
func_8012BF4C(a0, 0x20);
|
||||
func_8012AD50(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018A698);
|
||||
|
||||
@@ -11097,7 +11314,18 @@ void func_8018BD70(s32 arg0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018BDB8);
|
||||
extern void func_8002AC00(s32 arg0);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_8018BDB8(s32 *arg0) {
|
||||
func_8002AC00(8);
|
||||
if (*(u16 *)((u8 *)arg0 + 0x5E) == 0x1D) {
|
||||
func_8002D4C8(0x440, 0);
|
||||
} else {
|
||||
func_8002D4C8(0x43F, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
@@ -11256,7 +11484,19 @@ void func_8018C388(int param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_8018C3C0);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
|
||||
void func_8018C3C0(s32 param_1)
|
||||
{
|
||||
if (func_8012BEE8(param_1) == 1) {
|
||||
if (*(s16 *)(param_1 + 0x70) & 0x8000) {
|
||||
func_8018BE40(param_1, 0x40000, 0xC4000);
|
||||
} else {
|
||||
func_8018BE40(param_1, 0x9000, 0x24000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: plumbing
|
||||
|
||||
@@ -3273,7 +3273,22 @@ void func_8017E8C4(void)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8017E904);
|
||||
extern int func_8017FAB0(int param_1);
|
||||
|
||||
void func_8017E904(void)
|
||||
{
|
||||
|
||||
extern u16 D_8018FCEC[];
|
||||
extern u8 D_8018FD8C;
|
||||
extern u8 *D_801274C8;
|
||||
extern void *D_801274CC;
|
||||
extern s32 D_8012704C;
|
||||
D_801274C8 = (u8 *)D_8018FCEC;
|
||||
D_801274CC = (void *)&D_8018FD8C;
|
||||
func_8017FAB0(6);
|
||||
D_8012704C = 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018F044[])(void);
|
||||
@@ -3831,7 +3846,32 @@ extern void func_801806FC(void * arg0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80180088);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80180538);
|
||||
extern void func_8012931C(struct vec *a0);
|
||||
extern void func_80143BDC(u16 *a0);
|
||||
|
||||
void func_80180538(void *a0) {
|
||||
u16 sp10[3];
|
||||
u16 sp18[3];
|
||||
|
||||
sp10[0] = *(u16 *)((s32)a0 + 0x6);
|
||||
sp10[1] = *(u16 *)((s32)a0 + 0xA);
|
||||
sp10[2] = *(u16 *)((s32)a0 + 0xE);
|
||||
|
||||
*(s32 *)((s32)a0 + 0x14) += 0x18000;
|
||||
|
||||
func_8012931C((struct vec *)a0);
|
||||
|
||||
sp18[0] = *(u16 *)((s32)a0 + 0x6);
|
||||
sp18[1] = *(u16 *)((s32)a0 + 0xA);
|
||||
sp18[2] = *(u16 *)((s32)a0 + 0xE);
|
||||
|
||||
if (func_80133784(1, &sp10, (s32)&sp18) != 0) {
|
||||
sp18[1] -= 8;
|
||||
func_80143BDC(&sp18[0]);
|
||||
func_801292C8((u8 *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -3982,7 +4022,20 @@ void func_801808CC(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80180908);
|
||||
typedef struct { s32 w[8]; } Blk32_80180908;
|
||||
|
||||
void func_80180908(s32 *a0) {
|
||||
extern u8 D_801DA130[];
|
||||
extern Blk32_80180908 D_800AE620;
|
||||
extern Blk32_80180908 D_801DA730;
|
||||
extern u16 D_801DA740;
|
||||
|
||||
func_80016714(D_801DA130, 0x600);
|
||||
D_801DA730 = D_800AE620;
|
||||
D_801DA740 = 0x1000;
|
||||
*(u16 *)((u8 *)a0 + 0x2) += 1;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801809A8);
|
||||
|
||||
@@ -4182,7 +4235,7 @@ tail:
|
||||
|
||||
extern code_fn D_801AB590[];
|
||||
|
||||
extern s32 func_80182204(s32 a0);
|
||||
extern s32 func_80182204();
|
||||
|
||||
void func_801820BC(int param_1)
|
||||
{
|
||||
@@ -4192,11 +4245,41 @@ void func_801820BC(int param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018210C);
|
||||
extern u16 D_801AB580[];
|
||||
extern void func_8001C924(void *a0, s32 *a1);
|
||||
extern void func_8018218C(void *a0);
|
||||
|
||||
void func_8018210C(void *a0) {
|
||||
*(u8 *)((s32)a0 + 0xC1) = 0;
|
||||
*(s16 *)((s32)a0 + 0x5E) = 0;
|
||||
*(s16 *)((s32)a0 + 0x5C) = 0;
|
||||
func_80029124(D_801AB580[*(s16 *)((s32)a0 + 0x70)], 1);
|
||||
if (*(s32 *)((s32)a0 + 0xDC) != 0) {
|
||||
s32 t = *(s32 *)(*(s32 *)((s32)a0 + 0xDC) + 4);
|
||||
if (t != 0) {
|
||||
func_8001C924((void *)*(s32 *)((s32)a0 + 0x20), (s32 *)t);
|
||||
}
|
||||
}
|
||||
func_8018218C(a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018218C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182204);
|
||||
s32 func_80182204(u8 *a0)
|
||||
{
|
||||
s32 *p;
|
||||
void (*fp)(u8 *, u8 *);
|
||||
|
||||
p = *(s32 **)(a0 + 0xDC);
|
||||
if (p != 0) {
|
||||
fp = (void (*)(u8 *, u8 *))p[3];
|
||||
if (fp != 0) {
|
||||
fp(a0, a0 + 0x24);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 8-byte, align-4 pair record: the per-index slot pair at D_801DA750/D_801DA754 */
|
||||
@@ -4357,7 +4440,20 @@ extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801825D8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182610);
|
||||
extern void (*D_8018B99C)(void *);
|
||||
|
||||
void func_80182610(s32 a0)
|
||||
{
|
||||
s32 s0 = a0;
|
||||
|
||||
func_80153C30();
|
||||
func_8012DB84();
|
||||
func_8013C9C4(&D_8018B99C);
|
||||
func_8012AD44((s32 *)s0, 3);
|
||||
func_8002D4C8(4, 0x675);
|
||||
func_8002D4C8(0xAAE, 0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182674);
|
||||
|
||||
@@ -4370,13 +4466,32 @@ void func_801826FC(s32 *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182724);
|
||||
void func_80182724(void *arg0)
|
||||
{
|
||||
*(s32 *)((char *)arg0 + 0x44) = 0x4000;
|
||||
func_8012AD44((s32 *)arg0, 2);
|
||||
func_8002D4C8(0x684, 0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182758);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801827C8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182828);
|
||||
extern u16 D_80126B5E;
|
||||
|
||||
void func_80182828(void) {
|
||||
extern u16 D_80126B62;
|
||||
s32 tmp;
|
||||
|
||||
if (*(s16 *)&D_80126B5E < 0x281) {
|
||||
if (*(s16 *)&D_80126B62 < -0x658) {
|
||||
tmp = -0x658;
|
||||
*(u16 *)&D_80126B62 = (u16)tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -4467,9 +4582,37 @@ void func_80182868(void *a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182A44);
|
||||
extern s32 func_80029178(s32 arg0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
void func_80182A44(void *arg0) {
|
||||
if (((func_80029178(0xAE) & 0xFF) != 0) || (*(s16 *)((s32)arg0 + 0x70) == 0)) {
|
||||
func_8012AD44((s32 *)arg0, 3);
|
||||
} else {
|
||||
func_8012AD44((s32 *)arg0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void func_80182AA4(void *a0) {
|
||||
extern Stride8_s16_80182868 D_801AB676[];
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
s32 v0;
|
||||
|
||||
v0 = D_801AB676[*(s16 *)((s32)a0 + 0x70)].v;
|
||||
if (v0 == 0) {
|
||||
v0 = 0x8000;
|
||||
} else {
|
||||
v0 = -0x8000;
|
||||
}
|
||||
*(s32 *)((s32)a0 + 0x44) = v0;
|
||||
func_8012AD44((s32 *)a0, 2);
|
||||
func_8002D4C8(0x686, 0);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182AA4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80182AFC);
|
||||
|
||||
@@ -4684,7 +4827,16 @@ void func_80182FC8(void *a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018309C);
|
||||
extern void func_80182724(void*);
|
||||
|
||||
void func_8018309C(void *a0) {
|
||||
if ((func_80029178(0xAE) & 0xFF) == 0) {
|
||||
if (func_8012BEE8((s32)a0)) {
|
||||
((void (*)(s32))func_80182724)((s32)a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801830EC);
|
||||
|
||||
@@ -4692,7 +4844,13 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018315
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801831F4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801832B0);
|
||||
void func_801832B0(u8 *a0)
|
||||
{
|
||||
extern void func_80182D4C(u8 *a0, u8 *a1, s32 a2);
|
||||
extern s32 D_801AB660[];
|
||||
func_80182D4C(a0, (u8 *)D_801AB660, -1);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
void func_801832D8(s32 a0) {
|
||||
@@ -4701,11 +4859,49 @@ extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801832FC);
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80183344);
|
||||
void func_801832FC(s32 a0) {
|
||||
*(s16 *)((s32)a0 + 0xFE) = 1;
|
||||
func_8012C658(0x156, *(s16 *)((s32)a0 + 0x70), (s32)a0);
|
||||
((void (*)(void *, s32))func_8012AD44)((void *)a0, 2);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
void func_80183344(s32 a0) {
|
||||
*(s16 *)((s32)a0 + 0x100) = 1;
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x1A) = 0x100;
|
||||
*(s16 *)((s32)a0 + 0xFE) = 1;
|
||||
func_8012C658(0x156, *(s16 *)((s32)a0 + 0x70), (s32)a0);
|
||||
func_8012AD44((s32 *)a0, 2);
|
||||
}
|
||||
|
||||
|
||||
void func_8018339C(s32 s0) {
|
||||
typedef void (*FuncPtr)(void);
|
||||
extern s32 D_801AB72C[];
|
||||
extern u16 D_80126B96;
|
||||
extern s16 D_80126B98;
|
||||
extern s32 func_80183418(s32 a0);
|
||||
FuncPtr fn;
|
||||
s16 v0;
|
||||
|
||||
fn = (FuncPtr)D_801AB72C[*(u16 *)(s0 + 2)];
|
||||
fn();
|
||||
|
||||
v0 = *(s16 *)(s0 + 0x100);
|
||||
if (v0 == 0) {
|
||||
if (func_80183418(s0) != 0) {
|
||||
D_80126B96 = 0xC00B;
|
||||
D_80126B98 = 0x18;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018339C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80183418);
|
||||
|
||||
@@ -4785,7 +4981,24 @@ extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801836B0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_80178D18(void);
|
||||
|
||||
void func_801836B0(void *arg0)
|
||||
{
|
||||
if (*(s16 *)((s32)arg0 + 0xFE) != 0) {
|
||||
func_80178D18();
|
||||
*(s16 *)((s32)arg0 + 0xFE) = 0;
|
||||
*(s16 *)((s32)arg0 + 0x102) = 0;
|
||||
}
|
||||
__asm__ __volatile__("");
|
||||
((void (*)(void *, s32))func_8012AD44)(arg0, 3);
|
||||
if (*(s16 *)((s32)arg0 + 0xFC) == 0) {
|
||||
*(u16 *)((s32)arg0 + 0x34) = 2;
|
||||
*(s32 *)((s32)arg0 + 0x1C) = 0x40;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -4926,9 +5139,36 @@ extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80183938);
|
||||
extern void (*D_801AB778[])(void);
|
||||
extern void func_8012C218(void *a0);
|
||||
extern void func_8012E014(s32 arg0);
|
||||
|
||||
void func_80183938(void *a0)
|
||||
{
|
||||
D_801AB778[*(u16 *)((s32)a0 + 2)]();
|
||||
if (*(s32 *)((s32)a0 + 0x64) != 0 &&
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x64) + 0xFE) == 0) {
|
||||
func_8012C218(a0);
|
||||
} else if (*(u8 *)((s32)a0 + 0x74) != 0) {
|
||||
func_8012E014((s32)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
|
||||
void func_801839C8(s32 a0) {
|
||||
s32 i;
|
||||
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
for (i = 0; i < 10; i++) {
|
||||
if (func_8012C658(0x16F, i, a0) != 0) {
|
||||
(*(u16 *)(a0 + 0xFC))++;
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0x106) = *(u16 *)(a0 + 0xFC);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801839C8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80183A40);
|
||||
|
||||
@@ -5941,7 +6181,22 @@ extern void func_8012A828(s32 a0, s32 a1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80185960);
|
||||
extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012E778(s32 param_1, s32 param_2);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_80185960(s32 a0) {
|
||||
if (func_8012BD3C(a0, 0x400, *(s32 *)(a0 + 0xDC)) != 0) {
|
||||
*(s16 *)(a0 + 0x2) = 3;
|
||||
}
|
||||
|
||||
if ((*(u16 *)(a0 + 0x72) & 0x4000) != 0) {
|
||||
if (func_8012E778(a0, 0x8C00B4) == 1) {
|
||||
func_8002D4C8(0x64A, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_801859D0(void *a0) {
|
||||
M2C_FIELD(a0, s16 *, 0x2) = 4;
|
||||
@@ -5950,7 +6205,33 @@ void func_801859D0(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801859DC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80185BC0);
|
||||
void func_80185BC0(s32 a0)
|
||||
{
|
||||
s32 v0;
|
||||
register s32 v1 __asm__("$3");
|
||||
|
||||
if (func_8012BEE8(a0)) {
|
||||
if (func_8012BD14(a0) > 0x18FFF) {
|
||||
v1 = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(a0 + 0x2) = 6;
|
||||
*(s32 *)(a0 + 0x1C) = 0x20;
|
||||
*(s32 *)(v1 + 4) &= 0x7FFFFFFF;
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) |= 0x10;
|
||||
v1 = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(v1 + 0x1C) = 1;
|
||||
*(u16 *)(v1 + 0x1A) = 1;
|
||||
*(u16 *)(v1 + 0x18) = 1;
|
||||
v0 = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(v0 + 0x14) = 0;
|
||||
*(u16 *)(v0 + 0x10) = 0;
|
||||
v0 = *(s32 *)(a0 + 0x68);
|
||||
v1 = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(v1 + 0x12) = *(u16 *)(v0 + 0xC);
|
||||
func_8012B2CC(a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80185C84);
|
||||
|
||||
@@ -6070,7 +6351,35 @@ INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80185F0
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80185FB0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80186018);
|
||||
extern u8 D_801AF758;
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8018633C();
|
||||
|
||||
void func_80186018(s32 self) {
|
||||
s32 p;
|
||||
s32 q;
|
||||
s32 e;
|
||||
|
||||
p = *(s32 *)(self + 0xCC);
|
||||
q = *(s32 *)(self + 0x20);
|
||||
*(u16 *)(q + 0x10) = *(u16 *)(p + 0);
|
||||
*(u16 *)(q + 0x14) = *(u16 *)(p + 4);
|
||||
p += 8;
|
||||
if (*(s16 *)(p + 6) == 0x7FFF) {
|
||||
*(s32 *)(self + 0xCC) = (s32)&D_801AF758;
|
||||
} else {
|
||||
*(s32 *)(self + 0xCC) = p;
|
||||
}
|
||||
if (func_8012BEE8(self) != 0) {
|
||||
*(u8 *)(self + 0xC1) = 0;
|
||||
*(u16 *)(self + 0x5E) = 0;
|
||||
e = *(s32 *)(self + 0x20);
|
||||
*(u16 *)(e + 0x14) = 0;
|
||||
*(u16 *)(e + 0x10) = 0;
|
||||
func_8018633C(self);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_801860A8(void *a0) {
|
||||
*(short *)((char *)a0 + 0x5c) = 0;
|
||||
@@ -6147,13 +6456,126 @@ void func_801860B8(s32 arg0_)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801861E8);
|
||||
void func_801861E8(s32 a0) {
|
||||
s32 var_s0;
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80186248);
|
||||
var_s0 = 0x10000;
|
||||
*(s16 *)(a0 + 0x5C) = 0;
|
||||
*(s32 *)(a0 + 0x1C) = 0x1E;
|
||||
if ((*(u16 *)(a0 + 0x70) & 1) == 0) {
|
||||
var_s0 = 0x6400;
|
||||
}
|
||||
if (func_8012BD14(a0) < var_s0) {
|
||||
func_8002D4C8(0x64B, 0);
|
||||
} else {
|
||||
func_8002D4C8(0x652, 0);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801862A8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018633C);
|
||||
extern void func_8002AC00(s32 arg0);
|
||||
extern void func_80130D48(s32 a0);
|
||||
extern s32 func_801862A8();
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
|
||||
void func_80186248(void *a0) {
|
||||
s32 *ent = *(s32 **)((s32)a0 + 0x20);
|
||||
ent[1] ^= 0x80000000;
|
||||
if (func_8012BEE8((s32)a0)) {
|
||||
func_8002AC00(0xF);
|
||||
func_80130D48((s32)a0);
|
||||
func_801862A8(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012C098(void *param_1);
|
||||
|
||||
s32 func_801862A8(s32 arg0)
|
||||
{
|
||||
s32 temp;
|
||||
|
||||
func_8002A04C(arg0);
|
||||
if ((*(s16 *)(arg0 + 0x70) & 0xC000) != 0) {
|
||||
func_8012C098((void *)arg0);
|
||||
} else {
|
||||
temp = *(s32 *)(arg0 + 0x20);
|
||||
*(s16 *)(arg0 + 0x2) = 5;
|
||||
*(s8 *)(arg0 + 0xC1) = 0;
|
||||
*(s32 *)(arg0 + 0x1C) = 0x78;
|
||||
*(s16 *)(arg0 + 0x5E) = 0;
|
||||
*(s16 *)(arg0 + 0x5C) = 0;
|
||||
*(s32 *)(temp + 0x4) |= 0x80000000;
|
||||
*(u16 *)(arg0 + 0xAA) = 0;
|
||||
*(s16 *)(arg0 + 0x6) = *(u16 *)(arg0 + 0x88);
|
||||
*(s16 *)(arg0 + 0xA) = *(u16 *)(arg0 + 0x8A);
|
||||
*(s16 *)(arg0 + 0xE) = *(u16 *)(arg0 + 0x8C);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
typedef struct {
|
||||
u8 pad00[0x02];
|
||||
u16 f02;
|
||||
u8 pad04[0x02];
|
||||
u16 f06;
|
||||
u8 pad08[0x02];
|
||||
u16 f0A;
|
||||
u8 pad0C[0x02];
|
||||
u16 f0E;
|
||||
u8 pad10[0x08];
|
||||
u16 f18;
|
||||
u16 f1A;
|
||||
u16 f1C;
|
||||
u8 pad1E[0x02];
|
||||
void *f20;
|
||||
u8 pad24[0x08];
|
||||
u16 f2C;
|
||||
u8 pad2E[0x2E];
|
||||
u16 f5C;
|
||||
u8 pad5E[0x12];
|
||||
u16 f70;
|
||||
u8 pad72[0x06];
|
||||
void *f78;
|
||||
u8 pad7C[0x0C];
|
||||
u16 f88;
|
||||
u16 f8A;
|
||||
u16 f8C;
|
||||
u8 pad8E[0x72];
|
||||
u16 f100;
|
||||
} Str_8018633C;
|
||||
|
||||
void func_8018633C(Str_8018633C *arg0) {
|
||||
u16 a;
|
||||
u16 b;
|
||||
u16 c;
|
||||
u16 d;
|
||||
u16 e;
|
||||
void *t;
|
||||
void *p;
|
||||
|
||||
arg0->f02 = 1;
|
||||
t = arg0->f78;
|
||||
a = *(u16 *)((u8 *)t + 2);
|
||||
b = arg0->f88;
|
||||
c = arg0->f8A;
|
||||
d = arg0->f8C;
|
||||
e = arg0->f70;
|
||||
arg0->f06 = b;
|
||||
arg0->f0A = c;
|
||||
arg0->f0E = d;
|
||||
arg0->f5C = a;
|
||||
if (e & 1) {
|
||||
p = arg0->f20;
|
||||
*(u16 *)((u8 *)p + 0x2C) |= 0x10;
|
||||
p = arg0->f20;
|
||||
*(u16 *)((u8 *)p + 0x1C) = 0x1666;
|
||||
*(u16 *)((u8 *)p + 0x1A) = 0x1666;
|
||||
*(u16 *)((u8 *)p + 0x18) = 0x1666;
|
||||
arg0->f100 = 0x1666;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_801AF89C[])(void);
|
||||
@@ -6163,7 +6585,34 @@ void func_801863B0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801863EC);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern u8 D_801B30B0;
|
||||
|
||||
typedef struct {
|
||||
u16 a, b, c, d;
|
||||
} Rec8_801863EC;
|
||||
|
||||
void func_801863EC(s32 a0)
|
||||
{
|
||||
s32 v0;
|
||||
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)(a0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4((void *)a0);
|
||||
} else {
|
||||
func_8001C214(v0, (s32)&D_801B30B0);
|
||||
*(s16 *)(a0 + 0xFC) = *(u16 *)(*(s32 *)(a0 + 0x64) + 0x36);
|
||||
*(Rec8_801863EC *)(*(s32 *)(a0 + 0x20) + 0x18) =
|
||||
*(Rec8_801863EC *)(*(s32 *)(*(s32 *)(a0 + 0x64) + 0x20) + 0x18);
|
||||
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) =
|
||||
*(u16 *)(*(s32 *)(*(s32 *)(a0 + 0x64) + 0x20) + 0x2C);
|
||||
*(s16 *)(a0 + 0x2) = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012C218(void *a0);
|
||||
void func_801864A4(s32 arg0) {
|
||||
@@ -6181,11 +6630,39 @@ void func_801864E0(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_8018651C);
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8012E8A8(u8 *a0);
|
||||
|
||||
void func_8018651C(void *a0) {
|
||||
|
||||
extern u8 D_801AF8B4[];
|
||||
s32 ptr;
|
||||
unsigned short v1;
|
||||
unsigned short v0;
|
||||
|
||||
if (func_8012C354((s32)a0, (s32)D_801AF8B4) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
ptr = *(s32 *)((s32)a0 + 0x64);
|
||||
v1 = *(unsigned short *)(ptr + 0x36);
|
||||
v0 = *(unsigned short *)((s32)a0 + 0x70);
|
||||
*(unsigned short *)((s32)a0 + 0xFC) = v1;
|
||||
|
||||
if (!(v0 & 1)) {
|
||||
func_8012E8A8((u8 *)a0);
|
||||
}
|
||||
|
||||
ptr = *(s32 *)((s32)a0 + 0x64);
|
||||
v1 = *(unsigned short *)(ptr + 0xFC);
|
||||
*(unsigned short *)((s32)a0 + 0x2) = 1;
|
||||
*(unsigned short *)((s32)a0 + 0x104) = v1;
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_80186A30(s32 a0);
|
||||
extern s32 func_80186A30();
|
||||
extern u8 D_801B4380;
|
||||
|
||||
void func_80186594(s32 a0) {
|
||||
@@ -6244,7 +6721,7 @@ typedef struct {
|
||||
extern void func_8012F14C(s32 a0, s32 a1, s32 a2); /* TU:329 file scope, verbatim */
|
||||
extern s32 func_8012BEE8(s32 a0); /* TU:4993/5216/7272, verbatim */
|
||||
extern void func_8012CC1C(s32 arg0, s32 arg1); /* fleet-canonical void; $v0 used -> cast */
|
||||
extern s32 func_80186A30(s32 a0);
|
||||
extern s32 func_80186A30();
|
||||
extern void func_80186B68(s32 a0, s32 a1);
|
||||
extern void func_80186AAC(s32 a0);
|
||||
extern void func_801869C0(s32 a0);
|
||||
@@ -6325,11 +6802,53 @@ void func_801867AC(s32 a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_801869C0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80186A30);
|
||||
extern void func_80186A70(void);
|
||||
|
||||
s32 func_80186A30(void *a0) {
|
||||
u8 *a0_byte = (u8 *)a0;
|
||||
s32 *v0 = *(s32 **)(a0_byte + 0x64);
|
||||
s16 v1 = *(s16 *)((u8 *)v0 + 0x36);
|
||||
s16 v2 = *(s16 *)(a0_byte + 0xFC);
|
||||
|
||||
if (v1 == v2) {
|
||||
return 0;
|
||||
}
|
||||
func_80186A70();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80186A70);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80186AAC);
|
||||
void func_80186AAC(s32 a0) {
|
||||
s32 *s1;
|
||||
s32 *s0;
|
||||
s16 *v1;
|
||||
|
||||
s1 = (s32 *)a0;
|
||||
s0 = *(s32 **)((u8 *)s1 + 0x64);
|
||||
func_8002D59C(4, 0x64E, *(u16 *)((u8 *)s1 + 0x104));
|
||||
*(s32 *)((u8 *)s1 + 0x4) = *(s32 *)((u8 *)s0 + 0x4);
|
||||
*(s32 *)((u8 *)s1 + 0x8) = *(s32 *)((u8 *)s0 + 0x8) - 0x260000;
|
||||
*(s32 *)((u8 *)s1 + 0xC) = *(s32 *)((u8 *)s0 + 0xC);
|
||||
*(u16 *)((u8 *)s1 + 0x70) = 1;
|
||||
v1 = *(s16 **)((u8 *)s1 + 0x20);
|
||||
if (*(u16 *)((u8 *)s0 + 0x70) & 1) {
|
||||
*(u16 *)((u8 *)v1 + 0x14) = 0;
|
||||
*(u16 *)((u8 *)v1 + 0x12) = 0;
|
||||
*(u16 *)((u8 *)v1 + 0x10) = 0;
|
||||
*(u16 *)((u8 *)v1 + 0x1C) = 1;
|
||||
*(u16 *)((u8 *)v1 + 0x1A) = 1;
|
||||
*(u16 *)((u8 *)v1 + 0x18) = 1;
|
||||
} else {
|
||||
*(u16 *)((u8 *)v1 + 0x14) = 0;
|
||||
*(u16 *)((u8 *)v1 + 0x12) = 0;
|
||||
*(u16 *)((u8 *)v1 + 0x10) = 0;
|
||||
*(u16 *)((u8 *)v1 + 0x2C) = *(u16 *)((u8 *)v1 + 0x2C) & 0xFFEF;
|
||||
}
|
||||
*(u16 *)((u8 *)s1 + 0x2) = 1;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80186B68);
|
||||
|
||||
@@ -8749,7 +9268,33 @@ void func_80189E74(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80189EB0);
|
||||
extern void func_8018A090(void *a0);
|
||||
extern s32 rand(void);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
extern u8 D_801DA8CC[];
|
||||
|
||||
void func_80189EB0(void *a0)
|
||||
{
|
||||
u8 *p;
|
||||
s32 i;
|
||||
|
||||
i = 4;
|
||||
if (*(s16 *)((s32)a0 + 0xDE) != 0) {
|
||||
func_8018A090((void *)a0);
|
||||
return;
|
||||
}
|
||||
|
||||
p = D_801DA8CC;
|
||||
do {
|
||||
*p = 0;
|
||||
p--;
|
||||
i--;
|
||||
} while (i >= 0);
|
||||
|
||||
*(s32 *)((s32)a0 + 0x1C) = (rand() & 0x7F) + 0x40;
|
||||
func_8012AD50((void *)a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8017D898", func_80189F28);
|
||||
|
||||
|
||||
@@ -2739,7 +2739,7 @@ extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012C218(void*);
|
||||
extern void func_80181E50(s32 a0);
|
||||
extern code_fn D_801AB590[];
|
||||
extern s32 func_80182204(s32 a0);
|
||||
extern s32 func_80182204();
|
||||
extern void func_801820BC(int param_1);
|
||||
extern void (*D_801AB5EC[])(void);
|
||||
extern void func_80182460(void *a0);
|
||||
|
||||
@@ -3197,7 +3197,19 @@ void func_8017D690(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017D6CC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017D718);
|
||||
extern void func_800167B8(s32 a0);
|
||||
|
||||
s32 func_8017D718(s32 a0) {
|
||||
s32 temp_v0;
|
||||
func_800167B8(0);
|
||||
temp_v0 = *(s32 *)(a0 + 0x28) - 1;
|
||||
*(s32 *)(a0 + 0x28) = temp_v0;
|
||||
if (temp_v0 == -1) {
|
||||
*(u8 *)(a0 + 0x15) += 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s32 func_800167F0(s32 a0);
|
||||
@@ -3263,7 +3275,33 @@ void func_8017D930(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017D96C);
|
||||
extern s32 func_80029178(s32 a0);
|
||||
extern void func_80029124(s32 a0, s32 a1);
|
||||
extern void func_800D0C48(s32 a0);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
extern void func_8001BFD0(void);
|
||||
extern void func_800D1E28(void);
|
||||
extern s32 D_801A23FC;
|
||||
|
||||
s32 func_8017D96C(s32 a0) {
|
||||
s32 t;
|
||||
|
||||
t = *(s32 *)(a0 + 0x28) - 1;
|
||||
*(s32 *)(a0 + 0x28) = t;
|
||||
if (t == -1) {
|
||||
if ((func_80029178(0x90) & 0xFF) == 0 || D_801A23FC != 0) {
|
||||
func_80029124(0x90, 0x1);
|
||||
func_800D0C48(0x1);
|
||||
func_8002D4C8(0x1C, 0);
|
||||
func_8001BFD0();
|
||||
func_8002D4C8(0x1D, 0);
|
||||
}
|
||||
func_800D1E28();
|
||||
*(u8 *)(a0 + 0x15) += 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DA1C);
|
||||
|
||||
@@ -3277,7 +3315,26 @@ void func_8017DA54(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DA90);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DAC8);
|
||||
extern void func_8016F2A8(void);
|
||||
extern void func_8016F2EC(void);
|
||||
extern s32 func_8012DB84(void);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017DAC8(s32 *a0) {
|
||||
s32 v0;
|
||||
s32 v1;
|
||||
v0 = a0[0x80];
|
||||
v1 = v0 - 1;
|
||||
a0[0x80] = v1;
|
||||
if (v1 != -1) {
|
||||
return;
|
||||
}
|
||||
func_8016F2A8();
|
||||
func_8016F2EC();
|
||||
func_8012DB84();
|
||||
func_80171990((u8 *)a0);
|
||||
}
|
||||
|
||||
|
||||
void func_8017DB20(void) {
|
||||
}
|
||||
@@ -3317,7 +3374,17 @@ void func_8017DCA0(void) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DCC8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DD30);
|
||||
extern void func_8016EE40(s32 a0, s32 a1, s32 a2);
|
||||
void func_8017DD30(void) {
|
||||
|
||||
extern s32 D_801A2238;
|
||||
extern s32 D_801A23FC;
|
||||
extern s32 D_801850B0(void *a0);
|
||||
D_801A2238 = 0;
|
||||
D_801A23FC = 0;
|
||||
((void (*)(void *, s32))func_8016EE40)((void *)D_801850B0, 0x1000000);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8017FB78(s32);
|
||||
extern void func_80171928(void *a0);
|
||||
@@ -3355,9 +3422,35 @@ void func_8017DE98(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DED4);
|
||||
extern s32 D_80185EC8;
|
||||
extern s32 func_8013767C(s32 a0);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017DED4(u8 *a0) {
|
||||
*(s32 *)(a0 + 0x198) = func_8013767C((s32)&D_80185EC8);
|
||||
func_80171990(a0);
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_80185F04;
|
||||
|
||||
extern s32 func_801399F0(s32 a0);
|
||||
extern void func_80139914(s32 a0);
|
||||
extern void func_80029124(s32 a0, s32 a1);
|
||||
extern s32 func_8013767C(s32 a0);
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017DF14(s32 param_1)
|
||||
{
|
||||
if (func_801399F0(*(s32 *)(param_1 + 0x198)) != 0) {
|
||||
func_80139914(*(s32 *)(param_1 + 0x198));
|
||||
*(s32 *)(param_1 + 0x198) = 0;
|
||||
func_80029124(0xBD, 1);
|
||||
*(s32 *)(param_1 + 0x198) = func_8013767C((s32)&D_80185F04);
|
||||
func_80171990((u8 *)param_1);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DF14);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DF84);
|
||||
|
||||
@@ -3397,9 +3490,44 @@ void func_8017E214(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017E248);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017E2F0);
|
||||
|
||||
extern Vec8_8017E0B4 D_801A0E34;
|
||||
extern Vec8_8017E0B4 D_801A0E3C;
|
||||
extern s32 D_80126984;
|
||||
extern s32 D_80126988;
|
||||
extern s32 D_8012698C;
|
||||
extern s32 D_80126990;
|
||||
extern s32 D_80126994;
|
||||
extern s32 D_80126998;
|
||||
|
||||
void func_8017E248(void)
|
||||
{
|
||||
Vec8_8017E0B4 a;
|
||||
Vec8_8017E0B4 b;
|
||||
|
||||
a = D_801A0E34;
|
||||
b = D_801A0E3C;
|
||||
|
||||
D_80126984 = a.vx;
|
||||
D_80126988 = a.vy;
|
||||
D_8012698C = a.vz;
|
||||
D_80126990 = b.vx;
|
||||
D_80126994 = b.vy;
|
||||
D_80126998 = b.vz;
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80175014(u8 *a0, u8 *a1, s32 a2);
|
||||
extern void func_80129FF4(void);
|
||||
extern u8 D_80126948[];
|
||||
extern s32 D_80197608;
|
||||
|
||||
void func_8017E2F0(void) {
|
||||
func_80175014(D_80126948, &D_80197608, 0);
|
||||
func_80129FF4();
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_80197608;
|
||||
extern s32 D_80126950;
|
||||
@@ -3411,7 +3539,13 @@ void func_8017E328(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017E35C);
|
||||
extern u8 D_80126948[];
|
||||
extern s32 D_80197608;
|
||||
void func_8017E35C(void) {
|
||||
func_80175014(D_80126948, (u8 *)&D_80197608, 0xC7);
|
||||
func_80129FF4();
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_801851FC[])(void);
|
||||
@@ -3611,11 +3745,76 @@ void func_8017E65C(s32 a0) {
|
||||
void func_8017E7C8(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017E7D0);
|
||||
extern u16 D_800B99DC;
|
||||
extern u8 D_801819E8[];
|
||||
extern u8 D_80185200[];
|
||||
extern void func_8013C9C4(void *a0);
|
||||
extern void func_8017E92C(void *a0);
|
||||
extern void func_8017E884(s32, s32);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017E884);
|
||||
void func_8017E7D0(void *a0)
|
||||
{
|
||||
s16 t;
|
||||
u16 y;
|
||||
u32 i;
|
||||
u8 *p;
|
||||
|
||||
t = *(s16 *)((u8 *)a0 + 0xE4);
|
||||
if (t != 0) {
|
||||
y = *(u16 *)((u8 *)a0 + 0xE2);
|
||||
*(s16 *)((u8 *)a0 + 0xE4) = t - 1;
|
||||
y = y - 1;
|
||||
*(u16 *)((u8 *)a0 + 0xE2) = y;
|
||||
if ((y << 0x10) == 0) {
|
||||
*(u16 *)((u8 *)a0 + 0xE2) = (D_800B99DC & 0x3) + 7;
|
||||
func_8013C9C4((void *)D_801819E8);
|
||||
}
|
||||
}
|
||||
func_8017E92C(a0);
|
||||
i = 0;
|
||||
p = D_80185200;
|
||||
do {
|
||||
((void (*)(void *, void *))func_8017E884)(a0, p);
|
||||
i = i + 1;
|
||||
p = p + 0x10;
|
||||
} while (i < 8);
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
|
||||
void func_8017E884(s32 a0, s32 a1) {
|
||||
s32 s0;
|
||||
s32 v0;
|
||||
s32 v1;
|
||||
|
||||
s0 = a1;
|
||||
*(s32 *)(s0 + 8) -= 1;
|
||||
if (*(s32 *)(s0 + 8) != 0) {
|
||||
return;
|
||||
}
|
||||
*(s32 *)(s0 + 8) = 4;
|
||||
a0 = func_80132EF4(a0, 0x26);
|
||||
if (a0 == 0) {
|
||||
return;
|
||||
}
|
||||
v0 = *(s32 *)(s0 + 0xC);
|
||||
v1 = *(s32 *)(a0 + 0x20);
|
||||
v0 = v0 << 12;
|
||||
*(s16 *)(v1 + 0x18) = v0;
|
||||
*(s16 *)(v1 + 0x1A) = v0;
|
||||
*(s16 *)(v1 + 0x18) = v0;
|
||||
*(u16 *)(a0 + 6) = *(u16 *)(s0 + 0);
|
||||
*(u16 *)(a0 + 0xA) = *(u16 *)(s0 + 2);
|
||||
*(u16 *)(a0 + 0xE) = *(u16 *)(s0 + 4);
|
||||
*(s32 *)(a0 + 0x14) = 0xFFE40000;
|
||||
}
|
||||
|
||||
|
||||
void func_8017E918(s32 a0) {
|
||||
*(u16 *)(a0 + 0x6) = *(u16 *)(*(s32 *)(a0 + 0x64) + 0xDE);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017E918);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017E92C);
|
||||
|
||||
@@ -3627,7 +3826,26 @@ void func_8017EA24(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017EA60);
|
||||
extern u8 D_800D387C[];
|
||||
extern u8 D_800D3888[];
|
||||
|
||||
extern void func_80128EA8(s32 a0, s32 a1, s32 a2);
|
||||
|
||||
void func_8017EA60(s32 param_1)
|
||||
{
|
||||
*(u32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = (u32)&D_800D387C;
|
||||
|
||||
*(u32 *)(*(s32 *)(param_1 + 0x20) + 4) |= 0x50000000;
|
||||
|
||||
*(u8 *)(*(s32 *)(param_1 + 0x20) + 0x27) = 0x9C;
|
||||
|
||||
func_80128EA8(*(u32 *)(param_1 + 0x20), param_1 + 0x24, (s32)&D_800D3888);
|
||||
|
||||
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
|
||||
*(u32 *)(param_1 + 0x10) = 0;
|
||||
*(u32 *)(param_1 + 0x18) = 0;
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80128ED8(s32 param_1, s32 *param_2);
|
||||
extern void func_801292C8(u8 *a0);
|
||||
@@ -3793,7 +4011,13 @@ void func_8017ECD4(s32 a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017EF28);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F0D0);
|
||||
void func_8017F0D0(s32 a0) {
|
||||
if (*(s16 *)(a0 + 0xFC) != 0) {
|
||||
func_8002D4C8(4, 0x645);
|
||||
*(s16 *)(a0 + 0xFC) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_80185458[])(void);
|
||||
@@ -3859,7 +4083,7 @@ void func_8017F240(void *a0) {
|
||||
#include "common.h"
|
||||
|
||||
extern u8 *func_8012913C(s32 a0);
|
||||
extern void func_8017F370(void);
|
||||
extern void func_8017F370();
|
||||
extern void func_801292C8(u8 *a0);
|
||||
extern void func_8012931C(void *);
|
||||
extern s32 D_801269B4;
|
||||
@@ -3897,7 +4121,33 @@ void func_8017F27C(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F370);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 ratan2(s32 a0, s32 a1);
|
||||
extern void func_80049CAC(s32 a0, s32 a1);
|
||||
extern void func_800484EC(s32 a0, s32 a1, s32 a2);
|
||||
|
||||
/* Local stack-frame shapes declared under this function's own address (law 1b).
|
||||
* sp+0x10: 0x20-byte matrix block, filled by func_80049CAC, consumed by func_800484EC.
|
||||
* sp+0x30: 12-byte vector block -- the target emits word stores only, so s32 members. */
|
||||
typedef struct { s32 w[8]; } Mtx_8017F370; /* 0x20 */
|
||||
typedef struct { s32 f0, f4, f8; } Vec12_8017F370; /* 0x0C */
|
||||
|
||||
void func_8017F370(s32 arg0) {
|
||||
Mtx_8017F370 m; /* sp+0x10 */
|
||||
Vec12_8017F370 v; /* sp+0x30 */
|
||||
|
||||
v.f0 = 0;
|
||||
v.f4 = *(s32 *)(arg0 + 0x2C);
|
||||
v.f8 = *(s32 *)(arg0 + 0x30);
|
||||
|
||||
*(s16 *)(*(s32 *)(arg0 + 0x20) + 0x12) =
|
||||
(ratan2(-(s32)*(s16 *)(arg0 + 0xE), (s32)*(s16 *)(arg0 + 6)) + 0x400) & 0xFFF;
|
||||
|
||||
func_80049CAC(*(s32 *)(arg0 + 0x20) + 0x10, (s32)&m);
|
||||
func_800484EC((s32)&m, (s32)&v, arg0 + 0x10);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -3952,9 +4202,57 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F71
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F790);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F84C);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 ratan2(s32 a0, s32 a1);
|
||||
extern void func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C2C4(s32 a0);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
extern s32 func_80132EF4(s32 a0, s32 a1);
|
||||
|
||||
void func_8017F84C(void *a0)
|
||||
{
|
||||
register void *s0 __asm__("$16") = a0;
|
||||
s32 r;
|
||||
s32 v0;
|
||||
s32 buf[4];
|
||||
|
||||
r = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((u8 *)s0 + 0x20) = r;
|
||||
if (r == 0) {
|
||||
func_8012CAE4(s0);
|
||||
} else {
|
||||
func_8001C2C4(r);
|
||||
v0 = ratan2( -*(s16 *)((u8 *)s0 + 0xE), *(s16 *)((u8 *)s0 + 0x6) );
|
||||
*(s16 *)(*(s32 *)((u8 *)s0 + 0x20) + 0x12) = (v0 + 0x400) & 0xFFF;
|
||||
*(s16 *)(*(s32 *)((u8 *)s0 + 0x20) + 0x10) = *(u16 *)((u8 *)s0 + 0x70);
|
||||
func_8012B2CC((s32)s0);
|
||||
buf[1] = 0;
|
||||
buf[0] = 0;
|
||||
buf[2] = 0x180000;
|
||||
func_8012B14C((s32)s0, (s32)buf);
|
||||
((void (*)(void *))func_8012AD50)(s0);
|
||||
v0 = func_80132EF4((s32)s0, 0x23);
|
||||
if (v0 != 0) {
|
||||
*(s16 *)(v0 + 0x34) = 0x4000;
|
||||
*(s32 *)((u8 *)s0 + 0x1C) = 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012BEE8(s32 arg0);
|
||||
|
||||
void func_8017F910(s32 arg0) {
|
||||
if (func_8012BEE8(arg0) != 0) {
|
||||
func_8012AD50((void *)arg0);
|
||||
*(s32 *)(arg0 + 0x1C) = 0x40;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F910);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F950);
|
||||
|
||||
@@ -4036,7 +4334,31 @@ void func_8017FD28(void) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017FD30);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017FE30);
|
||||
void func_8017FE30(s32 a0) {
|
||||
u8 *p;
|
||||
s16 val;
|
||||
|
||||
p = *(u8 **)(a0 + 0x20);
|
||||
*(u16 *)(p + 0x10) &= 0xFFF;
|
||||
|
||||
val = *(s16 *)(*(u8 **)(a0 + 0x20) + 0x10);
|
||||
if (val == 0 || val < 0x101) {
|
||||
*(s16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(*(u8 **)(a0 + 0x20) + 0x10) = 0;
|
||||
*(s16 *)(a0 + 0x84) = 0;
|
||||
return;
|
||||
}
|
||||
if (val < 0xF81) {
|
||||
*(u16 *)(*(u8 **)(a0 + 0x20) + 0x10) = val + 0x10;
|
||||
return;
|
||||
}
|
||||
if (*(s16 *)(a0 + 0x84) == 0 && val >= 0xF88) {
|
||||
func_8002D4C8(0x550, 0);
|
||||
*(s16 *)(a0 + 0x84) = 1;
|
||||
}
|
||||
*(u16 *)(*(u8 **)(a0 + 0x20) + 0x10) += 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: struct
|
||||
@@ -4044,7 +4366,7 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017FE3
|
||||
|
||||
extern code_fn D_8018550C[];
|
||||
|
||||
extern s32 func_801800F8(s32 a0);
|
||||
extern s32 func_801800F8();
|
||||
|
||||
void func_8017FEF8(int param_1)
|
||||
{
|
||||
@@ -4059,9 +4381,38 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017FF4
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017FFF0);
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8018009C);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s32 D_80127058;
|
||||
|
||||
void func_8018009C(u8 *a0) {
|
||||
u8 *p = *(u8 **)(a0 + 0x20);
|
||||
*(u16 *)(p + 0x14) = (*(u16 *)(p + 0x14) - 0x71) & 0xFFF;
|
||||
if (func_8012BEE8(a0) == 0) {
|
||||
return;
|
||||
}
|
||||
*(u8 *)&D_80127058 = 0;
|
||||
func_8012AD44((s32 *)a0, 1);
|
||||
}
|
||||
|
||||
|
||||
typedef struct { u32 w0; u32 w1; } __attribute__((packed, aligned(1))) Blk8_801800F8;
|
||||
extern Blk8_801800F8 D_801A0E64;
|
||||
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_80015954(s32 a0, s32 a1);
|
||||
|
||||
s32 func_801800F8(s32 *a0)
|
||||
{
|
||||
Blk8_801800F8 buf;
|
||||
void *out;
|
||||
|
||||
buf = D_801A0E64;
|
||||
func_8012F214(a0[0x19], (s32)&buf, (s32)&out);
|
||||
func_80015954((s32)&out, (s32)(a0 + 1));
|
||||
*(u16 *)((u8 *)*(u32 **)((u8 *)a0 + 0x20) + 0x10) = *(u16 *)((u8 *)*(u32 **)((u8 *)(*(u32 **)((u8 *)a0 + 0x64)) + 0x20) + 0x10);
|
||||
*(u16 *)((u8 *)*(u32 **)((u8 *)a0 + 0x20) + 0x12) = *(u16 *)((u8 *)*(u32 **)((u8 *)(*(u32 **)((u8 *)a0 + 0x64)) + 0x20) + 0x12);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_801800F8);
|
||||
|
||||
|
||||
extern void (*D_80185568[])(void);
|
||||
@@ -4121,14 +4472,35 @@ void func_801803A0(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_801803B0);
|
||||
extern s32 D_801A2278;
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_801803B0(void) {
|
||||
D_801A2278++;
|
||||
if (D_801A2278 == D_801A2278 / 10 * 10) {
|
||||
func_8002D4C8(0xB3D, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_80180414(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8018041C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180470);
|
||||
extern int func_80178970(void);
|
||||
extern void func_80029124(s32, s32);
|
||||
extern void func_80178D18(void);
|
||||
void func_80180358(void *a0);
|
||||
|
||||
void func_80180470(void *a0) {
|
||||
if (func_80178970() != 0) {
|
||||
func_80029124(0xF2, 1);
|
||||
((void (*)(s32))func_80178D18)(a0);
|
||||
func_80180358(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_801804B8(void) {
|
||||
}
|
||||
@@ -4142,7 +4514,21 @@ s32 func_80180598(void) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_801805A0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180604);
|
||||
extern void func_8012E88C(u8 *a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012E8E0(s32 a0, s32 a1);
|
||||
extern s32 D_80185818;
|
||||
extern s32 D_8019EC70;
|
||||
|
||||
void func_80180604(void *a0) {
|
||||
void *s0 = a0;
|
||||
*(u16 *)((s32)a0 + 2) = 4;
|
||||
*(u16 *)((s32)a0 + 0x34) = 0;
|
||||
func_8012E88C((u8 *)s0);
|
||||
func_8012A828((s32)s0, &D_8019EC70);
|
||||
func_8012E8E0((s32)s0, (s32)&D_80185818);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_801859A8[])(void);
|
||||
@@ -4166,9 +4552,48 @@ extern void func_80162120(void);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_801806D4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180734);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_80180604(void *a0);
|
||||
|
||||
void func_80180734(void *arg0) {
|
||||
if (func_80178970()) {
|
||||
((void (*)(void *))func_80178D18)(arg0);
|
||||
func_80180604(arg0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_80178CBC(int arg0, int arg1);
|
||||
extern void func_8012E88C(unsigned char *a0);
|
||||
extern void func_8012A828(int a0, void *a1);
|
||||
extern void func_8012E8E0(int a0, int a1);
|
||||
extern int D_80185818;
|
||||
extern int D_8019EC70;
|
||||
extern void (*D_80185948)(void);
|
||||
|
||||
void func_80180774(void *a0) {
|
||||
switch (*(u16 *)((s32)a0 + 0x34)) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
func_80178CBC((s32)a0, (s32)&D_80185948);
|
||||
*(s16 *)((s32)a0 + 0x34) = (s16)(*(u16 *)((s32)a0 + 0x34) + 1);
|
||||
break;
|
||||
case 2:
|
||||
if (((s32 (*)(s32))func_80178970)((s32)a0) != 0) {
|
||||
((void (*)(s32))func_80178D18)((s32)a0);
|
||||
*(s16 *)((s32)a0 + 0x2) = 4;
|
||||
*(s16 *)((s32)a0 + 0x34) = 0;
|
||||
func_8012E88C((u8 *)a0);
|
||||
func_8012A828((s32)a0, &D_8019EC70);
|
||||
func_8012E8E0((s32)a0, (s32)&D_80185818);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180774);
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -4235,7 +4660,17 @@ void func_80180830(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8018094C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_801809CC);
|
||||
extern void func_8012E88C(u8 *a0);
|
||||
extern s32 func_80178B18(s32 param_1, s32 param_2);
|
||||
extern void (*D_80185BDC[])(void);
|
||||
|
||||
void func_801809CC(void *a0) {
|
||||
*(s16 *)((u8 *)a0 + 0x2) = 3;
|
||||
*(s16 *)((u8 *)a0 + 0x34) = 0;
|
||||
func_8012E88C((u8 *)a0);
|
||||
func_80178B18((s32)a0, (s32)&D_80185BDC);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -4340,7 +4775,17 @@ void func_80180D38(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180D74);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180DBC);
|
||||
extern void func_8012A828(s32, void *);
|
||||
extern s32 D_801A2284;
|
||||
extern void *D_801A2280;
|
||||
extern u8 D_801859BC;
|
||||
extern u8 D_80185ABC;
|
||||
|
||||
void func_80180DBC(void) {
|
||||
func_8012A828(D_801A2284, &D_801859BC);
|
||||
func_8012A828((s32)D_801A2280, &D_80185ABC);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180E04);
|
||||
|
||||
@@ -4359,7 +4804,18 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180EF
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180F08);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180F18);
|
||||
extern s32 D_801A2288;
|
||||
extern s16 D_80185BD8;
|
||||
extern s16 D_80185BDA;
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_80180F18(void) {
|
||||
D_801A2288 += 1;
|
||||
if (D_801A2288 % D_80185BD8 == D_80185BDA) {
|
||||
func_8002D4C8(0xB3D, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80180F90);
|
||||
|
||||
@@ -4367,7 +4823,26 @@ INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8018107
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_801810EC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_80181194);
|
||||
extern u8 D_80078EAF;
|
||||
extern void func_800D06CC(void);
|
||||
|
||||
s32 func_80181194(void) {
|
||||
if ((func_80029178(0x95) & 0xFF) != 0) {
|
||||
return 0x25;
|
||||
}
|
||||
if ((func_800291B4(0xCE) & 0xFF) == 9) {
|
||||
func_800D06CC();
|
||||
return 0x23;
|
||||
}
|
||||
if ((func_80029178(0x90) & 0xFF) != 0) {
|
||||
if (D_80078EAF == 4) {
|
||||
return 0x3C;
|
||||
}
|
||||
return 0xA;
|
||||
}
|
||||
return 0x20;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3360,7 +3360,24 @@ void func_8017EF4C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017EF88);
|
||||
s32 func_8017EF88(s32 a0) {
|
||||
s32 v = func_80029504();
|
||||
s32 t = *(s32 *)(a0 + 0x28) - 1;
|
||||
|
||||
*(s32 *)(a0 + 0x28) = t;
|
||||
if (t == -1) {
|
||||
if (v < 200 && (u32)(v - 150) < 50) {
|
||||
func_800D0C48(1);
|
||||
}
|
||||
func_8002D4C8(0x1C, 0);
|
||||
func_8001BFD0();
|
||||
func_8002D4C8(0x1D, 0);
|
||||
func_800D1E28();
|
||||
*(u8 *)(a0 + 0x15) += 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018B5A8[])(void);
|
||||
@@ -3431,7 +3448,19 @@ void func_8017F168(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017F1A4);
|
||||
extern u8 D_801C8570[];
|
||||
extern u8 D_801C8610[];
|
||||
extern s32 func_80171990(u8 *a0);
|
||||
|
||||
void func_8017F1A4(u8 *a0) {
|
||||
*(u32 *)(a0 + 0xB0) = (u32)D_801C8570;
|
||||
*(u32 *)(a0 + 0xCC) = (u32)D_801C8610;
|
||||
*(u16 *)(a0 + 0x20C) = 0;
|
||||
*(u16 *)(a0 + 0x20E) = 0;
|
||||
*(u16 *)(a0 + 0x210) = 0;
|
||||
func_80171990(a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017F1E4);
|
||||
|
||||
@@ -3509,7 +3538,40 @@ void func_8017F49C(void) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017F4C4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017F590);
|
||||
extern u8 D_80126948[];
|
||||
extern void func_8012A018(s32 a, s32 b);
|
||||
extern void func_8012A094(s32 a0);
|
||||
extern void func_8017F724(void *a0);
|
||||
extern s32 D_80126954;
|
||||
extern s32 D_8012695C;
|
||||
extern s16 D_80126968;
|
||||
extern s16 D_8012696A;
|
||||
extern s16 D_8012696C;
|
||||
extern s16 D_80126976;
|
||||
extern s16 D_80126978;
|
||||
extern s16 D_8012697A;
|
||||
extern s16 D_80126940;
|
||||
extern s16 D_801274E8;
|
||||
|
||||
typedef struct {
|
||||
s16 x0, x1, x2, x3;
|
||||
} UnalignedShortBlock;
|
||||
|
||||
void func_8017F590(void) {
|
||||
D_80126954 = 0x190;
|
||||
D_8012695C = 0x384;
|
||||
D_80126968 = 0x38E;
|
||||
D_8012696A = 0;
|
||||
D_8012696C = 0;
|
||||
D_80126976 = 0;
|
||||
D_80126978 = -0x80;
|
||||
D_8012697A = 0;
|
||||
func_8012A018((s32)func_8017F724, 1);
|
||||
func_8012A094((s32)D_80126948);
|
||||
*(UnalignedShortBlock *)&D_801274E8 = *(UnalignedShortBlock *)&D_80126940;
|
||||
func_8017F724((void *)D_80126948);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017F658);
|
||||
|
||||
@@ -3523,17 +3585,56 @@ void func_8017F724(void *a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017F760);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FA2C);
|
||||
extern void func_8017FA84(s32 a0, s16 *a1, u32 a2);
|
||||
|
||||
void func_8017FA2C(s32 a0)
|
||||
{
|
||||
extern s16 D_80126940;
|
||||
extern s16 D_80126944;
|
||||
s16 *p = &D_80126940;
|
||||
|
||||
func_8017FA84(a0, p, ratan2(*p, D_80126944) & 0xFFF);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FA84);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FC50);
|
||||
extern void (*D_8018B754[])(void *);
|
||||
extern void (*D_8018B768[])(void *);
|
||||
|
||||
void func_8017FC50(void *param_1) {
|
||||
extern void func_8017FF7C(void);
|
||||
extern void func_801800D0();
|
||||
|
||||
if (*(u16 *)((s32)param_1 + 0x5C) & 1) {
|
||||
func_8017FF7C();
|
||||
}
|
||||
func_801800D0(param_1);
|
||||
if (*(u16 *)((s32)param_1 + 0x34) == 0) {
|
||||
D_8018B754[*(u16 *)((s32)param_1 + 2)](param_1);
|
||||
} else {
|
||||
D_8018B768[*(u16 *)((s32)param_1 + 0x34)](param_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FCE0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FD74);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FDB4);
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern void func_8013240C(s32 a0);
|
||||
extern s32 D_801D9740;
|
||||
|
||||
void func_8017FDB4(s32 a0) {
|
||||
s32 v0 = func_8012BCCC(a0);
|
||||
if (v0 <= 0x11000) {
|
||||
*(s16 *)(a0 + 0x2) = 3;
|
||||
} else {
|
||||
func_8013240C((s32)&D_801D9740);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FE08);
|
||||
|
||||
@@ -3557,7 +3658,22 @@ void func_80180234(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80180250);
|
||||
void func_80180250(void *arg0) {
|
||||
s32 *ptr;
|
||||
|
||||
if ((*(s16 *)((s32)arg0 + 0x70) & 0x8000) == 0) {
|
||||
ptr = *(s32 **)((s32)arg0 + 0x68);
|
||||
if (ptr != NULL) {
|
||||
if ((*(s16 *)((s32)arg0 + 0x72) & 0x8000) != 0) {
|
||||
*(u16 *)((s32)ptr + 0xA) &= 0x7FFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func_8012C218(arg0);
|
||||
func_80029124(0x9D, 1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801802C4);
|
||||
|
||||
@@ -3569,7 +3685,40 @@ INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8018044
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801804A0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80180904);
|
||||
void func_80180904(s32 arg0) {
|
||||
register s32 base __asm__("$2");
|
||||
register s32 cst __asm__("$3");
|
||||
register s32 b2 __asm__("$3");
|
||||
register s32 c2 __asm__("$2");
|
||||
register s32 r6 __asm__("$2");
|
||||
register s32 rA __asm__("$3");
|
||||
register s32 rE __asm__("$6");
|
||||
|
||||
base = *(s32 *)(arg0 + 0x20);
|
||||
cst = 0x1800;
|
||||
*(s16 *)(arg0 + 0xAA) = 0;
|
||||
*(s16 *)(arg0 + 0x5C) = 0;
|
||||
*(s16 *)(base + 0x18) = cst;
|
||||
base = *(s32 *)(arg0 + 0x20);
|
||||
*(s16 *)(base + 0x1C) = cst;
|
||||
b2 = *(s32 *)(arg0 + 0x20);
|
||||
c2 = 0x100;
|
||||
*(s16 *)(b2 + 0x1A) = c2;
|
||||
b2 = *(s32 *)(arg0 + 0x20);
|
||||
*(u16 *)(b2 + 0x2C) |= 0x10;
|
||||
*(s16 *)(arg0 + 0x34) = 0;
|
||||
*(s32 *)(arg0 + 0x1C) = 0x1E;
|
||||
*(s16 *)(arg0 + 0x98) = 0;
|
||||
func_8002D4C8(0x526, 0);
|
||||
r6 = *(u16 *)(arg0 + 0x6);
|
||||
rA = *(u16 *)(arg0 + 0xA);
|
||||
rE = *(u16 *)(arg0 + 0xE);
|
||||
*(s16 *)(arg0 + 0x7C) = r6;
|
||||
*(s16 *)(arg0 + 0x7E) = rA;
|
||||
*(s16 *)(arg0 + 0x80) = rE;
|
||||
func_8016AA50(arg0, 0xA);
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -3626,13 +3775,31 @@ void func_801809A4(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80180B44);
|
||||
void func_80180B44(void *a0) {
|
||||
s32 v1 = *(s32 *)((s32)a0 + 0x20);
|
||||
|
||||
*(s32 *)(v1 + 0x4) = *(s32 *)(v1 + 0x4) & 0x7FFFFFFF;
|
||||
*(u16 *)((s32)a0 + 0xFC) = 0;
|
||||
func_800291C8(0xA, 0x3065);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80180B84);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80180D3C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80180E94);
|
||||
extern void (*D_8018B8FC[])(void *);
|
||||
|
||||
void func_80180E94(void *a0) {
|
||||
s16 count = *(s16 *)((s32)a0 + 0xFC);
|
||||
if (count != 0) {
|
||||
s32 ptr = *(s32 *)((s32)a0 + 0x20);
|
||||
*(s16 *)((s32)a0 + 0xFC) = count - 1;
|
||||
*(s32 *)(ptr + 4) = *(s32 *)(ptr + 4) ^ 0x80000000;
|
||||
}
|
||||
D_8018B8FC[*(u16 *)((s32)a0 + 0x2)](a0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018B92C[])(void);
|
||||
@@ -3826,7 +3993,28 @@ void func_8018155C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80181598);
|
||||
extern s32 func_8012C1B8(void);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_80181708(void *a0);
|
||||
extern s32 func_8012AD50(void *a0);
|
||||
|
||||
extern s32 D_801D2038[];
|
||||
extern s32 D_8118B93C[];
|
||||
|
||||
void func_80181598(void *a0)
|
||||
{
|
||||
s32 s0;
|
||||
|
||||
s0 = func_8012C1B8();
|
||||
*(s32 *)((s32)a0 + 0x20) = s0;
|
||||
if (s0 != 0) {
|
||||
func_8001C214(s0, (s32)D_801D2038);
|
||||
*(s32 *)((s32)s0 + 0x20) = (s32)D_8118B93C;
|
||||
func_80181708(a0);
|
||||
func_8012AD50(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80181600);
|
||||
|
||||
@@ -3843,7 +4031,18 @@ void func_801816C8(s32 a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80181708);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801817D8);
|
||||
void func_801817D8(u8 *a0, u8 *a1) {
|
||||
u16 sp0[3];
|
||||
|
||||
sp0[0] = *(u16 *)(a0 + 6);
|
||||
sp0[1] = *(u16 *)(a0 + 0xA);
|
||||
sp0[2] = *(u16 *)(a0 + 0xE);
|
||||
|
||||
sp0[0] += *(u16 *)(a1 + 0);
|
||||
sp0[1] += *(u16 *)(a1 + 2);
|
||||
sp0[2] += *(u16 *)(a1 + 4);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018B9B8[])(void);
|
||||
@@ -3875,7 +4074,21 @@ extern s32 func_800D0CE0(s32 arg);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801818EC);
|
||||
extern s32 func_8012E544(s32);
|
||||
extern void func_800D0C48(s32 a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_8012BF4C(s32 *a0, s32 a1);
|
||||
|
||||
void func_801818EC(void) {
|
||||
s32 *s0;
|
||||
s0 = (s32 *)func_8012E544(0x116);
|
||||
if (s0 != 0) {
|
||||
func_800D0C48(1);
|
||||
func_8012AD44(s0, 1);
|
||||
func_8012BF4C(s0, 0x30);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_8018BB08[])(void);
|
||||
@@ -4152,7 +4365,27 @@ void func_80182324(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80182360);
|
||||
extern s32 func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern u8 D_8018BC0C[];
|
||||
|
||||
void func_80182360(void *a0) {
|
||||
s32 ret;
|
||||
|
||||
ret = func_8012C1B8();
|
||||
*(s32 *)((u8 *)a0 + 0x20) = ret;
|
||||
if (ret == 0) {
|
||||
func_8012CAE4(a0);
|
||||
return;
|
||||
}
|
||||
|
||||
func_8001C214(ret, 0);
|
||||
*(u16 *)((u8 *)a0 + 0x2) = 1;
|
||||
*(u16 *)((u8 *)a0 + 0x5C) = 0x40;
|
||||
*(s32 *)((u8 *)a0 + 0x58) = (u32)D_8018BC0C;
|
||||
}
|
||||
|
||||
|
||||
void func_801823C8(void) {
|
||||
}
|
||||
@@ -4195,7 +4428,40 @@ void func_80182544(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80182580);
|
||||
extern s32 func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern s32 func_800291B4(s32 arg);
|
||||
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012A828(s32, void*);
|
||||
extern u8 D_801C0B48[];
|
||||
extern s32 D_8018BCB4[];
|
||||
extern u8 D_80187B3C[];
|
||||
|
||||
void func_80182580(void *a0) {
|
||||
register void *s0 __asm__("$16");
|
||||
register s32 v0 __asm__("$2");
|
||||
s32 r;
|
||||
|
||||
s0 = a0;
|
||||
v0 = ((s32 (*)(void))func_8012C1B8)();
|
||||
*(s32 *)((s32)s0 + 0x20) = v0;
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4(s0);
|
||||
return;
|
||||
}
|
||||
|
||||
func_8001C214(v0, (s32)D_801C0B48);
|
||||
|
||||
r = func_800291B4(D_8018BCB4[*(u16 *)((s32)s0 + 0x70) & 0xF]) & 0xFF;
|
||||
if (r != 3) {
|
||||
func_8012C658(0x15A, *(s16 *)((s32)s0 + 0x70), (s32)s0);
|
||||
}
|
||||
|
||||
*(u16 *)((s32)s0 + 2) = 1;
|
||||
((void (*)(s32 *, s32))func_8012A828)((s32 *)s0, (s32)D_80187B3C);
|
||||
}
|
||||
|
||||
|
||||
void func_80182628(void) {
|
||||
}
|
||||
@@ -4305,7 +4571,25 @@ void func_801828C8(void) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801828F8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80182958);
|
||||
void func_80182958(void *a0) {
|
||||
extern s32 D_801D5BC8;
|
||||
extern s32 D_8018BD04;
|
||||
extern s32 D_801D3318;
|
||||
s32 v0;
|
||||
|
||||
v0 = func_80029504();
|
||||
if ((u32)(v0 - 0xD2) >= 0x14 ||
|
||||
(v0 = func_8012C1B8(), (*(s32 *)((s32)a0 + 0x20) = v0), v0 == 0)) {
|
||||
func_8012CAE4(a0);
|
||||
} else {
|
||||
func_8001C214(v0, (s32)&D_801D5BC8);
|
||||
*(u16 *)((s32)a0 + 0x2) = 1;
|
||||
func_8012E8E0((s32)a0, (s32)&D_8018BD04);
|
||||
func_8012A828((s32)a0, (s32)&D_801D3318);
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x68) + 0xC) = 0x7FFF;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4531,11 +4815,53 @@ void func_801830B8(s32 s0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183154);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801C7AA4[];
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801831B4);
|
||||
void func_80183154(s32 param_1) {
|
||||
*(s16 *)(param_1 + 2) = 4;
|
||||
*(u16 *)(param_1 + 0x5C) = 0xAA10;
|
||||
func_8012A828(param_1, D_801C7AA4);
|
||||
*(s32 *)(param_1 + 0x1C) = 0x20;
|
||||
if (*(s32 *)(param_1 + 0xE0) != 0) {
|
||||
*(s32 *)(param_1 + 0xE0) = 0;
|
||||
*(s16 *)(param_1 + 0xA) = *(s16 *)(param_1 + 0xA) + 0x30;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_801844B0(s32 a0);
|
||||
|
||||
void func_801831B4(s32 a0) {
|
||||
u8 *p = *(u8 **)(a0 + 0x20);
|
||||
*(u16 *)(p + 0x12) = *(u16 *)(p + 0x12) + 0x40;
|
||||
if (func_801844B0(a0) == 1) {
|
||||
return;
|
||||
}
|
||||
if (func_8012BEE8(a0) != 0) {
|
||||
*(s16 *)(a0 + 2) = 5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern u8 D_801C7AA4[];
|
||||
|
||||
void func_80183214(void *a0) {
|
||||
s32 s0 = (s32)a0;
|
||||
*(u16 *)((s32)a0 + 2) = 6;
|
||||
func_8012B23C(s0);
|
||||
func_8012B178(s0, 0xFFFE8000);
|
||||
func_8012A828(s0, (void *)&D_801C7AA4);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0x96;
|
||||
*(u16 *)((s32)a0 + 0xE6) = 0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183214);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183270);
|
||||
|
||||
@@ -4654,7 +4980,20 @@ void func_801833EC(s32 param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183600);
|
||||
extern s32 D_801C7C74;
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
|
||||
void func_80183600(void *a0) {
|
||||
s32 s0 = (s32)a0;
|
||||
*(u16 *)((s32)a0 + 2) = 0xC;
|
||||
func_8012B23C(s0);
|
||||
func_8012A828(s0, (void *)&D_801C7C74);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0x1A;
|
||||
*(u16 *)((s32)a0 + 0xE6) = 0;
|
||||
func_8012B23C(s0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183654);
|
||||
|
||||
@@ -4721,13 +5060,57 @@ void func_80183818(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183878);
|
||||
#include "common.h"
|
||||
|
||||
extern u8 D_800D3918[];
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 D_801C7B9C;
|
||||
extern s32 func_801841F8(s32 a0, s32 a1);
|
||||
|
||||
void func_80183878(void *a0) {
|
||||
if (*(s16 *)((s32)a0 + 0xAA) <= 0) {
|
||||
*(s16 *)((s32)a0 + 2) = 3;
|
||||
} else {
|
||||
if (func_8012BEE8((s32)a0) != 0) {
|
||||
func_8012A828((s32)a0, (void *)&D_801C7B9C);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0x1A;
|
||||
}
|
||||
func_801841F8((s32)a0, (s32)D_800D3918);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801838EC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183928);
|
||||
void func_80183928(s32 a0) {
|
||||
s32 s0 = a0;
|
||||
*(s16 *)(s0 + 0x2) = 0xF;
|
||||
*(s16 *)(*(s32 *)(s0 + 0x20) + 0x12) = (func_8012B864(s0) + 0x800) & 0xFFF;
|
||||
}
|
||||
|
||||
|
||||
extern void func_80131B14();
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u8 D_801C81BC[];
|
||||
|
||||
void func_80183968(void *a0) {
|
||||
s32 s0;
|
||||
s32 v1;
|
||||
__asm__ __volatile__("" : "=r"(s0) : "0"(a0));
|
||||
|
||||
if (*(u16 *)(*(s32 *)(s0 + 0x20) + 0x2C) & 0x10) {
|
||||
*(u16 *)(*(s32 *)(s0 + 0x20) + 0x2C) &= ~0x10;
|
||||
v1 = *(s32 *)(s0 + 0x20);
|
||||
*(u16 *)(v1 + 0x1C) = 0x1000;
|
||||
*(u16 *)(v1 + 0x1A) = 0x1000;
|
||||
*(u16 *)(v1 + 0x18) = 0x1000;
|
||||
}
|
||||
|
||||
func_80131B14(s0);
|
||||
func_8012A828(s0, D_801C81BC);
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80183968);
|
||||
|
||||
extern u8 D_801C4934[];
|
||||
extern u8 D_801C4940[];
|
||||
@@ -5190,7 +5573,20 @@ LD44:
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801844B0);
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern s32 func_8012BDBC(s32 a0, s32 a1);
|
||||
|
||||
s32 func_801844B0(s32 obj) {
|
||||
s32 dist;
|
||||
|
||||
dist = func_8012BCCC(obj);
|
||||
if (dist < 0x2001 || (dist <= 0x24000 && func_8012BDBC(obj, 0x400))) {
|
||||
*(s16 *)(obj + 0x2) = 7;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80184520);
|
||||
|
||||
@@ -5370,7 +5766,20 @@ void func_80184AE4(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80184B18);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_80184B70(s32 a0, u8 *a1);
|
||||
|
||||
void func_80184B18(void *a0) {
|
||||
s32 s0 = (s32)a0;
|
||||
|
||||
if (func_8012BEE8(s0) != 0) {
|
||||
func_80184B70(0, (u8 *)(s0 + 0xFD));
|
||||
func_80184B70(1, (u8 *)(s0 + 0xFE));
|
||||
func_80184B70(2, (u8 *)(s0 + 0xFF));
|
||||
*(s32 *)(s0 + 0x1C) = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern u32 D_801C4770[];
|
||||
extern u32 D_801C499C[];
|
||||
@@ -5450,7 +5859,30 @@ void func_80184C48(void *a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80184D34);
|
||||
extern s32 rand(void);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
|
||||
extern s32 D_801C49DC[];
|
||||
|
||||
void func_80184D34(s32 a0) {
|
||||
s32 *p;
|
||||
s32 s0;
|
||||
s32 r;
|
||||
u16 h;
|
||||
|
||||
if (func_8012BEE8(a0) == 0) {
|
||||
return;
|
||||
}
|
||||
s0 = a0;
|
||||
*(u16 *)(s0 + 0x2) += 1;
|
||||
r = rand();
|
||||
h = *(u16 *)(s0 + 0x70);
|
||||
p = D_801C49DC;
|
||||
*(s32 *)(s0 + 0x48) = p[h & 0xF] + r % 1024;
|
||||
*(s32 *)(s0 + 0x1C) = 0x100;
|
||||
*(s32 *)(s0 + 0xE0) = rand();
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -5691,7 +6123,32 @@ void func_8018533C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80185378);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_8012C1B8(void);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
|
||||
void func_80185378(void *a0)
|
||||
{
|
||||
s32 ret;
|
||||
|
||||
ret = func_8012C1B8();
|
||||
*(s32 *)((s32)a0 + 0x20) = ret;
|
||||
if (ret == 0) {
|
||||
func_8012CAE4(a0);
|
||||
return;
|
||||
}
|
||||
|
||||
func_8001C214(ret, 0);
|
||||
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) =
|
||||
*(u16 *)(*(s32 *)(*(s32 *)((s32)a0 + 0x64) + 0x20) + 0x12);
|
||||
func_8012B2CC((s32)a0);
|
||||
*(u16 *)((s32)a0 + 0x108) = 1;
|
||||
*(u16 *)((s32)a0 + 0x2) += 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_801C89CC[])(void);
|
||||
@@ -6130,7 +6587,23 @@ INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80185BD
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80185C4C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80185D08);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 rand(void);
|
||||
extern void func_80132288(s32 *param_1, s32 *param_2, s32 param_3);
|
||||
extern void func_80186ECC(s32 a0, s32 a1);
|
||||
|
||||
extern s32 D_801D98C8;
|
||||
extern s32 D_801C9124[];
|
||||
extern s32 D_801CA0A0;
|
||||
|
||||
void func_80185D08(s32 a0) {
|
||||
*(s16 *)(a0 + 2) = 2;
|
||||
func_80132288(&D_801D98C8, D_801C9124, D_801CA0A0);
|
||||
*(s32 *)(a0 + 0x1C) = (rand() % 31) + 30;
|
||||
func_80186ECC(a0, 1);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80185D9C);
|
||||
|
||||
@@ -6171,7 +6644,38 @@ void func_80185DFC(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80185F38);
|
||||
extern s32 D_801D98C8;
|
||||
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern void func_8013240C(s32 a0);
|
||||
extern s32 func_80186DD4(s32 a0);
|
||||
|
||||
void func_80185F38(s32 arg0) {
|
||||
s32 v0;
|
||||
s32 v1;
|
||||
|
||||
v0 = *(s16 *)(arg0 + 0xE0);
|
||||
v1 = *(s32 *)(arg0 + 0x20);
|
||||
*(u16 *)(v1 + 0x12) += v0 * 34;
|
||||
|
||||
if (*(s16 *)(arg0 + 0xEA) == 0) {
|
||||
func_8012B178(arg0, 0xFFFE0000);
|
||||
if (func_80186DD4(arg0) == -1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (func_8012BCCC(arg0) < 0x4001) {
|
||||
*(s16 *)(arg0 + 2) = 7;
|
||||
return;
|
||||
}
|
||||
if (func_8012BEE8(arg0) != 0) {
|
||||
*(s16 *)(arg0 + 2) = 5;
|
||||
}
|
||||
func_8013240C((s32)&D_801D98C8);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80185FE8);
|
||||
|
||||
@@ -6611,7 +7115,17 @@ merge2:
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80186CE4);
|
||||
extern void func_80132288(s32 *param_1, s32 *param_2, s32 param_3);
|
||||
extern void func_80186ECC(s32 a0, s32 a1);
|
||||
extern s32 D_801D98C8;
|
||||
extern s32 D_801C920C[];
|
||||
extern s32 D_801CA0A0;
|
||||
|
||||
void func_80186CE4(s32 a0) {
|
||||
func_80132288(&D_801D98C8, &D_801C920C, D_801CA0A0);
|
||||
func_80186ECC(a0, 1);
|
||||
}
|
||||
|
||||
|
||||
extern void func_8013240C(s32 a0);
|
||||
extern s32 D_801D98C8;
|
||||
@@ -6653,7 +7167,14 @@ void func_80186D5C(void)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80186D90);
|
||||
void func_80186D90(s32 a0) {
|
||||
extern u8 D_80187B3C[];
|
||||
*(s16 *)(a0 + 0x2) = 1;
|
||||
func_8012A828(a0, D_80187B3C);
|
||||
*(u16 *)(a0 + 0x5C) = 0xAA10;
|
||||
*(s16 *)(a0 + 0xEA) = 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80186DD4);
|
||||
|
||||
@@ -6670,15 +7191,74 @@ extern s32 rand(void);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80186F9C);
|
||||
#include "common.h"
|
||||
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_80132288(s32 *param_1, s32 *param_2, s32 param_3);
|
||||
extern void func_800183E0(s32 a0);
|
||||
|
||||
extern s32 D_801D98C8;
|
||||
extern s32 D_801CA0A0;
|
||||
extern s32 D_801CA248;
|
||||
|
||||
void func_80186F9C(s32 a0, s32 a1, s32 a2) {
|
||||
register s32 s1 __asm__("$17") = a0;
|
||||
register s32 s0 __asm__("$16");
|
||||
register s32 s2 __asm__("$18") = a2;
|
||||
s32 p;
|
||||
|
||||
__asm__("" :: "r"(s1));
|
||||
s0 = a1;
|
||||
|
||||
func_8012B23C(s1);
|
||||
func_80132288(&D_801D98C8, (s32 *)s0, D_801CA0A0);
|
||||
s0 = 1;
|
||||
if (*(u16 *)(s1 + 0xDC) & 2) {
|
||||
func_800183E0((s32)&D_801CA248);
|
||||
*(u16 *)(s1 + 0xDC) = s0;
|
||||
}
|
||||
*(u16 *)(s1 + 0x5C) &= 0xFFFE;
|
||||
*(s32 *)(s1 + 0x1C) = s2;
|
||||
*(u16 *)(*(s32 *)(s1 + 0x20) + 0x12) = (*(u16 *)(s1 + 0x62) + 0x800) & 0xFFF;
|
||||
p = *(s32 *)(s1 + 0x20);
|
||||
*(s16 *)(p + 0x14) = 0;
|
||||
*(s16 *)(p + 0x10) = 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80187050);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_801870B8);
|
||||
extern void Square0(s32 *a0, s32 *a1);
|
||||
|
||||
s32 func_801870B8(s32 a0) {
|
||||
s32 sp10[4];
|
||||
|
||||
sp10[0] = *(s16 *)((s32)a0 + 6) - *(s16 *)((s32)a0 + 0x88);
|
||||
sp10[1] = 0;
|
||||
sp10[2] = *(s16 *)((s32)a0 + 0xE) - *(s16 *)((s32)a0 + 0x8C);
|
||||
Square0(&sp10[0], &sp10[0]);
|
||||
return 0x18FFFF >= (sp10[0] + sp10[2]);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_80187118);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8018723C);
|
||||
s32 func_8018723C(void *a0) {
|
||||
short a[4];
|
||||
short b[4];
|
||||
s32 pa, pb;
|
||||
s32 r;
|
||||
a[0] = *(u16 *)((s32)a0 + 0x6);
|
||||
a[1] = *(u16 *)((s32)a0 + 0xA);
|
||||
a[2] = *(u16 *)((s32)a0 + 0xE);
|
||||
pa = (s32)a;
|
||||
pb = (s32)b;
|
||||
__builtin_memcpy((void *)pb, (void *)pa, 8);
|
||||
b[1] += 8;
|
||||
r = func_80133784(1, pa, pb) & 0x2000;
|
||||
return r != 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* func_801872B4 — tiny matrix wrapper.
|
||||
|
||||
@@ -5400,7 +5400,23 @@ void func_8017EFF4(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017F07C);
|
||||
void func_8017F07C(s32 a0)
|
||||
{
|
||||
register s32 s0 asm("$16") = a0;
|
||||
u8 v1;
|
||||
|
||||
func_80149020((s32 *)s0);
|
||||
v1 = *(u8 *)(s0 + 0xDE);
|
||||
*(u8 *)(s0 + 0xDE) = v1 + 0xFF;
|
||||
if (v1 == 0) {
|
||||
func_8017F0E0(s0);
|
||||
func_80159B3C((void *)s0);
|
||||
func_80165718(s0);
|
||||
} else {
|
||||
func_80172630((u8 *)s0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern u8 D_80062C04[];
|
||||
extern void func_80019064(void *a0);
|
||||
@@ -5503,7 +5519,23 @@ void func_8017F5C4(s32 *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017F5E0);
|
||||
void func_8017F5E0(s32 *a0)
|
||||
{
|
||||
register s32 t1 asm("$6");
|
||||
register s32 t2 asm("$2");
|
||||
register s32 t3 asm("$3");
|
||||
s32 x;
|
||||
|
||||
t1 = a0[4];
|
||||
x = a0[13];
|
||||
t2 = a0[5];
|
||||
t3 = a0[6];
|
||||
a0[1] = t1;
|
||||
a0[2] = t2;
|
||||
a0[3] = t3;
|
||||
func_80149374(x, (s32)(a0 + 1));
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_801883E8[])(void);
|
||||
@@ -5627,7 +5659,23 @@ void func_8017F65C(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017F930);
|
||||
extern void func_8017F9F4(void);
|
||||
extern void func_8017FB78(s32*);
|
||||
extern s32 func_80146E98(s32 a0);
|
||||
extern void func_80146E90(s32 *a0, s32 a1);
|
||||
|
||||
void func_8017F930(s32 *a0) {
|
||||
func_8017F9F4();
|
||||
((void (*)(void *))func_8017FB78)(a0);
|
||||
if (func_80146E98((s32)a0) != 0) {
|
||||
*(s32 *)(a0 + 4) >>= 2;
|
||||
*(s32 *)(a0 + 5) >>= 2;
|
||||
*(s32 *)(a0 + 6) >>= 2;
|
||||
func_80146E90(a0, 0x40);
|
||||
*(u16 *)((s32)a0 + 2) = *(u16 *)((s32)a0 + 2) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017F9AC);
|
||||
|
||||
@@ -5635,7 +5683,18 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017F9F
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017FA1C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8017FB78);
|
||||
void func_8017FB78(s32 *a0) {
|
||||
s16 *p;
|
||||
|
||||
a0[1] += a0[4];
|
||||
a0[2] += a0[5];
|
||||
a0[3] += a0[6];
|
||||
p = (s16 *)a0[8];
|
||||
p[8] += a0[19];
|
||||
p[9] += a0[20];
|
||||
p[10] += a0[21];
|
||||
}
|
||||
|
||||
|
||||
void func_8017FBEC(s32 *a0) {
|
||||
*(s32 *)((s32)a0 + 0x0) = 0x80404080;
|
||||
@@ -5962,15 +6021,51 @@ void func_801800C0(int param_1)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801801AC);
|
||||
void func_801801AC(s32 a0) {
|
||||
extern M2C_UNK D_8019972C;
|
||||
extern s32 D_801997A4;
|
||||
s32 *v1;
|
||||
|
||||
func_8012A8B0((u8 *)a0, (s32)&D_8019972C);
|
||||
v1 = *(s32 **)(a0 + 0x20);
|
||||
*(s32 *)(a0 + 0x94) = 0xF;
|
||||
*(s32 *)((s32)v1 + 0x20) = D_801997A4;
|
||||
func_8012B23C(a0);
|
||||
func_8012AD44((s32 *)a0, 2);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180208);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180274);
|
||||
extern s32 D_8019979C;
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
|
||||
void func_80180274(s32 param_1, u16 param_2)
|
||||
{
|
||||
*(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = D_8019979C;
|
||||
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x12) = param_2;
|
||||
func_8012B23C(param_1);
|
||||
*(s32 *)(param_1 + 0x1C) = 8;
|
||||
*(s16 *)(param_1 + 0x98) = 0;
|
||||
func_8012AD44((s32 *)param_1, 4);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801802D0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801804CC);
|
||||
void func_801804CC(void *arg0) {
|
||||
s32 *s0 = (s32 *)arg0;
|
||||
|
||||
extern M2C_UNK D_80199904;
|
||||
func_8012A8B0((u8 *)arg0, (s32)&D_80199904);
|
||||
*(u16 *)((u8 *)s0 + 0x102) = 8;
|
||||
*(u16 *)((u8 *)s0 + 0x104) = 3;
|
||||
*(u16 *)((u8 *)s0 + 0x106) = (rand() & 0x20) - 0x10;
|
||||
s0[7] = 0x60;
|
||||
func_8012AD44(s0, 5);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5985,7 +6080,29 @@ void func_80180530(void *arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8018056C);
|
||||
typedef struct {
|
||||
u8 pad0[0x2];
|
||||
u16 unk2;
|
||||
u8 pad2[0x1C];
|
||||
s32 *unk20;
|
||||
u8 pad3[0xDA];
|
||||
u16 unkFE;
|
||||
u16 unk100;
|
||||
} S_8018056C;
|
||||
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s32 D_80199644;
|
||||
|
||||
void func_8018056C(S_8018056C *s0) {
|
||||
s0->unk100 = 0;
|
||||
s0->unkFE = ((u16 *)s0->unk20)[9] + 0x200;
|
||||
if (s0->unk2 != 1) {
|
||||
func_8012A8B0((u8 *)s0, (s32)&D_80199644);
|
||||
}
|
||||
func_8012AD44((s32 *)s0, 0x8);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801805D0);
|
||||
|
||||
@@ -6014,15 +6131,74 @@ void func_80180878(s32 arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801808B4);
|
||||
extern void (*D_80192E38[])(void);
|
||||
|
||||
void func_801808B4(s32 arg0) {
|
||||
s32 *s0 = (s32 *)arg0;
|
||||
s32 v1;
|
||||
|
||||
D_80192E38[*(u16 *)((u8 *)s0 + 2)]();
|
||||
|
||||
if ((*(u16 *)s0 == 0x1FC) && (*(s16 *)((u8 *)s0 + 0xAA) == 0)) {
|
||||
v1 = *(s32 *)((u8 *)s0 + 0x20);
|
||||
*(u16 *)(v1 + 0x2C) |= 0x10;
|
||||
v1 = *(s32 *)((u8 *)s0 + 0x20);
|
||||
*(u16 *)(v1 + 0x18) = *(u16 *)(v1 + 0x1A) = *(u16 *)(v1 + 0x1C) = 0x1800;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_80180948(s32 arg0) {
|
||||
extern void func_80181248(s32 a0, s32 a1);
|
||||
s32 pe;
|
||||
|
||||
if (*(u8 *)(arg0 + 0xC2) == 0x2) {
|
||||
*(s16 *)(arg0 + 0x52) = -0x18;
|
||||
}
|
||||
pe = func_80180C74(arg0);
|
||||
if (pe != 0) {
|
||||
*(s32 *)(arg0 + 0x10) = 0;
|
||||
*(s32 *)(arg0 + 0x18) = 0;
|
||||
*(s32 *)(arg0 + 0x04) = *(s32 *)(arg0 + 0x38);
|
||||
*(s32 *)(arg0 + 0x0C) = *(s32 *)(arg0 + 0x40);
|
||||
func_80181248(arg0, pe);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180948);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801809B0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180A30);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180AF0);
|
||||
extern void func_8012B2CC(s32 a0);
|
||||
extern void func_8012B178(s32 a0, s32 a1);
|
||||
extern void func_8012CBA4(s32);
|
||||
extern s32 func_80180C74(s32 arg0);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern s32 D_80199644;
|
||||
|
||||
s32 func_80180AF0(s32 a0, s32 a1, s32 *a2) {
|
||||
s32 cba4;
|
||||
|
||||
func_8012B2CC(a0);
|
||||
func_8012B178(a0, a1);
|
||||
cba4 = ((s32 (*)(s32))func_8012CBA4)(a0);
|
||||
if ((*a2 = func_80180C74(a0)) != 0) goto fail;
|
||||
if (cba4 == 0x2000) goto zeroret;
|
||||
fail:
|
||||
func_8012ADE4((u8 *)a0);
|
||||
*(s32 *)(a0 + 0x1C) = 8;
|
||||
func_8012A8B0((u8 *)a0, (s32)&D_80199644);
|
||||
func_8012B23C(a0);
|
||||
func_8012AD44((s32 *)a0, 1);
|
||||
return 1;
|
||||
zeroret:
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180BA4);
|
||||
|
||||
@@ -6095,7 +6271,31 @@ s32 func_80180C74(s32 arg0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180D94);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180E30);
|
||||
extern u8 D_80195254[0x20];
|
||||
extern s32 D_801B3A80[8];
|
||||
extern s32 D_801B3A90;
|
||||
extern void func_8002D4C8(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012C588(s32 a0, s32 a1);
|
||||
|
||||
void func_80180E30(s32 param_1) {
|
||||
s32 i;
|
||||
|
||||
if ((*(u16 *)(param_1 + 0x86) & 1) == 0) {
|
||||
if (*(s16 *)(param_1 + 0x76) < 0xB5) {
|
||||
if (((s32 (*)(s32, s32))func_8012C588)(0x22D, param_1) != 0) {
|
||||
*(u16 *)(param_1 + 0x86) |= 1;
|
||||
for (i = 0; i < 0x20; i += 4) {
|
||||
*(s32 *)((s32)D_801B3A80 + i) = *(s32 *)((s32)D_80195254 + i);
|
||||
}
|
||||
*(s32 *)D_801B3A80 = 0x1000000;
|
||||
D_801B3A90 = 0x1000000;
|
||||
*(s32 *)(*(s32 *)(param_1 + 0x20) + 0x24) = (s32)D_801B3A80;
|
||||
((void (*)(s32, s32))func_8002D4C8)(0x83B, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180EEC);
|
||||
|
||||
@@ -6131,7 +6331,26 @@ void func_80180F74(s32 target, u16 *cur, s32 step)
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80180FF8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80181130);
|
||||
extern u8 D_80192E6C[];
|
||||
extern u8 D_80192E6E[];
|
||||
extern u8 D_80192E70[];
|
||||
extern s16 D_80126B98;
|
||||
s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
|
||||
|
||||
void func_80181130(s32 a0, s32 a1) {
|
||||
u16 buf[4];
|
||||
|
||||
if ((*(u16 *)(a0 + 0x86) & 1) == 0) {
|
||||
s32 off = a1 << 3;
|
||||
buf[0] = *(u16 *)(D_80192E6C + off);
|
||||
buf[1] = *(u16 *)(D_80192E6E + off);
|
||||
buf[2] = *(u16 *)(D_80192E70 + off) - 0x14;
|
||||
if (func_8012DEB8(a0, (s32)(D_80192E6C + off), (s32)buf) != 0) {
|
||||
D_80126B98 = 0x14;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8002D4C8(s32 arg0, s32 arg1);
|
||||
extern void func_8002AC00(int arg0);
|
||||
@@ -6142,7 +6361,23 @@ void func_801811BC(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801811E8);
|
||||
extern void func_801437D8(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern u8 D_80192E84;
|
||||
|
||||
void func_801811E8(u8 *a0)
|
||||
{
|
||||
u16 buf[4];
|
||||
|
||||
if (*(u16 *)a0 != 0x1FC) {
|
||||
return;
|
||||
}
|
||||
buf[0] = *(u16 *)(a0 + 6);
|
||||
buf[1] = *(u16 *)(a0 + 0xA) - 0x20;
|
||||
buf[2] = *(u16 *)(a0 + 0xE);
|
||||
buf[3] = 0x1800;
|
||||
func_801437D8((s32)(a0 + 0x102), (s32)buf, (s32)&D_80192E84, 0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80181248);
|
||||
|
||||
@@ -6224,7 +6459,7 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8018167
|
||||
|
||||
extern M2C_UNK D_80199644;
|
||||
extern s32 func_8012BEE8(s32 arg);
|
||||
extern s32 func_80180AF0(s32 a0, s32 a1, s32 *a2);
|
||||
extern s32 func_80180AF0();
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_8012ADE4(u8 *a0);
|
||||
@@ -6280,11 +6515,55 @@ void func_80181744(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80181850);
|
||||
extern M2C_UNK D_80199644;
|
||||
extern void func_8012A8B0(u8 *a0, s32 a1);
|
||||
extern void func_8012AD44(s32 *a0, s16 a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
|
||||
void func_80181850(s32 arg0) {
|
||||
if (*(s16 *)(arg0 + 0x98) == 0) {
|
||||
*(s32 *)(arg0 + 0x1C) = 8;
|
||||
func_8012A8B0((u8 *)arg0, (s32)&D_80199644);
|
||||
func_8012B23C(arg0);
|
||||
func_8012AD44((s32 *)arg0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801818A8);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80181968);
|
||||
#include "common.h"
|
||||
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_80180750(s32 a0);
|
||||
extern void func_80180878(s32 a0);
|
||||
extern void func_80181130(s32, s32);
|
||||
|
||||
void func_80181968(s32 arg0) {
|
||||
s32 state;
|
||||
|
||||
if (*(s16 *)(arg0 + 0xAA) == 0) {
|
||||
switch (*(u16 *)(arg0 + 0x34)) {
|
||||
case 0:
|
||||
if (func_8012BEE8(arg0) != 0) {
|
||||
if (func_80180750(arg0) != 0) {
|
||||
*(s32 *)(arg0 + 0x1C) = 0x30;
|
||||
*(u16 *)(arg0 + 0x34) = *(u16 *)(arg0 + 0x34) + 1;
|
||||
} else {
|
||||
*(s32 *)(arg0 + 0x1C) = 0x10;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (func_8012BEE8(arg0) != 0) {
|
||||
func_80180878(arg0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
((s32 (*)(s32, s32))func_80181130)(arg0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80181A20);
|
||||
|
||||
@@ -6334,7 +6613,20 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80181EE
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80182014);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80182170);
|
||||
void func_80182170(s32 a0, s32 a1)
|
||||
{
|
||||
s16 *s0 = (s16 *)a1;
|
||||
u16 flags;
|
||||
|
||||
flags = *(u16 *)(s0 + 0x2E);
|
||||
if ((flags & 0x8000) != 0 && *(u16 *)(s0 + 0x2F) != 0x1D) {
|
||||
*(u16 *)(s0 + 0x2E) = flags | 1;
|
||||
*(u16 *)(s0 + 0x30) = 0x14;
|
||||
*(u16 *)(s0 + 0x31) = func_8012B6D4(s0 + 2, (s16 *)a0 + 2);
|
||||
*(u16 *)(s0 + 0x2F) = 0x1D;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801821E0);
|
||||
|
||||
@@ -6345,7 +6637,46 @@ INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801823F
|
||||
void func_801824A8(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801824B0);
|
||||
extern void func_8012CBF4(s32);
|
||||
extern s32 func_80181D1C(s32);
|
||||
extern s32 func_80181DAC(s32);
|
||||
extern void func_80181EE8(void *);
|
||||
extern void func_80182170(s32, s32);
|
||||
extern void func_801439C0(void *);
|
||||
extern void func_8012C218(void *);
|
||||
|
||||
void func_801824B0(s32 a0) {
|
||||
s32 result;
|
||||
s16 field_a;
|
||||
void *d0;
|
||||
void *t;
|
||||
|
||||
result = ((s32 (*)(s32))func_8012CBF4)(a0);
|
||||
field_a = *(s16 *)(a0 + 0xA);
|
||||
if (field_a >= 0x81) {
|
||||
d0 = *(void **)(a0 + 0xD0);
|
||||
if (d0 != NULL) {
|
||||
((void (*)(void *))func_801439C0)(d0);
|
||||
}
|
||||
((void (*)(void *))func_8012C218)((void *)a0);
|
||||
return;
|
||||
}
|
||||
if ((result & 0x2000) != 0) {
|
||||
if ((result & 0xC000) == 0) {
|
||||
if (((s32 (*)(s32))func_80181D1C)(a0) != 0) {
|
||||
((void (*)(void *))func_80181EE8)(a0);
|
||||
} else {
|
||||
t = (void *)((s32 (*)(s32))func_80181DAC)(a0);
|
||||
if (t != NULL) {
|
||||
if (*(u16 *)t == 0x1FC) {
|
||||
((void (*)(void *, void *))func_80182170)((void *)a0, t);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: struct
|
||||
@@ -6669,9 +7000,34 @@ void func_80182CAC(s32 a0) {
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80182DC4);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80182E34);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
|
||||
void func_80182E34(void *a0) {
|
||||
extern u8 D_801A8898;
|
||||
extern u8 D_801A8A58;
|
||||
|
||||
if (*(s32 *)((char *)a0 + 0x90) == (s32)&D_801A8898) {
|
||||
func_8012A828((s32)a0, &D_801A8A58);
|
||||
*(u16 *)((char *)a0 + 0x5C) = 0xAA10;
|
||||
} else {
|
||||
*(u16 *)((char *)a0 + 0x98) = 0;
|
||||
*(u16 *)((char *)a0 + 0x5C) = 0xAA10;
|
||||
}
|
||||
*(u16 *)((char *)a0 + 0x2) = 1;
|
||||
*(u16 *)((char *)a0 + 0xFC) = 0xF;
|
||||
}
|
||||
|
||||
|
||||
void func_80182E9C(s32 a0) {
|
||||
*(s16 *)(a0 + 0x52) = 0;
|
||||
if (*(u8 *)(a0 + 0x5E) == 0x1D) {
|
||||
if (*(s16 *)(a0 + 0x10A) == 0) {
|
||||
*(s32 *)(a0 + 0xC4) |= 1;
|
||||
*(s16 *)(a0 + 0x10A) = 0x3C;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80182E9C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80182ED4);
|
||||
|
||||
@@ -6699,15 +7055,101 @@ void func_80182FA8(s32 arg0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80182FF0);
|
||||
void func_80182FF0(s32 a0) {
|
||||
extern u8 D_8019DB0C[];
|
||||
extern s32 D_8019DBA8;
|
||||
extern s32 D_8019DB40;
|
||||
extern u8 D_801A82F8[];
|
||||
extern s32 func_80143970(s32 a0);
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
|
||||
if (func_8012C354(a0, (s32)D_8019DB0C) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
*(u8 *)(a0 + 0xC0) = 1;
|
||||
*(s32 *)(a0 + 0xB4) = -1;
|
||||
func_80143970(a0);
|
||||
func_8012A828(a0, (void *)&D_801A82F8);
|
||||
*(u16 *)(a0 + 2) = *(u16 *)(a0 + 2) + 1;
|
||||
func_8012B23C(a0);
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 3) {
|
||||
*(s32 *)(a0 + 0xBC) = (s32)&D_8019DBA8;
|
||||
} else {
|
||||
*(s32 *)(a0 + 0xBC) = (s32)&D_8019DB40;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012BCCC(s32 a0);
|
||||
extern void func_8012A828(s32, void*);
|
||||
extern u8 D_801A82F8[];
|
||||
extern u8 D_801A8380[];
|
||||
|
||||
void func_8018308C(s32 a0) {
|
||||
if (*(s16 *)(a0 + 0x98) == 0) {
|
||||
func_8012A828(a0, D_801A82F8);
|
||||
}
|
||||
if (*(s16 *)(a0 + 0xFE) != 0) {
|
||||
*(s16 *)(a0 + 0xFE) = 0;
|
||||
} else if (*(s16 *)(a0 + 0xFC) != 0) {
|
||||
*(s16 *)(a0 + 0xFC) -= 1;
|
||||
} else if (func_8012BCCC(a0) <= 0x40000) {
|
||||
*(s16 *)(a0 + 0x2) = 2;
|
||||
func_8012A828(a0, D_801A8380);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_8018308C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80183130);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801831FC);
|
||||
void func_801831FC(s32 a0) {
|
||||
extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_8012CBCC(s32 a0);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern u16 D_80126B96;
|
||||
extern u8 D_8019DC24[];
|
||||
extern u8 D_8019DC2C[];
|
||||
extern u8 D_801A8428[];
|
||||
extern u8 D_8019DAEC[];
|
||||
|
||||
if (*(s32 *)(a0 + 0x94) < 0x3D) {
|
||||
if (func_8012D5E4(a0, (s32)D_8019DC24, (s32)D_8019DC2C, 0x20) == 1) {
|
||||
D_80126B96 = 4;
|
||||
}
|
||||
}
|
||||
if (func_8012CBCC(a0) & 0x6000) {
|
||||
*(s16 *)(a0 + 0x2) = 5;
|
||||
func_8012A828(a0, D_801A8428);
|
||||
*(s16 *)(a0 + 0xFC) = 0;
|
||||
*(s32 *)(a0 + 0x58) = ((s32)D_8019DAEC | 0x40000000) | 0x20000000;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8002A04C(s32 a0);
|
||||
extern void func_8012C098(void);
|
||||
extern void func_8012E8A8(u8 *a0);
|
||||
|
||||
void func_801832A8(s32 arg0) {
|
||||
register s32 s0 __asm__("$16") = arg0;
|
||||
*(s16 *)(s0 + 0x76) = 0;
|
||||
if (*(s16 *)(s0 + 0x100) == 0) {
|
||||
func_8002A04C(s0);
|
||||
}
|
||||
if (*(s16 *)(s0 + 0xFE) == 0) {
|
||||
((void (*)(void *))func_8012C098)(s0);
|
||||
} else {
|
||||
*(s16 *)(s0 + 0x2) = 6;
|
||||
func_8012E8A8((u8 *)s0);
|
||||
*(s16 *)(s0 + 0x5C) = 0;
|
||||
*(u8 *)(s0 + 0xC1) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801832A8);
|
||||
|
||||
|
||||
// @class: plumbing
|
||||
@@ -6726,7 +7168,36 @@ void func_80183318(s32 arg0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80183360);
|
||||
extern void func_8012EFB8(s32 a0);
|
||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||
|
||||
void func_80183360(void *a0) {
|
||||
u16 in[3];
|
||||
s16 out[2];
|
||||
|
||||
in[0] = *(u16 *)((char *)a0 + 0x6);
|
||||
in[1] = *(u16 *)((char *)a0 + 0xA);
|
||||
in[2] = *(u16 *)((char *)a0 + 0xE);
|
||||
|
||||
((void (*)(u16 *, s16 *))func_8012EFB8)(in, out);
|
||||
|
||||
{
|
||||
s32 v = out[0];
|
||||
if (v < 0) {
|
||||
v = -v;
|
||||
}
|
||||
if (v < 0xB5) {
|
||||
v = out[1];
|
||||
if (v < 0) {
|
||||
v = -v;
|
||||
}
|
||||
if (v < 0xA1) {
|
||||
func_8002D4C8(0x98A, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
@@ -6901,7 +7372,19 @@ void func_8018359C(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80183750);
|
||||
extern void func_80184614(s32 a0, u16 *a1, s16 a2);
|
||||
|
||||
void func_80183750(u8 *a0) {
|
||||
s16 sp10[3];
|
||||
|
||||
if (*(u16 *)(a0 + 0x5E) == 0x24) {
|
||||
sp10[0] = 2;
|
||||
sp10[1] = 0xF;
|
||||
sp10[2] = -2;
|
||||
func_80184614((s32)a0, (u16 *)sp10, 0xD);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Fresh mass-lane crack (Phase-31 wave T). No banked twin was found for this
|
||||
@@ -6972,7 +7455,20 @@ void func_801838E4(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80183920);
|
||||
extern void (*D_801A8CA4[])(void);
|
||||
|
||||
void func_80183920(void *a0) {
|
||||
D_801A8CA4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
if (*(u16 *)((s32)a0 + 0x0) != 0) {
|
||||
void *ptr = *(void **)((s32)a0 + 0xCC);
|
||||
*(u16 *)((s32)ptr + 0x8) = *(u16 *)((s32)a0 + 0x6);
|
||||
ptr = *(void **)((s32)a0 + 0xCC);
|
||||
*(u16 *)((s32)ptr + 0xA) = *(u16 *)((s32)a0 + 0xA);
|
||||
ptr = *(void **)((s32)a0 + 0xCC);
|
||||
*(u16 *)((s32)ptr + 0xC) = *(u16 *)((s32)a0 + 0xE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_801839A8);
|
||||
|
||||
@@ -6993,7 +7489,29 @@ void func_80183A80(u8 *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80183AD8);
|
||||
extern void func_8012CBF4(s32 a0);
|
||||
extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern void func_80183B64(s32 param_1);
|
||||
|
||||
extern u16 D_80126B96;
|
||||
extern s32 D_801A8CB0;
|
||||
|
||||
void func_80183AD8(s32 param_1)
|
||||
{
|
||||
s32 p;
|
||||
|
||||
p = *(s32 *)(param_1 + 0xCC);
|
||||
*(u16 *)(p + 0x14) = *(u16 *)(p + 0x14) + 0x80;
|
||||
if (((s32 (*)(s32))func_8012CBF4)(param_1) == 0) {
|
||||
if (func_8012D5E4(param_1, (s32)&D_801A8CB0, (s32)((u8 *)&D_801A8CB0 + 8), 0x10) == 0 &&
|
||||
--*(s32 *)(param_1 + 0x1C) != 0) {
|
||||
return;
|
||||
}
|
||||
D_80126B96 = 0x13;
|
||||
}
|
||||
func_80183B64(param_1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_80016714(void *a0, s32 a1);
|
||||
@@ -7044,7 +7562,47 @@ void func_80183CA4(int param_1)
|
||||
void func_80183CFC(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8017AE2C", func_80183D04);
|
||||
extern void func_8012CAE4(void *a0);
|
||||
extern s32 func_8012C354(s32 a0, s32 a1);
|
||||
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012E504(s32 a0, s32 a1);
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
|
||||
void func_80183D04(s32 s0) {
|
||||
s32 v0;
|
||||
s32 a1v;
|
||||
|
||||
extern s32 D_801A8B80;
|
||||
extern s32 D_801A8BB4;
|
||||
extern u8 D_801B0B30;
|
||||
|
||||
v0 = func_8012C354(s0, (s32)&D_801A8B80);
|
||||
if (v0 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
*(u8 *)(s0 + 0xC0) = 1;
|
||||
*(s32 *)(s0 + 0xB4) = -1;
|
||||
*(s32 *)(s0 + 0xBC) = (s32)&D_801A8BB4;
|
||||
*(s32 *)(s0 + 0xC4) = 1;
|
||||
|
||||
a1v = *(s16 *)(s0 + 0x70);
|
||||
*(u16 *)(s0 + 0xAE) = 8;
|
||||
|
||||
v0 = func_8012C658(0x23F, a1v, s0);
|
||||
*(s32 *)(s0 + 0x6C) = v0;
|
||||
|
||||
if (v0 == 0) {
|
||||
func_8012CAE4((void *)s0);
|
||||
} else {
|
||||
if (func_8012E504(s0, 0x23D) == 0) {
|
||||
*(u16 *)(s0 + 0xFE) = 1;
|
||||
}
|
||||
*(u16 *)(s0 + 0x2) = 1;
|
||||
func_8012A828(s0, (void *)&D_801B0B30);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_801AA6D0;
|
||||
extern void func_8001C214(s32 a0, s32 a1);
|
||||
|
||||
Reference in New Issue
Block a user