mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 22:45:39 -04:00
feat(decomp): propagate func_8017D4F0 (gate lane)
This commit is contained in:
@@ -15244,3 +15244,10 @@ groups:
|
||||
func: DEFINE_func_8017ED5C
|
||||
vram: 0x8017ED5C
|
||||
binaries: [ov_SC01_005, ov_SC01_006]
|
||||
- id: E_func_8017D4F0
|
||||
tier: h_exact
|
||||
hash: 233ab6ca39239be7aa7a5baeebfb2da70b468452
|
||||
source: src/shared/engine_core.h
|
||||
func: DEFINE_func_8017D4F0
|
||||
vram: 0x8017D4F0
|
||||
binaries: [ov_SC05_001, ov_SC05_006]
|
||||
|
||||
@@ -3483,30 +3483,7 @@ void func_8017D480(void *a0) {
|
||||
* counter unconditionally (gcc puts that store in the beqz delay slot),
|
||||
* then either slide @0x2A down by 0x10 or run the 3-call teardown. */
|
||||
|
||||
extern void func_80147324(s32 arg0);
|
||||
extern void func_80147084(s32 *a0);
|
||||
extern void func_801472B4(void *a0);
|
||||
extern void func_8017D0F8(int);
|
||||
|
||||
void func_8017D4F0(void *a0)
|
||||
{
|
||||
s32 t;
|
||||
s32 *sub;
|
||||
|
||||
t = *(s32 *)((s32)a0 + 0x1C);
|
||||
sub = *(s32 **)((s32)a0 + 0x34);
|
||||
*(s32 *)((s32)a0 + 0x1C) = t + 1;
|
||||
if (t < 0x20) {
|
||||
*(u16 *)((s32)a0 + 0x2A) = *(u16 *)((s32)a0 + 0x2A) - 0x10;
|
||||
} else {
|
||||
func_80147324(*(u16 *)((s32)a0 + 0x2C));
|
||||
func_80147084(sub);
|
||||
func_801472B4(sub);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0;
|
||||
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1;
|
||||
}
|
||||
((void (*)(void *))func_8017D0F8)(a0);
|
||||
}
|
||||
DEFINE_func_8017D4F0() /* dedup: shared engine-core @0x8017D4F0 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3480,30 +3480,7 @@ void func_8017D480(void *a0) {
|
||||
* counter unconditionally (gcc puts that store in the beqz delay slot),
|
||||
* then either slide @0x2A down by 0x10 or run the 3-call teardown. */
|
||||
|
||||
extern void func_80147324(s32 arg0);
|
||||
extern void func_80147084(s32 *a0);
|
||||
extern void func_801472B4(void *a0);
|
||||
extern void func_8017D0F8(int);
|
||||
|
||||
void func_8017D4F0(void *a0)
|
||||
{
|
||||
s32 t;
|
||||
s32 *sub;
|
||||
|
||||
t = *(s32 *)((s32)a0 + 0x1C);
|
||||
sub = *(s32 **)((s32)a0 + 0x34);
|
||||
*(s32 *)((s32)a0 + 0x1C) = t + 1;
|
||||
if (t < 0x20) {
|
||||
*(u16 *)((s32)a0 + 0x2A) = *(u16 *)((s32)a0 + 0x2A) - 0x10;
|
||||
} else {
|
||||
func_80147324(*(u16 *)((s32)a0 + 0x2C));
|
||||
func_80147084(sub);
|
||||
func_801472B4(sub);
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0;
|
||||
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1;
|
||||
}
|
||||
((void (*)(void *))func_8017D0F8)(a0);
|
||||
}
|
||||
DEFINE_func_8017D4F0() /* dedup: shared engine-core @0x8017D4F0 (src/shared) */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -65900,6 +65900,30 @@
|
||||
return result; \
|
||||
}
|
||||
|
||||
#define DEFINE_func_8017D4F0() \
|
||||
extern void func_80147324(s32 arg0); \
|
||||
extern void func_80147084(s32 *a0); \
|
||||
extern void func_801472B4(void *a0); \
|
||||
extern void func_8017D0F8(int); \
|
||||
void func_8017D4F0(void *a0) \
|
||||
{ \
|
||||
s32 t; \
|
||||
s32 *sub; \
|
||||
t = *(s32 *)((s32)a0 + 0x1C); \
|
||||
sub = *(s32 **)((s32)a0 + 0x34); \
|
||||
*(s32 *)((s32)a0 + 0x1C) = t + 1; \
|
||||
if (t < 0x20) { \
|
||||
*(u16 *)((s32)a0 + 0x2A) = *(u16 *)((s32)a0 + 0x2A) - 0x10; \
|
||||
} else { \
|
||||
func_80147324(*(u16 *)((s32)a0 + 0x2C)); \
|
||||
func_80147084(sub); \
|
||||
func_801472B4(sub); \
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0; \
|
||||
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; \
|
||||
} \
|
||||
((void (*)(void *))func_8017D0F8)(a0); \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define DEFINE_func_80128EA8() \
|
||||
@@ -161205,4 +161229,28 @@
|
||||
return result; \
|
||||
}
|
||||
|
||||
#define DEFINE_func_8017D4F0() \
|
||||
extern void func_80147324(s32 arg0); \
|
||||
extern void func_80147084(s32 *a0); \
|
||||
extern void func_801472B4(void *a0); \
|
||||
extern void func_8017D0F8(int); \
|
||||
void func_8017D4F0(void *a0) \
|
||||
{ \
|
||||
s32 t; \
|
||||
s32 *sub; \
|
||||
t = *(s32 *)((s32)a0 + 0x1C); \
|
||||
sub = *(s32 **)((s32)a0 + 0x34); \
|
||||
*(s32 *)((s32)a0 + 0x1C) = t + 1; \
|
||||
if (t < 0x20) { \
|
||||
*(u16 *)((s32)a0 + 0x2A) = *(u16 *)((s32)a0 + 0x2A) - 0x10; \
|
||||
} else { \
|
||||
func_80147324(*(u16 *)((s32)a0 + 0x2C)); \
|
||||
func_80147084(sub); \
|
||||
func_801472B4(sub); \
|
||||
*(s32 *)((s32)a0 + 0x1C) = 0; \
|
||||
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; \
|
||||
} \
|
||||
((void (*)(void *))func_8017D0F8)(a0); \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user