mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-03 16:16:50 -04:00
feat(decomp): ox wave cp overlays — 4 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
This commit is contained in:
@@ -5782,7 +5782,20 @@ void func_801AC150(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AC234);
|
||||
extern s32 func_80128ED8(s32 a0, s32 *a1);
|
||||
|
||||
void func_801AC234(void *a0)
|
||||
{
|
||||
extern void func_801292C8(u8 *a0);
|
||||
extern void func_8012931C(struct vec *a0);
|
||||
|
||||
func_8012931C((struct vec *)a0);
|
||||
if (func_80128ED8(*(s32 *)((char *)a0 + 0x20), (s32 *)((char *)a0 + 0x24)) != 0 ||
|
||||
(*(s16 *)((char *)a0 + 0x2C) != 2 && *(s16 *)((char *)a0 + 0xA) >= -0x200)) {
|
||||
func_801292C8((u8 *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
@@ -4682,7 +4682,36 @@ void func_80180C68(void *a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8017D898", func_80180D54);
|
||||
extern void Square0(s32 *a0, s32 *a1);
|
||||
extern u16 D_80126B5E;
|
||||
extern u16 D_80126B66;
|
||||
extern u16 D_80126B62;
|
||||
|
||||
s32 func_80180D54(void *a0, s32 a1) {
|
||||
s32 in[3];
|
||||
s32 out[3];
|
||||
s32 d;
|
||||
s16 e;
|
||||
register s32 ret __asm__("$2");
|
||||
|
||||
in[0] = *(s16 *)((s32)a0 + 6) - *(s16 *)&D_80126B5E;
|
||||
in[1] = 0;
|
||||
in[2] = *(s16 *)((s32)a0 + 0xE) - *(s16 *)&D_80126B66;
|
||||
Square0(in, out);
|
||||
|
||||
d = D_80126B62 - *(u16 *)((s32)a0 + 0xA);
|
||||
e = d;
|
||||
if ((s16)d < 0) {
|
||||
e = -d;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
if (out[0] + out[2] < (u16)a1 * (u16)a1) {
|
||||
ret = (s16)e < 4;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void func_80180E14(void) {
|
||||
|
||||
|
||||
@@ -7978,7 +7978,21 @@ s32 func_80186710(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80186798);
|
||||
#include "common.h"
|
||||
|
||||
void func_80186798(s32 a0, void *a1) {
|
||||
extern u8 D_80194724[];
|
||||
extern s32 aFC4C[] __asm__("D_801EFC4C");
|
||||
extern void func_801868A0();
|
||||
u32 i;
|
||||
|
||||
for (i = 0; i < (u32)a0; i++) {
|
||||
if (D_80194724[i] == 0) {
|
||||
func_801868A0((void *)aFC4C[i], a1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 aFC4C[] __asm__("D_801EFC4C");
|
||||
extern u8 D_80194724[];
|
||||
|
||||
@@ -6238,7 +6238,43 @@ extern s32 func_8012BEE8(s32 arg);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_80181A1C);
|
||||
extern void func_8012A828(s32*, s32);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern u8 D_80078E78[];
|
||||
extern s32 rand(void);
|
||||
|
||||
/* func_80181A1C — entity state-kick #0xA (head-crack entry). */
|
||||
void func_80181A1C(void *a0) {
|
||||
|
||||
extern u8 D_801ADDEC[];
|
||||
volatile s32 pad[4];
|
||||
u8 *p;
|
||||
s32 t;
|
||||
s32 r;
|
||||
s32 h;
|
||||
s32 v;
|
||||
|
||||
t = rand();
|
||||
p = D_80078E78;
|
||||
r = t % 1024;
|
||||
h = *(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12);
|
||||
if (rand() & 1) {
|
||||
v = h + r;
|
||||
} else {
|
||||
v = h - r;
|
||||
}
|
||||
*(s32 *)((s32)a0 + 0xE0) = v;
|
||||
func_8012B23C((s32)a0);
|
||||
((void (*)(s32, void *))func_8012A828)((s32)a0, D_801ADDEC);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 150;
|
||||
*(s32 *)((s32)a0 + 0xE4) = 0;
|
||||
if (p[0x36] != 0) {
|
||||
*(s16 *)((s32)a0 + 2) = 6;
|
||||
} else {
|
||||
*(s16 *)((s32)a0 + 2) = 7;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
|
||||
extern s32 func_8012B8E4(s32 a0, s32 a1);
|
||||
|
||||
Reference in New Issue
Block a user