feat(phase-31): propagate func_80187F30 (gate lane)

This commit is contained in:
Drew T
2026-08-15 08:03:06 -06:00
parent c0c19b5c00
commit b5b3072d88
4 changed files with 57 additions and 31 deletions
+7
View File
@@ -14873,3 +14873,10 @@ groups:
func: DEFINE_func_80187354
vram: 0x80187354
binaries: [ov_SC02_000, ov_SC02_003]
- id: E_func_80187F30
tier: h_exact
hash: 1d8b61606669da1cd2b9b46a04c0e22c3d0120e3
source: src/shared/engine_core.h
func: DEFINE_func_80187F30
vram: 0x80187F30
binaries: [ov_SC02_000, ov_SC02_003]
+1 -30
View File
@@ -5281,36 +5281,7 @@ void func_80187EB4(int param_1) {
#include "common.h"
extern void func_8012AD80(s32 a0);
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
s32 func_80187F30(void *a0, s32 a1) {
s16 arr1[3];
s16 arr2[3];
s32 res_val;
arr1[0] = *(u16 *)((s32)a0 + 0x3A);
arr1[1] = *(u16 *)((s32)a0 + 0x3E) + 0x10;
arr1[2] = *(u16 *)((s32)a0 + 0x42);
func_8012AD80((s32)a0);
arr2[0] = *(u16 *)((s32)a0 + 0x6);
arr2[1] = *(u16 *)((s32)a0 + 0xA) + 0x10;
arr2[2] = *(u16 *)((s32)a0 + 0xE);
res_val = func_8012CEB0((s32)arr1, (s32)arr2, a1);
*(u16 *)((s32)a0 + 0x6) = arr2[0];
*(u16 *)((s32)a0 + 0xA) = arr2[1] - 0x10;
*(u16 *)((s32)a0 + 0xE) = arr2[2];
if ((res_val & 0x6000) != 0) {
*(s32 *)((s32)a0 + 0x14) = 0;
}
return res_val;
}
DEFINE_func_80187F30() /* dedup: shared engine-core @0x80187F30 (src/shared) */
+1 -1
View File
@@ -3440,7 +3440,7 @@ void func_80187EB4(int param_1) {
}
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80187F30);
DEFINE_func_80187F30() /* dedup: shared engine-core @0x80187F30 (src/shared) */
extern void (*D_8018F540[])(void);
+48
View File
@@ -61158,6 +61158,30 @@
} \
}
#define DEFINE_func_80187F30() \
extern void func_8012AD80(s32 a0); \
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); \
s32 func_80187F30(void *a0, s32 a1) { \
s16 arr1[3]; \
s16 arr2[3]; \
s32 res_val; \
arr1[0] = *(u16 *)((s32)a0 + 0x3A); \
arr1[1] = *(u16 *)((s32)a0 + 0x3E) + 0x10; \
arr1[2] = *(u16 *)((s32)a0 + 0x42); \
func_8012AD80((s32)a0); \
arr2[0] = *(u16 *)((s32)a0 + 0x6); \
arr2[1] = *(u16 *)((s32)a0 + 0xA) + 0x10; \
arr2[2] = *(u16 *)((s32)a0 + 0xE); \
res_val = func_8012CEB0((s32)arr1, (s32)arr2, a1); \
*(u16 *)((s32)a0 + 0x6) = arr2[0]; \
*(u16 *)((s32)a0 + 0xA) = arr2[1] - 0x10; \
*(u16 *)((s32)a0 + 0xE) = arr2[2]; \
if ((res_val & 0x6000) != 0) { \
*(s32 *)((s32)a0 + 0x14) = 0; \
} \
return res_val; \
}
#endif
#define DEFINE_func_80128EA8() \
@@ -151721,4 +151745,28 @@
} \
}
#define DEFINE_func_80187F30() \
extern void func_8012AD80(s32 a0); \
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); \
s32 func_80187F30(void *a0, s32 a1) { \
s16 arr1[3]; \
s16 arr2[3]; \
s32 res_val; \
arr1[0] = *(u16 *)((s32)a0 + 0x3A); \
arr1[1] = *(u16 *)((s32)a0 + 0x3E) + 0x10; \
arr1[2] = *(u16 *)((s32)a0 + 0x42); \
func_8012AD80((s32)a0); \
arr2[0] = *(u16 *)((s32)a0 + 0x6); \
arr2[1] = *(u16 *)((s32)a0 + 0xA) + 0x10; \
arr2[2] = *(u16 *)((s32)a0 + 0xE); \
res_val = func_8012CEB0((s32)arr1, (s32)arr2, a1); \
*(u16 *)((s32)a0 + 0x6) = arr2[0]; \
*(u16 *)((s32)a0 + 0xA) = arr2[1] - 0x10; \
*(u16 *)((s32)a0 + 0xE) = arr2[2]; \
if ((res_val & 0x6000) != 0) { \
*(s32 *)((s32)a0 + 0x14) = 0; \
} \
return res_val; \
}
#endif