mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 22:45:39 -04:00
feat(decomp): family-remap-hnorm gate — +4 fns x0 propagated (fleet 98.9%)
This commit is contained in:
@@ -1386,7 +1386,33 @@ DEFINE_func_8012D5E4() /* dedup: shared engine-core @0x8012d5e4 (src/shared) */
|
||||
DEFINE_func_8012D624() /* dedup: shared engine-core @0x8012d624 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010", func_8012D664);
|
||||
|
||||
|
||||
int func_8012D664(int arg0, int arg1, int arg2)
|
||||
{
|
||||
extern u16 D_80126B5E;
|
||||
extern u16 D_80126B62;
|
||||
extern u16 D_80126B66;
|
||||
extern s32 func_800132BC(s32 a0, s32 a1);
|
||||
extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5);
|
||||
extern u8 D_801822FC[];
|
||||
|
||||
u16 s[3];
|
||||
int ret;
|
||||
int t;
|
||||
|
||||
s[0] = (*(unsigned short *)&D_80126B5E);
|
||||
s[1] = (*(unsigned short *)&D_80126B62) - 0x40;
|
||||
s[2] = (*(unsigned short *)&D_80126B66);
|
||||
ret = ((int (*)())func_800132BC)(arg0, s);
|
||||
t = arg1 + 0x20;
|
||||
if (ret < t * t) {
|
||||
func_8012F568(1, 1, 0, arg2, arg0, &D_801822FC);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
DEFINE_func_8012D714() /* dedup: shared engine-core @0x8012d714 (src/shared) */
|
||||
|
||||
|
||||
@@ -1198,7 +1198,18 @@ void func_80136C54(void)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_80135D20", func_80136C90);
|
||||
|
||||
|
||||
|
||||
|
||||
s32 func_80136C90()
|
||||
{
|
||||
extern void func_8001534C(int, void *, int, int, int, int);
|
||||
extern S10_80136C90 D_801A5A7C;
|
||||
S10_80136C90 buf = D_801A5A7C;
|
||||
func_8001534C(0, &buf, 0x78, 0x10, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
void func_80136D00(void) {
|
||||
}
|
||||
|
||||
@@ -547,7 +547,106 @@ DEFINE_func_80145BF8() /* dedup: shared engine-core @0x80145bf8 (src/shared) */
|
||||
DEFINE_func_80145C54() /* dedup: shared engine-core @0x80145c54 (src/shared) */
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_801457A4", func_80145CEC);
|
||||
|
||||
|
||||
void func_80145CEC(void) {
|
||||
extern int func_8001C320();
|
||||
extern s32 func_80029504(void);
|
||||
extern int func_801552F4();
|
||||
extern int func_80147084();
|
||||
extern int func_80147098();
|
||||
extern int func_801470AC();
|
||||
extern int func_80149210();
|
||||
extern int func_8014BE9C();
|
||||
extern int func_8016533C();
|
||||
extern int func_801627C0();
|
||||
extern int func_80162AF4();
|
||||
extern int func_80165C78();
|
||||
extern int func_801468C8();
|
||||
extern int func_80145EE8();
|
||||
extern int func_8014C968();
|
||||
extern int func_8014C6D0();
|
||||
extern int func_80165938();
|
||||
extern int func_80153C8C();
|
||||
extern int func_800290BC();
|
||||
extern s32 D_800AFAE8;
|
||||
extern s32 D_800DE2A4;
|
||||
extern s32 D_801152C8;
|
||||
extern s32 D_80183970;
|
||||
extern s32 * D_80126B78[1];
|
||||
extern s32 * D_800AF7C8;
|
||||
extern s32 * D_80126B90;
|
||||
extern s16 D_80126BB8;
|
||||
extern s16 D_80126BBA;
|
||||
extern s16 D_80126BBC;
|
||||
extern s16 D_80126BC0;
|
||||
extern s16 D_80126BC2;
|
||||
extern s16 D_80126BC4;
|
||||
extern s16 D_80126BC8;
|
||||
extern s16 D_80126BCA;
|
||||
extern s16 D_80126BCC;
|
||||
extern s16 D_80126D10;
|
||||
extern s16 D_80126D12;
|
||||
extern s16 D_80126C4E;
|
||||
extern s16 currentLocationId;
|
||||
extern s32 D_8011F9C4;
|
||||
extern s32 D_8012707C;
|
||||
extern s32 D_8011DB10;
|
||||
extern s32 D_80126B58;
|
||||
|
||||
unsigned int uVar1;
|
||||
s32 pad[2];
|
||||
(void)&pad;
|
||||
|
||||
func_80016714(&D_80126B58, 0x254);
|
||||
D_80126B78[0] = (s32 *)&D_800AFAE8;
|
||||
D_800AF7C8 = (s32 *)&D_801152C8;
|
||||
func_8001C320(&D_800AFAE8, &D_800DE2A4);
|
||||
*(s32 *)((s32)D_80126B78[0] + 0x28) = 0x7fff7fff;
|
||||
D_80126B90 = (s32 *)&D_80183970;
|
||||
*(u16 *)((s32)D_80126B78[0] + 0x18) = 0x1000;
|
||||
D_80126BC8 = 0x1000;
|
||||
D_80126BC0 = 0x1000;
|
||||
D_80126BB8 = 0x1000;
|
||||
*(u16 *)((s32)D_80126B78[0] + 0x1a) = 0x1000;
|
||||
D_80126BCA = 0x1000;
|
||||
D_80126BC2 = 0x1000;
|
||||
D_80126BBA = 0x1000;
|
||||
*(u16 *)((s32)D_80126B78[0] + 0x1c) = 0x1000;
|
||||
D_80126BCC = 0x1000;
|
||||
D_80126BC4 = 0x1000;
|
||||
D_80126BBC = 0x1000;
|
||||
D_80126D12 = 0x1000;
|
||||
D_80126D10 = 0x1000;
|
||||
D_80126C4E = 0x1000;
|
||||
func_801552F4(&D_80126B58);
|
||||
func_80147084(&D_80126B58);
|
||||
func_80147098(&D_80126B58);
|
||||
func_801470AC(&D_80126B58);
|
||||
*(u16 *)((s32)D_80126B78[0] + 0x2c) = *(u16 *)((s32)D_80126B78[0] + 0x2c) | 0x50;
|
||||
func_80149210(&D_80126B58, 8);
|
||||
func_8014BE9C();
|
||||
func_8016533C();
|
||||
func_801627C0();
|
||||
func_80162AF4();
|
||||
func_80165C78();
|
||||
func_801468C8(&D_80126B58, 1);
|
||||
if (currentLocationId != 0x30a2 && currentLocationId != 0x30a5) {
|
||||
func_80145EE8(0);
|
||||
}
|
||||
func_8014C968();
|
||||
func_8014C6D0();
|
||||
D_8011F9C4 = 0;
|
||||
func_80165938();
|
||||
func_80153C8C();
|
||||
D_8012707C = 0;
|
||||
D_8011DB10 = 0;
|
||||
uVar1 = ((int (*)())func_80029504)();
|
||||
if (uVar1 >= 10) {
|
||||
func_800290BC();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2536,7 +2536,33 @@ s32 func_8016BBE0(s32 param_1) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8016AE5C", func_8016BCC0);
|
||||
|
||||
|
||||
extern M2C_UNK D_801A70FC;
|
||||
extern M2C_UNK D_801A7100;
|
||||
extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
|
||||
void func_8016BCC0(void *arg0) {
|
||||
u16 temp_a2;
|
||||
u16 temp_v0;
|
||||
void *temp_s0;
|
||||
temp_s0 = M2C_FIELD(arg0, void **, 0x20);
|
||||
func_8016BF50();
|
||||
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
|
||||
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
|
||||
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
|
||||
func_8016BFA8(arg0, &D_801A70FC, &D_801A7100, temp_s0 + 0x18);
|
||||
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
|
||||
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
|
||||
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
|
||||
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
|
||||
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8016BF50(s32);
|
||||
extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
|
||||
Reference in New Issue
Block a user