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

This commit is contained in:
Drew T
2026-08-15 08:03:57 -06:00
parent 229c6fa8df
commit 46cc75a5ce
4 changed files with 73 additions and 34 deletions
+7
View File
@@ -14908,3 +14908,10 @@ groups:
func: DEFINE_func_80182894
vram: 0x80182894
binaries: [ov_SC02_000, ov_SC02_003]
- id: E_func_80184B14
tier: h_exact
hash: 6a947e565c4e8483fb8f236fc4f79343f371fa76
source: src/shared/engine_core.h
func: DEFINE_func_80184B14
vram: 0x80184B14
binaries: [ov_SC02_000, ov_SC02_003]
+1 -33
View File
@@ -3830,39 +3830,7 @@ DEFINE_func_80184B00() /* dedup: shared engine-core @0x80184B00 (src/shared) */
#include "common.h"
extern void func_801819F4(void);
extern void func_801831F8(void);
extern s32 D_801E873C;
extern s32 D_801E874C;
void func_80184B14(s32 a0) {
s32 ptr;
s32 v1;
ptr = *(s32 *)(a0 + 0x20);
*(u16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + 0x20;
*(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x8) + 0xFFFA0000;
if (*(s16 *)(a0 + 0xA) < -0x4F0) {
*(s32 *)(a0 + 0x18) = 0xFFF24000;
func_801819F4();
func_801831F8();
v1 = 0xFFF46667;
*(s32 *)(a0 + 0x18) = v1;
__asm__("");
v1 = *(u16 *)(a0 + 0x2);
*(s16 *)(a0 + 0xDC) = 0x10;
D_801E874C = 0x20;
*(s32 *)(a0 + 0x14) = 0xFFF80000;
*(s16 *)(a0 + 0xDE) = 0;
D_801E873C = 0;
*(s32 *)(a0 + 0x44) = 0;
*(s32 *)(a0 + 0x48) = 0x8000;
*(s32 *)(a0 + 0x4C) = 0;
v1 = v1 + 1;
*(u16 *)(a0 + 0x2) = v1;
}
}
DEFINE_func_80184B14() /* dedup: shared engine-core @0x80184B14 (src/shared) */
#include "common.h"
+1 -1
View File
@@ -3168,7 +3168,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80184A0
DEFINE_func_80184B00() /* dedup: shared engine-core @0x80184B00 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80184B14);
DEFINE_func_80184B14() /* dedup: shared engine-core @0x80184B14 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_80184BD8);
+64
View File
@@ -61315,6 +61315,38 @@
} \
}
#define DEFINE_func_80184B14() \
extern void func_801819F4(void); \
extern void func_801831F8(void); \
extern s32 D_801E873C; \
extern s32 D_801E874C; \
void func_80184B14(s32 a0) { \
s32 ptr; \
s32 v1; \
ptr = *(s32 *)(a0 + 0x20); \
*(u16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + 0x20; \
*(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x8) + 0xFFFA0000; \
if (*(s16 *)(a0 + 0xA) < -0x4F0) { \
*(s32 *)(a0 + 0x18) = 0xFFF24000; \
func_801819F4(); \
func_801831F8(); \
v1 = 0xFFF46667; \
*(s32 *)(a0 + 0x18) = v1; \
__asm__(""); \
v1 = *(u16 *)(a0 + 0x2); \
*(s16 *)(a0 + 0xDC) = 0x10; \
D_801E874C = 0x20; \
*(s32 *)(a0 + 0x14) = 0xFFF80000; \
*(s16 *)(a0 + 0xDE) = 0; \
D_801E873C = 0; \
*(s32 *)(a0 + 0x44) = 0; \
*(s32 *)(a0 + 0x48) = 0x8000; \
*(s32 *)(a0 + 0x4C) = 0; \
v1 = v1 + 1; \
*(u16 *)(a0 + 0x2) = v1; \
} \
}
#endif
#define DEFINE_func_80128EA8() \
@@ -152035,4 +152067,36 @@
} \
}
#define DEFINE_func_80184B14() \
extern void func_801819F4(void); \
extern void func_801831F8(void); \
extern s32 D_801E873C; \
extern s32 D_801E874C; \
void func_80184B14(s32 a0) { \
s32 ptr; \
s32 v1; \
ptr = *(s32 *)(a0 + 0x20); \
*(u16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + 0x20; \
*(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x8) + 0xFFFA0000; \
if (*(s16 *)(a0 + 0xA) < -0x4F0) { \
*(s32 *)(a0 + 0x18) = 0xFFF24000; \
func_801819F4(); \
func_801831F8(); \
v1 = 0xFFF46667; \
*(s32 *)(a0 + 0x18) = v1; \
__asm__(""); \
v1 = *(u16 *)(a0 + 0x2); \
*(s16 *)(a0 + 0xDC) = 0x10; \
D_801E874C = 0x20; \
*(s32 *)(a0 + 0x14) = 0xFFF80000; \
*(s16 *)(a0 + 0xDE) = 0; \
D_801E873C = 0; \
*(s32 *)(a0 + 0x44) = 0; \
*(s32 *)(a0 + 0x48) = 0x8000; \
*(s32 *)(a0 + 0x4C) = 0; \
v1 = v1 + 1; \
*(u16 *)(a0 + 0x2) = v1; \
} \
}
#endif