From 01dabc91b757c9861adf9c43d5f719ed262bb3ba Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 27 Oct 2022 20:16:37 +0100 Subject: [PATCH] MOD59_021D80FC --- arm9/modules/59/asm/mod59_021D74E0_asm.s | 39 +----------------------- arm9/modules/59/include/mod59_021D74E0.h | 1 + arm9/modules/59/src/mod59_021D74E0_src.c | 21 ++++++++++++- 3 files changed, 22 insertions(+), 39 deletions(-) diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index 4ab27dcbc..cdbc8da15 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -10,44 +10,7 @@ .extern MOD59_021D7C44 .extern MOD59_021D7D7C .extern MOD59_021D7ECC - - thumb_func_start MOD59_021D80FC -MOD59_021D80FC: ; 0x021D80FC - push {r4, r5, lr} - sub sp, #0x24 - ldr r5, _021D813C ; =0x021D9E1C - add r3, r0, #0 - ldmia r5!, {r0, r1} - add r4, sp, #0x10 - add r2, r4, #0 - stmia r4!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r4!, {r0, r1} - ldr r0, [r5] - str r0, [r4] - add r0, r3, #0 - add r0, #0x88 - ldrb r1, [r0] - cmp r1, #5 - bhs _021D8138 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, [r3] - lsl r1, r1, #2 - str r0, [sp, #0xc] - ldr r1, [r2, r1] - ldr r2, [r3, #0x18] - mov r0, #0x7d - mov r3, #3 - bl GfGfxLoader_LoadScrnData -_021D8138: - add sp, #0x24 - pop {r4, r5, pc} - .align 2, 0 -_021D813C: .word MOD59_021D9E1C - thumb_func_end MOD59_021D80FC + .extern MOD59_021D80FC thumb_func_start MOD59_021D8140 MOD59_021D8140: ; 0x021D8140 diff --git a/arm9/modules/59/include/mod59_021D74E0.h b/arm9/modules/59/include/mod59_021D74E0.h index aaf693ada..31e968c7e 100644 --- a/arm9/modules/59/include/mod59_021D74E0.h +++ b/arm9/modules/59/include/mod59_021D74E0.h @@ -86,5 +86,6 @@ BOOL MOD59_021D7C44(MOD59_OverlayData *data, u32 msgNo, u32 param2); void MOD59_021D7D68(struct ListMenu *list, s32 index, u8 onInit); BOOL MOD59_021D7D7C(MOD59_OverlayData *data, u32 param1, u32 param2, u32 param3); void MOD59_021D8058(MOD59_OverlayData *data); +void MOD59_021D80FC(MOD59_OverlayData *data); #endif //POKEDIAMOND_MOD59_021D74E0_H diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c index 7d64853f4..156af970a 100644 --- a/arm9/modules/59/src/mod59_021D74E0_src.c +++ b/arm9/modules/59/src/mod59_021D74E0_src.c @@ -43,9 +43,10 @@ extern const struct ListMenuTemplate MOD59_021D9EF8; extern const struct MOD59_WindowTemplateGroup MOD59_021D9D90; +extern u32 MOD59_021D9E1C[5]; + extern u32 MOD59_021D8920(MOD59_OverlayData *data); -extern void MOD59_021D80FC(MOD59_OverlayData *data); extern void MOD59_021D8140(MOD59_OverlayData *data); extern void MOD59_021D8234(MOD59_OverlayData *data); @@ -707,3 +708,21 @@ THUMB_FUNC void MOD59_021D8058(MOD59_OverlayData *data) BG_SetMaskColor(GF_BG_LYR_SUB_0, 0); } +THUMB_FUNC void MOD59_021D80FC(MOD59_OverlayData *data) +{ +#ifdef __MWERKS__ + u32 arr[5]; + arr = MOD59_021D9E1C; // required for matching? this shouldn't be valid +#else + u32 arr[5] = {}; + for (int i = 0; i < 5; i++) + { + arr[i] = MOD59_021D9E1C[i]; + } +#endif + if (data->unk88 >= 5) + { + return; + } + GfGfxLoader_LoadScrnData(NARC_DEMO_INTRO_INTRO, arr[data->unk88], data->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, FALSE, data->heap_id); +}