From 79dc30189483e739d534bb7539729d0ca9d17961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Wed, 11 Aug 2021 22:51:41 +0200 Subject: decompile unk_02008DEC.s --- arm9/asm/unk_02008DEC.s | 2280 ----------------------------------------------- arm9/src/unk_02008DEC.c | 1141 ++++++++++++++++++++++++ include/unk_02008DEC.h | 245 +++++ 3 files changed, 1386 insertions(+), 2280 deletions(-) delete mode 100644 arm9/asm/unk_02008DEC.s create mode 100644 arm9/src/unk_02008DEC.c create mode 100644 include/unk_02008DEC.h diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s deleted file mode 100644 index f257d2c8..00000000 --- a/arm9/asm/unk_02008DEC.s +++ /dev/null @@ -1,2280 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02008DEC -FUN_02008DEC: ; 0x02008DEC - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - str r2, [sp, #0x0] - add r0, r2, #0x0 - mov r1, #0x14 - bl AllocFromHeap - add r4, r0, #0x0 - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl FUN_02020C44 - str r0, [r4, #0x0] - mov r0, #0xc - add r7, r5, #0x0 - mul r7, r0 - ldr r0, [sp, #0x0] - add r1, r7, #0x0 - bl AllocFromHeap - mov r1, #0x0 - add r2, r7, #0x0 - str r0, [r4, #0x4] - bl memset - str r5, [r4, #0x8] - mov r0, #0x0 - str r0, [r4, #0xc] - str r6, [r4, #0x10] - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02008E2C -FUN_02008E2C: ; 0x02008E2C - push {r4, lr} - add r4, r0, #0x0 - bne _02008E36 - bl GF_AssertFail -_02008E36: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _02008E40 - bl GF_AssertFail -_02008E40: - ldr r0, [r4, #0x4] - cmp r0, #0x0 - bne _02008E4A - bl GF_AssertFail -_02008E4A: - add r0, r4, #0x0 - bl FUN_020094C4 - ldr r0, [r4, #0x0] - bl FUN_02020C90 - mov r0, #0x0 - str r0, [r4, #0x0] - ldr r0, [r4, #0x4] - bl FreeToHeap - mov r0, #0x0 - str r0, [r4, #0x4] - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - - thumb_func_start FUN_02008E6C -FUN_02008E6C: ; 0x02008E6C - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r5, #0x0 - bne _02008E80 - bl GF_AssertFail -_02008E80: - cmp r4, #0x0 - bne _02008E88 - bl GF_AssertFail -_02008E88: - ldr r0, [r4, #0x4] - cmp r0, r6 - bgt _02008E92 - bl GF_AssertFail -_02008E92: - ldr r1, [r5, #0x10] - ldr r0, [r4, #0x8] - cmp r1, r0 - beq _02008E9E - bl GF_AssertFail -_02008E9E: - add r0, r5, #0x0 - bl FUN_020097D0 - str r0, [sp, #0x1c] - cmp r0, #0x0 - bne _02008EAE - bl GF_AssertFail -_02008EAE: - ldrb r0, [r4, #0xc] - cmp r0, #0x0 - bne _02008EEA - ldr r2, [r4, #0x0] - mov r0, #0x4c - add r1, r6, #0x0 - mul r1, r0 - add r6, r2, r1 - ldr r1, [r2, r1] - add r0, r5, #0x0 - bl FUN_0200945C - cmp r0, #0x1 - beq _02008ECE - bl GF_AssertFail -_02008ECE: - ldr r0, [r6, #0x44] - ldr r1, [sp, #0x1c] - str r0, [sp, #0x0] - ldr r0, [r6, #0x48] - add r2, r6, #0x4 - str r0, [sp, #0x4] - ldr r0, [r4, #0x8] - str r0, [sp, #0x8] - str r7, [sp, #0xc] - ldr r3, [r6, #0x0] - add r0, r5, #0x0 - bl FUN_0200994C - b _02008F28 -_02008EEA: - mov r0, #0x18 - ldr r1, [r4, #0x0] - mul r0, r6 - add r6, r1, r0 - ldr r1, [r6, #0xc] - add r0, r5, #0x0 - bl FUN_0200945C - cmp r0, #0x1 - beq _02008F02 - bl GF_AssertFail -_02008F02: - ldr r0, [r6, #0x8] - ldr r1, [sp, #0x1c] - str r0, [sp, #0x0] - ldr r0, [r6, #0xc] - str r0, [sp, #0x4] - ldr r0, [r6, #0x10] - str r0, [sp, #0x8] - ldr r0, [r6, #0x14] - str r0, [sp, #0xc] - ldr r0, [r4, #0x8] - str r0, [sp, #0x10] - str r7, [sp, #0x14] - mov r0, #0x0 - str r0, [sp, #0x18] - ldr r2, [r6, #0x0] - ldr r3, [r6, #0x4] - add r0, r5, #0x0 - bl FUN_02009978 -_02008F28: - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - ldr r0, [sp, #0x1c] - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_02008F34 -FUN_02008F34: ; 0x02008F34 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _02008F48 - bl GF_AssertFail -_02008F48: - ldr r0, [r5, #0x10] - cmp r0, #0x0 - beq _02008F52 - bl GF_AssertFail -_02008F52: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _02008F60 - bl GF_AssertFail -_02008F60: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - mov r1, #0x0 - str r0, [sp, #0x8] - str r1, [sp, #0xc] - ldr r0, [sp, #0x40] - str r1, [sp, #0x10] - str r0, [sp, #0x14] - str r1, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_02009978 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02008F90 -FUN_02008F90: ; 0x02008F90 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _02008FA4 - bl GF_AssertFail -_02008FA4: - ldr r0, [r5, #0x10] - cmp r0, #0x0 - beq _02008FAE - bl GF_AssertFail -_02008FAE: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _02008FBC - bl GF_AssertFail -_02008FBC: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [sp, #0x40] - add r1, r6, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x44] - add r2, r7, #0x0 - str r0, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_02009978 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_02008FEC -FUN_02008FEC: ; 0x02008FEC - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _02009000 - bl GF_AssertFail -_02009000: - ldr r0, [r5, #0x10] - cmp r0, #0x1 - beq _0200900A - bl GF_AssertFail -_0200900A: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _02009018 - bl GF_AssertFail -_02009018: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x8] - ldr r0, [sp, #0x40] - add r1, r6, #0x0 - str r0, [sp, #0xc] - mov r0, #0x1 - str r0, [sp, #0x10] - ldr r0, [sp, #0x44] - add r2, r7, #0x0 - str r0, [sp, #0x14] - mov r0, #0x0 - str r0, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_02009978 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200904C -FUN_0200904C: ; 0x0200904C - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _02009060 - bl GF_AssertFail -_02009060: - ldr r0, [r5, #0x10] - cmp r0, #0x1 - beq _0200906A - bl GF_AssertFail -_0200906A: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _02009078 - bl GF_AssertFail -_02009078: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x8] - ldr r0, [sp, #0x40] - add r1, r6, #0x0 - str r0, [sp, #0xc] - mov r0, #0x1 - str r0, [sp, #0x10] - ldr r0, [sp, #0x44] - add r2, r7, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x48] - str r0, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_02009978 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020090AC -FUN_020090AC: ; 0x020090AC - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _020090C0 - bl GF_AssertFail -_020090C0: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _020090CE - bl GF_AssertFail -_020090CE: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - mov r1, #0x0 - str r1, [sp, #0x8] - ldr r0, [sp, #0x3c] - str r1, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [sp, #0x40] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x14] - str r1, [sp, #0x18] - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_02009978 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_020090FC -FUN_020090FC: ; 0x020090FC - push {r4-r7, lr} - sub sp, #0x24 - add r5, r0, #0x0 - add r4, r1, #0x0 - str r2, [sp, #0x1c] - str r3, [sp, #0x20] - cmp r5, #0x0 - bne _02009110 - bl GF_AssertFail -_02009110: - ldr r0, [r5, #0x10] - cmp r0, #0x0 - beq _0200911A - bl GF_AssertFail -_0200911A: - cmp r4, #0x0 - bne _02009122 - bl GF_AssertFail -_02009122: - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _0200912C - bl GF_AssertFail -_0200912C: - add r0, r4, #0x0 - bl FUN_02009530 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_020095E4 - add r7, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02009490 - ldr r0, [sp, #0x38] - mov r1, #0x0 - str r0, [sp, #0x0] - str r6, [sp, #0x4] - str r7, [sp, #0x8] - str r1, [sp, #0xc] - ldr r0, [sp, #0x3c] - str r1, [sp, #0x10] - str r0, [sp, #0x14] - str r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02009978 - add sp, #0x24 - pop {r4-r7, pc} - - thumb_func_start FUN_02009168 -FUN_02009168: ; 0x02009168 - push {r3-r7, lr} - sub sp, #0x28 - add r5, r0, #0x0 - add r4, r1, #0x0 - str r2, [sp, #0x1c] - str r3, [sp, #0x20] - cmp r5, #0x0 - bne _0200917C - bl GF_AssertFail -_0200917C: - ldr r0, [r5, #0x10] - cmp r0, #0x1 - beq _02009186 - bl GF_AssertFail -_02009186: - cmp r4, #0x0 - bne _0200918E - bl GF_AssertFail -_0200918E: - ldr r0, [r4, #0x4] - cmp r0, #0x1 - beq _02009198 - bl GF_AssertFail -_02009198: - add r0, r4, #0x0 - bl FUN_02009530 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_020095E4 - add r7, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02009610 - str r0, [sp, #0x24] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02009490 - ldr r0, [sp, #0x40] - ldr r2, [sp, #0x1c] - str r0, [sp, #0x0] - str r6, [sp, #0x4] - ldr r0, [sp, #0x24] - str r7, [sp, #0x8] - str r0, [sp, #0xc] - mov r0, #0x1 - str r0, [sp, #0x10] - ldr r0, [sp, #0x44] - ldr r3, [sp, #0x20] - str r0, [sp, #0x14] - mov r0, #0x0 - str r0, [sp, #0x18] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02009978 - add sp, #0x28 - pop {r3-r7, pc} - - thumb_func_start FUN_020091E0 -FUN_020091E0: ; 0x020091E0 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _020091F4 - bl GF_AssertFail -_020091F4: - ldr r0, [r5, #0x10] - cmp r0, #0x0 - beq _020091FE - bl GF_AssertFail -_020091FE: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _0200920C - bl GF_AssertFail -_0200920C: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - mov r1, #0x0 - str r0, [sp, #0x8] - str r1, [sp, #0xc] - ldr r0, [sp, #0x40] - str r1, [sp, #0x10] - str r0, [sp, #0x14] - str r1, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_020099B0 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200923C -FUN_0200923C: ; 0x0200923C - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _02009250 - bl GF_AssertFail -_02009250: - ldr r0, [r5, #0x10] - cmp r0, #0x0 - beq _0200925A - bl GF_AssertFail -_0200925A: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _02009268 - bl GF_AssertFail -_02009268: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [sp, #0x40] - add r1, r6, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x44] - add r2, r7, #0x0 - str r0, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_020099B0 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_02009298 -FUN_02009298: ; 0x02009298 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _020092AC - bl GF_AssertFail -_020092AC: - ldr r0, [r5, #0x10] - cmp r0, #0x1 - beq _020092B6 - bl GF_AssertFail -_020092B6: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _020092C4 - bl GF_AssertFail -_020092C4: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x8] - ldr r0, [sp, #0x40] - add r1, r6, #0x0 - str r0, [sp, #0xc] - mov r0, #0x1 - str r0, [sp, #0x10] - ldr r0, [sp, #0x44] - add r2, r7, #0x0 - str r0, [sp, #0x14] - mov r0, #0x0 - str r0, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_020099B0 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020092F8 -FUN_020092F8: ; 0x020092F8 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _0200930C - bl GF_AssertFail -_0200930C: - ldr r0, [r5, #0x10] - cmp r0, #0x1 - beq _02009316 - bl GF_AssertFail -_02009316: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _02009324 - bl GF_AssertFail -_02009324: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x8] - ldr r0, [sp, #0x40] - add r1, r6, #0x0 - str r0, [sp, #0xc] - mov r0, #0x1 - str r0, [sp, #0x10] - ldr r0, [sp, #0x44] - add r2, r7, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x48] - str r0, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_020099B0 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02009358 -FUN_02009358: ; 0x02009358 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r3, #0x0 - str r2, [sp, #0x1c] - cmp r5, #0x0 - bne _0200936C - bl GF_AssertFail -_0200936C: - add r0, r5, #0x0 - bl FUN_020097D0 - add r6, r0, #0x0 - bne _0200937A - bl GF_AssertFail -_0200937A: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - mov r1, #0x0 - str r1, [sp, #0x8] - ldr r0, [sp, #0x3c] - str r1, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [sp, #0x40] - ldr r3, [sp, #0x1c] - str r0, [sp, #0x14] - str r1, [sp, #0x18] - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_020099B0 - ldr r0, [r5, #0xc] - add r0, r0, #0x1 - str r0, [r5, #0xc] - add r0, r6, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_020093A8 -FUN_020093A8: ; 0x020093A8 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r5, #0x0 - bne _020093BC - bl GF_AssertFail -_020093BC: - cmp r4, #0x0 - bne _020093C4 - bl GF_AssertFail -_020093C4: - str r6, [sp, #0x0] - str r7, [sp, #0x4] - ldr r3, [r4, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x0 - bl FUN_020093DC - ldr r0, [r4, #0x4] - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020093DC -FUN_020093DC: ; 0x020093DC - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - add r5, r2, #0x0 - ldr r0, [sp, #0x24] - add r7, r5, r3 - str r1, [sp, #0x4] - ldr r4, [sp, #0x20] - str r0, [sp, #0x24] - cmp r5, r7 - bge _02009420 - add r6, r4, #0x0 - add r6, #0x8 -_020093F6: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [sp, #0x24] - add r2, r5, #0x0 - bl FUN_02008E6C - cmp r4, #0x0 - beq _0200941A - ldr r2, [r4, #0x8] - ldr r1, [r4, #0x4] - cmp r1, r2 - ble _0200941A - ldr r1, [r4, #0x0] - lsl r2, r2, #0x2 - str r0, [r1, r2] - ldr r0, [r6, #0x0] - add r0, r0, #0x1 - str r0, [r6, #0x0] -_0200941A: - add r5, r5, #0x1 - cmp r5, r7 - blt _020093F6 -_02009420: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02009424 -FUN_02009424: ; 0x02009424 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - mov r1, #0xc - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r6, #0x0 - lsl r1, r5, #0x2 - bl AllocFromHeap - str r0, [r4, #0x0] - str r5, [r4, #0x4] - mov r0, #0x0 - str r0, [r4, #0x8] - add r0, r4, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02009448 -FUN_02009448: ; 0x02009448 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - bl FreeToHeap - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200945C -FUN_0200945C: ; 0x0200945C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0200946A - bl GF_AssertFail -_0200946A: - ldr r0, [r5, #0x0] - add r1, r4, #0x0 - bl FUN_02020CB0 - pop {r3-r5, pc} - - thumb_func_start FUN_02009474 -FUN_02009474: ; 0x02009474 - push {r4, lr} - add r4, r0, #0x0 - bne _0200947E - bl GF_AssertFail -_0200947E: - add r0, r4, #0x0 - bl FUN_02009920 - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl FUN_02020E1C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02009490 -FUN_02009490: ; 0x02009490 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0200949E - bl GF_AssertFail -_0200949E: - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _020094A8 - bl GF_AssertFail -_020094A8: - add r0, r4, #0x0 - bl FUN_02009920 - ldr r0, [r5, #0x0] - ldr r1, [r4, #0x0] - bl FUN_02020D68 - mov r0, #0x0 - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - sub r0, r0, #0x1 - str r0, [r5, #0xc] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020094C4 -FUN_020094C4: ; 0x020094C4 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x8] - mov r6, #0x0 - cmp r0, #0x0 - ble _020094EC - add r4, r6, #0x0 -_020094D2: - ldr r1, [r5, #0x4] - ldr r0, [r1, r4] - cmp r0, #0x0 - beq _020094E2 - add r0, r5, #0x0 - add r1, r1, r4 - bl FUN_02009490 -_020094E2: - ldr r0, [r5, #0x8] - add r6, r6, #0x1 - add r4, #0xc - cmp r6, r0 - blt _020094D2 -_020094EC: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020094F0 -FUN_020094F0: ; 0x020094F0 - push {r3-r7, lr} - add r5, r0, #0x0 - add r7, r1, #0x0 - cmp r5, #0x0 - bne _020094FE - bl GF_AssertFail -_020094FE: - ldr r0, [r5, #0x8] - mov r6, #0x0 - cmp r0, #0x0 - ble _0200952C - add r4, r6, #0x0 -_02009508: - ldr r0, [r5, #0x4] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _02009522 - bl FUN_02020E38 - cmp r0, r7 - bne _02009522 - mov r0, #0xc - ldr r1, [r5, #0x4] - mul r0, r6 - add r0, r1, r0 - pop {r3-r7, pc} -_02009522: - ldr r0, [r5, #0x8] - add r6, r6, #0x1 - add r4, #0xc - cmp r6, r0 - blt _02009508 -_0200952C: - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02009530 -FUN_02009530: ; 0x02009530 - push {r4, lr} - add r4, r0, #0x0 - bne _0200953A - bl GF_AssertFail -_0200953A: - ldr r0, [r4, #0x0] - bl FUN_02020E38 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02009544 -FUN_02009544: ; 0x02009544 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _02009552 - bl GF_AssertFail -_02009552: - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_0200955C -FUN_0200955C: ; 0x0200955C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, #0x1 - beq _0200956A - bl GF_AssertFail -_0200956A: - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02009574 -FUN_02009574: ; 0x02009574 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, #0x2 - beq _02009582 - bl GF_AssertFail -_02009582: - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_0200958C -FUN_0200958C: ; 0x0200958C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, #0x3 - beq _0200959A - bl GF_AssertFail -_0200959A: - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_020095A4 -FUN_020095A4: ; 0x020095A4 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, #0x4 - beq _020095B2 - bl GF_AssertFail -_020095B2: - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_020095BC -FUN_020095BC: ; 0x020095BC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, #0x5 - beq _020095CA - bl GF_AssertFail -_020095CA: - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_020095D4 -FUN_020095D4: ; 0x020095D4 - push {r4, lr} - add r4, r0, #0x0 - bne _020095DE - bl GF_AssertFail -_020095DE: - ldr r0, [r4, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020095E4 -FUN_020095E4: ; 0x020095E4 - push {r4, lr} - add r4, r0, #0x0 - bne _020095EE - bl GF_AssertFail -_020095EE: - ldr r0, [r4, #0x4] - cmp r0, #0x0 - bne _020095FE - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x4] - pop {r4, pc} -_020095FE: - cmp r0, #0x1 - bne _0200960C - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x4] - pop {r4, pc} -_0200960C: - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02009610 -FUN_02009610: ; 0x02009610 - push {r4, lr} - add r4, r0, #0x0 - bne _0200961A - bl GF_AssertFail -_0200961A: - ldr r0, [r4, #0x4] - cmp r0, #0x1 - bne _0200962A - add r0, r4, #0x0 - bl FUN_02009934 - ldr r0, [r0, #0x8] - pop {r4, pc} -_0200962A: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02009630 -FUN_02009630: ; 0x02009630 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0200963E - bl GF_AssertFail -_0200963E: - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _0200964C - add r0, r5, #0x0 - bl FUN_02009934 - str r4, [r0, #0x4] -_0200964C: - ldr r0, [r5, #0x4] - cmp r0, #0x1 - bne _0200965A - add r0, r5, #0x0 - bl FUN_02009934 - str r4, [r0, #0x4] -_0200965A: - pop {r3-r5, pc} - - thumb_func_start FUN_0200965C -FUN_0200965C: ; 0x0200965C - mov r0, #0x10 - bx lr - - thumb_func_start FUN_02009660 -FUN_02009660: ; 0x02009660 - lsl r1, r1, #0x4 - add r0, r0, r1 - bx lr - .balign 4 - - thumb_func_start FUN_02009668 -FUN_02009668: ; 0x02009668 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x0 - bne _02009678 - bl GF_AssertFail -_02009678: - ldr r0, [r5, #0x0] - str r0, [r4, #0x8] - mov r0, #0x1 - strb r0, [r4, #0xc] - add r0, r5, #0x4 - bl FUN_020099E8 - add r2, r0, #0x0 - str r0, [r4, #0x4] - cmp r2, #0x0 - ble _0200969A - mov r1, #0x18 - add r0, r6, #0x0 - mul r1, r2 - bl AllocFromHeap - b _0200969C -_0200969A: - mov r0, #0x0 -_0200969C: - str r0, [r4, #0x0] - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _020096B0 - ldr r3, [r4, #0x4] - mov r2, #0x18 - add r1, r5, #0x4 - mul r2, r3 - bl memcpy -_020096B0: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020096B4 -FUN_020096B4: ; 0x020096B4 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _020096C2 - bl FreeToHeap -_020096C2: - mov r0, #0x0 - str r0, [r4, #0x0] - str r0, [r4, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020096CC -FUN_020096CC: ; 0x020096CC - push {r4, lr} - add r4, r0, #0x0 - bne _020096D6 - bl GF_AssertFail -_020096D6: - ldr r0, [r4, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020096DC -FUN_020096DC: ; 0x020096DC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020096EA - bl GF_AssertFail -_020096EA: - ldr r0, [r5, #0x4] - cmp r0, r4 - bgt _020096F4 - bl GF_AssertFail -_020096F4: - ldrb r0, [r5, #0xc] - ldr r1, [r5, #0x0] - cmp r0, #0x0 - bne _02009704 - mov r0, #0x4c - mul r0, r4 - ldr r0, [r1, r0] - pop {r3-r5, pc} -_02009704: - mov r0, #0x18 - mul r0, r4 - add r0, r1, r0 - ldr r0, [r0, #0xc] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02009710 -FUN_02009710: ; 0x02009710 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0200971E - bl GF_AssertFail -_0200971E: - ldr r0, [r5, #0x4] - cmp r0, r4 - bgt _02009728 - bl GF_AssertFail -_02009728: - ldrb r0, [r5, #0xc] - cmp r0, #0x1 - bne _02009738 - mov r0, #0x18 - ldr r1, [r5, #0x0] - mul r0, r4 - add r0, r1, r0 - ldr r6, [r0, #0x4] -_02009738: - add r0, r6, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0200973C -FUN_0200973C: ; 0x0200973C - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0200974A - bl GF_AssertFail -_0200974A: - ldr r0, [r5, #0x4] - cmp r0, r4 - bgt _02009754 - bl GF_AssertFail -_02009754: - ldrb r0, [r5, #0xc] - cmp r0, #0x1 - bne _02009764 - mov r0, #0x18 - ldr r1, [r5, #0x0] - mul r0, r4 - add r0, r1, r0 - ldr r6, [r0, #0x8] -_02009764: - add r0, r6, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02009768 -FUN_02009768: ; 0x02009768 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02009776 - bl GF_AssertFail -_02009776: - ldr r0, [r5, #0x4] - cmp r0, r4 - bgt _02009780 - bl GF_AssertFail -_02009780: - ldrb r0, [r5, #0xc] - ldr r1, [r5, #0x0] - cmp r0, #0x0 - bne _02009792 - mov r0, #0x4c - mul r0, r4 - add r0, r1, r0 - ldr r0, [r0, #0x44] - pop {r3-r5, pc} -_02009792: - mov r0, #0x18 - mul r0, r4 - add r0, r1, r0 - ldr r0, [r0, #0x10] - pop {r3-r5, pc} - - thumb_func_start FUN_0200979C -FUN_0200979C: ; 0x0200979C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020097AA - bl GF_AssertFail -_020097AA: - ldr r0, [r5, #0x4] - cmp r0, r4 - bgt _020097B4 - bl GF_AssertFail -_020097B4: - ldrb r0, [r5, #0xc] - ldr r1, [r5, #0x0] - cmp r0, #0x0 - bne _020097C6 - mov r0, #0x4c - mul r0, r4 - add r0, r1, r0 - ldr r0, [r0, #0x48] - pop {r3-r5, pc} -_020097C6: - mov r0, #0x18 - mul r0, r4 - add r0, r1, r0 - ldr r0, [r0, #0x14] - pop {r3-r5, pc} - - thumb_func_start FUN_020097D0 -FUN_020097D0: ; 0x020097D0 - push {r3-r4} - ldr r4, [r0, #0x8] - mov r1, #0x0 - cmp r4, #0x0 - ble _020097F6 - ldr r3, [r0, #0x4] - add r2, r3, #0x0 -_020097DE: - ldr r0, [r2, #0x0] - cmp r0, #0x0 - bne _020097EE - mov r0, #0xc - mul r0, r1 - add r0, r3, r0 - pop {r3-r4} - bx lr -_020097EE: - add r1, r1, #0x1 - add r2, #0xc - cmp r1, r4 - blt _020097DE -_020097F6: - mov r0, #0x0 - pop {r3-r4} - bx lr - - thumb_func_start FUN_020097FC -FUN_020097FC: ; 0x020097FC - push {r3-r7, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x0] - ldr r5, [sp, #0x18] - bl FUN_02020E0C - cmp r6, #0x5 - bhi _0200986A - add r1, r6, r6 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0200981E: ; jump table (using 16-bit offset) - .short _0200982A - _0200981E - 2; case 0 - .short _02009836 - _0200981E - 2; case 1 - .short _02009844 - _0200981E - 2; case 2 - .short _0200984E - _0200981E - 2; case 3 - .short _02009858 - _0200981E - 2; case 4 - .short _02009862 - _0200981E - 2; case 5 -_0200982A: - add r1, r7, #0x0 - add r2, r5, #0x0 - bl FUN_0200986C - str r0, [r4, #0x8] - pop {r3-r7, pc} -_02009836: - ldr r2, [sp, #0x0] - add r1, r7, #0x0 - add r3, r5, #0x0 - bl FUN_0200988C - str r0, [r4, #0x8] - pop {r3-r7, pc} -_02009844: - add r1, r5, #0x0 - bl FUN_020098B0 - str r0, [r4, #0x8] - pop {r3-r7, pc} -_0200984E: - add r1, r5, #0x0 - bl FUN_020098CC - str r0, [r4, #0x8] - pop {r3-r7, pc} -_02009858: - add r1, r5, #0x0 - bl FUN_020098E8 - str r0, [r4, #0x8] - pop {r3-r7, pc} -_02009862: - add r1, r5, #0x0 - bl FUN_02009904 - str r0, [r4, #0x8] -_0200986A: - pop {r3-r7, pc} - - thumb_func_start FUN_0200986C -FUN_0200986C: ; 0x0200986C - push {r4-r6, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r0, r2, #0x0 - mov r1, #0x8 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedCharacterData - str r5, [r4, #0x4] - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0200988C -FUN_0200988C: ; 0x0200988C - push {r3-r7, lr} - add r7, r0, #0x0 - add r5, r1, #0x0 - add r0, r3, #0x0 - mov r1, #0xc - add r6, r2, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r7, #0x0 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedPaletteData - str r5, [r4, #0x4] - str r6, [r4, #0x8] - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020098B0 -FUN_020098B0: ; 0x020098B0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x4 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedCellBank - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020098CC -FUN_020098CC: ; 0x020098CC - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x4 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedAnimBank - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020098E8 -FUN_020098E8: ; 0x020098E8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x4 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedMultiCellBank - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02009904 -FUN_02009904: ; 0x02009904 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x4 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedMCAnimBank - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02009920 -FUN_02009920: ; 0x02009920 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x8] - cmp r0, #0x0 - beq _0200992E - bl FreeToHeap -_0200992E: - mov r0, #0x0 - str r0, [r4, #0x8] - pop {r4, pc} - - thumb_func_start FUN_02009934 -FUN_02009934: ; 0x02009934 - push {r4, lr} - add r4, r0, #0x0 - bne _0200993E - bl GF_AssertFail -_0200993E: - ldr r0, [r4, #0x8] - cmp r0, #0x0 - bne _02009948 - bl GF_AssertFail -_02009948: - ldr r0, [r4, #0x8] - pop {r4, pc} - - thumb_func_start FUN_0200994C -FUN_0200994C: ; 0x0200994C - push {r3-r4, lr} - sub sp, #0x4 - add r4, r1, #0x0 - add r1, r2, #0x0 - add r2, r3, #0x0 - ldr r0, [r0, #0x0] - ldr r3, [sp, #0x1c] - bl FUN_02020D10 - str r0, [r4, #0x0] - ldr r1, [sp, #0x18] - ldr r0, [sp, #0x1c] - str r1, [r4, #0x4] - str r0, [sp, #0x0] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x14] - add r0, r4, #0x0 - bl FUN_020097FC - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_02009978 -FUN_02009978: ; 0x02009978 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [sp, #0x28] - add r4, r1, #0x0 - str r0, [sp, #0x0] - add r0, r2, #0x0 - add r1, r3, #0x0 - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x24] - bl GfGfxLoader_LoadFromNarc - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r2, [sp, #0x14] - bl FUN_02020CD4 - str r0, [r4, #0x0] - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x24] - str r1, [r4, #0x4] - str r0, [sp, #0x0] - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, r4, #0x0 - bl FUN_020097FC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020099B0 -FUN_020099B0: ; 0x020099B0 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [sp, #0x28] - add r4, r1, #0x0 - str r0, [sp, #0x0] - add r0, r2, #0x0 - add r1, r3, #0x0 - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x24] - bl FUN_02009A04 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r2, [sp, #0x14] - bl FUN_02020CD4 - str r0, [r4, #0x0] - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x24] - str r1, [r4, #0x4] - str r0, [sp, #0x0] - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, r4, #0x0 - bl FUN_020097FC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020099E8 -FUN_020099E8: ; 0x020099E8 - mov r3, #0x0 - ldr r2, [r0, #0x0] - sub r1, r3, #0x2 - cmp r2, r1 - beq _020099FE - sub r1, r3, #0x2 -_020099F4: - add r0, #0x18 - ldr r2, [r0, #0x0] - add r3, r3, #0x1 - cmp r2, r1 - bne _020099F4 -_020099FE: - add r0, r3, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02009A04 -FUN_02009A04: ; 0x02009A04 - push {r4-r6, lr} - add r6, r3, #0x0 - add r5, r2, #0x0 - add r2, r6, #0x0 - bl NARC_AllocAndReadWholeMember - add r4, r0, #0x0 - beq _02009A4A - cmp r5, #0x0 - beq _02009A4A - ldr r0, [sp, #0x10] - cmp r0, #0x0 - bne _02009A2A - ldr r1, [r4, #0x0] - add r0, r6, #0x0 - lsr r1, r1, #0x8 - bl AllocFromHeap - b _02009A34 -_02009A2A: - ldr r1, [r4, #0x0] - add r0, r6, #0x0 - lsr r1, r1, #0x8 - bl AllocFromHeapAtEnd -_02009A34: - add r5, r0, #0x0 - cmp r5, #0x0 - beq _02009A48 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl MI_UncompressLZ8 - add r0, r4, #0x0 - bl FreeToHeap -_02009A48: - add r4, r5, #0x0 -_02009A4A: - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02009A50 -FUN_02009A50: ; 0x02009A50 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - bne _02009A5C - bl GF_AssertFail -_02009A5C: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x0 - beq _02009A6A - bl GF_AssertFail -_02009A6A: - add r0, r4, #0x0 - bl FUN_02009544 - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_020095E4 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_02009530 - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - add r0, sp, #0x0 - bl FUN_0201D1F8 - add sp, #0x10 - pop {r4, pc} - - thumb_func_start FUN_02009A90 -FUN_02009A90: ; 0x02009A90 - push {r4-r6, lr} - add r5, r0, #0x0 - bne _02009A9A - bl GF_AssertFail -_02009A9A: - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _02009AC2 - add r4, r6, #0x0 -_02009AA4: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _02009AB8 - bl FUN_02009A50 - cmp r0, #0x0 - bne _02009AB8 - bl GF_AssertFail -_02009AB8: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _02009AA4 -_02009AC2: - pop {r4-r6, pc} - - thumb_func_start FUN_02009AC4 -FUN_02009AC4: ; 0x02009AC4 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - bne _02009AD0 - bl GF_AssertFail -_02009AD0: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x0 - beq _02009ADE - bl GF_AssertFail -_02009ADE: - add r0, r4, #0x0 - bl FUN_02009544 - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_020095E4 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_02009530 - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - add r0, sp, #0x0 - bl FUN_0201D250 - add sp, #0x10 - pop {r4, pc} - - thumb_func_start FUN_02009B04 -FUN_02009B04: ; 0x02009B04 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - bne _02009B10 - bl GF_AssertFail -_02009B10: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x0 - beq _02009B1E - bl GF_AssertFail -_02009B1E: - add r0, r4, #0x0 - bl FUN_02009544 - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_020095E4 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_02009530 - str r0, [sp, #0x8] - mov r0, #0x1 - str r0, [sp, #0xc] - add r0, sp, #0x0 - bl FUN_0201D1F8 - add sp, #0x10 - pop {r4, pc} - - thumb_func_start FUN_02009B44 -FUN_02009B44: ; 0x02009B44 - push {r4-r6, lr} - add r5, r0, #0x0 - bne _02009B4E - bl GF_AssertFail -_02009B4E: - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _02009B76 - add r4, r6, #0x0 -_02009B58: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _02009B6C - bl FUN_02009B04 - cmp r0, #0x0 - bne _02009B6C - bl GF_AssertFail -_02009B6C: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _02009B58 -_02009B76: - pop {r4-r6, pc} - - thumb_func_start FUN_02009B78 -FUN_02009B78: ; 0x02009B78 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - bne _02009B84 - bl GF_AssertFail -_02009B84: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x0 - beq _02009B92 - bl GF_AssertFail -_02009B92: - add r0, r4, #0x0 - bl FUN_02009544 - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_020095E4 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_02009530 - str r0, [sp, #0x8] - mov r0, #0x1 - str r0, [sp, #0xc] - add r0, sp, #0x0 - bl FUN_0201D250 - add sp, #0x10 - pop {r4, pc} - - thumb_func_start FUN_02009BB8 -FUN_02009BB8: ; 0x02009BB8 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r4, #0x0 - bne _02009BC6 - bl GF_AssertFail -_02009BC6: - cmp r5, #0x0 - bne _02009BCE - bl GF_AssertFail -_02009BCE: - add r0, r4, #0x0 - bl FUN_02009530 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02009544 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0201D2DC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02009BE8 -FUN_02009BE8: ; 0x02009BE8 - push {r3-r5, lr} - add r5, r0, #0x0 - bne _02009BF2 - bl GF_AssertFail -_02009BF2: - add r0, r5, #0x0 - bl FUN_02009530 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02009544 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0201D2DC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02009C0C -FUN_02009C0C: ; 0x02009C0C - push {r4, lr} - add r4, r0, #0x0 - bne _02009C16 - bl GF_AssertFail -_02009C16: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x0 - beq _02009C24 - bl GF_AssertFail -_02009C24: - add r0, r4, #0x0 - bl FUN_02009530 - bl FUN_0201D324 - pop {r4, pc} - - thumb_func_start FUN_02009C30 -FUN_02009C30: ; 0x02009C30 - push {r4-r6, lr} - add r5, r0, #0x0 - bne _02009C3A - bl GF_AssertFail -_02009C3A: - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _02009C5A - add r4, r6, #0x0 -_02009C44: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _02009C50 - bl FUN_02009C0C -_02009C50: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _02009C44 -_02009C5A: - pop {r4-r6, pc} - - thumb_func_start FUN_02009C5C -FUN_02009C5C: ; 0x02009C5C - push {r4, lr} - add r4, r0, #0x0 - bne _02009C66 - bl GF_AssertFail -_02009C66: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x0 - beq _02009C74 - bl GF_AssertFail -_02009C74: - add r0, r4, #0x0 - bl FUN_02009530 - bl FUN_0201D3B0 - pop {r4, pc} - - thumb_func_start FUN_02009C80 -FUN_02009C80: ; 0x02009C80 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r4, #0x0 - bne _02009C8E - bl GF_AssertFail -_02009C8E: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x0 - beq _02009C9C - bl GF_AssertFail -_02009C9C: - cmp r5, #0x0 - bne _02009CA4 - bl GF_AssertFail -_02009CA4: - add r0, r5, #0x0 - bl FUN_020095D4 - cmp r0, #0x2 - beq _02009CB2 - bl GF_AssertFail -_02009CB2: - add r0, r4, #0x0 - bl FUN_02009530 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02009574 - add r1, r0, #0x0 - ldr r1, [r1, #0xc] - add r0, r4, #0x0 - ldr r1, [r1, #0x0] - bl FUN_0201D3D4 - cmp r0, #0x0 - bne _02009CDA - add r0, r4, #0x0 - bl FUN_0201D3B0 - bl FUN_0201D458 -_02009CDA: - pop {r3-r5, pc} - - thumb_func_start FUN_02009CDC -FUN_02009CDC: ; 0x02009CDC - push {r4, lr} - add r4, r0, #0x0 - bne _02009CE6 - bl GF_AssertFail -_02009CE6: - add r0, r4, #0x0 - bl FUN_0201D4F0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02009CF0 -FUN_02009CF0: ; 0x02009CF0 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - bne _02009CFC - bl GF_AssertFail -_02009CFC: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x1 - beq _02009D0A - bl GF_AssertFail -_02009D0A: - add r0, r4, #0x0 - bl FUN_0200955C - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_020095E4 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_02009530 - str r0, [sp, #0xc] - add r0, r4, #0x0 - bl FUN_02009610 - str r0, [sp, #0x8] - add r0, sp, #0x0 - bl FUN_0201E0E4 - add sp, #0x10 - pop {r4, pc} - - thumb_func_start FUN_02009D34 -FUN_02009D34: ; 0x02009D34 - push {r4-r6, lr} - add r5, r0, #0x0 - bne _02009D3E - bl GF_AssertFail -_02009D3E: - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _02009D66 - add r4, r6, #0x0 -_02009D48: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _02009D5C - bl FUN_02009CF0 - cmp r0, #0x0 - bne _02009D5C - bl GF_AssertFail -_02009D5C: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _02009D48 -_02009D66: - pop {r4-r6, pc} - - thumb_func_start FUN_02009D68 -FUN_02009D68: ; 0x02009D68 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - bne _02009D74 - bl GF_AssertFail -_02009D74: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x1 - beq _02009D82 - bl GF_AssertFail -_02009D82: - add r0, r4, #0x0 - bl FUN_0200955C - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_020095E4 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_02009530 - str r0, [sp, #0xc] - add r0, r4, #0x0 - bl FUN_02009610 - str r0, [sp, #0x8] - add r0, sp, #0x0 - bl FUN_0201E128 - add sp, #0x10 - pop {r4, pc} - - thumb_func_start FUN_02009DAC -FUN_02009DAC: ; 0x02009DAC - push {r4-r6, lr} - add r5, r0, #0x0 - bne _02009DB6 - bl GF_AssertFail -_02009DB6: - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _02009DDE - add r4, r6, #0x0 -_02009DC0: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _02009DD4 - bl FUN_02009D68 - cmp r0, #0x0 - bne _02009DD4 - bl GF_AssertFail -_02009DD4: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _02009DC0 -_02009DDE: - pop {r4-r6, pc} - - thumb_func_start FUN_02009DE0 -FUN_02009DE0: ; 0x02009DE0 - push {r3-r5, lr} - add r5, r0, #0x0 - bne _02009DEA - bl GF_AssertFail -_02009DEA: - add r0, r5, #0x0 - bl FUN_02009530 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0200955C - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0201E168 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02009E04 -FUN_02009E04: ; 0x02009E04 - push {r4, lr} - add r4, r0, #0x0 - bne _02009E0E - bl GF_AssertFail -_02009E0E: - add r0, r4, #0x0 - bl FUN_020095D4 - cmp r0, #0x1 - beq _02009E1C - bl GF_AssertFail -_02009E1C: - add r0, r4, #0x0 - bl FUN_02009530 - bl FUN_0201E1C8 - pop {r4, pc} - - thumb_func_start FUN_02009E28 -FUN_02009E28: ; 0x02009E28 - push {r4-r6, lr} - add r5, r0, #0x0 - bne _02009E32 - bl GF_AssertFail -_02009E32: - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _02009E52 - add r4, r6, #0x0 -_02009E3C: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _02009E48 - bl FUN_02009E04 -_02009E48: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _02009E3C -_02009E52: - pop {r4-r6, pc} - - thumb_func_start FUN_02009E54 -FUN_02009E54: ; 0x02009E54 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02009E62 - bl GF_AssertFail -_02009E62: - add r0, r5, #0x0 - bl FUN_020095D4 - cmp r0, #0x1 - beq _02009E70 - bl GF_AssertFail -_02009E70: - add r0, r5, #0x0 - bl FUN_02009530 - cmp r4, #0x0 - beq _02009E82 - add r1, r4, #0x0 - bl FUN_0201E258 - pop {r3-r5, pc} -_02009E82: - bl FUN_0201E230 - pop {r3-r5, pc} - - thumb_func_start FUN_02009E88 -FUN_02009E88: ; 0x02009E88 - push {r4, lr} - add r4, r1, #0x0 - mov r1, #0x0 - bl FUN_02009E54 - add r1, r4, #0x0 - bl NNS_G2dGetImagePaletteLocation - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02009EA8 - asr r1, r0, #0x4 - lsr r1, r1, #0x1b - add r1, r0, r1 - asr r0, r1, #0x5 -_02009EA8: - pop {r4, pc} - .balign 4 diff --git a/arm9/src/unk_02008DEC.c b/arm9/src/unk_02008DEC.c new file mode 100644 index 00000000..49a2ff0c --- /dev/null +++ b/arm9/src/unk_02008DEC.c @@ -0,0 +1,1141 @@ +#include "global.h" +#include "unk_02008DEC.h" +#include "NNS_g2d.h" +#include "gf_gfx_loader.h" +#include "heap.h" + +extern u32 FUN_02020C44(u32, u32); +extern void FUN_02020C90(u32); +extern u32 FUN_02020CB0(u32 param0, s32 param1); +extern void FUN_02020E1C(u32 param0, u32 param1); +extern void FUN_02020D68(u32 param0, u32 param1); +extern s32 FUN_02020E38(u32); +extern void *FUN_02020E0C(u32); +extern BOOL NNS_G2dGetUnpackedMultiCellBank(void *, void *); +extern BOOL NNS_G2dGetUnpackedMCAnimBank(void *, void *); +extern u32 FUN_02020D10(u32, void *, s32, u32); +extern u32 FUN_02020CD4(u32, void *, u32); +extern u32 FUN_0201D1F8(u32 *param0); +extern u32 FUN_0201D250(u32 *param0); +extern void FUN_0201D2DC(u32, u32); +extern void FUN_0201D324(u32 param0); +extern u32 FUN_0201D3B0(u32); +extern u32 FUN_0201D3D4(u32, u32); +extern u32 FUN_0201D458(u32); +extern void FUN_0201D4F0(u32); +extern u32 FUN_0201E0E4(u32 *param0); +extern u32 FUN_0201E128(u32 *param0); +extern void FUN_0201E168(u32, u32); +extern void FUN_0201E1C8(u32); +extern u32 FUN_0201E258(u32, u32); +extern u32 FUN_0201E230(u32); +extern s32 NNS_G2dGetImagePaletteLocation(u32, u32); + +THUMB_FUNC struct UnkStruct1 *FUN_02008DEC(u32 param0, s32 param1, u32 heap_id) +{ + struct UnkStruct1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct1)); + ptr->unk00 = FUN_02020C44(param0, heap_id); + ptr->unk04 = AllocFromHeap(heap_id, param0 * sizeof(struct UnkStruct1_sub)); + memset(ptr->unk04, 0, param0 * sizeof(struct UnkStruct1_sub)); + ptr->unk08 = (s32)param0; + ptr->unk0C = 0; + ptr->unk10 = param1; + + return ptr; +} + +THUMB_FUNC void FUN_02008E2C(struct UnkStruct1 *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk00); + GF_ASSERT(param0->unk04); + + FUN_020094C4(param0); + + FUN_02020C90(param0->unk00); + param0->unk00 = 0; + + FreeToHeap(param0->unk04); + param0->unk04 = NULL; + + FreeToHeap(param0); +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_02008E6C( + struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, u32 param3) +{ + GF_ASSERT(param0); + GF_ASSERT(param1); + GF_ASSERT(param1->unk04 > param2); + GF_ASSERT(param0->unk10 == param1->unk08); + + struct UnkStruct1_sub *st1c = FUN_020097D0(param0); + GF_ASSERT(st1c); + + if (param1->unk0C == 0) + { + struct UnkStruct3 *r6 = &((struct UnkStruct3 *)param1->unk00)[param2]; + GF_ASSERT(FUN_0200945C(param0, r6->unk00) == 1); + + FUN_0200994C( + param0, st1c, r6->unk04, r6->unk00, r6->unk44, r6->unk48, param1->unk08, param3); + } + else + { + struct UnkStruct4 *r6 = &((struct UnkStruct4 *)param1->unk00)[param2]; + GF_ASSERT(FUN_0200945C(param0, r6->unk0C) == 1); + + FUN_02009978(param0, + st1c, + r6->unk00, + r6->unk04, + r6->unk08, + r6->unk0C, + r6->unk10, + r6->unk14, + param1->unk08, + param3, + FALSE); + } + + param0->unk0C++; + + return st1c; +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_02008F34(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 0); + + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_02009978(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, FALSE); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_02008F90(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6, + BOOL param7) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 0); + + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_02009978(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, param7); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_02008FEC(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 1); + + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_02009978(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, FALSE); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_0200904C(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7, + BOOL param8) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 1); + + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_02009978(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, param8); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_020090AC(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6) +{ + GF_ASSERT(param0); + + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_02009978(param0, r6, param1, param2, param3, param4, 0, 0, param5, param6, FALSE); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC void FUN_020090FC(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + NarcId param2, + s32 param3, + BOOL param4, + u32 param5) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 0); + GF_ASSERT(param1); + GF_ASSERT(param1->unk04 == 0); + + s32 r6 = FUN_02009530(param1); + u32 r7 = FUN_020095E4(param1); + FUN_02009490(param0, param1); + + FUN_02009978(param0, param1, param2, param3, param4, r6, r7, 0, 0, param5, FALSE); +} + +THUMB_FUNC void FUN_02009168(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + NarcId param2, + s32 param3, + BOOL param4, + u32 param5) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 1); + GF_ASSERT(param1); + GF_ASSERT(param1->unk04 == 1); + + s32 r6 = FUN_02009530(param1); + u32 r7 = FUN_020095E4(param1); + u32 st24 = FUN_02009610(param1); + FUN_02009490(param0, param1); + + FUN_02009978(param0, param1, param2, param3, param4, r6, r7, st24, 1, param5, 0); +} + +THUMB_FUNC u32 FUN_020091E0(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 0); + + u32 r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, 0); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC u32 FUN_0200923C(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 0); + + u32 r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, param7); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC u32 FUN_02009298(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 1); + + u32 r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, 0); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC u32 FUN_020092F8(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk10 == 1); + + u32 r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, param8); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC u32 FUN_02009358(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6) +{ + GF_ASSERT(param0); + + u32 r6 = FUN_020097D0(param0); + GF_ASSERT(r6); + + FUN_020099B0(param0, r6, param1, param2, param3, param4, 0, 0, param5, param6, 0); + param0->unk0C++; + + return r6; +} + +THUMB_FUNC u32 FUN_020093A8( + struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2, u32 param3) +{ + GF_ASSERT(param0); + GF_ASSERT(param1); + + FUN_020093DC(param0, param1, 0, param1->unk04, param2, param3); + + return param1->unk04; +} + +THUMB_FUNC void FUN_020093DC(struct UnkStruct1 *param0, + struct UnkStruct2 *param1, + s32 param2, + s32 param3, + s32 *param4, + u32 param5) +{ + for (int r5 = param2; r5 < param2 + param3; r5++) + { + u32 r0 = FUN_02008E6C(param0, param1, r5, param5); + + if (param4 != NULL && param4[1] > param4[2]) + { + ((u32 *)param4[0])[param4[2]] = r0; + param4[2]++; + } + } +} + +THUMB_FUNC struct UnkStruct5 *FUN_02009424(u32 param0, u32 param1) +{ + struct UnkStruct5 *r4 = AllocFromHeap(param1, sizeof(struct UnkStruct5)); + r4->unk00 = AllocFromHeap(param1, param0 * sizeof(u32)); + r4->unk04 = param0; + r4->unk08 = 0; + + return r4; +} + +THUMB_FUNC void FUN_02009448(struct UnkStruct5 *param0) +{ + FreeToHeap(param0->unk00); + FreeToHeap(param0); +} + +THUMB_FUNC u32 FUN_0200945C(struct UnkStruct1 *param0, s32 param1) +{ + GF_ASSERT(param0); + return FUN_02020CB0(param0->unk00, param1); +} + +THUMB_FUNC void FUN_02009474(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + + FUN_02009920(param0); + FUN_02020E1C(param0->unk00, 0); +} + +THUMB_FUNC void FUN_02009490(struct UnkStruct1 *param0, struct UnkStruct1_sub *param1) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk04); + + FUN_02009920(param1); + FUN_02020D68(param0->unk00, param1->unk00); + param1->unk00 = 0; + param0->unk0C--; +} + +THUMB_FUNC void FUN_020094C4(struct UnkStruct1 *param0) +{ + for (int i = 0; i < param0->unk08; i++) + { + if (param0->unk04[i].unk00 != 0) + { + FUN_02009490(param0, ¶m0->unk04[i]); + } + } +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, u32 param1) +{ + GF_ASSERT(param0); + + for (int i = 0; i < param0->unk08; i++) + { + if (param0->unk04[i].unk00 != 0) + { + u32 r0 = FUN_02020E38(param0->unk04[i].unk00); + if (r0 == param1) + { + return ¶m0->unk04[i]; + } + } + } + + return NULL; +} + +THUMB_FUNC s32 FUN_02009530(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + return FUN_02020E38(param0->unk00); +} + +THUMB_FUNC u32 FUN_02009544(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0->unk04 == 0); + return *FUN_02009934(param0); +} + +THUMB_FUNC u32 FUN_0200955C(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0->unk04 == 1); + return *FUN_02009934(param0); +} + +THUMB_FUNC u32 FUN_02009574(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0->unk04 == 2); + return *FUN_02009934(param0); +} + +THUMB_FUNC u32 FUN_0200958C(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0->unk04 == 3); + return *FUN_02009934(param0); +} + +THUMB_FUNC u32 FUN_020095A4(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0->unk04 == 4); + return *FUN_02009934(param0); +} + +THUMB_FUNC u32 FUN_020095BC(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0->unk04 == 5); + return *FUN_02009934(param0); +} + +THUMB_FUNC u32 FUN_020095D4(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + + return param0->unk04; +} + +THUMB_FUNC u32 FUN_020095E4(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + + if (param0->unk04 == 0) + { + return FUN_02009934(param0)[1]; + } + if (param0->unk04 == 1) + { + return FUN_02009934(param0)[1]; + } + + return 0; +} + +THUMB_FUNC u32 FUN_02009610(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + + if (param0->unk04 == 1) + { + return FUN_02009934(param0)[2]; + } + + return 0; +} + +THUMB_FUNC void FUN_02009630(struct UnkStruct1_sub *param0, u32 param1) +{ + GF_ASSERT(param0); + + if (param0->unk04 == 0) + { + FUN_02009934(param0)[1] = param1; + } + if (param0->unk04 == 1) + { + FUN_02009934(param0)[1] = param1; + } +} + +THUMB_FUNC u32 FUN_0200965C(void) +{ + return 16; +} + +THUMB_FUNC u32 *FUN_02009660(u32 *param0, s32 param1) +{ + return ¶m0[param1 * 4]; +} + +THUMB_FUNC void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2) +{ + GF_ASSERT(param1); + + param1->unk08 = param0[0]; + param1->unk0C = 1; + + param1->unk04 = FUN_020099E8((struct UnkStruct4 *)(param0 + 1)); + + void *ptr; + if (param1->unk04 > 0) + { + ptr = AllocFromHeap(param2, param1->unk04 * sizeof(struct UnkStruct4)); + } + else + { + ptr = NULL; + } + + param1->unk00 = ptr; + // use volatile to force a reload here + void *r0 = *((void *volatile *)param1); + if (r0 != NULL) + { + memcpy(r0, param0 + 1, param1->unk04 * sizeof(struct UnkStruct4)); + } +} + +THUMB_FUNC void FUN_020096B4(struct UnkStruct2 *param0) +{ + if (param0->unk00) + { + FreeToHeap(param0->unk00); + } + param0->unk00 = NULL; + param0->unk04 = 0; +} + +THUMB_FUNC s32 FUN_020096CC(struct UnkStruct2 *param0) +{ + GF_ASSERT(param0); + + return param0->unk04; +} + +THUMB_FUNC u32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk04 > param1); + + if (param0->unk0C == 0) + { + return ((struct UnkStruct3 *)param0->unk00)[param1].unk00; + } + + return ((struct UnkStruct4 *)param0->unk00)[param1].unk0C; +} + +THUMB_FUNC u32 FUN_02009710(struct UnkStruct2 *param0, s32 param1) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk04 > param1); + + u32 r6; + if (param0->unk0C == 1) + { + r6 = ((struct UnkStruct4 *)param0->unk00)[param1].unk04; + } + + // oops, UB here + return r6; +} + +THUMB_FUNC u32 FUN_0200973C(struct UnkStruct2 *param0, s32 param1) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk04 > param1); + + u32 r6; + if (param0->unk0C == 1) + { + r6 = ((struct UnkStruct4 *)param0->unk00)[param1].unk08; + } + + // oops, UB here + return r6; +} + +THUMB_FUNC u32 FUN_02009768(struct UnkStruct2 *param0, s32 param1) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk04 > param1); + + if (param0->unk0C == 0) + { + return ((struct UnkStruct3 *)param0->unk00)[param1].unk44; + } + + return ((struct UnkStruct4 *)param0->unk00)[param1].unk10; +} + +THUMB_FUNC u32 FUN_0200979C(struct UnkStruct2 *param0, s32 param1) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk04 > param1); + + if (param0->unk0C == 0) + { + return ((struct UnkStruct3 *)param0->unk00)[param1].unk48; + } + + return ((struct UnkStruct4 *)param0->unk00)[param1].unk14; +} + +THUMB_FUNC struct UnkStruct1_sub *FUN_020097D0(struct UnkStruct1 *param0) +{ + for (int i = 0; i < param0->unk08; i++) + { + if (param0->unk04[i].unk00 == 0) + { + return ¶m0->unk04[i]; + } + } + + return NULL; +} + +struct CharacterData_02008DEC +{ + NNSG2dCharacterData *chData; + u32 unk04; +}; + +struct PaletteData_02008DEC +{ + NNSG2dPaletteData *plttData; + u32 unk04; + u32 unk08; +}; + +struct CellDataBank_02008DEC +{ + NNSG2dCellDataBank *cellBank; +}; + +struct AnimBank_02008DEC +{ + NNSG2dAnimBankData *bankData; +}; + +THUMB_FUNC void FUN_020097FC( + struct UnkStruct1_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4) +{ + void *r0 = FUN_02020E0C(param0->unk00); + + switch (param1) + { + case 0: + param0->unk08 = FUN_0200986C(r0, param2, param4); + break; + case 1: + param0->unk08 = FUN_0200988C(r0, param2, param3, param4); + break; + case 2: + param0->unk08 = FUN_020098B0(r0, param4); + break; + case 3: + param0->unk08 = FUN_020098CC(r0, param4); + break; + case 4: + param0->unk08 = FUN_020098E8(r0, param4); + break; + case 5: + param0->unk08 = FUN_02009904(r0, param4); + break; + } +} + +THUMB_FUNC struct CharacterData_02008DEC *FUN_0200986C(void *param0, u32 param1, u32 param2) +{ + struct CharacterData_02008DEC *ptr = + AllocFromHeap(param2, sizeof(struct CharacterData_02008DEC)); + + NNS_G2dGetUnpackedCharacterData(param0, &ptr->chData); + ptr->unk04 = param1; + + return ptr; +} + +THUMB_FUNC struct PaletteData_02008DEC *FUN_0200988C( + void *param0, u32 param1, u32 param2, u32 param3) +{ + struct PaletteData_02008DEC *ptr = AllocFromHeap(param3, sizeof(struct PaletteData_02008DEC)); + + NNS_G2dGetUnpackedPaletteData(param0, &ptr->plttData); + ptr->unk04 = param1; + ptr->unk08 = param2; + + return ptr; +} + +THUMB_FUNC struct CellDataBank_02008DEC *FUN_020098B0(void *param0, u32 param1) +{ + struct CellDataBank_02008DEC *ptr = AllocFromHeap(param1, sizeof(struct CellDataBank_02008DEC)); + + NNS_G2dGetUnpackedCellBank(param0, &ptr->cellBank); + + return ptr; +} + +THUMB_FUNC struct AnimBank_02008DEC *FUN_020098CC(void *param0, u32 param1) +{ + struct AnimBank_02008DEC *ptr = AllocFromHeap(param1, sizeof(struct AnimBank_02008DEC)); + + NNS_G2dGetUnpackedAnimBank(param0, &ptr->bankData); + + return ptr; +} + +THUMB_FUNC void *FUN_020098E8(void *param0, u32 param1) +{ + void *ptr = AllocFromHeap(param1, 4); + + NNS_G2dGetUnpackedMultiCellBank(param0, ptr); + + return ptr; +} + +THUMB_FUNC void *FUN_02009904(void *param0, u32 param1) +{ + void *ptr = AllocFromHeap(param1, 4); + + NNS_G2dGetUnpackedMCAnimBank(param0, ptr); + + return ptr; +} + +THUMB_FUNC void FUN_02009920(struct UnkStruct1_sub *param0) +{ + if (param0->unk08 != NULL) + { + FreeToHeap(param0->unk08); + } + + param0->unk08 = NULL; +} + +THUMB_FUNC u32 *FUN_02009934(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(param0->unk08); + + return param0->unk08; +} + +THUMB_FUNC void FUN_0200994C(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + void *param2, + s32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7) +{ + param1->unk00 = FUN_02020D10(param0->unk00, param2, param3, param7); + param1->unk04 = param6; + FUN_020097FC(param1, param6, param4, param5, param7); +} + +THUMB_FUNC void FUN_02009978(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + NarcId param2, + s32 param3, + BOOL param4, + s32 param5, + u32 param6, + u32 param7, + u32 param8, + u32 param9, + BOOL param10) +{ + void *r1 = GfGfxLoader_LoadFromNarc(param2, param3, param4, param9, param10); + param1->unk00 = FUN_02020CD4(param0->unk00, r1, param5); + param1->unk04 = param8; + + FUN_020097FC(param1, param8, param6, param7, param9); +} + +THUMB_FUNC void FUN_020099B0(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8, + u32 param9, + u32 param10) +{ + param1->unk00 = + FUN_02020CD4(param0->unk00, FUN_02009A04(param2, param3, param4, param9, param10), param5); + param1->unk04 = param8; + + FUN_020097FC(param1, param8, param6, param7, param9); +} + +THUMB_FUNC s32 FUN_020099E8(struct UnkStruct4 *param0) +{ + s32 r3 = 0; + while (param0[r3].unk00 != -2) + { + r3++; + } + + return r3; +} + +THUMB_FUNC void *FUN_02009A04(NARC *param0, u32 param1, u32 param2, u32 param3, u32 param4) +{ + void *r4 = NARC_AllocAndReadWholeMember(param0, param1, param3); + + if (r4 != NULL && param2 != 0) + { + void *ptr; + if (param4 == 0) + { + ptr = AllocFromHeap(param3, (*(u32 *)r4) >> 8); + } + else + { + ptr = AllocFromHeapAtEnd(param3, (*(u32 *)r4) >> 8); + } + + if (ptr != NULL) + { + MI_UncompressLZ8(r4, ptr); + FreeToHeap(r4); + } + + r4 = ptr; + } + + return r4; +} + +THUMB_FUNC u32 FUN_02009A50(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 0); + + u32 st0[4]; + st0[0] = FUN_02009544(param0); + st0[1] = FUN_020095E4(param0); + st0[2] = FUN_02009530(param0); + st0[3] = 0; + + return FUN_0201D1F8(st0); +} + +THUMB_FUNC void FUN_02009A90(struct UnkStruct5 *param0) +{ + GF_ASSERT(param0); + + for (int i = 0; i < param0->unk04; i++) + { + GF_ASSERT(param0->unk00[i] == 0 || FUN_02009A50(param0->unk00[i]) != 0); + } +} + +THUMB_FUNC u32 FUN_02009AC4(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 0); + + u32 st0[4]; + st0[0] = FUN_02009544(param0); + st0[1] = FUN_020095E4(param0); + st0[2] = FUN_02009530(param0); + st0[3] = 0; + + return FUN_0201D250(st0); +} + +THUMB_FUNC u32 FUN_02009B04(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 0); + + u32 st0[4]; + st0[0] = FUN_02009544(param0); + st0[1] = FUN_020095E4(param0); + st0[2] = FUN_02009530(param0); + st0[3] = 1; + + return FUN_0201D1F8(st0); +} + +THUMB_FUNC void FUN_02009B44(struct UnkStruct5 *param0) +{ + GF_ASSERT(param0); + + for (int i = 0; i < param0->unk04; i++) + { + GF_ASSERT(param0->unk00[i] == 0 || FUN_02009B04(param0->unk00[i]) != 0); + } +} + +THUMB_FUNC u32 FUN_02009B78(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 0); + + u32 st0[4]; + st0[0] = FUN_02009544(param0); + st0[1] = FUN_020095E4(param0); + st0[2] = FUN_02009530(param0); + st0[3] = 1; + + return FUN_0201D250(st0); +} + +THUMB_FUNC void FUN_02009BB8(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1) +{ + GF_ASSERT(param0); + GF_ASSERT(param1); + + FUN_0201D2DC(FUN_02009530(param0), FUN_02009544(param1)); +} + +THUMB_FUNC void FUN_02009BE8(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + + FUN_0201D2DC(FUN_02009530(param0), FUN_02009544(param0)); +} + +THUMB_FUNC void FUN_02009C0C(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 0); + + FUN_0201D324(FUN_02009530(param0)); +} + +THUMB_FUNC void FUN_02009C30(struct UnkStruct5 *param0) +{ + GF_ASSERT(param0); + for (int i = 0; i < param0->unk04; i++) + { + if (param0->unk00[i] != 0) + { + FUN_02009C0C(param0->unk00[i]); + } + } +} + +THUMB_FUNC u32 FUN_02009C5C(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 0); + + return FUN_0201D3B0(FUN_02009530(param0)); +} + +THUMB_FUNC void FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 0); + GF_ASSERT(param1); + GF_ASSERT(FUN_020095D4(param1) == 2); + + u32 r4 = FUN_02009530(param0); + if (FUN_0201D3D4(r4, ((u32 **)FUN_02009574(param1))[3][0]) == 0) + { + FUN_0201D458(FUN_0201D3B0(r4)); + } +} + +THUMB_FUNC void FUN_02009CDC(u32 param0) +{ + GF_ASSERT(param0); + + FUN_0201D4F0(param0); +} + +THUMB_FUNC u32 FUN_02009CF0(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 1); + + u32 st0[4]; + st0[0] = FUN_0200955C(param0); + st0[1] = FUN_020095E4(param0); + st0[3] = FUN_02009530(param0); + st0[2] = FUN_02009610(param0); + + return FUN_0201E0E4(st0); +} + +THUMB_FUNC void FUN_02009D34(struct UnkStruct5 *param0) +{ + GF_ASSERT(param0); + for (int i = 0; i < param0->unk04; i++) + { + if (param0->unk00[i] != 0) + { + GF_ASSERT(FUN_02009CF0(param0->unk00[i]) != 0); + } + } +} + +THUMB_FUNC u32 FUN_02009D68(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 1); + + u32 st0[4]; + st0[0] = FUN_0200955C(param0); + st0[1] = FUN_020095E4(param0); + st0[3] = FUN_02009530(param0); + st0[2] = FUN_02009610(param0); + + return FUN_0201E128(st0); +} + +THUMB_FUNC void FUN_02009DAC(struct UnkStruct5 *param0) +{ + GF_ASSERT(param0); + for (int i = 0; i < param0->unk04; i++) + { + if (param0->unk00[i] != 0) + { + GF_ASSERT(FUN_02009D68(param0->unk00[i]) != 0); + } + } +} + +THUMB_FUNC void FUN_02009DE0(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + + FUN_0201E168(FUN_02009530(param0), FUN_0200955C(param0)); +} + +THUMB_FUNC void FUN_02009E04(struct UnkStruct1_sub *param0) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 1); + + FUN_0201E1C8(FUN_02009530(param0)); +} + +THUMB_FUNC void FUN_02009E28(struct UnkStruct5 *param0) +{ + GF_ASSERT(param0); + for (int i = 0; i < param0->unk04; i++) + { + if (param0->unk00[i] != 0) + { + FUN_02009E04(param0->unk00[i]); + } + } +} + +THUMB_FUNC u32 FUN_02009E54(struct UnkStruct1_sub *param0, u32 param1) +{ + GF_ASSERT(param0); + GF_ASSERT(FUN_020095D4(param0) == 1); + + u32 r0 = FUN_02009530(param0); + if (param1 != 0) + { + return FUN_0201E258(r0, param1); + } + + return FUN_0201E230(r0); +} + +THUMB_FUNC s32 FUN_02009E88(struct UnkStruct1_sub *param0, u32 param1) +{ + s32 ret = NNS_G2dGetImagePaletteLocation(FUN_02009E54(param0, 0), param1); + if (ret != -1) + { + return ret / 32; + } + + return ret; +} diff --git a/include/unk_02008DEC.h b/include/unk_02008DEC.h new file mode 100644 index 00000000..0a94229a --- /dev/null +++ b/include/unk_02008DEC.h @@ -0,0 +1,245 @@ +#include "global.h" +#include "filesystem.h" + +struct UnkStruct1_sub +{ + u32 unk00; + u32 unk04; + void *unk08; +}; + +struct UnkStruct1 +{ + + u32 unk00; + struct UnkStruct1_sub *unk04; + s32 unk08; + u32 unk0C; + s32 unk10; +}; + +struct UnkStruct2 +{ + void *unk00; + s32 unk04; + u32 unk08; + u8 unk0C; +}; + +struct UnkStruct3 +{ + s32 unk00; + u8 unk04[0x40]; + u32 unk44; + u32 unk48; +}; + +struct UnkStruct4 +{ + NarcId unk00; + s32 unk04; + BOOL unk08; + s32 unk0C; + u32 unk10; + u32 unk14; +}; + +struct UnkStruct5 +{ + u32 *unk00; + s32 unk04; + u32 unk08; +}; + +struct UnkStruct1 *FUN_02008DEC(u32 param0, s32 param1, u32 param2); +void FUN_02008E2C(struct UnkStruct1 *param0); +struct UnkStruct1_sub *FUN_02008E6C(struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, u32 param3); +struct UnkStruct1_sub *FUN_02008F34(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6); +struct UnkStruct1_sub *FUN_02008F90(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6, + BOOL param7); +struct UnkStruct1_sub *FUN_02008FEC(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7); +struct UnkStruct1_sub *FUN_0200904C(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7, + BOOL param8); +struct UnkStruct1_sub *FUN_020090AC(struct UnkStruct1 *param0, + NarcId param1, + s32 param2, + BOOL param3, + s32 param4, + u32 param5, + u32 param6); +void FUN_020090FC(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + NarcId param2, + s32 param3, + BOOL param4, + u32 param5); +void FUN_02009168(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + NarcId param2, + s32 param3, + BOOL param4, + u32 param5); +u32 FUN_020091E0(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6); +u32 FUN_0200923C(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7); +u32 FUN_02009298(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7); +u32 FUN_020092F8(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8); +u32 FUN_02009358(struct UnkStruct1 *param0, + u32 param1, + u32 param2, + u32 param3, + s32 param4, + u32 param5, + u32 param6); +u32 FUN_020093A8(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2, u32 param3); +void FUN_020093DC(struct UnkStruct1 *param0, + struct UnkStruct2 *param1, + s32 param2, + s32 param3, + s32 *param4, + u32 param5); +struct UnkStruct5 *FUN_02009424(u32 param0, u32 param1); +void FUN_02009448(struct UnkStruct5 *param0); +u32 FUN_0200945C(struct UnkStruct1 *param0, s32 param1); +void FUN_02009474(struct UnkStruct1_sub *param0); +void FUN_02009490(struct UnkStruct1 *param0, struct UnkStruct1_sub *param1); +void FUN_020094C4(struct UnkStruct1 *param0); +struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, u32 param1); +s32 FUN_02009530(struct UnkStruct1_sub *param0); +u32 FUN_02009544(struct UnkStruct1_sub *param0); +u32 FUN_0200955C(struct UnkStruct1_sub *param0); +u32 FUN_02009574(struct UnkStruct1_sub *param0); +u32 FUN_0200958C(struct UnkStruct1_sub *param0); +u32 FUN_020095A4(struct UnkStruct1_sub *param0); +u32 FUN_020095BC(struct UnkStruct1_sub *param0); +u32 FUN_020095D4(struct UnkStruct1_sub *param0); +u32 FUN_020095E4(struct UnkStruct1_sub *param0); +u32 FUN_02009610(struct UnkStruct1_sub *param0); +void FUN_02009630(struct UnkStruct1_sub *param0, u32 param1); +u32 FUN_0200965C(void); +u32 *FUN_02009660(u32 *param0, s32 param1); +void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2); +void FUN_020096B4(struct UnkStruct2 *param0); +s32 FUN_020096CC(struct UnkStruct2 *param0); +u32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1); +u32 FUN_02009710(struct UnkStruct2 *param0, s32 param1); +u32 FUN_0200973C(struct UnkStruct2 *param0, s32 param1); +u32 FUN_02009768(struct UnkStruct2 *param0, s32 param1); +u32 FUN_0200979C(struct UnkStruct2 *param0, s32 param1); +struct UnkStruct1_sub *FUN_020097D0(struct UnkStruct1 *param0); +void FUN_020097FC(struct UnkStruct1_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4); +struct CharacterData_02008DEC *FUN_0200986C(void *param0, u32 param1, u32 param2); +struct PaletteData_02008DEC *FUN_0200988C(void *param0, u32 param1, u32 param2, u32 param3); +struct CellDataBank_02008DEC *FUN_020098B0(void *param0, u32 param1); +struct AnimBank_02008DEC *FUN_020098CC(void *param0, u32 param1); +void *FUN_020098E8(void *param0, u32 param1); +void *FUN_02009904(void *param0, u32 param1); +void FUN_02009920(struct UnkStruct1_sub *param0); +u32 *FUN_02009934(struct UnkStruct1_sub *param0); +void FUN_0200994C(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + void *param2, + s32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7); +void FUN_02009978(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + NarcId param2, + s32 param3, + BOOL param4, + s32 param5, + u32 param6, + u32 param7, + u32 param8, + u32 param9, + BOOL param10); +void FUN_020099B0(struct UnkStruct1 *param0, + struct UnkStruct1_sub *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8, + u32 param9, + u32 param10); +s32 FUN_020099E8(struct UnkStruct4 *param0); +void *FUN_02009A04(NARC *param0, u32 param1, u32 param2, u32 param3, u32 param4); +u32 FUN_02009A50(struct UnkStruct1_sub *param0); +void FUN_02009A90(struct UnkStruct5 *param0); +u32 FUN_02009AC4(struct UnkStruct1_sub *param0); +u32 FUN_02009B04(struct UnkStruct1_sub *param0); +void FUN_02009B44(struct UnkStruct5 *param0); +u32 FUN_02009B78(struct UnkStruct1_sub *param0); +void FUN_02009BB8(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1); +void FUN_02009BE8(struct UnkStruct1_sub *param0); +void FUN_02009C0C(struct UnkStruct1_sub *param0); +void FUN_02009C30(struct UnkStruct5 *param0); +u32 FUN_02009C5C(struct UnkStruct1_sub *param0); +void FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1); +void FUN_02009CDC(u32 param0); +u32 FUN_02009CF0(struct UnkStruct1_sub *param0); +void FUN_02009D34(struct UnkStruct5 *param0); +u32 FUN_02009D68(struct UnkStruct1_sub *param0); +void FUN_02009DAC(struct UnkStruct5 *param0); +void FUN_02009DE0(struct UnkStruct1_sub *param0); +void FUN_02009E04(struct UnkStruct1_sub *param0); +void FUN_02009E28(struct UnkStruct5 *param0); +u32 FUN_02009E54(struct UnkStruct1_sub *param0, u32 param1); +s32 FUN_02009E88(struct UnkStruct1_sub *param0, u32 param1); -- cgit v1.2.3 From 8f43e99f05cc2113398bcd40d29a6dfd952cf4ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Wed, 11 Aug 2021 23:15:40 +0200 Subject: fix compiler warnings --- arm9/src/unk_02008DEC.c | 102 ++++++++++++++++++++++++------------------------ include/unk_02008DEC.h | 36 ++++++++--------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/arm9/src/unk_02008DEC.c b/arm9/src/unk_02008DEC.c index 49a2ff0c..ad4f9700 100644 --- a/arm9/src/unk_02008DEC.c +++ b/arm9/src/unk_02008DEC.c @@ -14,21 +14,21 @@ extern void *FUN_02020E0C(u32); extern BOOL NNS_G2dGetUnpackedMultiCellBank(void *, void *); extern BOOL NNS_G2dGetUnpackedMCAnimBank(void *, void *); extern u32 FUN_02020D10(u32, void *, s32, u32); -extern u32 FUN_02020CD4(u32, void *, u32); +extern u32 FUN_02020CD4(u32, void *, s32); extern u32 FUN_0201D1F8(u32 *param0); extern u32 FUN_0201D250(u32 *param0); -extern void FUN_0201D2DC(u32, u32); -extern void FUN_0201D324(u32 param0); -extern u32 FUN_0201D3B0(u32); -extern u32 FUN_0201D3D4(u32, u32); +extern void FUN_0201D2DC(s32, u32); +extern void FUN_0201D324(s32 param0); +extern u32 FUN_0201D3B0(s32); +extern u32 FUN_0201D3D4(s32, u32); extern u32 FUN_0201D458(u32); extern void FUN_0201D4F0(u32); extern u32 FUN_0201E0E4(u32 *param0); extern u32 FUN_0201E128(u32 *param0); -extern void FUN_0201E168(u32, u32); -extern void FUN_0201E1C8(u32); -extern u32 FUN_0201E258(u32, u32); -extern u32 FUN_0201E230(u32); +extern void FUN_0201E168(s32, u32); +extern void FUN_0201E1C8(s32); +extern u32 FUN_0201E258(s32, u32); +extern u32 FUN_0201E230(s32); extern s32 NNS_G2dGetImagePaletteLocation(u32, u32); THUMB_FUNC struct UnkStruct1 *FUN_02008DEC(u32 param0, s32 param1, u32 heap_id) @@ -245,8 +245,8 @@ THUMB_FUNC void FUN_02009168(struct UnkStruct1 *param0, FUN_02009978(param0, param1, param2, param3, param4, r6, r7, st24, 1, param5, 0); } -THUMB_FUNC u32 FUN_020091E0(struct UnkStruct1 *param0, - u32 param1, +THUMB_FUNC struct UnkStruct1_sub *FUN_020091E0(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, @@ -256,7 +256,7 @@ THUMB_FUNC u32 FUN_020091E0(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 0); - u32 r6 = FUN_020097D0(param0); + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, 0); @@ -265,8 +265,8 @@ THUMB_FUNC u32 FUN_020091E0(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC u32 FUN_0200923C(struct UnkStruct1 *param0, - u32 param1, +THUMB_FUNC struct UnkStruct1_sub *FUN_0200923C(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, @@ -277,7 +277,7 @@ THUMB_FUNC u32 FUN_0200923C(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 0); - u32 r6 = FUN_020097D0(param0); + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, param7); @@ -286,8 +286,8 @@ THUMB_FUNC u32 FUN_0200923C(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC u32 FUN_02009298(struct UnkStruct1 *param0, - u32 param1, +THUMB_FUNC struct UnkStruct1_sub *FUN_02009298(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, @@ -298,7 +298,7 @@ THUMB_FUNC u32 FUN_02009298(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 1); - u32 r6 = FUN_020097D0(param0); + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, 0); @@ -307,8 +307,8 @@ THUMB_FUNC u32 FUN_02009298(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC u32 FUN_020092F8(struct UnkStruct1 *param0, - u32 param1, +THUMB_FUNC struct UnkStruct1_sub *FUN_020092F8(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, @@ -320,7 +320,7 @@ THUMB_FUNC u32 FUN_020092F8(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 1); - u32 r6 = FUN_020097D0(param0); + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, param8); @@ -329,8 +329,8 @@ THUMB_FUNC u32 FUN_020092F8(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC u32 FUN_02009358(struct UnkStruct1 *param0, - u32 param1, +THUMB_FUNC struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, @@ -339,7 +339,7 @@ THUMB_FUNC u32 FUN_02009358(struct UnkStruct1 *param0, { GF_ASSERT(param0); - u32 r6 = FUN_020097D0(param0); + struct UnkStruct1_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, 0, 0, param5, param6, 0); @@ -348,7 +348,7 @@ THUMB_FUNC u32 FUN_02009358(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC u32 FUN_020093A8( +THUMB_FUNC s32 FUN_020093A8( struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2, u32 param3) { GF_ASSERT(param0); @@ -368,20 +368,20 @@ THUMB_FUNC void FUN_020093DC(struct UnkStruct1 *param0, { for (int r5 = param2; r5 < param2 + param3; r5++) { - u32 r0 = FUN_02008E6C(param0, param1, r5, param5); + struct UnkStruct1_sub *r0 = FUN_02008E6C(param0, param1, r5, param5); if (param4 != NULL && param4[1] > param4[2]) { - ((u32 *)param4[0])[param4[2]] = r0; + ((u32 *)param4[0])[param4[2]] = (u32)r0; param4[2]++; } } } -THUMB_FUNC struct UnkStruct5 *FUN_02009424(u32 param0, u32 param1) +THUMB_FUNC struct UnkStruct5 *FUN_02009424(s32 param0, u32 param1) { struct UnkStruct5 *r4 = AllocFromHeap(param1, sizeof(struct UnkStruct5)); - r4->unk00 = AllocFromHeap(param1, param0 * sizeof(u32)); + r4->unk00 = AllocFromHeap(param1, param0 * sizeof(struct UnkStruct1_sub *)); r4->unk04 = param0; r4->unk08 = 0; @@ -438,7 +438,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, u32 pa { if (param0->unk04[i].unk00 != 0) { - u32 r0 = FUN_02020E38(param0->unk04[i].unk00); + s32 r0 = FUN_02020E38(param0->unk04[i].unk00); if (r0 == param1) { return ¶m0->unk04[i]; @@ -595,7 +595,7 @@ THUMB_FUNC s32 FUN_020096CC(struct UnkStruct2 *param0) return param0->unk04; } -THUMB_FUNC u32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC s32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); @@ -608,12 +608,12 @@ THUMB_FUNC u32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1) return ((struct UnkStruct4 *)param0->unk00)[param1].unk0C; } -THUMB_FUNC u32 FUN_02009710(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC s32 FUN_02009710(struct UnkStruct2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); - u32 r6; + s32 r6; if (param0->unk0C == 1) { r6 = ((struct UnkStruct4 *)param0->unk00)[param1].unk04; @@ -623,12 +623,12 @@ THUMB_FUNC u32 FUN_02009710(struct UnkStruct2 *param0, s32 param1) return r6; } -THUMB_FUNC u32 FUN_0200973C(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC BOOL FUN_0200973C(struct UnkStruct2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); - u32 r6; + BOOL r6; if (param0->unk0C == 1) { r6 = ((struct UnkStruct4 *)param0->unk00)[param1].unk08; @@ -840,10 +840,10 @@ THUMB_FUNC void FUN_02009978(struct UnkStruct1 *param0, THUMB_FUNC void FUN_020099B0(struct UnkStruct1 *param0, struct UnkStruct1_sub *param1, - u32 param2, + NARC *param2, u32 param3, u32 param4, - u32 param5, + s32 param5, u32 param6, u32 param7, u32 param8, @@ -904,7 +904,7 @@ THUMB_FUNC u32 FUN_02009A50(struct UnkStruct1_sub *param0) u32 st0[4]; st0[0] = FUN_02009544(param0); st0[1] = FUN_020095E4(param0); - st0[2] = FUN_02009530(param0); + st0[2] = (u32)FUN_02009530(param0); st0[3] = 0; return FUN_0201D1F8(st0); @@ -916,7 +916,7 @@ THUMB_FUNC void FUN_02009A90(struct UnkStruct5 *param0) for (int i = 0; i < param0->unk04; i++) { - GF_ASSERT(param0->unk00[i] == 0 || FUN_02009A50(param0->unk00[i]) != 0); + GF_ASSERT(param0->unk00[i] == NULL || FUN_02009A50(param0->unk00[i]) != 0); } } @@ -928,7 +928,7 @@ THUMB_FUNC u32 FUN_02009AC4(struct UnkStruct1_sub *param0) u32 st0[4]; st0[0] = FUN_02009544(param0); st0[1] = FUN_020095E4(param0); - st0[2] = FUN_02009530(param0); + st0[2] = (u32)FUN_02009530(param0); st0[3] = 0; return FUN_0201D250(st0); @@ -942,7 +942,7 @@ THUMB_FUNC u32 FUN_02009B04(struct UnkStruct1_sub *param0) u32 st0[4]; st0[0] = FUN_02009544(param0); st0[1] = FUN_020095E4(param0); - st0[2] = FUN_02009530(param0); + st0[2] = (u32)FUN_02009530(param0); st0[3] = 1; return FUN_0201D1F8(st0); @@ -954,7 +954,7 @@ THUMB_FUNC void FUN_02009B44(struct UnkStruct5 *param0) for (int i = 0; i < param0->unk04; i++) { - GF_ASSERT(param0->unk00[i] == 0 || FUN_02009B04(param0->unk00[i]) != 0); + GF_ASSERT(param0->unk00[i] == NULL || FUN_02009B04(param0->unk00[i]) != 0); } } @@ -966,7 +966,7 @@ THUMB_FUNC u32 FUN_02009B78(struct UnkStruct1_sub *param0) u32 st0[4]; st0[0] = FUN_02009544(param0); st0[1] = FUN_020095E4(param0); - st0[2] = FUN_02009530(param0); + st0[2] = (u32)FUN_02009530(param0); st0[3] = 1; return FUN_0201D250(st0); @@ -1000,7 +1000,7 @@ THUMB_FUNC void FUN_02009C30(struct UnkStruct5 *param0) GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) { - if (param0->unk00[i] != 0) + if (param0->unk00[i] != NULL) { FUN_02009C0C(param0->unk00[i]); } @@ -1022,7 +1022,7 @@ THUMB_FUNC void FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_su GF_ASSERT(param1); GF_ASSERT(FUN_020095D4(param1) == 2); - u32 r4 = FUN_02009530(param0); + s32 r4 = FUN_02009530(param0); if (FUN_0201D3D4(r4, ((u32 **)FUN_02009574(param1))[3][0]) == 0) { FUN_0201D458(FUN_0201D3B0(r4)); @@ -1044,7 +1044,7 @@ THUMB_FUNC u32 FUN_02009CF0(struct UnkStruct1_sub *param0) u32 st0[4]; st0[0] = FUN_0200955C(param0); st0[1] = FUN_020095E4(param0); - st0[3] = FUN_02009530(param0); + st0[3] = (u32)FUN_02009530(param0); st0[2] = FUN_02009610(param0); return FUN_0201E0E4(st0); @@ -1055,7 +1055,7 @@ THUMB_FUNC void FUN_02009D34(struct UnkStruct5 *param0) GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) { - if (param0->unk00[i] != 0) + if (param0->unk00[i] != NULL) { GF_ASSERT(FUN_02009CF0(param0->unk00[i]) != 0); } @@ -1070,7 +1070,7 @@ THUMB_FUNC u32 FUN_02009D68(struct UnkStruct1_sub *param0) u32 st0[4]; st0[0] = FUN_0200955C(param0); st0[1] = FUN_020095E4(param0); - st0[3] = FUN_02009530(param0); + st0[3] = (u32)FUN_02009530(param0); st0[2] = FUN_02009610(param0); return FUN_0201E128(st0); @@ -1081,7 +1081,7 @@ THUMB_FUNC void FUN_02009DAC(struct UnkStruct5 *param0) GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) { - if (param0->unk00[i] != 0) + if (param0->unk00[i] != NULL) { GF_ASSERT(FUN_02009D68(param0->unk00[i]) != 0); } @@ -1108,7 +1108,7 @@ THUMB_FUNC void FUN_02009E28(struct UnkStruct5 *param0) GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) { - if (param0->unk00[i] != 0) + if (param0->unk00[i] != NULL) { FUN_02009E04(param0->unk00[i]); } @@ -1120,7 +1120,7 @@ THUMB_FUNC u32 FUN_02009E54(struct UnkStruct1_sub *param0, u32 param1) GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 1); - u32 r0 = FUN_02009530(param0); + s32 r0 = FUN_02009530(param0); if (param1 != 0) { return FUN_0201E258(r0, param1); diff --git a/include/unk_02008DEC.h b/include/unk_02008DEC.h index 0a94229a..a3cdfc1a 100644 --- a/include/unk_02008DEC.h +++ b/include/unk_02008DEC.h @@ -46,7 +46,7 @@ struct UnkStruct4 struct UnkStruct5 { - u32 *unk00; + struct UnkStruct1_sub **unk00; s32 unk04; u32 unk08; }; @@ -105,31 +105,31 @@ void FUN_02009168(struct UnkStruct1 *param0, s32 param3, BOOL param4, u32 param5); -u32 FUN_020091E0(struct UnkStruct1 *param0, - u32 param1, +struct UnkStruct1_sub *FUN_020091E0(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); -u32 FUN_0200923C(struct UnkStruct1 *param0, - u32 param1, +struct UnkStruct1_sub *FUN_0200923C(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6, u32 param7); -u32 FUN_02009298(struct UnkStruct1 *param0, - u32 param1, +struct UnkStruct1_sub *FUN_02009298(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6, u32 param7); -u32 FUN_020092F8(struct UnkStruct1 *param0, - u32 param1, +struct UnkStruct1_sub *FUN_020092F8(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, @@ -137,21 +137,21 @@ u32 FUN_020092F8(struct UnkStruct1 *param0, u32 param6, u32 param7, u32 param8); -u32 FUN_02009358(struct UnkStruct1 *param0, - u32 param1, +struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, + NARC *param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); -u32 FUN_020093A8(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2, u32 param3); +s32 FUN_020093A8(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2, u32 param3); void FUN_020093DC(struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, s32 param3, s32 *param4, u32 param5); -struct UnkStruct5 *FUN_02009424(u32 param0, u32 param1); +struct UnkStruct5 *FUN_02009424(s32 param0, u32 param1); void FUN_02009448(struct UnkStruct5 *param0); u32 FUN_0200945C(struct UnkStruct1 *param0, s32 param1); void FUN_02009474(struct UnkStruct1_sub *param0); @@ -174,9 +174,9 @@ u32 *FUN_02009660(u32 *param0, s32 param1); void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2); void FUN_020096B4(struct UnkStruct2 *param0); s32 FUN_020096CC(struct UnkStruct2 *param0); -u32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1); -u32 FUN_02009710(struct UnkStruct2 *param0, s32 param1); -u32 FUN_0200973C(struct UnkStruct2 *param0, s32 param1); +s32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1); +s32 FUN_02009710(struct UnkStruct2 *param0, s32 param1); +BOOL FUN_0200973C(struct UnkStruct2 *param0, s32 param1); u32 FUN_02009768(struct UnkStruct2 *param0, s32 param1); u32 FUN_0200979C(struct UnkStruct2 *param0, s32 param1); struct UnkStruct1_sub *FUN_020097D0(struct UnkStruct1 *param0); @@ -210,10 +210,10 @@ void FUN_02009978(struct UnkStruct1 *param0, BOOL param10); void FUN_020099B0(struct UnkStruct1 *param0, struct UnkStruct1_sub *param1, - u32 param2, + NARC *param2, u32 param3, u32 param4, - u32 param5, + s32 param5, u32 param6, u32 param7, u32 param8, -- cgit v1.2.3 From e3766102b2132d09de4368f0be4f3898c263c9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 12 Aug 2021 00:32:06 +0200 Subject: remove externs and cleanup some dependent code --- arm9/src/unk_02008AA4.c | 46 +++++------- arm9/src/unk_02008DEC.c | 43 +++-------- arm9/src/unk_0200BB14.c | 196 ++++++++++++++++++++---------------------------- include/unk_02008AA4.h | 24 +++--- include/unk_02008DEC.h | 42 +++++++++-- include/unk_0200BB14.h | 77 ++++++++++--------- 6 files changed, 198 insertions(+), 230 deletions(-) diff --git a/arm9/src/unk_02008AA4.c b/arm9/src/unk_02008AA4.c index 2d7fb77d..4ddb6995 100644 --- a/arm9/src/unk_02008AA4.c +++ b/arm9/src/unk_02008AA4.c @@ -3,16 +3,8 @@ #include "GX_vramcnt.h" #include "heap.h" #include "unk_0200BB14.h" +#include "unk_02008DEC.h" -extern u32 FUN_020094F0(u32 param0, s32 param1); -extern u32 FUN_02009C80(u32, u32); -extern u32 FUN_02009544(u32); -extern u32 FUN_02009E54(u32 param0, u32 param1); -extern u32 FUN_02009C5C(u32); -extern u32 FUN_02009574(u32); -extern u32 FUN_0200958C(u32); -extern u32 FUN_020095A4(u32); -extern u32 FUN_020095BC(u32); extern void FUN_0202134C(void *, u32); extern void FUN_02009FD8(void *param0, u32 *param1, u32 param2, u32 param3); extern u32 FUN_0201FCB0(u32 *); @@ -29,20 +21,20 @@ THUMB_FUNC void FUN_02008AA4(struct UnkStruct_0200BB14_sub *param0, s32 param6, u32 param7, u32 param8, - u32 param9, - u32 param10, - u32 param11, - u32 param12, - u32 param13, - u32 param14) + struct UnkStruct1 *param9, + struct UnkStruct1 *param10, + struct UnkStruct1 *param11, + struct UnkStruct1 *param12, + struct UnkStruct1 *param13, + struct UnkStruct1 *param14) { - u32 r7; - u32 st14; - u32 st10; + struct UnkStruct1_sub *r7; + struct UnkStruct1_sub *st14; + struct UnkStruct1_sub *st10; - u32 stc = 0; - u32 r4 = 0; - u32 st8 = 0; + struct UnkStruct1_sub *stc = NULL; + struct UnkStruct1_sub *r4 = NULL; + struct UnkStruct1_sub *st8 = NULL; GF_ASSERT(param9); GF_ASSERT(param10); @@ -124,12 +116,12 @@ THUMB_FUNC void FUN_02008AA4(struct UnkStruct_0200BB14_sub *param0, THUMB_FUNC struct UnkStruct_02008AA4_1 *FUN_02008BE0(struct UnkStruct_02008AA4_2 *param0, u32 param1, - u32 param2, - u32 param3, - u32 param4, - u32 param5, - u32 param6, - u32 param7) + struct UnkStruct1 *param2, + struct UnkStruct1 *param3, + struct UnkStruct1 *param4, + struct UnkStruct1 *param5, + struct UnkStruct1 *param6, + struct UnkStruct1 *param7) { s32 r4 = 0; diff --git a/arm9/src/unk_02008DEC.c b/arm9/src/unk_02008DEC.c index ad4f9700..76e32b63 100644 --- a/arm9/src/unk_02008DEC.c +++ b/arm9/src/unk_02008DEC.c @@ -349,7 +349,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, } THUMB_FUNC s32 FUN_020093A8( - struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2, u32 param3) + struct UnkStruct1 *param0, struct UnkStruct2 *param1, struct UnkStruct5 *param2, u32 param3) { GF_ASSERT(param0); GF_ASSERT(param1); @@ -363,17 +363,17 @@ THUMB_FUNC void FUN_020093DC(struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, s32 param3, - s32 *param4, + struct UnkStruct5 *param4, u32 param5) { for (int r5 = param2; r5 < param2 + param3; r5++) { struct UnkStruct1_sub *r0 = FUN_02008E6C(param0, param1, r5, param5); - if (param4 != NULL && param4[1] > param4[2]) + if (param4 != NULL && param4->unk04 > param4->unk08) { - ((u32 *)param4[0])[param4[2]] = (u32)r0; - param4[2]++; + param4->unk00[param4->unk08] = r0; + param4->unk08++; } } } @@ -430,7 +430,7 @@ THUMB_FUNC void FUN_020094C4(struct UnkStruct1 *param0) } } -THUMB_FUNC struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, u32 param1) +THUMB_FUNC struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, s32 param1) { GF_ASSERT(param0); @@ -545,9 +545,9 @@ THUMB_FUNC u32 FUN_0200965C(void) return 16; } -THUMB_FUNC u32 *FUN_02009660(u32 *param0, s32 param1) +THUMB_FUNC struct UnkStruct2 *FUN_02009660(struct UnkStruct2 *param0, s32 param1) { - return ¶m0[param1 * 4]; + return ¶m0[param1]; } THUMB_FUNC void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2) @@ -677,29 +677,6 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020097D0(struct UnkStruct1 *param0) return NULL; } -struct CharacterData_02008DEC -{ - NNSG2dCharacterData *chData; - u32 unk04; -}; - -struct PaletteData_02008DEC -{ - NNSG2dPaletteData *plttData; - u32 unk04; - u32 unk08; -}; - -struct CellDataBank_02008DEC -{ - NNSG2dCellDataBank *cellBank; -}; - -struct AnimBank_02008DEC -{ - NNSG2dAnimBankData *bankData; -}; - THUMB_FUNC void FUN_020097FC( struct UnkStruct1_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4) { @@ -1015,7 +992,7 @@ THUMB_FUNC u32 FUN_02009C5C(struct UnkStruct1_sub *param0) return FUN_0201D3B0(FUN_02009530(param0)); } -THUMB_FUNC void FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1) +THUMB_FUNC u32 FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -1025,7 +1002,7 @@ THUMB_FUNC void FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_su s32 r4 = FUN_02009530(param0); if (FUN_0201D3D4(r4, ((u32 **)FUN_02009574(param1))[3][0]) == 0) { - FUN_0201D458(FUN_0201D3B0(r4)); + return FUN_0201D458(FUN_0201D3B0(r4)); } } diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index ac8d048e..e84b759b 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -3,6 +3,7 @@ #include "game_init.h" #include "heap.h" #include "unk_02008AA4.h" +#include "unk_02008DEC.h" extern void FUN_0201D060(u32 *param0, u32 param1, u32 param2); extern void FUN_0201E00C(u32 param0, u32 param1); @@ -24,44 +25,15 @@ extern void FUN_0201FDEC(u32 param0); extern void FUN_02009F80(); extern void FUN_0201C348(); extern void FUN_0201FD58(u32 param0); -extern u32 FUN_02009660(u32 *param0, s32 param1); -extern void FUN_020096B4(u32 param0); -extern void FUN_02009C30(u32 *param0); -extern void FUN_02009E28(u32 *param0); -extern void FUN_02009448(u32 *param0); -extern void FUN_02008E2C(u32 param0); extern void FUN_0201C350(u32 param0); extern void FUN_0201D12C(); extern void FUN_0201E08C(); extern void FUN_02009FA0(); -extern u32 FUN_0200965C(s32 param0); -extern void FUN_02009668(void *param0, u32 param1, u32 param2); -extern u32 FUN_020096CC(u32 param0); -extern u32 FUN_02008DEC(u32 param0, s32 param1, u32 param2); -extern u32 *FUN_02009424(u32 param0, u32 param1); -extern u32 FUN_020093A8(u32 param0, u32 param1, u32 *param2, u32 param3); -extern void FUN_02009A90(u32 *param0); -extern void FUN_02009D34(u32 *param0); extern u32 FUN_0201FE94(struct UnkStruct_0200BB14_4 *param0); extern void FUN_02020130(u32 param0, u32 param1); extern void FUN_02020248(u32 param0, u32 param1); -extern u32 FUN_0200945C(u32 param0, s32 param1); -extern u32 FUN_02008F34( - u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); -extern void FUN_02009B04(u32 param0); -extern u32 FUN_02008FEC( - u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6, u32 param7); -extern u32 FUN_02009D68(u32 param0); -extern u32 FUN_02009E88(u32 param0, u32 param1); extern void FUN_02003108(u32 param0, u32 param1, u16 param2, u32 param3); extern u8 FUN_020202A0(u32 param0); -extern u32 FUN_020094F0(u32 param0, u32 param1); -extern u32 FUN_02009E54(u32 param0, u32 param1); -extern void FUN_02009CDC(u32 param0); -extern u32 FUN_020090AC( - u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); -extern u32 FUN_02009530(u32 param0); -extern void FUN_02009490(u32 param0, u32 param1); extern void FUN_0201D324(u32 param0); extern void FUN_0201E1C8(u32 param0); extern void FUN_020201E4(u32 param0, u32 param1); @@ -91,12 +63,6 @@ extern void FUN_02020100(u32 param0, u32 param1); extern void FUN_02020054(u32 param0, u32 *param1); extern void FUN_02020358(u32 param0, u32 param1); extern void FUN_02020398(u32 param0, u32 param1); -extern void FUN_02009AC4(u32 param0); -extern void FUN_02009B78(u32 param0); -extern void FUN_020090FC(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); -extern void FUN_02009BE8(u32 param0); -extern void FUN_02009168(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); -extern void FUN_02009DE0(u32 param0); THUMB_FUNC struct UnkStruct_0200BB14_1 *FUN_0200BB14(u32 heap_id) { @@ -293,12 +259,12 @@ THUMB_FUNC BOOL FUN_0200BD20( } param1->unk54 = st14; - u32 r2 = FUN_0200965C(st14); + u32 r2 = FUN_0200965C(); param1->unk08 = AllocFromHeap(param0->unk000, r2 * st14); for (s32 i = 0; i < st14; i++) { - u32 st18 = FUN_02009660(param1->unk08, i); + struct UnkStruct2 *st18 = FUN_02009660(param1->unk08, i); void *st1c = AllocAndReadFile(param0->unk000, st10[i]); FUN_02009668(st1c, st18, param0->unk000); @@ -313,7 +279,7 @@ THUMB_FUNC BOOL FUN_0200BD20( for (s32 i = 0; i < st14; i++) { - u32 st20 = FUN_02009660(param1->unk08, i); + struct UnkStruct2 *st20 = FUN_02009660(param1->unk08, i); param1->unk24[i] = FUN_02009424(FUN_020096CC(st20), param0->unk000); param1->unk3c[i] = FUN_020093A8(param1->unk0c[i], st20, param1->unk24[i], param0->unk000); } @@ -432,7 +398,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, } THUMB_FUNC BOOL FUN_0200BF60( - struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2) + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, s32 *param2) { struct UnkStruct_0200BB14_1 *st0 = param0; s32 i; @@ -462,9 +428,9 @@ THUMB_FUNC BOOL FUN_0200BF60( param1->unk24[i] = FUN_02009424(param2[i], st0->unk000); param1->unk3c[i] = 0; - for (s32 j = 0; j < (s32)param1->unk24[i][1]; j++) + for (s32 j = 0; j < param1->unk24[i]->unk04; j++) { - ((u32 *)param1->unk24[i][0])[j] = 0; + param1->unk24[i]->unk00[j] = NULL; } } } @@ -474,9 +440,9 @@ THUMB_FUNC BOOL FUN_0200BF60( THUMB_FUNC BOOL FUN_0200C00C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6) { @@ -485,8 +451,8 @@ THUMB_FUNC BOOL FUN_0200C00C(u32 *param0, return FALSE; } - u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); - if (r5 != 0) + struct UnkStruct1_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); + if (r5 != NULL) { FUN_02009B04(r5); FUN_0200C474(param1->unk24[0], r5); @@ -494,14 +460,14 @@ THUMB_FUNC BOOL FUN_0200C00C(u32 *param0, } GF_ASSERT(0); - return r5 != 0 ? TRUE : FALSE; + return r5 != NULL ? TRUE : FALSE; } THUMB_FUNC s32 FUN_0200C06C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, u32 param6, s32 param7) @@ -511,16 +477,16 @@ THUMB_FUNC s32 FUN_0200C06C(u32 *param0, return -1; } - u32 r5 = + struct UnkStruct1_sub * r5 = FUN_02008FEC(param1->unk0c[1], param2, param3, param4, param7, param6, param5, param0[0]); - if (r5 != 0) + if (r5 != NULL) { GF_ASSERT(FUN_02009D68(r5) == 1); FUN_0200C474(param1->unk24[1], r5); return (s8)FUN_02009E88(r5, param6); } - GF_ASSERT(0); + GF_ASSERT(FALSE); return -1; } @@ -528,9 +494,9 @@ THUMB_FUNC u8 FUN_0200C0DC(u32 param0, u32 param1, u32 *param2, struct UnkStruct_0200BB14_2 *param3, - u32 param4, - u32 param5, - u32 param6, + NarcId param4, + s32 param5, + BOOL param6, u32 param7, u32 param8, s32 param9) @@ -546,9 +512,9 @@ THUMB_FUNC u8 FUN_0200C0DC(u32 param0, THUMB_FUNC BOOL FUN_0200C124(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 2, param5); @@ -556,9 +522,9 @@ THUMB_FUNC BOOL FUN_0200C124(u32 *param0, THUMB_FUNC BOOL FUN_0200C13C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 3, param5); @@ -698,12 +664,12 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( return ptr; } -THUMB_FUNC u32 FUN_0200C334(u32 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C334(struct UnkStruct1 **param0, s32 param1) { return FUN_02009E54(FUN_020094F0(param0[4], param1), 0); } -THUMB_FUNC u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2) +THUMB_FUNC s32 FUN_0200C344(struct UnkStruct1 **param0, s32 param1, u32 param2) { return FUN_02009E88(FUN_020094F0(param0[4], param1), param2); } @@ -752,15 +718,15 @@ THUMB_FUNC void FUN_0200C3DC(u32 *param0) } FUN_0201FFC8(param0[0]); - FUN_02008C80(param0[2]); + FUN_02008C80((struct UnkStruct_02008AA4_1 *)param0[2]); FreeToHeap(param0); } THUMB_FUNC BOOL FUN_0200C404(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6) { @@ -769,25 +735,25 @@ THUMB_FUNC BOOL FUN_0200C404(u32 *param0, return FALSE; } - u32 r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]); - if (r5 != 0) + struct UnkStruct1_sub *r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]); + if (r5 != NULL) { BOOL r4 = FUN_0200C474(param1->unk24[param5], r5); GF_ASSERT(r4 == TRUE); return r4; } GF_ASSERT(0); - return r5 != 0 ? TRUE : FALSE; + return r5 != NULL ? TRUE : FALSE; } -THUMB_FUNC BOOL FUN_0200C474(u32 *param0, u32 param1) +THUMB_FUNC BOOL FUN_0200C474(struct UnkStruct5 *param0, struct UnkStruct1_sub *param1) { - for (s32 i = 0; i < (s32)param0[1]; i++) + for (s32 i = 0; i < param0->unk04; i++) { - if (((u32 *)param0[0])[i] == 0) + if (param0->unk00[i] == NULL) { - ((u32 *)param0[0])[i] = param1; - param0[2]++; + param0->unk00[i] = param1; + param0->unk08++; return TRUE; } } @@ -795,19 +761,19 @@ THUMB_FUNC BOOL FUN_0200C474(u32 *param0, u32 param1) return FALSE; } -THUMB_FUNC BOOL FUN_0200C4A8(u32 param0, u32 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C4A8(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2) { - for (s32 i = 0; i < (s32)param1[1]; i++) + for (s32 i = 0; i < param1->unk04; i++) { - if (((u32 *)param1[0])[i] != 0) + if (param1->unk00[i] != 0) { - u32 r0 = FUN_02009530(((u32 *)param1[0])[i]); + s32 r0 = FUN_02009530(param1->unk00[i]); if (r0 == param2) { - FUN_02009490(param0, ((u32 *)param1[0])[i]); - ((u32 *)param1[0])[i] = 0; - param1[2]--; + FUN_02009490(param0, param1->unk00[i]); + param1->unk00[i] = NULL; + param1->unk08--; return TRUE; } @@ -817,20 +783,20 @@ THUMB_FUNC BOOL FUN_0200C4A8(u32 param0, u32 *param1, u32 param2) return FALSE; } -THUMB_FUNC BOOL FUN_0200C4F4(u32 param0, u32 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C4F4(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2) { - for (s32 i = 0; i < (s32)param1[1]; i++) + for (s32 i = 0; i < param1->unk04; i++) { - if (((u32 *)param1[0])[i] != 0) + if (param1->unk00[i] != NULL) { - u32 r0 = FUN_02009530(((u32 *)param1[0])[i]); + s32 r0 = FUN_02009530(param1->unk00[i]); if (r0 == param2) { FUN_0201D324(param2); - FUN_02009490(param0, ((u32 *)param1[0])[i]); - ((u32 *)param1[0])[i] = 0; - param1[2]--; + FUN_02009490(param0, param1->unk00[i]); + param1->unk00[i] = NULL; + param1->unk08--; return TRUE; } @@ -840,20 +806,20 @@ THUMB_FUNC BOOL FUN_0200C4F4(u32 param0, u32 *param1, u32 param2) return FALSE; } -THUMB_FUNC BOOL FUN_0200C548(u32 param0, u32 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C548(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2) { - for (s32 i = 0; i < (s32)param1[1]; i++) + for (s32 i = 0; i < param1->unk04; i++) { - if (((u32 *)param1[0])[i] != 0) + if (param1->unk00[i] != 0) { - u32 r0 = FUN_02009530(((u32 *)param1[0])[i]); + s32 r0 = FUN_02009530(param1->unk00[i]); if (r0 == param2) { FUN_0201E1C8(param2); - FUN_02009490(param0, ((u32 *)param1[0])[i]); - ((u32 *)param1[0])[i] = 0; - param1[2]--; + FUN_02009490(param0, param1->unk00[i]); + param1->unk00[i] = NULL; + param1->unk08--; return TRUE; } @@ -1205,9 +1171,9 @@ THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1) THUMB_FUNC BOOL FUN_0200C918(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6) { @@ -1216,8 +1182,8 @@ THUMB_FUNC BOOL FUN_0200C918(u32 *param0, return FALSE; } - u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); - if (r5 != 0) + struct UnkStruct1_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); + if (r5 != NULL) { FUN_02009AC4(r5); FUN_0200C474(param1->unk24[0], r5); @@ -1225,15 +1191,15 @@ THUMB_FUNC BOOL FUN_0200C918(u32 *param0, return TRUE; } - GF_ASSERT(0); - return r5 != 0 ? TRUE : FALSE; + GF_ASSERT(FALSE); + return r5 != NULL ? TRUE : FALSE; } THUMB_FUNC BOOL FUN_0200C978(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6) { @@ -1242,8 +1208,8 @@ THUMB_FUNC BOOL FUN_0200C978(u32 *param0, return FALSE; } - u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); - if (r5 != 0) + struct UnkStruct1_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); + if (r5 != NULL) { FUN_02009B78(r5); FUN_0200C474(param1->unk24[0], r5); @@ -1251,23 +1217,23 @@ THUMB_FUNC BOOL FUN_0200C978(u32 *param0, return TRUE; } - GF_ASSERT(0); - return r5 != 0 ? TRUE : FALSE; + GF_ASSERT(FALSE); + return r5 != NULL ? TRUE : FALSE; } THUMB_FUNC void FUN_0200C9D8( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) + u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5) { - u32 r6 = FUN_020094F0(param1[3], param5); + struct UnkStruct1_sub *r6 = FUN_020094F0(param1[3], param5); FUN_020090FC(param1[3], r6, param2, param3, param4, param0[0]); FUN_02009BE8(r6); } THUMB_FUNC void FUN_0200CA0C( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) + u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5) { - u32 r6 = FUN_020094F0(param1[4], param5); + struct UnkStruct1_sub *r6 = FUN_020094F0(param1[4], param5); FUN_02009168(param1[4], r6, param2, param3, param4, param0[0]); FUN_02009DE0(r6); diff --git a/include/unk_02008AA4.h b/include/unk_02008AA4.h index 448a7101..2884547d 100644 --- a/include/unk_02008AA4.h +++ b/include/unk_02008AA4.h @@ -31,20 +31,20 @@ void FUN_02008AA4(struct UnkStruct_0200BB14_sub *param0, s32 param6, u32 param7, u32 param8, - u32 param9, - u32 param10, - u32 param11, - u32 param12, - u32 param13, - u32 param14); + struct UnkStruct1 *param9, + struct UnkStruct1 *param10, + struct UnkStruct1 *param11, + struct UnkStruct1 *param12, + struct UnkStruct1 *param13, + struct UnkStruct1 *param14); struct UnkStruct_02008AA4_1 *FUN_02008BE0(struct UnkStruct_02008AA4_2 *param0, u32 param1, - u32 param2, - u32 param3, - u32 param4, - u32 param5, - u32 param6, - u32 param7); + struct UnkStruct1 *param2, + struct UnkStruct1 *param3, + struct UnkStruct1 *param4, + struct UnkStruct1 *param5, + struct UnkStruct1 *param6, + struct UnkStruct1 *param7); void FUN_02008C80(struct UnkStruct_02008AA4_1 *param0); u32 FUN_02008C9C(u32 param0, void *param1, u32 param2); void FUN_02008D04(u32 param0, u32 param1, u32 param2); diff --git a/include/unk_02008DEC.h b/include/unk_02008DEC.h index a3cdfc1a..99dc9579 100644 --- a/include/unk_02008DEC.h +++ b/include/unk_02008DEC.h @@ -1,4 +1,8 @@ +#ifndef POKEDIAMOND_UNK_02008DEC_H +#define POKEDIAMOND_UNK_02008DEC_H + #include "global.h" +#include "NNS_g2d.h" #include "filesystem.h" struct UnkStruct1_sub @@ -48,12 +52,36 @@ struct UnkStruct5 { struct UnkStruct1_sub **unk00; s32 unk04; + s32 unk08; +}; + +struct CharacterData_02008DEC +{ + NNSG2dCharacterData *chData; + u32 unk04; +}; + +struct PaletteData_02008DEC +{ + NNSG2dPaletteData *plttData; + u32 unk04; u32 unk08; }; +struct CellDataBank_02008DEC +{ + NNSG2dCellDataBank *cellBank; +}; + +struct AnimBank_02008DEC +{ + NNSG2dAnimBankData *bankData; +}; + struct UnkStruct1 *FUN_02008DEC(u32 param0, s32 param1, u32 param2); void FUN_02008E2C(struct UnkStruct1 *param0); -struct UnkStruct1_sub *FUN_02008E6C(struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, u32 param3); +struct UnkStruct1_sub *FUN_02008E6C( + struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, u32 param3); struct UnkStruct1_sub *FUN_02008F34(struct UnkStruct1 *param0, NarcId param1, s32 param2, @@ -144,12 +172,12 @@ struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, s32 param4, u32 param5, u32 param6); -s32 FUN_020093A8(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2, u32 param3); +s32 FUN_020093A8(struct UnkStruct1 *param0, struct UnkStruct2 *param1, struct UnkStruct5 *param2, u32 param3); void FUN_020093DC(struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, s32 param3, - s32 *param4, + struct UnkStruct5 *param4, u32 param5); struct UnkStruct5 *FUN_02009424(s32 param0, u32 param1); void FUN_02009448(struct UnkStruct5 *param0); @@ -157,7 +185,7 @@ u32 FUN_0200945C(struct UnkStruct1 *param0, s32 param1); void FUN_02009474(struct UnkStruct1_sub *param0); void FUN_02009490(struct UnkStruct1 *param0, struct UnkStruct1_sub *param1); void FUN_020094C4(struct UnkStruct1 *param0); -struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, u32 param1); +struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, s32 param1); s32 FUN_02009530(struct UnkStruct1_sub *param0); u32 FUN_02009544(struct UnkStruct1_sub *param0); u32 FUN_0200955C(struct UnkStruct1_sub *param0); @@ -170,7 +198,7 @@ u32 FUN_020095E4(struct UnkStruct1_sub *param0); u32 FUN_02009610(struct UnkStruct1_sub *param0); void FUN_02009630(struct UnkStruct1_sub *param0, u32 param1); u32 FUN_0200965C(void); -u32 *FUN_02009660(u32 *param0, s32 param1); +struct UnkStruct2 *FUN_02009660(struct UnkStruct2 *param0, s32 param1); void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2); void FUN_020096B4(struct UnkStruct2 *param0); s32 FUN_020096CC(struct UnkStruct2 *param0); @@ -232,7 +260,7 @@ void FUN_02009BE8(struct UnkStruct1_sub *param0); void FUN_02009C0C(struct UnkStruct1_sub *param0); void FUN_02009C30(struct UnkStruct5 *param0); u32 FUN_02009C5C(struct UnkStruct1_sub *param0); -void FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1); +u32 FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1); void FUN_02009CDC(u32 param0); u32 FUN_02009CF0(struct UnkStruct1_sub *param0); void FUN_02009D34(struct UnkStruct5 *param0); @@ -243,3 +271,5 @@ void FUN_02009E04(struct UnkStruct1_sub *param0); void FUN_02009E28(struct UnkStruct5 *param0); u32 FUN_02009E54(struct UnkStruct1_sub *param0, u32 param1); s32 FUN_02009E88(struct UnkStruct1_sub *param0, u32 param1); + +#endif // POKEDIAMOND_UNK_02008DEC_H diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h index 04c6dcb0..20d4739d 100644 --- a/include/unk_0200BB14.h +++ b/include/unk_0200BB14.h @@ -2,6 +2,7 @@ #define POKEDIAMOND_UNK_0200BB14_H #include "global.h" +#include "unk_02008DEC.h" struct UnkStruct_0200BB14_1 { @@ -16,10 +17,10 @@ struct UnkStruct_0200BB14_2 { u32 unk00; struct UnkStruct_02008AA4_1 *unk04; - u32 *unk08; - u32 unk0c[6]; - u32 *unk24[6]; - u32 unk3c[6]; + struct UnkStruct2 *unk08; + struct UnkStruct1 *unk0c[6]; + struct UnkStruct5 *unk24[6]; + s32 unk3c[6]; s32 unk54; }; @@ -117,19 +118,19 @@ u32 FUN_0200BE74(u32 *param0, u32 param12, u32 param13); BOOL FUN_0200BF60( - struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, s32 *param2); BOOL FUN_0200C00C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6); s32 FUN_0200C06C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, u32 param6, s32 param7); @@ -137,28 +138,28 @@ u8 FUN_0200C0DC(u32 param0, u32 param1, u32 *param2, struct UnkStruct_0200BB14_2 *param3, - u32 param4, - u32 param5, - u32 param6, + NarcId param4, + s32 param5, + BOOL param6, u32 param7, u32 param8, s32 param9); BOOL FUN_0200C124(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, s32 param5); BOOL FUN_0200C13C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, s32 param5); struct UnkStruct_0200BB14_5 *FUN_0200C154( struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); -u32 FUN_0200C334(u32 *param0, u32 param1); -u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2); +u32 FUN_0200C334(struct UnkStruct1 **param0, s32 param1); +s32 FUN_0200C344(struct UnkStruct1 **param0, s32 param1, u32 param2); BOOL FUN_0200C358(struct UnkStruct_0200BB14_2 *param0, u32 param1); BOOL FUN_0200C368(struct UnkStruct_0200BB14_2 *param0, u32 param1); BOOL FUN_0200C378(struct UnkStruct_0200BB14_2 *param0, u32 param1); @@ -167,15 +168,15 @@ void FUN_0200C398(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14 void FUN_0200C3DC(u32 *param0); BOOL FUN_0200C404(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6); -BOOL FUN_0200C474(u32 *param0, u32 param1); -BOOL FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); -BOOL FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); -BOOL FUN_0200C548(u32 param0, u32 *param1, u32 param2); +BOOL FUN_0200C474(struct UnkStruct5 *param0, struct UnkStruct1_sub *param1); +BOOL FUN_0200C4A8(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2); +BOOL FUN_0200C4F4(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2); +BOOL FUN_0200C548(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2); void FUN_0200C59C(u32 param0); void FUN_0200C5A8(u32 *param0); void FUN_0200C5B4(u32 *param0, u32 param1); @@ -233,20 +234,22 @@ void FUN_0200C904(u32 param0, u32 param1); void FUN_0200C90C(u32 *param0, u32 param1); BOOL FUN_0200C918(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6); BOOL FUN_0200C978(u32 *param0, struct UnkStruct_0200BB14_2 *param1, - u32 param2, - u32 param3, - u32 param4, + NarcId param2, + s32 param3, + BOOL param4, u32 param5, s32 param6); -void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); -void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); +void FUN_0200C9D8( + u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5); +void FUN_0200CA0C( + u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5); u32 FUN_0200CA40(u32 *param0); #endif // POKEDIAMOND_UNK_0200BB14_H -- cgit v1.2.3 From 5ded23bcd3e68fa316c46b37266047ab28d08a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 12 Aug 2021 00:34:18 +0200 Subject: global struct names --- arm9/src/unk_02008AA4.c | 36 ++++---- arm9/src/unk_02008DEC.c | 222 ++++++++++++++++++++++++------------------------ arm9/src/unk_0200BB14.c | 34 ++++---- include/unk_02008AA4.h | 24 +++--- include/unk_02008DEC.h | 178 +++++++++++++++++++------------------- include/unk_0200BB14.h | 22 ++--- 6 files changed, 258 insertions(+), 258 deletions(-) diff --git a/arm9/src/unk_02008AA4.c b/arm9/src/unk_02008AA4.c index 4ddb6995..1cabb887 100644 --- a/arm9/src/unk_02008AA4.c +++ b/arm9/src/unk_02008AA4.c @@ -21,20 +21,20 @@ THUMB_FUNC void FUN_02008AA4(struct UnkStruct_0200BB14_sub *param0, s32 param6, u32 param7, u32 param8, - struct UnkStruct1 *param9, - struct UnkStruct1 *param10, - struct UnkStruct1 *param11, - struct UnkStruct1 *param12, - struct UnkStruct1 *param13, - struct UnkStruct1 *param14) + struct UnkStruct_02008DEC_1 *param9, + struct UnkStruct_02008DEC_1 *param10, + struct UnkStruct_02008DEC_1 *param11, + struct UnkStruct_02008DEC_1 *param12, + struct UnkStruct_02008DEC_1 *param13, + struct UnkStruct_02008DEC_1 *param14) { - struct UnkStruct1_sub *r7; - struct UnkStruct1_sub *st14; - struct UnkStruct1_sub *st10; + struct UnkStruct_02008DEC_sub *r7; + struct UnkStruct_02008DEC_sub *st14; + struct UnkStruct_02008DEC_sub *st10; - struct UnkStruct1_sub *stc = NULL; - struct UnkStruct1_sub *r4 = NULL; - struct UnkStruct1_sub *st8 = NULL; + struct UnkStruct_02008DEC_sub *stc = NULL; + struct UnkStruct_02008DEC_sub *r4 = NULL; + struct UnkStruct_02008DEC_sub *st8 = NULL; GF_ASSERT(param9); GF_ASSERT(param10); @@ -116,12 +116,12 @@ THUMB_FUNC void FUN_02008AA4(struct UnkStruct_0200BB14_sub *param0, THUMB_FUNC struct UnkStruct_02008AA4_1 *FUN_02008BE0(struct UnkStruct_02008AA4_2 *param0, u32 param1, - struct UnkStruct1 *param2, - struct UnkStruct1 *param3, - struct UnkStruct1 *param4, - struct UnkStruct1 *param5, - struct UnkStruct1 *param6, - struct UnkStruct1 *param7) + struct UnkStruct_02008DEC_1 *param2, + struct UnkStruct_02008DEC_1 *param3, + struct UnkStruct_02008DEC_1 *param4, + struct UnkStruct_02008DEC_1 *param5, + struct UnkStruct_02008DEC_1 *param6, + struct UnkStruct_02008DEC_1 *param7) { s32 r4 = 0; diff --git a/arm9/src/unk_02008DEC.c b/arm9/src/unk_02008DEC.c index 76e32b63..4467a03d 100644 --- a/arm9/src/unk_02008DEC.c +++ b/arm9/src/unk_02008DEC.c @@ -31,12 +31,12 @@ extern u32 FUN_0201E258(s32, u32); extern u32 FUN_0201E230(s32); extern s32 NNS_G2dGetImagePaletteLocation(u32, u32); -THUMB_FUNC struct UnkStruct1 *FUN_02008DEC(u32 param0, s32 param1, u32 heap_id) +THUMB_FUNC struct UnkStruct_02008DEC_1 *FUN_02008DEC(u32 param0, s32 param1, u32 heap_id) { - struct UnkStruct1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct1)); + struct UnkStruct_02008DEC_1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02008DEC_1)); ptr->unk00 = FUN_02020C44(param0, heap_id); - ptr->unk04 = AllocFromHeap(heap_id, param0 * sizeof(struct UnkStruct1_sub)); - memset(ptr->unk04, 0, param0 * sizeof(struct UnkStruct1_sub)); + ptr->unk04 = AllocFromHeap(heap_id, param0 * sizeof(struct UnkStruct_02008DEC_sub)); + memset(ptr->unk04, 0, param0 * sizeof(struct UnkStruct_02008DEC_sub)); ptr->unk08 = (s32)param0; ptr->unk0C = 0; ptr->unk10 = param1; @@ -44,7 +44,7 @@ THUMB_FUNC struct UnkStruct1 *FUN_02008DEC(u32 param0, s32 param1, u32 heap_id) return ptr; } -THUMB_FUNC void FUN_02008E2C(struct UnkStruct1 *param0) +THUMB_FUNC void FUN_02008E2C(struct UnkStruct_02008DEC_1 *param0) { GF_ASSERT(param0); GF_ASSERT(param0->unk00); @@ -61,20 +61,20 @@ THUMB_FUNC void FUN_02008E2C(struct UnkStruct1 *param0) FreeToHeap(param0); } -THUMB_FUNC struct UnkStruct1_sub *FUN_02008E6C( - struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, u32 param3) +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02008E6C( + struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_2 *param1, s32 param2, u32 param3) { GF_ASSERT(param0); GF_ASSERT(param1); GF_ASSERT(param1->unk04 > param2); GF_ASSERT(param0->unk10 == param1->unk08); - struct UnkStruct1_sub *st1c = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *st1c = FUN_020097D0(param0); GF_ASSERT(st1c); if (param1->unk0C == 0) { - struct UnkStruct3 *r6 = &((struct UnkStruct3 *)param1->unk00)[param2]; + struct UnkStruct_02008DEC_3 *r6 = &((struct UnkStruct_02008DEC_3 *)param1->unk00)[param2]; GF_ASSERT(FUN_0200945C(param0, r6->unk00) == 1); FUN_0200994C( @@ -82,7 +82,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008E6C( } else { - struct UnkStruct4 *r6 = &((struct UnkStruct4 *)param1->unk00)[param2]; + struct UnkStruct_02008DEC_4 *r6 = &((struct UnkStruct_02008DEC_4 *)param1->unk00)[param2]; GF_ASSERT(FUN_0200945C(param0, r6->unk0C) == 1); FUN_02009978(param0, @@ -103,7 +103,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008E6C( return st1c; } -THUMB_FUNC struct UnkStruct1_sub *FUN_02008F34(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02008F34(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -114,7 +114,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008F34(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 0); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_02009978(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, FALSE); @@ -123,7 +123,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008F34(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_02008F90(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02008F90(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -135,7 +135,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008F90(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 0); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_02009978(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, param7); @@ -144,7 +144,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008F90(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_02008FEC(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02008FEC(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -156,7 +156,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008FEC(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 1); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_02009978(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, FALSE); @@ -165,7 +165,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02008FEC(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_0200904C(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_0200904C(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -178,7 +178,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_0200904C(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 1); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_02009978(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, param8); @@ -187,7 +187,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_0200904C(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_020090AC(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_020090AC(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -197,7 +197,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020090AC(struct UnkStruct1 *param0, { GF_ASSERT(param0); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_02009978(param0, r6, param1, param2, param3, param4, 0, 0, param5, param6, FALSE); @@ -206,8 +206,8 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020090AC(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC void FUN_020090FC(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +THUMB_FUNC void FUN_020090FC(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NarcId param2, s32 param3, BOOL param4, @@ -225,8 +225,8 @@ THUMB_FUNC void FUN_020090FC(struct UnkStruct1 *param0, FUN_02009978(param0, param1, param2, param3, param4, r6, r7, 0, 0, param5, FALSE); } -THUMB_FUNC void FUN_02009168(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +THUMB_FUNC void FUN_02009168(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NarcId param2, s32 param3, BOOL param4, @@ -245,7 +245,7 @@ THUMB_FUNC void FUN_02009168(struct UnkStruct1 *param0, FUN_02009978(param0, param1, param2, param3, param4, r6, r7, st24, 1, param5, 0); } -THUMB_FUNC struct UnkStruct1_sub *FUN_020091E0(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_020091E0(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -256,7 +256,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020091E0(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 0); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, 0); @@ -265,7 +265,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020091E0(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_0200923C(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_0200923C(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -277,7 +277,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_0200923C(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 0); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, 0, 0, param6, param7); @@ -286,7 +286,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_0200923C(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_02009298(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02009298(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -298,7 +298,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02009298(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 1); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, 0); @@ -307,7 +307,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02009298(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_020092F8(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_020092F8(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -320,7 +320,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020092F8(struct UnkStruct1 *param0, GF_ASSERT(param0); GF_ASSERT(param0->unk10 == 1); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, param5, param6, 1, param7, param8); @@ -329,7 +329,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020092F8(struct UnkStruct1 *param0, return r6; } -THUMB_FUNC struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02009358(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -339,7 +339,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, { GF_ASSERT(param0); - struct UnkStruct1_sub *r6 = FUN_020097D0(param0); + struct UnkStruct_02008DEC_sub *r6 = FUN_020097D0(param0); GF_ASSERT(r6); FUN_020099B0(param0, r6, param1, param2, param3, param4, 0, 0, param5, param6, 0); @@ -349,7 +349,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, } THUMB_FUNC s32 FUN_020093A8( - struct UnkStruct1 *param0, struct UnkStruct2 *param1, struct UnkStruct5 *param2, u32 param3) + struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_2 *param1, struct UnkStruct_02008DEC_5 *param2, u32 param3) { GF_ASSERT(param0); GF_ASSERT(param1); @@ -359,16 +359,16 @@ THUMB_FUNC s32 FUN_020093A8( return param1->unk04; } -THUMB_FUNC void FUN_020093DC(struct UnkStruct1 *param0, - struct UnkStruct2 *param1, +THUMB_FUNC void FUN_020093DC(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_2 *param1, s32 param2, s32 param3, - struct UnkStruct5 *param4, + struct UnkStruct_02008DEC_5 *param4, u32 param5) { for (int r5 = param2; r5 < param2 + param3; r5++) { - struct UnkStruct1_sub *r0 = FUN_02008E6C(param0, param1, r5, param5); + struct UnkStruct_02008DEC_sub *r0 = FUN_02008E6C(param0, param1, r5, param5); if (param4 != NULL && param4->unk04 > param4->unk08) { @@ -378,29 +378,29 @@ THUMB_FUNC void FUN_020093DC(struct UnkStruct1 *param0, } } -THUMB_FUNC struct UnkStruct5 *FUN_02009424(s32 param0, u32 param1) +THUMB_FUNC struct UnkStruct_02008DEC_5 *FUN_02009424(s32 param0, u32 param1) { - struct UnkStruct5 *r4 = AllocFromHeap(param1, sizeof(struct UnkStruct5)); - r4->unk00 = AllocFromHeap(param1, param0 * sizeof(struct UnkStruct1_sub *)); + struct UnkStruct_02008DEC_5 *r4 = AllocFromHeap(param1, sizeof(struct UnkStruct_02008DEC_5)); + r4->unk00 = AllocFromHeap(param1, param0 * sizeof(struct UnkStruct_02008DEC_sub *)); r4->unk04 = param0; r4->unk08 = 0; return r4; } -THUMB_FUNC void FUN_02009448(struct UnkStruct5 *param0) +THUMB_FUNC void FUN_02009448(struct UnkStruct_02008DEC_5 *param0) { FreeToHeap(param0->unk00); FreeToHeap(param0); } -THUMB_FUNC u32 FUN_0200945C(struct UnkStruct1 *param0, s32 param1) +THUMB_FUNC u32 FUN_0200945C(struct UnkStruct_02008DEC_1 *param0, s32 param1) { GF_ASSERT(param0); return FUN_02020CB0(param0->unk00, param1); } -THUMB_FUNC void FUN_02009474(struct UnkStruct1_sub *param0) +THUMB_FUNC void FUN_02009474(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); @@ -408,7 +408,7 @@ THUMB_FUNC void FUN_02009474(struct UnkStruct1_sub *param0) FUN_02020E1C(param0->unk00, 0); } -THUMB_FUNC void FUN_02009490(struct UnkStruct1 *param0, struct UnkStruct1_sub *param1) +THUMB_FUNC void FUN_02009490(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_sub *param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04); @@ -419,7 +419,7 @@ THUMB_FUNC void FUN_02009490(struct UnkStruct1 *param0, struct UnkStruct1_sub *p param0->unk0C--; } -THUMB_FUNC void FUN_020094C4(struct UnkStruct1 *param0) +THUMB_FUNC void FUN_020094C4(struct UnkStruct_02008DEC_1 *param0) { for (int i = 0; i < param0->unk08; i++) { @@ -430,7 +430,7 @@ THUMB_FUNC void FUN_020094C4(struct UnkStruct1 *param0) } } -THUMB_FUNC struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, s32 param1) +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_020094F0(struct UnkStruct_02008DEC_1 *param0, s32 param1) { GF_ASSERT(param0); @@ -449,56 +449,56 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, s32 pa return NULL; } -THUMB_FUNC s32 FUN_02009530(struct UnkStruct1_sub *param0) +THUMB_FUNC s32 FUN_02009530(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); return FUN_02020E38(param0->unk00); } -THUMB_FUNC u32 FUN_02009544(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009544(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0->unk04 == 0); return *FUN_02009934(param0); } -THUMB_FUNC u32 FUN_0200955C(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_0200955C(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0->unk04 == 1); return *FUN_02009934(param0); } -THUMB_FUNC u32 FUN_02009574(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009574(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0->unk04 == 2); return *FUN_02009934(param0); } -THUMB_FUNC u32 FUN_0200958C(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_0200958C(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0->unk04 == 3); return *FUN_02009934(param0); } -THUMB_FUNC u32 FUN_020095A4(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_020095A4(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0->unk04 == 4); return *FUN_02009934(param0); } -THUMB_FUNC u32 FUN_020095BC(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_020095BC(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0->unk04 == 5); return *FUN_02009934(param0); } -THUMB_FUNC u32 FUN_020095D4(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_020095D4(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); return param0->unk04; } -THUMB_FUNC u32 FUN_020095E4(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_020095E4(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); @@ -514,7 +514,7 @@ THUMB_FUNC u32 FUN_020095E4(struct UnkStruct1_sub *param0) return 0; } -THUMB_FUNC u32 FUN_02009610(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009610(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); @@ -526,7 +526,7 @@ THUMB_FUNC u32 FUN_02009610(struct UnkStruct1_sub *param0) return 0; } -THUMB_FUNC void FUN_02009630(struct UnkStruct1_sub *param0, u32 param1) +THUMB_FUNC void FUN_02009630(struct UnkStruct_02008DEC_sub *param0, u32 param1) { GF_ASSERT(param0); @@ -545,24 +545,24 @@ THUMB_FUNC u32 FUN_0200965C(void) return 16; } -THUMB_FUNC struct UnkStruct2 *FUN_02009660(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC struct UnkStruct_02008DEC_2 *FUN_02009660(struct UnkStruct_02008DEC_2 *param0, s32 param1) { return ¶m0[param1]; } -THUMB_FUNC void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2) +THUMB_FUNC void FUN_02009668(u32 *param0, struct UnkStruct_02008DEC_2 *param1, u32 param2) { GF_ASSERT(param1); param1->unk08 = param0[0]; param1->unk0C = 1; - param1->unk04 = FUN_020099E8((struct UnkStruct4 *)(param0 + 1)); + param1->unk04 = FUN_020099E8((struct UnkStruct_02008DEC_4 *)(param0 + 1)); void *ptr; if (param1->unk04 > 0) { - ptr = AllocFromHeap(param2, param1->unk04 * sizeof(struct UnkStruct4)); + ptr = AllocFromHeap(param2, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); } else { @@ -574,11 +574,11 @@ THUMB_FUNC void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2) void *r0 = *((void *volatile *)param1); if (r0 != NULL) { - memcpy(r0, param0 + 1, param1->unk04 * sizeof(struct UnkStruct4)); + memcpy(r0, param0 + 1, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); } } -THUMB_FUNC void FUN_020096B4(struct UnkStruct2 *param0) +THUMB_FUNC void FUN_020096B4(struct UnkStruct_02008DEC_2 *param0) { if (param0->unk00) { @@ -588,27 +588,27 @@ THUMB_FUNC void FUN_020096B4(struct UnkStruct2 *param0) param0->unk04 = 0; } -THUMB_FUNC s32 FUN_020096CC(struct UnkStruct2 *param0) +THUMB_FUNC s32 FUN_020096CC(struct UnkStruct_02008DEC_2 *param0) { GF_ASSERT(param0); return param0->unk04; } -THUMB_FUNC s32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC s32 FUN_020096DC(struct UnkStruct_02008DEC_2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); if (param0->unk0C == 0) { - return ((struct UnkStruct3 *)param0->unk00)[param1].unk00; + return ((struct UnkStruct_02008DEC_3 *)param0->unk00)[param1].unk00; } - return ((struct UnkStruct4 *)param0->unk00)[param1].unk0C; + return ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk0C; } -THUMB_FUNC s32 FUN_02009710(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC s32 FUN_02009710(struct UnkStruct_02008DEC_2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); @@ -616,14 +616,14 @@ THUMB_FUNC s32 FUN_02009710(struct UnkStruct2 *param0, s32 param1) s32 r6; if (param0->unk0C == 1) { - r6 = ((struct UnkStruct4 *)param0->unk00)[param1].unk04; + r6 = ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk04; } // oops, UB here return r6; } -THUMB_FUNC BOOL FUN_0200973C(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC BOOL FUN_0200973C(struct UnkStruct_02008DEC_2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); @@ -631,40 +631,40 @@ THUMB_FUNC BOOL FUN_0200973C(struct UnkStruct2 *param0, s32 param1) BOOL r6; if (param0->unk0C == 1) { - r6 = ((struct UnkStruct4 *)param0->unk00)[param1].unk08; + r6 = ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk08; } // oops, UB here return r6; } -THUMB_FUNC u32 FUN_02009768(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC u32 FUN_02009768(struct UnkStruct_02008DEC_2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); if (param0->unk0C == 0) { - return ((struct UnkStruct3 *)param0->unk00)[param1].unk44; + return ((struct UnkStruct_02008DEC_3 *)param0->unk00)[param1].unk44; } - return ((struct UnkStruct4 *)param0->unk00)[param1].unk10; + return ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk10; } -THUMB_FUNC u32 FUN_0200979C(struct UnkStruct2 *param0, s32 param1) +THUMB_FUNC u32 FUN_0200979C(struct UnkStruct_02008DEC_2 *param0, s32 param1) { GF_ASSERT(param0); GF_ASSERT(param0->unk04 > param1); if (param0->unk0C == 0) { - return ((struct UnkStruct3 *)param0->unk00)[param1].unk48; + return ((struct UnkStruct_02008DEC_3 *)param0->unk00)[param1].unk48; } - return ((struct UnkStruct4 *)param0->unk00)[param1].unk14; + return ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk14; } -THUMB_FUNC struct UnkStruct1_sub *FUN_020097D0(struct UnkStruct1 *param0) +THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_020097D0(struct UnkStruct_02008DEC_1 *param0) { for (int i = 0; i < param0->unk08; i++) { @@ -678,7 +678,7 @@ THUMB_FUNC struct UnkStruct1_sub *FUN_020097D0(struct UnkStruct1 *param0) } THUMB_FUNC void FUN_020097FC( - struct UnkStruct1_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4) + struct UnkStruct_02008DEC_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4) { void *r0 = FUN_02020E0C(param0->unk00); @@ -764,7 +764,7 @@ THUMB_FUNC void *FUN_02009904(void *param0, u32 param1) return ptr; } -THUMB_FUNC void FUN_02009920(struct UnkStruct1_sub *param0) +THUMB_FUNC void FUN_02009920(struct UnkStruct_02008DEC_sub *param0) { if (param0->unk08 != NULL) { @@ -774,7 +774,7 @@ THUMB_FUNC void FUN_02009920(struct UnkStruct1_sub *param0) param0->unk08 = NULL; } -THUMB_FUNC u32 *FUN_02009934(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 *FUN_02009934(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(param0->unk08); @@ -782,8 +782,8 @@ THUMB_FUNC u32 *FUN_02009934(struct UnkStruct1_sub *param0) return param0->unk08; } -THUMB_FUNC void FUN_0200994C(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +THUMB_FUNC void FUN_0200994C(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, void *param2, s32 param3, u32 param4, @@ -796,8 +796,8 @@ THUMB_FUNC void FUN_0200994C(struct UnkStruct1 *param0, FUN_020097FC(param1, param6, param4, param5, param7); } -THUMB_FUNC void FUN_02009978(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +THUMB_FUNC void FUN_02009978(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NarcId param2, s32 param3, BOOL param4, @@ -815,8 +815,8 @@ THUMB_FUNC void FUN_02009978(struct UnkStruct1 *param0, FUN_020097FC(param1, param8, param6, param7, param9); } -THUMB_FUNC void FUN_020099B0(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +THUMB_FUNC void FUN_020099B0(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NARC *param2, u32 param3, u32 param4, @@ -834,7 +834,7 @@ THUMB_FUNC void FUN_020099B0(struct UnkStruct1 *param0, FUN_020097FC(param1, param8, param6, param7, param9); } -THUMB_FUNC s32 FUN_020099E8(struct UnkStruct4 *param0) +THUMB_FUNC s32 FUN_020099E8(struct UnkStruct_02008DEC_4 *param0) { s32 r3 = 0; while (param0[r3].unk00 != -2) @@ -873,7 +873,7 @@ THUMB_FUNC void *FUN_02009A04(NARC *param0, u32 param1, u32 param2, u32 param3, return r4; } -THUMB_FUNC u32 FUN_02009A50(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009A50(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -887,7 +887,7 @@ THUMB_FUNC u32 FUN_02009A50(struct UnkStruct1_sub *param0) return FUN_0201D1F8(st0); } -THUMB_FUNC void FUN_02009A90(struct UnkStruct5 *param0) +THUMB_FUNC void FUN_02009A90(struct UnkStruct_02008DEC_5 *param0) { GF_ASSERT(param0); @@ -897,7 +897,7 @@ THUMB_FUNC void FUN_02009A90(struct UnkStruct5 *param0) } } -THUMB_FUNC u32 FUN_02009AC4(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009AC4(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -911,7 +911,7 @@ THUMB_FUNC u32 FUN_02009AC4(struct UnkStruct1_sub *param0) return FUN_0201D250(st0); } -THUMB_FUNC u32 FUN_02009B04(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009B04(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -925,7 +925,7 @@ THUMB_FUNC u32 FUN_02009B04(struct UnkStruct1_sub *param0) return FUN_0201D1F8(st0); } -THUMB_FUNC void FUN_02009B44(struct UnkStruct5 *param0) +THUMB_FUNC void FUN_02009B44(struct UnkStruct_02008DEC_5 *param0) { GF_ASSERT(param0); @@ -935,7 +935,7 @@ THUMB_FUNC void FUN_02009B44(struct UnkStruct5 *param0) } } -THUMB_FUNC u32 FUN_02009B78(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009B78(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -949,7 +949,7 @@ THUMB_FUNC u32 FUN_02009B78(struct UnkStruct1_sub *param0) return FUN_0201D250(st0); } -THUMB_FUNC void FUN_02009BB8(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1) +THUMB_FUNC void FUN_02009BB8(struct UnkStruct_02008DEC_sub *param0, struct UnkStruct_02008DEC_sub *param1) { GF_ASSERT(param0); GF_ASSERT(param1); @@ -957,14 +957,14 @@ THUMB_FUNC void FUN_02009BB8(struct UnkStruct1_sub *param0, struct UnkStruct1_su FUN_0201D2DC(FUN_02009530(param0), FUN_02009544(param1)); } -THUMB_FUNC void FUN_02009BE8(struct UnkStruct1_sub *param0) +THUMB_FUNC void FUN_02009BE8(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); FUN_0201D2DC(FUN_02009530(param0), FUN_02009544(param0)); } -THUMB_FUNC void FUN_02009C0C(struct UnkStruct1_sub *param0) +THUMB_FUNC void FUN_02009C0C(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -972,7 +972,7 @@ THUMB_FUNC void FUN_02009C0C(struct UnkStruct1_sub *param0) FUN_0201D324(FUN_02009530(param0)); } -THUMB_FUNC void FUN_02009C30(struct UnkStruct5 *param0) +THUMB_FUNC void FUN_02009C30(struct UnkStruct_02008DEC_5 *param0) { GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) @@ -984,7 +984,7 @@ THUMB_FUNC void FUN_02009C30(struct UnkStruct5 *param0) } } -THUMB_FUNC u32 FUN_02009C5C(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009C5C(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -992,7 +992,7 @@ THUMB_FUNC u32 FUN_02009C5C(struct UnkStruct1_sub *param0) return FUN_0201D3B0(FUN_02009530(param0)); } -THUMB_FUNC u32 FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1) +THUMB_FUNC u32 FUN_02009C80(struct UnkStruct_02008DEC_sub *param0, struct UnkStruct_02008DEC_sub *param1) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 0); @@ -1013,7 +1013,7 @@ THUMB_FUNC void FUN_02009CDC(u32 param0) FUN_0201D4F0(param0); } -THUMB_FUNC u32 FUN_02009CF0(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009CF0(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 1); @@ -1027,7 +1027,7 @@ THUMB_FUNC u32 FUN_02009CF0(struct UnkStruct1_sub *param0) return FUN_0201E0E4(st0); } -THUMB_FUNC void FUN_02009D34(struct UnkStruct5 *param0) +THUMB_FUNC void FUN_02009D34(struct UnkStruct_02008DEC_5 *param0) { GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) @@ -1039,7 +1039,7 @@ THUMB_FUNC void FUN_02009D34(struct UnkStruct5 *param0) } } -THUMB_FUNC u32 FUN_02009D68(struct UnkStruct1_sub *param0) +THUMB_FUNC u32 FUN_02009D68(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 1); @@ -1053,7 +1053,7 @@ THUMB_FUNC u32 FUN_02009D68(struct UnkStruct1_sub *param0) return FUN_0201E128(st0); } -THUMB_FUNC void FUN_02009DAC(struct UnkStruct5 *param0) +THUMB_FUNC void FUN_02009DAC(struct UnkStruct_02008DEC_5 *param0) { GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) @@ -1065,14 +1065,14 @@ THUMB_FUNC void FUN_02009DAC(struct UnkStruct5 *param0) } } -THUMB_FUNC void FUN_02009DE0(struct UnkStruct1_sub *param0) +THUMB_FUNC void FUN_02009DE0(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); FUN_0201E168(FUN_02009530(param0), FUN_0200955C(param0)); } -THUMB_FUNC void FUN_02009E04(struct UnkStruct1_sub *param0) +THUMB_FUNC void FUN_02009E04(struct UnkStruct_02008DEC_sub *param0) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 1); @@ -1080,7 +1080,7 @@ THUMB_FUNC void FUN_02009E04(struct UnkStruct1_sub *param0) FUN_0201E1C8(FUN_02009530(param0)); } -THUMB_FUNC void FUN_02009E28(struct UnkStruct5 *param0) +THUMB_FUNC void FUN_02009E28(struct UnkStruct_02008DEC_5 *param0) { GF_ASSERT(param0); for (int i = 0; i < param0->unk04; i++) @@ -1092,7 +1092,7 @@ THUMB_FUNC void FUN_02009E28(struct UnkStruct5 *param0) } } -THUMB_FUNC u32 FUN_02009E54(struct UnkStruct1_sub *param0, u32 param1) +THUMB_FUNC u32 FUN_02009E54(struct UnkStruct_02008DEC_sub *param0, u32 param1) { GF_ASSERT(param0); GF_ASSERT(FUN_020095D4(param0) == 1); @@ -1106,7 +1106,7 @@ THUMB_FUNC u32 FUN_02009E54(struct UnkStruct1_sub *param0, u32 param1) return FUN_0201E230(r0); } -THUMB_FUNC s32 FUN_02009E88(struct UnkStruct1_sub *param0, u32 param1) +THUMB_FUNC s32 FUN_02009E88(struct UnkStruct_02008DEC_sub *param0, u32 param1) { s32 ret = NNS_G2dGetImagePaletteLocation(FUN_02009E54(param0, 0), param1); if (ret != -1) diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index e84b759b..95a854d7 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -264,7 +264,7 @@ THUMB_FUNC BOOL FUN_0200BD20( for (s32 i = 0; i < st14; i++) { - struct UnkStruct2 *st18 = FUN_02009660(param1->unk08, i); + struct UnkStruct_02008DEC_2 *st18 = FUN_02009660(param1->unk08, i); void *st1c = AllocAndReadFile(param0->unk000, st10[i]); FUN_02009668(st1c, st18, param0->unk000); @@ -279,7 +279,7 @@ THUMB_FUNC BOOL FUN_0200BD20( for (s32 i = 0; i < st14; i++) { - struct UnkStruct2 *st20 = FUN_02009660(param1->unk08, i); + struct UnkStruct_02008DEC_2 *st20 = FUN_02009660(param1->unk08, i); param1->unk24[i] = FUN_02009424(FUN_020096CC(st20), param0->unk000); param1->unk3c[i] = FUN_020093A8(param1->unk0c[i], st20, param1->unk24[i], param0->unk000); } @@ -451,7 +451,7 @@ THUMB_FUNC BOOL FUN_0200C00C(u32 *param0, return FALSE; } - struct UnkStruct1_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); + struct UnkStruct_02008DEC_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); if (r5 != NULL) { FUN_02009B04(r5); @@ -477,7 +477,7 @@ THUMB_FUNC s32 FUN_0200C06C(u32 *param0, return -1; } - struct UnkStruct1_sub * r5 = + struct UnkStruct_02008DEC_sub * r5 = FUN_02008FEC(param1->unk0c[1], param2, param3, param4, param7, param6, param5, param0[0]); if (r5 != NULL) { @@ -664,12 +664,12 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( return ptr; } -THUMB_FUNC u32 FUN_0200C334(struct UnkStruct1 **param0, s32 param1) +THUMB_FUNC u32 FUN_0200C334(struct UnkStruct_02008DEC_1 **param0, s32 param1) { return FUN_02009E54(FUN_020094F0(param0[4], param1), 0); } -THUMB_FUNC s32 FUN_0200C344(struct UnkStruct1 **param0, s32 param1, u32 param2) +THUMB_FUNC s32 FUN_0200C344(struct UnkStruct_02008DEC_1 **param0, s32 param1, u32 param2) { return FUN_02009E88(FUN_020094F0(param0[4], param1), param2); } @@ -735,7 +735,7 @@ THUMB_FUNC BOOL FUN_0200C404(u32 *param0, return FALSE; } - struct UnkStruct1_sub *r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]); + struct UnkStruct_02008DEC_sub *r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]); if (r5 != NULL) { BOOL r4 = FUN_0200C474(param1->unk24[param5], r5); @@ -746,7 +746,7 @@ THUMB_FUNC BOOL FUN_0200C404(u32 *param0, return r5 != NULL ? TRUE : FALSE; } -THUMB_FUNC BOOL FUN_0200C474(struct UnkStruct5 *param0, struct UnkStruct1_sub *param1) +THUMB_FUNC BOOL FUN_0200C474(struct UnkStruct_02008DEC_5 *param0, struct UnkStruct_02008DEC_sub *param1) { for (s32 i = 0; i < param0->unk04; i++) { @@ -761,7 +761,7 @@ THUMB_FUNC BOOL FUN_0200C474(struct UnkStruct5 *param0, struct UnkStruct1_sub *p return FALSE; } -THUMB_FUNC BOOL FUN_0200C4A8(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C4A8(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_5 *param1, u32 param2) { for (s32 i = 0; i < param1->unk04; i++) { @@ -783,7 +783,7 @@ THUMB_FUNC BOOL FUN_0200C4A8(struct UnkStruct1 *param0, struct UnkStruct5 *param return FALSE; } -THUMB_FUNC BOOL FUN_0200C4F4(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C4F4(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_5 *param1, u32 param2) { for (s32 i = 0; i < param1->unk04; i++) { @@ -806,7 +806,7 @@ THUMB_FUNC BOOL FUN_0200C4F4(struct UnkStruct1 *param0, struct UnkStruct5 *param return FALSE; } -THUMB_FUNC BOOL FUN_0200C548(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C548(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_5 *param1, u32 param2) { for (s32 i = 0; i < param1->unk04; i++) { @@ -1182,7 +1182,7 @@ THUMB_FUNC BOOL FUN_0200C918(u32 *param0, return FALSE; } - struct UnkStruct1_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); + struct UnkStruct_02008DEC_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); if (r5 != NULL) { FUN_02009AC4(r5); @@ -1208,7 +1208,7 @@ THUMB_FUNC BOOL FUN_0200C978(u32 *param0, return FALSE; } - struct UnkStruct1_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); + struct UnkStruct_02008DEC_sub *r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); if (r5 != NULL) { FUN_02009B78(r5); @@ -1222,18 +1222,18 @@ THUMB_FUNC BOOL FUN_0200C978(u32 *param0, } THUMB_FUNC void FUN_0200C9D8( - u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5) + u32 *param0, struct UnkStruct_02008DEC_1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5) { - struct UnkStruct1_sub *r6 = FUN_020094F0(param1[3], param5); + struct UnkStruct_02008DEC_sub *r6 = FUN_020094F0(param1[3], param5); FUN_020090FC(param1[3], r6, param2, param3, param4, param0[0]); FUN_02009BE8(r6); } THUMB_FUNC void FUN_0200CA0C( - u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5) + u32 *param0, struct UnkStruct_02008DEC_1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5) { - struct UnkStruct1_sub *r6 = FUN_020094F0(param1[4], param5); + struct UnkStruct_02008DEC_sub *r6 = FUN_020094F0(param1[4], param5); FUN_02009168(param1[4], r6, param2, param3, param4, param0[0]); FUN_02009DE0(r6); diff --git a/include/unk_02008AA4.h b/include/unk_02008AA4.h index 2884547d..00343884 100644 --- a/include/unk_02008AA4.h +++ b/include/unk_02008AA4.h @@ -31,20 +31,20 @@ void FUN_02008AA4(struct UnkStruct_0200BB14_sub *param0, s32 param6, u32 param7, u32 param8, - struct UnkStruct1 *param9, - struct UnkStruct1 *param10, - struct UnkStruct1 *param11, - struct UnkStruct1 *param12, - struct UnkStruct1 *param13, - struct UnkStruct1 *param14); + struct UnkStruct_02008DEC_1 *param9, + struct UnkStruct_02008DEC_1 *param10, + struct UnkStruct_02008DEC_1 *param11, + struct UnkStruct_02008DEC_1 *param12, + struct UnkStruct_02008DEC_1 *param13, + struct UnkStruct_02008DEC_1 *param14); struct UnkStruct_02008AA4_1 *FUN_02008BE0(struct UnkStruct_02008AA4_2 *param0, u32 param1, - struct UnkStruct1 *param2, - struct UnkStruct1 *param3, - struct UnkStruct1 *param4, - struct UnkStruct1 *param5, - struct UnkStruct1 *param6, - struct UnkStruct1 *param7); + struct UnkStruct_02008DEC_1 *param2, + struct UnkStruct_02008DEC_1 *param3, + struct UnkStruct_02008DEC_1 *param4, + struct UnkStruct_02008DEC_1 *param5, + struct UnkStruct_02008DEC_1 *param6, + struct UnkStruct_02008DEC_1 *param7); void FUN_02008C80(struct UnkStruct_02008AA4_1 *param0); u32 FUN_02008C9C(u32 param0, void *param1, u32 param2); void FUN_02008D04(u32 param0, u32 param1, u32 param2); diff --git a/include/unk_02008DEC.h b/include/unk_02008DEC.h index 99dc9579..31bae117 100644 --- a/include/unk_02008DEC.h +++ b/include/unk_02008DEC.h @@ -5,24 +5,24 @@ #include "NNS_g2d.h" #include "filesystem.h" -struct UnkStruct1_sub +struct UnkStruct_02008DEC_sub { u32 unk00; u32 unk04; void *unk08; }; -struct UnkStruct1 +struct UnkStruct_02008DEC_1 { u32 unk00; - struct UnkStruct1_sub *unk04; + struct UnkStruct_02008DEC_sub *unk04; s32 unk08; u32 unk0C; s32 unk10; }; -struct UnkStruct2 +struct UnkStruct_02008DEC_2 { void *unk00; s32 unk04; @@ -30,7 +30,7 @@ struct UnkStruct2 u8 unk0C; }; -struct UnkStruct3 +struct UnkStruct_02008DEC_3 { s32 unk00; u8 unk04[0x40]; @@ -38,7 +38,7 @@ struct UnkStruct3 u32 unk48; }; -struct UnkStruct4 +struct UnkStruct_02008DEC_4 { NarcId unk00; s32 unk04; @@ -48,9 +48,9 @@ struct UnkStruct4 u32 unk14; }; -struct UnkStruct5 +struct UnkStruct_02008DEC_5 { - struct UnkStruct1_sub **unk00; + struct UnkStruct_02008DEC_sub **unk00; s32 unk04; s32 unk08; }; @@ -78,18 +78,18 @@ struct AnimBank_02008DEC NNSG2dAnimBankData *bankData; }; -struct UnkStruct1 *FUN_02008DEC(u32 param0, s32 param1, u32 param2); -void FUN_02008E2C(struct UnkStruct1 *param0); -struct UnkStruct1_sub *FUN_02008E6C( - struct UnkStruct1 *param0, struct UnkStruct2 *param1, s32 param2, u32 param3); -struct UnkStruct1_sub *FUN_02008F34(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_1 *FUN_02008DEC(u32 param0, s32 param1, u32 param2); +void FUN_02008E2C(struct UnkStruct_02008DEC_1 *param0); +struct UnkStruct_02008DEC_sub *FUN_02008E6C( + struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_2 *param1, s32 param2, u32 param3); +struct UnkStruct_02008DEC_sub *FUN_02008F34(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, s32 param4, u32 param5, u32 param6); -struct UnkStruct1_sub *FUN_02008F90(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_02008F90(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -97,7 +97,7 @@ struct UnkStruct1_sub *FUN_02008F90(struct UnkStruct1 *param0, u32 param5, u32 param6, BOOL param7); -struct UnkStruct1_sub *FUN_02008FEC(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_02008FEC(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -105,7 +105,7 @@ struct UnkStruct1_sub *FUN_02008FEC(struct UnkStruct1 *param0, u32 param5, u32 param6, u32 param7); -struct UnkStruct1_sub *FUN_0200904C(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_0200904C(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, @@ -114,33 +114,33 @@ struct UnkStruct1_sub *FUN_0200904C(struct UnkStruct1 *param0, u32 param6, u32 param7, BOOL param8); -struct UnkStruct1_sub *FUN_020090AC(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_020090AC(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, BOOL param3, s32 param4, u32 param5, u32 param6); -void FUN_020090FC(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +void FUN_020090FC(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NarcId param2, s32 param3, BOOL param4, u32 param5); -void FUN_02009168(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +void FUN_02009168(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NarcId param2, s32 param3, BOOL param4, u32 param5); -struct UnkStruct1_sub *FUN_020091E0(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_020091E0(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); -struct UnkStruct1_sub *FUN_0200923C(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_0200923C(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -148,7 +148,7 @@ struct UnkStruct1_sub *FUN_0200923C(struct UnkStruct1 *param0, u32 param5, u32 param6, u32 param7); -struct UnkStruct1_sub *FUN_02009298(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_02009298(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -156,7 +156,7 @@ struct UnkStruct1_sub *FUN_02009298(struct UnkStruct1 *param0, u32 param5, u32 param6, u32 param7); -struct UnkStruct1_sub *FUN_020092F8(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_020092F8(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, @@ -165,68 +165,68 @@ struct UnkStruct1_sub *FUN_020092F8(struct UnkStruct1 *param0, u32 param6, u32 param7, u32 param8); -struct UnkStruct1_sub *FUN_02009358(struct UnkStruct1 *param0, +struct UnkStruct_02008DEC_sub *FUN_02009358(struct UnkStruct_02008DEC_1 *param0, NARC *param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); -s32 FUN_020093A8(struct UnkStruct1 *param0, struct UnkStruct2 *param1, struct UnkStruct5 *param2, u32 param3); -void FUN_020093DC(struct UnkStruct1 *param0, - struct UnkStruct2 *param1, +s32 FUN_020093A8(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_2 *param1, struct UnkStruct_02008DEC_5 *param2, u32 param3); +void FUN_020093DC(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_2 *param1, s32 param2, s32 param3, - struct UnkStruct5 *param4, + struct UnkStruct_02008DEC_5 *param4, u32 param5); -struct UnkStruct5 *FUN_02009424(s32 param0, u32 param1); -void FUN_02009448(struct UnkStruct5 *param0); -u32 FUN_0200945C(struct UnkStruct1 *param0, s32 param1); -void FUN_02009474(struct UnkStruct1_sub *param0); -void FUN_02009490(struct UnkStruct1 *param0, struct UnkStruct1_sub *param1); -void FUN_020094C4(struct UnkStruct1 *param0); -struct UnkStruct1_sub *FUN_020094F0(struct UnkStruct1 *param0, s32 param1); -s32 FUN_02009530(struct UnkStruct1_sub *param0); -u32 FUN_02009544(struct UnkStruct1_sub *param0); -u32 FUN_0200955C(struct UnkStruct1_sub *param0); -u32 FUN_02009574(struct UnkStruct1_sub *param0); -u32 FUN_0200958C(struct UnkStruct1_sub *param0); -u32 FUN_020095A4(struct UnkStruct1_sub *param0); -u32 FUN_020095BC(struct UnkStruct1_sub *param0); -u32 FUN_020095D4(struct UnkStruct1_sub *param0); -u32 FUN_020095E4(struct UnkStruct1_sub *param0); -u32 FUN_02009610(struct UnkStruct1_sub *param0); -void FUN_02009630(struct UnkStruct1_sub *param0, u32 param1); +struct UnkStruct_02008DEC_5 *FUN_02009424(s32 param0, u32 param1); +void FUN_02009448(struct UnkStruct_02008DEC_5 *param0); +u32 FUN_0200945C(struct UnkStruct_02008DEC_1 *param0, s32 param1); +void FUN_02009474(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009490(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_sub *param1); +void FUN_020094C4(struct UnkStruct_02008DEC_1 *param0); +struct UnkStruct_02008DEC_sub *FUN_020094F0(struct UnkStruct_02008DEC_1 *param0, s32 param1); +s32 FUN_02009530(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_02009544(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_0200955C(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_02009574(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_0200958C(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_020095A4(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_020095BC(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_020095D4(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_020095E4(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_02009610(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009630(struct UnkStruct_02008DEC_sub *param0, u32 param1); u32 FUN_0200965C(void); -struct UnkStruct2 *FUN_02009660(struct UnkStruct2 *param0, s32 param1); -void FUN_02009668(u32 *param0, struct UnkStruct2 *param1, u32 param2); -void FUN_020096B4(struct UnkStruct2 *param0); -s32 FUN_020096CC(struct UnkStruct2 *param0); -s32 FUN_020096DC(struct UnkStruct2 *param0, s32 param1); -s32 FUN_02009710(struct UnkStruct2 *param0, s32 param1); -BOOL FUN_0200973C(struct UnkStruct2 *param0, s32 param1); -u32 FUN_02009768(struct UnkStruct2 *param0, s32 param1); -u32 FUN_0200979C(struct UnkStruct2 *param0, s32 param1); -struct UnkStruct1_sub *FUN_020097D0(struct UnkStruct1 *param0); -void FUN_020097FC(struct UnkStruct1_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4); +struct UnkStruct_02008DEC_2 *FUN_02009660(struct UnkStruct_02008DEC_2 *param0, s32 param1); +void FUN_02009668(u32 *param0, struct UnkStruct_02008DEC_2 *param1, u32 param2); +void FUN_020096B4(struct UnkStruct_02008DEC_2 *param0); +s32 FUN_020096CC(struct UnkStruct_02008DEC_2 *param0); +s32 FUN_020096DC(struct UnkStruct_02008DEC_2 *param0, s32 param1); +s32 FUN_02009710(struct UnkStruct_02008DEC_2 *param0, s32 param1); +BOOL FUN_0200973C(struct UnkStruct_02008DEC_2 *param0, s32 param1); +u32 FUN_02009768(struct UnkStruct_02008DEC_2 *param0, s32 param1); +u32 FUN_0200979C(struct UnkStruct_02008DEC_2 *param0, s32 param1); +struct UnkStruct_02008DEC_sub *FUN_020097D0(struct UnkStruct_02008DEC_1 *param0); +void FUN_020097FC(struct UnkStruct_02008DEC_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4); struct CharacterData_02008DEC *FUN_0200986C(void *param0, u32 param1, u32 param2); struct PaletteData_02008DEC *FUN_0200988C(void *param0, u32 param1, u32 param2, u32 param3); struct CellDataBank_02008DEC *FUN_020098B0(void *param0, u32 param1); struct AnimBank_02008DEC *FUN_020098CC(void *param0, u32 param1); void *FUN_020098E8(void *param0, u32 param1); void *FUN_02009904(void *param0, u32 param1); -void FUN_02009920(struct UnkStruct1_sub *param0); -u32 *FUN_02009934(struct UnkStruct1_sub *param0); -void FUN_0200994C(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +void FUN_02009920(struct UnkStruct_02008DEC_sub *param0); +u32 *FUN_02009934(struct UnkStruct_02008DEC_sub *param0); +void FUN_0200994C(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, void *param2, s32 param3, u32 param4, u32 param5, u32 param6, u32 param7); -void FUN_02009978(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +void FUN_02009978(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NarcId param2, s32 param3, BOOL param4, @@ -236,8 +236,8 @@ void FUN_02009978(struct UnkStruct1 *param0, u32 param8, u32 param9, BOOL param10); -void FUN_020099B0(struct UnkStruct1 *param0, - struct UnkStruct1_sub *param1, +void FUN_020099B0(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_sub *param1, NARC *param2, u32 param3, u32 param4, @@ -247,29 +247,29 @@ void FUN_020099B0(struct UnkStruct1 *param0, u32 param8, u32 param9, u32 param10); -s32 FUN_020099E8(struct UnkStruct4 *param0); +s32 FUN_020099E8(struct UnkStruct_02008DEC_4 *param0); void *FUN_02009A04(NARC *param0, u32 param1, u32 param2, u32 param3, u32 param4); -u32 FUN_02009A50(struct UnkStruct1_sub *param0); -void FUN_02009A90(struct UnkStruct5 *param0); -u32 FUN_02009AC4(struct UnkStruct1_sub *param0); -u32 FUN_02009B04(struct UnkStruct1_sub *param0); -void FUN_02009B44(struct UnkStruct5 *param0); -u32 FUN_02009B78(struct UnkStruct1_sub *param0); -void FUN_02009BB8(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1); -void FUN_02009BE8(struct UnkStruct1_sub *param0); -void FUN_02009C0C(struct UnkStruct1_sub *param0); -void FUN_02009C30(struct UnkStruct5 *param0); -u32 FUN_02009C5C(struct UnkStruct1_sub *param0); -u32 FUN_02009C80(struct UnkStruct1_sub *param0, struct UnkStruct1_sub *param1); +u32 FUN_02009A50(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009A90(struct UnkStruct_02008DEC_5 *param0); +u32 FUN_02009AC4(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_02009B04(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009B44(struct UnkStruct_02008DEC_5 *param0); +u32 FUN_02009B78(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009BB8(struct UnkStruct_02008DEC_sub *param0, struct UnkStruct_02008DEC_sub *param1); +void FUN_02009BE8(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009C0C(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009C30(struct UnkStruct_02008DEC_5 *param0); +u32 FUN_02009C5C(struct UnkStruct_02008DEC_sub *param0); +u32 FUN_02009C80(struct UnkStruct_02008DEC_sub *param0, struct UnkStruct_02008DEC_sub *param1); void FUN_02009CDC(u32 param0); -u32 FUN_02009CF0(struct UnkStruct1_sub *param0); -void FUN_02009D34(struct UnkStruct5 *param0); -u32 FUN_02009D68(struct UnkStruct1_sub *param0); -void FUN_02009DAC(struct UnkStruct5 *param0); -void FUN_02009DE0(struct UnkStruct1_sub *param0); -void FUN_02009E04(struct UnkStruct1_sub *param0); -void FUN_02009E28(struct UnkStruct5 *param0); -u32 FUN_02009E54(struct UnkStruct1_sub *param0, u32 param1); -s32 FUN_02009E88(struct UnkStruct1_sub *param0, u32 param1); +u32 FUN_02009CF0(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009D34(struct UnkStruct_02008DEC_5 *param0); +u32 FUN_02009D68(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009DAC(struct UnkStruct_02008DEC_5 *param0); +void FUN_02009DE0(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009E04(struct UnkStruct_02008DEC_sub *param0); +void FUN_02009E28(struct UnkStruct_02008DEC_5 *param0); +u32 FUN_02009E54(struct UnkStruct_02008DEC_sub *param0, u32 param1); +s32 FUN_02009E88(struct UnkStruct_02008DEC_sub *param0, u32 param1); #endif // POKEDIAMOND_UNK_02008DEC_H diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h index 20d4739d..7d5a0083 100644 --- a/include/unk_0200BB14.h +++ b/include/unk_0200BB14.h @@ -17,9 +17,9 @@ struct UnkStruct_0200BB14_2 { u32 unk00; struct UnkStruct_02008AA4_1 *unk04; - struct UnkStruct2 *unk08; - struct UnkStruct1 *unk0c[6]; - struct UnkStruct5 *unk24[6]; + struct UnkStruct_02008DEC_2 *unk08; + struct UnkStruct_02008DEC_1 *unk0c[6]; + struct UnkStruct_02008DEC_5 *unk24[6]; s32 unk3c[6]; s32 unk54; }; @@ -158,8 +158,8 @@ BOOL FUN_0200C13C(u32 *param0, s32 param5); struct UnkStruct_0200BB14_5 *FUN_0200C154( struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); -u32 FUN_0200C334(struct UnkStruct1 **param0, s32 param1); -s32 FUN_0200C344(struct UnkStruct1 **param0, s32 param1, u32 param2); +u32 FUN_0200C334(struct UnkStruct_02008DEC_1 **param0, s32 param1); +s32 FUN_0200C344(struct UnkStruct_02008DEC_1 **param0, s32 param1, u32 param2); BOOL FUN_0200C358(struct UnkStruct_0200BB14_2 *param0, u32 param1); BOOL FUN_0200C368(struct UnkStruct_0200BB14_2 *param0, u32 param1); BOOL FUN_0200C378(struct UnkStruct_0200BB14_2 *param0, u32 param1); @@ -173,10 +173,10 @@ BOOL FUN_0200C404(u32 *param0, BOOL param4, u32 param5, s32 param6); -BOOL FUN_0200C474(struct UnkStruct5 *param0, struct UnkStruct1_sub *param1); -BOOL FUN_0200C4A8(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2); -BOOL FUN_0200C4F4(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2); -BOOL FUN_0200C548(struct UnkStruct1 *param0, struct UnkStruct5 *param1, u32 param2); +BOOL FUN_0200C474(struct UnkStruct_02008DEC_5 *param0, struct UnkStruct_02008DEC_sub *param1); +BOOL FUN_0200C4A8(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_5 *param1, u32 param2); +BOOL FUN_0200C4F4(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_5 *param1, u32 param2); +BOOL FUN_0200C548(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_5 *param1, u32 param2); void FUN_0200C59C(u32 param0); void FUN_0200C5A8(u32 *param0); void FUN_0200C5B4(u32 *param0, u32 param1); @@ -247,9 +247,9 @@ BOOL FUN_0200C978(u32 *param0, u32 param5, s32 param6); void FUN_0200C9D8( - u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5); + u32 *param0, struct UnkStruct_02008DEC_1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5); void FUN_0200CA0C( - u32 *param0, struct UnkStruct1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5); + u32 *param0, struct UnkStruct_02008DEC_1 **param1, NarcId param2, s32 param3, BOOL param4, s32 param5); u32 FUN_0200CA40(u32 *param0); #endif // POKEDIAMOND_UNK_0200BB14_H -- cgit v1.2.3 From f2c5ab8f4b9a50829f0e9e18f564fb215f749085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 12 Aug 2021 00:40:37 +0200 Subject: fix missing return --- arm9/src/unk_02008DEC.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arm9/src/unk_02008DEC.c b/arm9/src/unk_02008DEC.c index 4467a03d..183a9c81 100644 --- a/arm9/src/unk_02008DEC.c +++ b/arm9/src/unk_02008DEC.c @@ -1000,10 +1000,14 @@ THUMB_FUNC u32 FUN_02009C80(struct UnkStruct_02008DEC_sub *param0, struct UnkStr GF_ASSERT(FUN_020095D4(param1) == 2); s32 r4 = FUN_02009530(param0); - if (FUN_0201D3D4(r4, ((u32 **)FUN_02009574(param1))[3][0]) == 0) + + u32 r0 = FUN_0201D3D4(r4, ((u32 **)FUN_02009574(param1))[3][0]); + if (r0 == 0) { return FUN_0201D458(FUN_0201D3B0(r4)); } + + return r0; } THUMB_FUNC void FUN_02009CDC(u32 param0) -- cgit v1.2.3 From 57351f30edb58f09bba1cab85280e014a5d2e834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 14 Aug 2021 13:16:36 +0200 Subject: fix fakematch --- arm9/src/unk_02008DEC.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/arm9/src/unk_02008DEC.c b/arm9/src/unk_02008DEC.c index 183a9c81..3050110b 100644 --- a/arm9/src/unk_02008DEC.c +++ b/arm9/src/unk_02008DEC.c @@ -559,22 +559,18 @@ THUMB_FUNC void FUN_02009668(u32 *param0, struct UnkStruct_02008DEC_2 *param1, u param1->unk04 = FUN_020099E8((struct UnkStruct_02008DEC_4 *)(param0 + 1)); - void *ptr; if (param1->unk04 > 0) { - ptr = AllocFromHeap(param2, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); + param1->unk00 = AllocFromHeap(param2, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); } else { - ptr = NULL; + param1->unk00 = NULL; } - param1->unk00 = ptr; - // use volatile to force a reload here - void *r0 = *((void *volatile *)param1); - if (r0 != NULL) + if (param1->unk00 != NULL) { - memcpy(r0, param0 + 1, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); + memcpy(param1->unk00, param0 + 1, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); } } -- cgit v1.2.3 From ee3f5159550b154ea8b5c01b518756638eb5c4a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 14 Aug 2021 13:34:58 +0200 Subject: replace ugly casts with clean union --- arm9/src/unk_02008DEC.c | 34 +++++++++++++++++----------------- include/unk_02008DEC.h | 20 +++++++++++++++----- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/arm9/src/unk_02008DEC.c b/arm9/src/unk_02008DEC.c index 3050110b..2238b920 100644 --- a/arm9/src/unk_02008DEC.c +++ b/arm9/src/unk_02008DEC.c @@ -74,7 +74,7 @@ THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02008E6C( if (param1->unk0C == 0) { - struct UnkStruct_02008DEC_3 *r6 = &((struct UnkStruct_02008DEC_3 *)param1->unk00)[param2]; + struct UnkStruct_02008DEC_3 *r6 = ¶m1->unk00_3[param2]; GF_ASSERT(FUN_0200945C(param0, r6->unk00) == 1); FUN_0200994C( @@ -82,7 +82,7 @@ THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_02008E6C( } else { - struct UnkStruct_02008DEC_4 *r6 = &((struct UnkStruct_02008DEC_4 *)param1->unk00)[param2]; + struct UnkStruct_02008DEC_4 *r6 = ¶m1->unk00_4[param2]; GF_ASSERT(FUN_0200945C(param0, r6->unk0C) == 1); FUN_02009978(param0, @@ -561,26 +561,26 @@ THUMB_FUNC void FUN_02009668(u32 *param0, struct UnkStruct_02008DEC_2 *param1, u if (param1->unk04 > 0) { - param1->unk00 = AllocFromHeap(param2, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); + param1->unk00_4 = AllocFromHeap(param2, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); } else { - param1->unk00 = NULL; + param1->unk00_4 = NULL; } - if (param1->unk00 != NULL) + if (param1->unk00_4 != NULL) { - memcpy(param1->unk00, param0 + 1, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); + memcpy(param1->unk00_4, param0 + 1, param1->unk04 * sizeof(struct UnkStruct_02008DEC_4)); } } THUMB_FUNC void FUN_020096B4(struct UnkStruct_02008DEC_2 *param0) { - if (param0->unk00) + if (param0->unk00_4) { - FreeToHeap(param0->unk00); + FreeToHeap(param0->unk00_4); } - param0->unk00 = NULL; + param0->unk00_4 = NULL; param0->unk04 = 0; } @@ -598,10 +598,10 @@ THUMB_FUNC s32 FUN_020096DC(struct UnkStruct_02008DEC_2 *param0, s32 param1) if (param0->unk0C == 0) { - return ((struct UnkStruct_02008DEC_3 *)param0->unk00)[param1].unk00; + return param0->unk00_3[param1].unk00; } - return ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk0C; + return param0->unk00_4[param1].unk0C; } THUMB_FUNC s32 FUN_02009710(struct UnkStruct_02008DEC_2 *param0, s32 param1) @@ -612,7 +612,7 @@ THUMB_FUNC s32 FUN_02009710(struct UnkStruct_02008DEC_2 *param0, s32 param1) s32 r6; if (param0->unk0C == 1) { - r6 = ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk04; + r6 = param0->unk00_4[param1].unk04; } // oops, UB here @@ -627,7 +627,7 @@ THUMB_FUNC BOOL FUN_0200973C(struct UnkStruct_02008DEC_2 *param0, s32 param1) BOOL r6; if (param0->unk0C == 1) { - r6 = ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk08; + r6 = param0->unk00_4[param1].unk08; } // oops, UB here @@ -641,10 +641,10 @@ THUMB_FUNC u32 FUN_02009768(struct UnkStruct_02008DEC_2 *param0, s32 param1) if (param0->unk0C == 0) { - return ((struct UnkStruct_02008DEC_3 *)param0->unk00)[param1].unk44; + return param0->unk00_3[param1].unk44; } - return ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk10; + return param0->unk00_4[param1].unk10; } THUMB_FUNC u32 FUN_0200979C(struct UnkStruct_02008DEC_2 *param0, s32 param1) @@ -654,10 +654,10 @@ THUMB_FUNC u32 FUN_0200979C(struct UnkStruct_02008DEC_2 *param0, s32 param1) if (param0->unk0C == 0) { - return ((struct UnkStruct_02008DEC_3 *)param0->unk00)[param1].unk48; + return param0->unk00_3[param1].unk48; } - return ((struct UnkStruct_02008DEC_4 *)param0->unk00)[param1].unk14; + return param0->unk00_4[param1].unk14; } THUMB_FUNC struct UnkStruct_02008DEC_sub *FUN_020097D0(struct UnkStruct_02008DEC_1 *param0) diff --git a/include/unk_02008DEC.h b/include/unk_02008DEC.h index 31bae117..6504b524 100644 --- a/include/unk_02008DEC.h +++ b/include/unk_02008DEC.h @@ -24,7 +24,11 @@ struct UnkStruct_02008DEC_1 struct UnkStruct_02008DEC_2 { - void *unk00; + union + { + struct UnkStruct_02008DEC_3 *unk00_3; + struct UnkStruct_02008DEC_4 *unk00_4; + }; s32 unk04; u32 unk08; u8 unk0C; @@ -80,8 +84,10 @@ struct AnimBank_02008DEC struct UnkStruct_02008DEC_1 *FUN_02008DEC(u32 param0, s32 param1, u32 param2); void FUN_02008E2C(struct UnkStruct_02008DEC_1 *param0); -struct UnkStruct_02008DEC_sub *FUN_02008E6C( - struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_2 *param1, s32 param2, u32 param3); +struct UnkStruct_02008DEC_sub *FUN_02008E6C(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_2 *param1, + s32 param2, + u32 param3); struct UnkStruct_02008DEC_sub *FUN_02008F34(struct UnkStruct_02008DEC_1 *param0, NarcId param1, s32 param2, @@ -172,7 +178,10 @@ struct UnkStruct_02008DEC_sub *FUN_02009358(struct UnkStruct_02008DEC_1 *param0, s32 param4, u32 param5, u32 param6); -s32 FUN_020093A8(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_2 *param1, struct UnkStruct_02008DEC_5 *param2, u32 param3); +s32 FUN_020093A8(struct UnkStruct_02008DEC_1 *param0, + struct UnkStruct_02008DEC_2 *param1, + struct UnkStruct_02008DEC_5 *param2, + u32 param3); void FUN_020093DC(struct UnkStruct_02008DEC_1 *param0, struct UnkStruct_02008DEC_2 *param1, s32 param2, @@ -208,7 +217,8 @@ BOOL FUN_0200973C(struct UnkStruct_02008DEC_2 *param0, s32 param1); u32 FUN_02009768(struct UnkStruct_02008DEC_2 *param0, s32 param1); u32 FUN_0200979C(struct UnkStruct_02008DEC_2 *param0, s32 param1); struct UnkStruct_02008DEC_sub *FUN_020097D0(struct UnkStruct_02008DEC_1 *param0); -void FUN_020097FC(struct UnkStruct_02008DEC_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4); +void FUN_020097FC( + struct UnkStruct_02008DEC_sub *param0, u32 param1, u32 param2, u32 param3, u32 param4); struct CharacterData_02008DEC *FUN_0200986C(void *param0, u32 param1, u32 param2); struct PaletteData_02008DEC *FUN_0200988C(void *param0, u32 param1, u32 param2, u32 param3); struct CellDataBank_02008DEC *FUN_020098B0(void *param0, u32 param1); -- cgit v1.2.3