diff options
author | red031000 <rubenru09@aol.com> | 2021-08-22 23:51:46 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2021-08-22 23:51:46 +0100 |
commit | cab63597e1abc5f79f1d2bbb8fc6e0ac12b79824 (patch) | |
tree | 890cf30ef3a55ccbaa3f8a596d7961454edd06eb /arm9 | |
parent | c53141353dc5627cd6b782ff93b215e8fa8d391c (diff) |
substantial mod59 struct changes
Diffstat (limited to 'arm9')
-rw-r--r-- | arm9/modules/59/asm/mod59_021D74E0_asm.s | 86 | ||||
-rw-r--r-- | arm9/modules/59/include/mod59_021D74E0.h | 19 | ||||
-rw-r--r-- | arm9/modules/59/src/mod59_021D74E0_src.c | 54 |
3 files changed, 64 insertions, 95 deletions
diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index d1e39e08..77bc1174 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -5,92 +5,6 @@ .extern MOD59_021D7730 - thumb_func_start MOD59_021D796C -MOD59_021D796C: ; 0x021D796C - push {r4, lr} - add r4, r0, #0 - mov r0, #0 - add r1, r0, #0 - bl ToggleBgLayer - mov r0, #1 - mov r1, #0 - bl ToggleBgLayer - mov r0, #2 - mov r1, #0 - bl ToggleBgLayer - mov r0, #3 - mov r1, #0 - bl ToggleBgLayer - mov r0, #4 - mov r1, #0 - bl ToggleBgLayer - mov r0, #5 - mov r1, #0 - bl ToggleBgLayer - mov r0, #6 - mov r1, #0 - bl ToggleBgLayer - mov r0, #7 - mov r1, #0 - bl ToggleBgLayer - ldr r0, [r4, #0x18] - mov r1, #0 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #1 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #2 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #3 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #4 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #5 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #6 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - mov r1, #7 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x18] - bl FreeToHeap - pop {r4, pc} - thumb_func_end MOD59_021D796C - - thumb_func_start MOD59_021D79F8 -MOD59_021D79F8: ; 0x021D79F8 - push {r4, lr} - add r4, r0, #0 - ldr r2, _021D7A30 ; =0x00000155 - ldr r3, [r4] - mov r0, #1 - mov r1, #0x1a - bl NewMsgDataFromNarc - str r0, [r4, #0x4c] - bl FUN_0201BD5C - mov r0, #0 - ldr r3, [r4] - add r1, r0, #0 - mov r2, #6 - bl FUN_020142EC - str r0, [r4, #0x60] - ldr r0, [r4] - bl ScrStrBufs_new - str r0, [r4, #0x64] - mov r0, #0 - str r0, [r4, #0x50] - str r0, [r4, #0x54] - str r0, [r4, #0x2c] - pop {r4, pc} - nop -_021D7A30: .word 0x00000155 - thumb_func_end MOD59_021D79F8 - thumb_func_start MOD59_021D7A34 MOD59_021D7A34: ; 0x021D7A34 push {r4, lr} diff --git a/arm9/modules/59/include/mod59_021D74E0.h b/arm9/modules/59/include/mod59_021D74E0.h index 0a594ad3..d193202e 100644 --- a/arm9/modules/59/include/mod59_021D74E0.h +++ b/arm9/modules/59/include/mod59_021D74E0.h @@ -24,18 +24,27 @@ typedef struct MOD59_OverlayData u32 Unk10; struct UnkStruct_02006234 *Unk14; struct BgConfig *bgConfig; - u8 padding[0x54]; + u8 padding[0x10]; + u32 Unk2C; + u8 padding2[0x1C]; + struct MsgData *msgData; + u32 Unk50; + u32 Unk54; + u8 padding3[0x8]; + u32 Unk60; // unknown if this is the right type, possibly a pointer instead? + struct ScrStrBufs *strBufs; + u8 padding4[0x8]; struct MOD59_UnkPlayerStruct *playerStruct; struct MOD59_UnkPlayerStruct *rivalStruct; u32 Unk78; - u8 padding2[0xC]; + u8 padding5[0xC]; u8 Unk88; u8 Unk89; u8 Unk8A; u8 Unk8B; - u8 padding3[4]; + u8 padding6[4]; u32 Unk90; - u8 padding4[32]; + u8 padding7[32]; } MOD59_OverlayData; BOOL MOD59_Init(struct UnkStruct_02006234 *param0); @@ -44,5 +53,7 @@ BOOL MOD59_021D76C0(struct UnkStruct_02006234 *param0); void MOD59_021D7724(MOD59_OverlayData *data); BOOL MOD59_021D7730(void); void MOD59_SetupBg(MOD59_OverlayData *data); +void MOD59_DestroyBg(MOD59_OverlayData *data); +void MOD59_SetupMsg(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 7d6be2ca..5a5d0126 100644 --- a/arm9/modules/59/src/mod59_021D74E0_src.c +++ b/arm9/modules/59/src/mod59_021D74E0_src.c @@ -8,6 +8,9 @@ #include "unk_02024E64.h" #include "bg_window.h" #include "render_window.h" +#include "msgdata.h" +#include "text.h" +#include "script_buffers.h" #include "module_52.h" extern void *FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options); @@ -20,9 +23,7 @@ extern struct GraphicsModes MOD59_021D9DCC; extern struct BgTemplate MOD59_021D9EA0; extern struct BgTemplate MOD59_021D9EBC; -extern void MOD59_021D79F8(MOD59_OverlayData *data); extern void MOD59_021D7A34(MOD59_OverlayData *data); -extern void MOD59_021D796C(MOD59_OverlayData *data); extern void MOD59_021D7A4C(MOD59_OverlayData *data); extern void MOD59_021D7A5C(MOD59_OverlayData *data); extern void MOD59_021D8058(MOD59_OverlayData *data); @@ -31,6 +32,8 @@ extern u32 MOD59_021D8920(MOD59_OverlayData *data); extern void FUN_0200E1D0(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 heap_id); extern u32 FUN_0200E308(void); +extern u32 FUN_020142EC(u32 param0, u32 param1, u32 param2, u32 heap_id); + extern void FUN_02077AC4(void *param0); FS_EXTERN_OVERLAY(MODULE_52); @@ -80,7 +83,7 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) SetKeyRepeatTimers(4, 8); MOD59_SetupBg(data); - MOD59_021D79F8(data); + MOD59_SetupMsg(data); MOD59_021D7A4C(data); Main_SetVBlankIntrCB((void (*)(void *))MOD59_021D7724, data); @@ -115,7 +118,7 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) } MOD59_021D7A34(data); - MOD59_021D796C(data); + MOD59_DestroyBg(data); MOD59_021D7A5C(data); Main_SetVBlankIntrCB(NULL, NULL); @@ -130,7 +133,7 @@ THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) } MOD59_021D7A34(data); - MOD59_021D796C(data); + MOD59_DestroyBg(data); MOD59_021D7A5C(data); Main_SetVBlankIntrCB(NULL, NULL); @@ -277,3 +280,44 @@ THUMB_FUNC void MOD59_SetupBg(MOD59_OverlayData *data) MOD59_021D8058(data); data->Unk78 = 0; } + +THUMB_FUNC void MOD59_DestroyBg(MOD59_OverlayData *data) +{ + ToggleBgLayer(GF_BG_LYR_MAIN_0, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_1, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_2, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_3, GX_LAYER_TOGGLE_OFF); + + ToggleBgLayer(GF_BG_LYR_SUB_0, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_1, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_2, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_3, GX_LAYER_TOGGLE_OFF); + + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_0); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_1); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_2); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_3); + + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_0); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_1); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_2); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_SUB_3); + + FreeToHeap(data->bgConfig); +} + +THUMB_FUNC void MOD59_SetupMsg(MOD59_OverlayData *data) +{ + data->msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0x155, data->heap_id); + + FUN_0201BD5C(); + + data->Unk60 = FUN_020142EC(0, 0, 6, data->heap_id); + + data->strBufs = ScrStrBufs_new(data->heap_id); + + data->Unk50 = 0; + data->Unk54 = 0; + data->Unk2C = 0; +} + |