mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 15:43:06 -04:00
514383de6a
Session-total 72.1->74.6% instr (+2.5pp). 8 exemplars + ~815 members banked; 3 Fable source-read cracks (cse.c address-CSE, post-reload sched, reorg j-slot). Follow-ups: 801670e4/8016cbc0 per-sibling decl-norm, 8013d53c caller-thread, 801412a8 §29 wall, 4 permuter near-misses. All drafts preserved (R20).
41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
#include "common.h"
|
|
|
|
extern u8 D_801202A0[];
|
|
extern u8 D_80126720[];
|
|
extern u8 D_801152A8[];
|
|
extern s32 func_80135D20(s32 a0, s32 a1, void *a2);
|
|
|
|
typedef struct { s16 unk0, unk2, unk4, unk6; } Vec8;
|
|
|
|
s32 func_8014FFDC(s32 e, void *a1, void *a2) {
|
|
Vec8 save;
|
|
Vec8 test;
|
|
s32 found;
|
|
u8 *p;
|
|
|
|
found = 0;
|
|
__builtin_memcpy(&save, a1, 8);
|
|
*(s16 *)((s32)a1 + 2) = 0x7fff;
|
|
p = D_801202A0;
|
|
if (p < p + 0x6480) {
|
|
do {
|
|
if (*(u16 *)p != 0) {
|
|
if ((*(u16 *)(p + 0x5C) & 0x400) != 0) {
|
|
if (*(s32 *)(p + 0x58) != 0) {
|
|
test = save;
|
|
if (func_80135D20(*(s32 *)(p + 0x20), *(s32 *)(p + 0x58), &test) != 0) {
|
|
found = 1;
|
|
if (test.unk2 < *(s16 *)((s32)a1 + 2)) {
|
|
__builtin_memcpy(a1, &test, 8);
|
|
__builtin_memcpy(a2, D_801152A8, 8);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
p += 0x10C;
|
|
} while (p < D_80126720);
|
|
}
|
|
return found;
|
|
}
|