diff options
-rw-r--r-- | arm9/asm/scrcmd_10.s | 26 | ||||
-rw-r--r-- | arm9/asm/unk_020377F0.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_02066840.s | 14 | ||||
-rw-r--r-- | arm9/asm/unk_0206E2F0.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_0208A338.s | 10 | ||||
-rw-r--r-- | arm9/global.inc | 64 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E1AD8.s | 4 | ||||
-rw-r--r-- | arm9/modules/06/asm/module_06.s | 138 | ||||
-rw-r--r-- | arm9/modules/54/asm/module_54.s | 2 | ||||
-rw-r--r-- | arm9/modules/74/asm/module_74.s | 8 | ||||
-rw-r--r-- | arm9/modules/82/asm/module_82.s | 10 | ||||
-rw-r--r-- | arm9/src/save_arrays.c | 5 | ||||
-rw-r--r-- | arm9/src/unk_0202A1E0.c | 459 | ||||
-rw-r--r-- | arm9/src/unk_0205FA2C.c | 97 | ||||
-rw-r--r-- | include/unk_0202A1E0.h | 359 |
15 files changed, 591 insertions, 613 deletions
diff --git a/arm9/asm/scrcmd_10.s b/arm9/asm/scrcmd_10.s index 3235f5ae..6f417ce9 100644 --- a/arm9/asm/scrcmd_10.s +++ b/arm9/asm/scrcmd_10.s @@ -243,12 +243,12 @@ _020424F6: b _020426FA _020424FC: ldr r0, [r1, #0xc] - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 bl MOD06_022433A8 b _020426FA _02042508: ldr r0, [r1, #0xc] - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 bl MOD06_022433B0 strh r0, [r4, #0x0] b _020426FA @@ -717,7 +717,7 @@ ScrCmd_Unk01E3: ; 0x02042894 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 add r1, sp, #0x0 bl FUN_0202A864 add r0, sp, #0x0 @@ -743,8 +743,8 @@ ScrCmd_Unk01E4: ; 0x020428E0 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_0202A8E4 - bl FUN_0202A74C + bl SaveStruct23_GetSubstruct4 + bl SaveStruct23_Substruct4_GetField_0xFF strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} @@ -862,10 +862,10 @@ ScrCmd_Unk0297: ; 0x020429B8 bl GetVarPointer add r5, r0, #0x0 add r0, r4, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0x0 add r2, r1, #0x0 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} @@ -885,10 +885,10 @@ ScrCmd_Unk0298: ; 0x020429E8 bl VarGet add r5, r0, #0x0 add r0, r4, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 add r1, r5, #0x0 mov r2, #0x5 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 @@ -908,10 +908,10 @@ ScrCmd_Unk0299: ; 0x02042A18 bl VarGet add r5, r0, #0x0 add r0, r4, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 add r1, r5, #0x0 mov r2, #0x6 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 @@ -939,10 +939,10 @@ ScrCmd_Unk029A: ; 0x02042A48 bl GetVarPointer add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0x0 add r2, r1, #0x0 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 cmp r0, r6 bhs _02042A8E mov r0, #0x0 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 9c2132bf..1505027c 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -2193,10 +2193,10 @@ FUN_02038790: ; 0x02038790 bl AllocFromHeapAtEnd add r4, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl Sav2_SysInfo_get diff --git a/arm9/asm/unk_02066840.s b/arm9/asm/unk_02066840.s index d443fce9..e8495712 100644 --- a/arm9/asm/unk_02066840.s +++ b/arm9/asm/unk_02066840.s @@ -19,7 +19,7 @@ FUN_02066840: ; 0x02066840 bl FUN_02029AFC add r5, r0, #0x0 add r0, r6, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x0 @@ -93,7 +93,7 @@ FUN_02066840: ; 0x02066840 _020668FC: add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage ldr r1, [sp, #0x8] mov r2, #0x8 add r1, r1, r5 @@ -104,7 +104,7 @@ _020668FC: blt _020668FC add r0, r6, #0x0 mov r1, #0x3 - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r7, #0x0 add r1, #0xc0 mov r2, #0x8 @@ -115,7 +115,7 @@ _020668FC: ldr r0, [sp, #0x4] mov r1, #0x7 mov r2, #0x0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r1, r7, #0x0 add r1, #0xe2 strh r0, [r1, #0x0] @@ -127,19 +127,19 @@ _020668FC: ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] add r2, r7, #0x0 - bl FUN_0202A498 + bl SaveStruct23_Substruct2_GetArray add sp, #0xc pop {r4-r7, pc} _02066956: ldr r0, [sp, #0x4] - bl FUN_0202A520 + bl SaveStruct23_Substruct2_GetField_0x16 add r1, r7, #0x0 add r1, #0xe2 strh r0, [r1, #0x0] ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] add r2, r7, #0x0 - bl FUN_0202A498 + bl SaveStruct23_Substruct2_GetArray _0206696C: add sp, #0xc pop {r4-r7, pc} diff --git a/arm9/asm/unk_0206E2F0.s b/arm9/asm/unk_0206E2F0.s index ab6068fc..a1bf9798 100644 --- a/arm9/asm/unk_0206E2F0.s +++ b/arm9/asm/unk_0206E2F0.s @@ -168,10 +168,10 @@ FUN_0206E3D8: ; 0x0206E3D8 thumb_func_start FUN_0206E3E8 FUN_0206E3E8: ; 0x0206E3E8 push {r3, lr} - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0x0 add r2, r1, #0x0 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 pop {r3, pc} thumb_func_start FUN_0206E3F8 diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index bafa4c91..f96c2e10 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -208,7 +208,7 @@ _0208A4E8: ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -220,7 +220,7 @@ _0208A502: ldr r0, [r4, #0x0] mov r1, #0x1 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -232,7 +232,7 @@ _0208A51C: ldr r0, [r4, #0x0] mov r1, #0x2 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -244,7 +244,7 @@ _0208A536: ldr r0, [r4, #0x0] mov r1, #0x3 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -335,7 +335,7 @@ _0208A5EC: ldr r0, [r0, #0xc] ldr r1, [r4, #0x64] add r2, #0x48 - bl FUN_0202A5D4 + bl SaveStruct23_SetMessage add r0, r4, #0x0 mov r1, #0x6 mov r2, #0x0 diff --git a/arm9/global.inc b/arm9/global.inc index 4f8cce89..c513e6b4 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1998,45 +1998,45 @@ .extern FUN_0202A170 .extern FUN_0202A1B8 .extern FUN_0202A1C4 -.extern FUN_0202A1E0 -.extern FUN_0202A1E4 -.extern FUN_0202A1F0 -.extern FUN_0202A204 -.extern FUN_0202A230 -.extern FUN_0202A240 -.extern FUN_0202A2C4 +.extern SaveStruct23_Substruct4_Substruct1_sizeof +.extern SaveStruct23_Substruct1_Init +.extern SaveStruct23_Substruct2_Init +.extern SaveStruct23_Messages_Init +.extern SaveStruct23_Substruct4_Init +.extern SaveStruct23_Substruct1_GetField +.extern SaveStruct23_Substruct1_SetField .extern FUN_0202A36C -.extern FUN_0202A398 -.extern FUN_0202A3A0 -.extern FUN_0202A3B4 -.extern FUN_0202A40C -.extern FUN_0202A444 -.extern FUN_0202A474 -.extern FUN_0202A498 -.extern FUN_0202A4B8 -.extern FUN_0202A520 +.extern SaveStruct23_Substruct1_GetFlag1 +.extern SaveStruct23_Substruct1_SetFlag1 +.extern SaveStruct23_Substruct2_SetField_0x0 +.extern SaveStruct23_Substruct2_SetField_0x2 +.extern SaveStruct23_Substruct2_SetField_0x3 +.extern SaveStruct23_Substruct2_SetArray +.extern SaveStruct23_Substruct2_GetArray +.extern SaveStruct23_Substruct2_SetField_0x16 +.extern SaveStruct23_Substruct2_GetField_0x16 .extern FUN_0202A524 -.extern FUN_0202A538 -.extern FUN_0202A578 -.extern FUN_0202A5CC -.extern FUN_0202A5D0 -.extern FUN_0202A5D4 -.extern FUN_0202A5F4 -.extern FUN_0202A60C -.extern FUN_0202A6B4 -.extern FUN_0202A744 -.extern FUN_0202A74C -.extern FUN_0202A754 +.extern SaveStruct23_Substruct2_SetField_0xC +.extern SaveStruct23_Substruct2_SetFlag +.extern SaveStruct23_Substruct2_SetField_0x4 +.extern SaveStruct23_Substruct2_GetField_0x4 +.extern SaveStruct23_SetMessage +.extern SaveStruct23_GetMessage +.extern SaveStruct23_Substruct4_SetArrayFlag +.extern SaveStruct23_Substruct4_GetArrayFlag +.extern SaveStruct23_Substruct4_GetField_0xFE +.extern SaveStruct23_Substruct4_GetField_0xFF +.extern SaveStruct23_Substruct4_SetSubstruct1 .extern FUN_0202A784 .extern FUN_0202A798 .extern FUN_0202A838 .extern FUN_0202A864 .extern FUN_0202A878 -.extern FUN_0202A89C -.extern FUN_0202A8A4 -.extern FUN_0202A8CC -.extern FUN_0202A8D8 -.extern FUN_0202A8E4 +.extern SaveStruct23_sizeof +.extern SaveStruct23_Init +.extern SaveStruct23_GetSubstruct1 +.extern SaveStruct23_GetSubstruct2 +.extern SaveStruct23_GetSubstruct4 .extern FUN_0202A8F4 .extern FUN_0202A8F8 .extern FUN_0202A918 diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index c41f4c57..22b26c5d 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -2073,10 +2073,10 @@ MOD05_021E2AD4: ; 0x021E2AD4 bl NewString_ReadMsgData str r0, [sp, #0x10] ldr r0, [r6, #0xc] - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0 add r2, r1, #0 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 add r2, r0, #0 mov r0, #1 str r0, [sp] diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 3b86cb19..d258860d 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -19893,17 +19893,17 @@ _022433A4: .word OS_ResetSystem thumb_func_start MOD06_022433A8 MOD06_022433A8: ; 0x022433A8 - ldr r3, _022433AC ; =FUN_0202A1E4 + ldr r3, _022433AC ; =SaveStruct23_Substruct1_Init bx r3 .align 2, 0 -_022433AC: .word FUN_0202A1E4 +_022433AC: .word SaveStruct23_Substruct1_Init thumb_func_start MOD06_022433B0 MOD06_022433B0: ; 0x022433B0 - ldr r3, _022433B4 ; =FUN_0202A398 + ldr r3, _022433B4 ; =SaveStruct23_Substruct1_GetFlag1 bx r3 .align 2, 0 -_022433B4: .word FUN_0202A398 +_022433B4: .word SaveStruct23_Substruct1_GetFlag1 thumb_func_start MOD06_022433B8 MOD06_022433B8: ; 0x022433B8 @@ -19965,26 +19965,26 @@ _02243414: MOD06_02243428: ; 0x02243428 push {r4, lr} add r4, r1, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 cmp r4, #0 bne _0224343E mov r1, #5 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag pop {r4, pc} _0224343E: mov r1, #5 mov r2, #1 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag pop {r4, pc} thumb_func_start MOD06_02243448 MOD06_02243448: ; 0x02243448 push {r3, lr} - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #5 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} @@ -19993,15 +19993,15 @@ MOD06_02243448: ; 0x02243448 MOD06_0224345C: ; 0x0224345C push {r4, r5, r6, lr} add r5, r0, #0 - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 add r4, r0, #0 add r0, r5, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0 add r6, r0, #0 add r0, r4, #0 add r2, r1, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #5 @@ -20015,11 +20015,11 @@ _02243484: add r0, r6, #0 lsr r1, r1, #0x10 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r6, #0 add r1, r4, #0 mov r2, #2 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC cmp r4, #4 beq _022434A8 add r0, r5, #0 @@ -20031,8 +20031,8 @@ _022434A8: thumb_func_start MOD06_022434AC MOD06_022434AC: ; 0x022434AC push {r3, lr} - bl FUN_0202A8E4 - bl FUN_0202A744 + bl SaveStruct23_GetSubstruct4 + bl SaveStruct23_Substruct4_GetField_0xFE lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} @@ -20072,16 +20072,16 @@ MOD06_022434D0: ; 0x022434D0 mov r0, #0x3b str r0, [r4, #4] add r0, r6, #0 - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 str r0, [r4, #0x70] add r0, r6, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [r4, #0x74] ldr r0, _02243688 ; =0x12345678 mov r1, #0 str r0, [r4] ldr r0, [r4, #0x70] - bl FUN_0202A3A0 + bl SaveStruct23_Substruct1_SetFlag1 cmp r5, #0 bne _0224356C strb r7, [r4, #0xf] @@ -20114,25 +20114,25 @@ _02243544: cmp r2, #0xe blo _02243544 ldr r0, [r4, #0x70] - bl FUN_0202A1E4 + bl SaveStruct23_Substruct1_Init ldrb r1, [r4, #0xf] add r0, sp, #8 add r2, sp, #8 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #0 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField b _0224362A _0224356C: mov r1, #0 ldr r0, [r4, #0x70] add r2, r1, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField strb r0, [r4, #0xf] ldr r0, [r4, #0x70] mov r1, #1 mov r2, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField strb r0, [r4, #0xc] ldrb r0, [r4, #0xc] sub r0, r0, #1 @@ -20144,16 +20144,16 @@ _0224356C: ldr r0, [r4, #0x70] mov r1, #5 add r2, #0x2a - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField add r2, r4, #0 ldr r0, [r4, #0x70] mov r1, #8 add r2, #0x3e - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField ldr r0, [r4, #0x70] mov r1, #0xa mov r2, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField str r0, [r4, #8] ldrb r0, [r4, #0xf] cmp r0, #2 @@ -20161,7 +20161,7 @@ _0224356C: ldr r0, [r4, #0x70] mov r1, #9 mov r2, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1d @@ -20180,14 +20180,14 @@ _0224356C: lsl r3, r3, #4 mov r1, #6 add r2, r2, r3 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField ldrb r0, [r4, #0x10] mov r1, #7 mov r2, #0 lsl r0, r0, #0x18 lsr r5, r0, #0x1d ldr r0, [r4, #0x70] - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField add r3, r0, #0 ldr r0, _02243690 ; =0x000007E8 mov r1, #0xa6 @@ -20226,7 +20226,7 @@ _0224362A: lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _02243668 @@ -20244,7 +20244,7 @@ _02243668: ldrb r1, [r4, #0xf] ldr r0, [r4, #0x74] mov r2, #0 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC strh r0, [r4, #0x1c] _0224367E: add r0, r4, #0 @@ -20707,17 +20707,17 @@ _022439B8: strb r1, [r0] ldr r0, [r5, #0x70] mov r1, #0 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrb r1, [r5, #0xc] add r0, sp, #0 add r2, sp, #0 strb r1, [r0] ldr r0, [r5, #0x70] mov r1, #1 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldr r0, [r5, #0x74] ldr r1, [r5, #0x70] - bl FUN_0202A4B8 + bl SaveStruct23_Substruct2_SetField_0x16 _022439F6: pop {r3, r4, r5, r6, r7, pc} @@ -20771,7 +20771,7 @@ _02243A52: add r1, #8 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _02243A74 @@ -20793,7 +20793,7 @@ _02243A7E: lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag ldrb r2, [r5, #0xd] ldr r0, [sp, #4] mov r1, #0x1d @@ -20801,7 +20801,7 @@ _02243A7E: ldrb r1, [r5, #0xf] ldr r0, [r5, #0x74] mov r2, #2 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC ldr r0, [sp, #8] bl FUN_02029FC8 mov r1, #0xf @@ -20849,7 +20849,7 @@ MOD06_02243AD8: ; 0x02243AD8 lsr r1, r1, #0x10 mov r2, #0 add r4, #0x35 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _02243B1A @@ -20872,7 +20872,7 @@ _02243B26: add r1, #8 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r6, #0 add r1, r4, #0 bl FUN_0202A150 @@ -20887,7 +20887,7 @@ _02243B26: ldrb r1, [r5, #0xf] ldr r0, [r5, #0x74] mov r2, #3 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC add r0, r6, #0 mov r1, #0xf mov r2, #1 @@ -20933,19 +20933,19 @@ MOD06_02243BA8: ; 0x02243BA8 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #0 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrb r1, [r4, #0xc] add r0, sp, #0 add r2, sp, #0 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #1 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField add r2, r4, #0 ldr r0, [r4, #0x70] mov r1, #5 add r2, #0x2a - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrh r1, [r4, #0x28] ldrh r2, [r4, #0x24] ldrh r3, [r4, #0x26] @@ -20957,15 +20957,15 @@ MOD06_02243BA8: ; 0x02243BA8 ldr r0, [r4, #0x70] mov r1, #8 add r2, #0x3e - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField add r2, r4, #0 ldr r0, [r4, #0x70] mov r1, #0xa add r2, #8 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldr r0, [r4, #0x70] mov r1, #1 - bl FUN_0202A3A0 + bl SaveStruct23_Substruct1_SetFlag1 ldrb r0, [r4, #0xf] cmp r0, #2 bne _02243C4E @@ -20977,7 +20977,7 @@ MOD06_02243BA8: ; 0x02243BA8 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #9 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrb r3, [r4, #0x10] ldr r2, _02243C54 ; =0x000007E8 ldr r0, [r4, #0x70] @@ -20987,7 +20987,7 @@ MOD06_02243BA8: ; 0x02243BA8 lsl r3, r3, #4 mov r1, #6 add r2, r2, r3 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldr r2, _02243C58 ; =0x00000838 ldr r0, [r4, #0x70] add r3, r4, r2 @@ -20996,7 +20996,7 @@ MOD06_02243BA8: ; 0x02243BA8 lsl r2, r2, #0x18 lsr r2, r2, #0x1d add r2, r3, r2 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField _02243C4E: add sp, #4 pop {r3, r4, pc} @@ -21234,13 +21234,13 @@ _02243DEE: ldr r0, [r4, #0x74] bne _02243E00 mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 ldr r1, _02243E2C ; =0x02250C5C ldrb r5, [r1, r0] b _02243E1E _02243E00: mov r2, #0 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC ldrb r1, [r4, #0x10] lsl r1, r1, #0x1d lsr r1, r1, #0x1e @@ -21259,7 +21259,7 @@ _02243E1E: ldr r0, [r4, #0x74] add r1, r5, #0 mov r2, #5 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 add r0, r5, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -21283,7 +21283,7 @@ _02243E48: blo _02243E5E mov r1, #1 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag cmp r0, #0 beq _02243E6E mov r0, #0 @@ -21291,7 +21291,7 @@ _02243E48: _02243E5E: mov r1, #0 add r2, r1, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag cmp r0, #0 beq _02243E6E mov r0, #0 @@ -21307,7 +21307,7 @@ MOD06_02243E74: ; 0x02243E74 add r6, r0, #0 add r0, r1, #0 add r5, r2, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 add r4, r0, #0 cmp r5, #0 beq _02243E90 @@ -21318,15 +21318,15 @@ MOD06_02243E74: ; 0x02243E74 b _02243F10 _02243E90: mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 pop {r4, r5, r6, pc} _02243E98: mov r1, #4 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r4, #0 mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 add r5, r0, #0 cmp r5, #0xa bne _02243EB2 @@ -21335,7 +21335,7 @@ _02243E98: _02243EB2: add r0, r4, #0 mov r1, #3 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 add r0, r5, #1 cmp r0, #5 blt _02243EC8 @@ -21348,11 +21348,11 @@ _02243EC8: pop {r4, r5, r6, pc} _02243ECC: mov r1, #3 - bl FUN_0202A40C + bl SaveStruct23_Substruct2_SetField_0x2 add r5, r0, #0 add r0, r4, #0 mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 cmp r0, #1 bne _02243EE4 mov r0, #0 @@ -21365,14 +21365,14 @@ _02243EE4: blo _02243F0C add r0, r4, #0 mov r1, #4 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 add r0, r4, #0 mov r1, #2 - bl FUN_0202A40C + bl SaveStruct23_Substruct2_SetField_0x2 add r0, r4, #0 mov r1, #4 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag mov r0, #1 pop {r4, r5, r6, pc} _02243F0C: @@ -21476,7 +21476,7 @@ MOD06_02243F9C: ; 0x02243F9C add r1, #8 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x18 lsr r0, r0, #0x18 bne _02243FC0 @@ -21749,7 +21749,7 @@ _022441B8: ldr r0, [r6, #0x74] ldr r1, [sp] ldr r2, [sp, #4] - bl FUN_0202A474 + bl SaveStruct23_Substruct2_SetArray ldr r0, [sp, #4] mov r1, #0 mov r2, #0xa8 @@ -21939,9 +21939,9 @@ MOD06_0224434C: ; 0x0224434C lsl r2, r2, #4 bl MI_CpuFill8 add r0, r6, #0 - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 add r6, r0, #0 - bl FUN_0202A744 + bl SaveStruct23_Substruct4_GetField_0xFE cmp r0, #0 bne _0224437A add r0, r5, #0 @@ -22424,7 +22424,7 @@ _0224471C: ldr r0, [r6, #0x74] mov r1, #3 mov r2, #0 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC ldr r1, _02244754 ; =0x00000844 strh r0, [r6, r1] pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index b11b96cf..25c18523 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -4440,7 +4440,7 @@ MOD54_021D9780: ; 0x021D9780 .word MOD54_021D9488, MOD54_021D94B4, MOD54_021D91B4, MOD54_021D9274 .word MOD54_021D94D0, MOD54_021D91BC, MOD54_021D92AC, MOD54_021D94E8 .word MOD54_021D91AC, MOD54_021D9238, MOD54_021D9500, FUN_0202B934 - .word MOD54_021D9518, MOD54_021D9520, FUN_0202A1E0, MOD54_021D9544 + .word MOD54_021D9518, MOD54_021D9520, SaveStruct23_Substruct4_Substruct1_sizeof, MOD54_021D9544 .word MOD54_021D956C .data diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s index 651527c1..44254d39 100644 --- a/arm9/modules/74/asm/module_74.s +++ b/arm9/modules/74/asm/module_74.s @@ -35,10 +35,10 @@ MOD74_021D74E0: ; 0x021D74E0 bl FUN_02029FC8 str r0, [r4, #0x1c] ldr r0, [r5] - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [r4, #0x20] ldr r0, [r5] - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 str r0, [r4, #0x24] mov r0, #0x4a str r0, [r4] @@ -967,7 +967,7 @@ MOD74_021D7C10: ; 0x021D7C10 ldr r0, [r5, #0x20] lsr r1, r1, #0x10 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r2, r0, #0x10 add r0, sp, #0x18 ldrb r6, [r0, #0x10] @@ -1195,7 +1195,7 @@ _021D7E04: bl AddTextPrinterParameterized2 ldr r0, [r4, #0x20] mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 mov r1, #0 add r2, r0, #0 str r1, [sp] diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index f1a3e494..ce3a33bb 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -1400,7 +1400,7 @@ MOD82_0222E050: ; 0x0222E050 ldr r0, [r4] mov r1, #0 ldr r0, [r0] - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 str r0, [r4, #0x38] str r0, [r4, #0x3c] mov r0, #1 @@ -2629,7 +2629,7 @@ _0222EA38: lsr r1, r1, #0x18 lsr r2, r2, #0x18 add r3, sp, #0 - bl FUN_0202A6B4 + bl SaveStruct23_Substruct4_GetArrayFlag cmp r0, #0 beq _0222EA66 mov r0, #0x12 @@ -2795,7 +2795,7 @@ _0222EB94: add r1, #0x48 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_0202A754 + bl SaveStruct23_Substruct4_SetSubstruct1 add r0, r4, #0 mov r1, #0x25 mov r2, #0x11 @@ -2812,7 +2812,7 @@ _0222EB94: lsr r1, r1, #0x18 lsr r2, r2, #0x18 add r3, sp, #0 - bl FUN_0202A60C + bl SaveStruct23_Substruct4_SetArrayFlag b _0222EC44 _0222EBD6: mov r1, #0x3b @@ -2995,7 +2995,7 @@ _0222ED32: mov r1, #5 ldr r0, [r0] mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r4, #0 mov r1, #0x25 mov r2, #0x1a diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c index f4b18b86..1969e3f1 100644 --- a/arm9/src/save_arrays.c +++ b/arm9/src/save_arrays.c @@ -16,6 +16,7 @@ #include "unk_020139D8.h" #include "unk_02024E64.h" #include "sav_chatot.h" +#include "unk_0202A1E0.h" extern u32 FUN_0202AC20(void); extern u32 FUN_02034D7C(void); @@ -28,7 +29,6 @@ extern u32 FUN_02028980(void); extern u32 FUN_02029A84(void); extern u32 FUN_02029FB0(void); extern u32 Sav2_Chatot_sizeof(void); -extern u32 FUN_0202A89C(void); extern u32 FUN_0202A8F4(void); extern u32 FUN_0202A924(void); extern u32 FUN_0202ABC8(void); @@ -48,7 +48,6 @@ extern void FUN_0202805C(void *); extern void FUN_02028994(void *); extern void FUN_02029A8C(void *); extern void FUN_02029FB8(void *); -extern void FUN_0202A8A4(void *); extern void FUN_0202A8F8(void *); extern void FUN_0202A92C(void *); extern void FUN_0202ABCC(void *); @@ -88,7 +87,7 @@ const struct SaveChunkHeader UNK_020EE700[] = { { 20, 0, (SAVSIZEFN)FUN_02029FB0, (SAVINITFN)FUN_02029FB8 }, { 21, 0, (SAVSIZEFN)Sav2_SealCase_sizeof, (SAVINITFN)Sav2_SealCase_init }, { 22, 0, (SAVSIZEFN)Sav2_Chatot_sizeof, (SAVINITFN)Sav2_Chatot_init }, - { 23, 0, (SAVSIZEFN)FUN_0202A89C, (SAVINITFN)FUN_0202A8A4 }, + { 23, 0, (SAVSIZEFN)SaveStruct23_sizeof, (SAVINITFN)SaveStruct23_Init }, { 24, 0, (SAVSIZEFN)FUN_0202A8F4, (SAVINITFN)FUN_0202A8F8 }, { 25, 0, (SAVSIZEFN)FUN_0202A924, (SAVINITFN)FUN_0202A92C }, { 26, 0, (SAVSIZEFN)FUN_0202ABC8, (SAVINITFN)FUN_0202ABCC }, diff --git a/arm9/src/unk_0202A1E0.c b/arm9/src/unk_0202A1E0.c index 607ea8c3..4f32d430 100644 --- a/arm9/src/unk_0202A1E0.c +++ b/arm9/src/unk_0202A1E0.c @@ -4,252 +4,249 @@ #include "heap.h" #include "unk_0202A1E0.h" -THUMB_FUNC s32 FUN_0202A1E0() +THUMB_FUNC s32 SaveStruct23_Substruct4_Substruct1_sizeof() { - return 228; + return sizeof(struct SaveStruct23_Substruct4_Substruct1); // 228 } -THUMB_FUNC void FUN_0202A1E4(void *dest) +THUMB_FUNC void SaveStruct23_Substruct1_Init(struct SaveStruct23_Substruct1 *substruct1) { - MI_CpuFill8(dest, 0, 60); + MI_CpuFill8(substruct1, 0, sizeof(struct SaveStruct23_Substruct1)); } -THUMB_FUNC void FUN_0202A1F0(struct Unk0202A1F0 *arg0) +THUMB_FUNC void SaveStruct23_Substruct2_Init(struct SaveStruct23_Substruct2 *substruct2) { - MI_CpuFill8(arg0, 0, 360); - arg0->u_3 = 1; + MI_CpuFill8(substruct2, 0, sizeof(struct SaveStruct23_Substruct2)); + substruct2->u_3 = 1; } -THUMB_FUNC void FUN_0202A204(struct UnkMailStruct *arg0) +THUMB_FUNC void SaveStruct23_Messages_Init(struct SaveStruct23_Messages *messages) { - MailMsg_init_fromTemplate(&arg0->messages[0], 0); - MailMsg_init_fromTemplate(&arg0->messages[1], 1); - MailMsg_init_fromTemplate(&arg0->messages[2], 2); - MailMsg_init_fromTemplate(&arg0->messages[3], 3); + MailMsg_init_fromTemplate(&messages->messages[0], 0); + MailMsg_init_fromTemplate(&messages->messages[1], 1); + MailMsg_init_fromTemplate(&messages->messages[2], 2); + MailMsg_init_fromTemplate(&messages->messages[3], 3); } -THUMB_FUNC void FUN_0202A230(void *dst) +THUMB_FUNC void SaveStruct23_Substruct4_Init(struct SaveStruct23_Substruct4 *substruct4) { - MI_CpuFill8(dst, 0, 2876); + MI_CpuFill8(substruct4, 0, sizeof(struct SaveStruct23_Substruct4)); } -THUMB_FUNC u32 FUN_0202A240(struct Unk0202A240 *unk, u32 mode, void *dst) +THUMB_FUNC u32 SaveStruct23_Substruct1_GetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *dst) { - switch (mode) + switch (field) { - case 0: - return unk->u_0_2; - case 1: - return unk->u_2; - case 2: - return unk->u_3; - case 3: - return unk->u_4; - case 4: - return unk->u_6; - case 5: - MI_CpuCopy8(&unk->u_8, dst, 4); + case FIELD_0x0_2: + return substruct1->u_0_2; + case FIELD_0x2: + return substruct1->u_2; + case FIELD_0x3: + return substruct1->u_3; + case FIELD_0x4: + return substruct1->u_4; + case FIELD_0x6: + return substruct1->u_6; + case FIELD_0x8: + MI_CpuCopy8(&substruct1->u_8, dst, 4); return 0; - case 6: - MI_CpuCopy8(&unk->u_2C, dst, 16); + case FIELD_0x2C: + MI_CpuCopy8(&substruct1->u_2C, dst, 16); return 0; - case 7: - return unk->u_0_0; - case 8: - MI_CpuCopy8(&unk->u_C, dst, 28); + case FIELD_flag0: + return substruct1->flag0; + case FIELD_0xC: + MI_CpuCopy8(&substruct1->u_C, dst, 28); return 0; - case 9: - return unk->u_0_5; - case 10: - return unk->u_28; + case FIELD_0x0_5: + return substruct1->u_0_5; + case FIELD_0x28: + return substruct1->u_28; default: return 0; }; } -THUMB_FUNC void FUN_0202A2C4(struct Unk0202A240 *dst, u32 mode, void *src) +THUMB_FUNC void SaveStruct23_Substruct1_SetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *value) { - switch (mode) + switch (field) { - case 0: - dst->u_0_2 = *(u8 *)src; + case FIELD_0x0_2: + substruct1->u_0_2 = *(u8 *)value; break; - case 1: - dst->u_2 = *(u8 *)src; + case FIELD_0x2: + substruct1->u_2 = *(u8 *)value; break; - case 2: - dst->u_3 = *(u8 *)src; + case FIELD_0x3: + substruct1->u_3 = *(u8 *)value; break; - case 3: - dst->u_4 = *(u16 *)src; + case FIELD_0x4: + substruct1->u_4 = *(u16 *)value; break; - case 4: - dst->u_6 = *(u16 *)src; + case FIELD_0x6: + substruct1->u_6 = *(u16 *)value; break; - case 5: - MI_CpuCopy8(src, &dst->u_8, 4); + case FIELD_0x8: + MI_CpuCopy8(value, &substruct1->u_8, 4); break; - case 6: - MI_CpuCopy8(src, &dst->u_2C, 16); + case FIELD_0x2C: + MI_CpuCopy8(value, &substruct1->u_2C, 16); break; - case 7: - dst->u_0_0 = *(u8 *)src; + case FIELD_flag0: + substruct1->flag0 = *(u8 *)value; break; - case 8: - MI_CpuCopy8(src, &dst->u_C, 28); + case FIELD_0xC: + MI_CpuCopy8(value, &substruct1->u_C, 28); break; - case 10: - dst->u_28 = *(u32 *)src; + case FIELD_0x28: + substruct1->u_28 = *(u32 *)value; break; - case 9: - dst->u_0_5 = *(u8 *)src; + case FIELD_0x0_5: + substruct1->u_0_5 = *(u8 *)value; break; } } -THUMB_FUNC void FUN_0202A36C(struct Unk0202A240 *unk, s32 arg1, s32 arg2, s32 arg3) +THUMB_FUNC void FUN_0202A36C(struct SaveStruct23_Substruct1 *substruct1, s32 arg1, s32 arg2, s32 arg3) { - if (unk->u_3 + arg1 < 0xff) + if (substruct1->u_3 + arg1 < 0xff) { - unk->u_3 += arg1; + substruct1->u_3 += arg1; } - if (unk->u_4 + arg2 < 0xffff) + if (substruct1->u_4 + arg2 < 0xffff) { - unk->u_4 += arg2; + substruct1->u_4 += arg2; } - if (unk->u_6 + arg3 < 0xffff) + if (substruct1->u_6 + arg3 < 0xffff) { - unk->u_6 += arg3; + substruct1->u_6 += arg3; } } -THUMB_FUNC u8 FUN_0202A398(struct Unk0202A240 *unk) +THUMB_FUNC BOOL SaveStruct23_Substruct1_GetFlag1(struct SaveStruct23_Substruct1 *substruct1) { - return unk->u_0_1; + return substruct1->flag1; } -THUMB_FUNC void FUN_0202A3A0(struct Unk0202A240 *unk, u16 arg1) +THUMB_FUNC void SaveStruct23_Substruct1_SetFlag1(struct SaveStruct23_Substruct1 *substruct1, BOOL flag) { - unk->u_0_1 = arg1; + substruct1->flag1 = flag; } -THUMB_FUNC u16 FUN_0202A3B4(struct Unk0202A3B4 *unk, u16 arg1, s32 controlVariable) +THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0x0(struct SaveStruct23_Substruct2 *substruct2, u16 value, DataSetMode mode) { - switch (controlVariable) + switch (mode) { - case 0: - break; - case 1: - if (arg1 > 0x270F) + case DATA_SET: + if (value > 9999) { - unk->u_0 = 0x270F; + substruct2->u_0 = 9999; } else { - unk->u_0 = arg1; + substruct2->u_0 = value; } break; - case 2: - case 3: - case 4: - break; - case 5: - if (unk->u_0 + arg1 > 0x270F) + case DATA_ADD: + if (substruct2->u_0 + value > 9999) { - unk->u_0 = 0x270F; + substruct2->u_0 = 9999; } else { - unk->u_0 += arg1; + substruct2->u_0 += value; } break; - case 6: - if (unk->u_0 < arg1) + case DATA_SUBSTRACT: + if (substruct2->u_0 < value) { - unk->u_0 = 0; + substruct2->u_0 = 0; } else { - unk->u_0 -= arg1; + substruct2->u_0 -= value; } break; + case DATA_GET: + default: + break; } - return unk->u_0; + return substruct2->u_0; } -THUMB_FUNC u8 FUN_0202A40C(struct Unk0202A40C *unk, s32 controlVariable) +THUMB_FUNC u8 SaveStruct23_Substruct2_SetField_0x2(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode) { - switch (controlVariable) + switch (mode) { - case 2: - unk->u_2 = 0; - unk->u_8_4 = 0; + case DATA_RESET: + substruct2->u_2 = 0; + substruct2->flag4 = 0; break; - case 3: - if (unk->u_8_4 != 0) + case DATA_INCREMENT: + if (substruct2->flag4) { - unk->u_2 += 1; + substruct2->u_2++; } else { - unk->u_2 = 1; - unk->u_8_4 = 1; + substruct2->u_2 = 1; + substruct2->flag4 = 1; } break; } - return unk->u_2; + return substruct2->u_2; } -THUMB_FUNC u8 FUN_0202A444(struct Unk0202A444 *unk, s32 controlVariable) +THUMB_FUNC u8 SaveStruct23_Substruct2_SetField_0x3(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode) { - switch (controlVariable) + switch (mode) { - case 2: - unk->u_3 = 1; + case DATA_RESET: + substruct2->u_3 = 1; break; - case 3: - if (unk->u_3 < 0xa) + case DATA_INCREMENT: + if (substruct2->u_3 < 10) { - unk->u_3++; + substruct2->u_3++; } break; - case 4: - if (unk->u_3 > 1) + case DATA_DECREMENT: + if (substruct2->u_3 > 1) { - unk->u_3--; + substruct2->u_3--; } break; } - return unk->u_3; + return substruct2->u_3; } -THUMB_FUNC void FUN_0202A474(void *dst, s32 arg1, const void *src) +THUMB_FUNC void SaveStruct23_Substruct2_SetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *src) { - if (arg1 == 0) + if (mode == 0) { - MI_CpuCopy8(src, dst + 0xc0, 0xa8); + MI_CpuCopy8(src, substruct2->u_C0, 168); } else { - MI_CpuCopy8(src, dst + 0x18, 0xa8); + MI_CpuCopy8(src, substruct2->u_18, 168); } } -THUMB_FUNC void FUN_0202A498(const void *src, s32 arg1, void *dst) +THUMB_FUNC void SaveStruct23_Substruct2_GetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *dst) { - if (arg1 == 0) + if (mode == 0) { - MI_CpuCopy8(src + 0xc0, dst, 0xa8); + MI_CpuCopy8(substruct2->u_C0, dst, 168); } else { - MI_CpuCopy8(src + 0x18, dst, 0xa8); + MI_CpuCopy8(substruct2->u_18, dst, 168); } } -THUMB_FUNC u16 FUN_0202A4B8(struct Unk0202A4B8 *arg0, struct Unk0202A4B8 *arg1) +THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0x16(struct SaveStruct23_Substruct2 *substruct2, struct Unk0202A4B8 *arg1) { u16 var1, var2, var3, var4, var5, total; @@ -276,93 +273,93 @@ THUMB_FUNC u16 FUN_0202A4B8(struct Unk0202A4B8 *arg0, struct Unk0202A4B8 *arg1) } total = (u16) (var1 + var4 + var5); - arg0->u_16 = total; + substruct2->u_16 = total; return total; } -THUMB_FUNC u16 FUN_0202A520(struct Unk0202A4B8 *unk) +THUMB_FUNC u16 SaveStruct23_Substruct2_GetField_0x16(struct SaveStruct23_Substruct2 *substruct2) { - return unk->u_16; + return substruct2->u_16; } -THUMB_FUNC u8 FUN_0202A524(struct Unk0202A4B8 *unk) +THUMB_FUNC u8 FUN_0202A524(struct SaveStruct23_Substruct2 *substruct2) { - return (u8)(unk->u_16 / (0xfa << 2)); + return (u8)(substruct2->u_16 / 1000); } -THUMB_FUNC u16 FUN_0202A538(struct Unk0202A4B8 *unk, s32 arg1, s32 arg2) +THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0xC(struct SaveStruct23_Substruct2 *substruct2, u16 arg1, DataSetMode mode) { if (arg1 == 5) { return 0; } - switch(arg2) { - case 2: - unk->u_array_C[arg1] = 0; + switch(mode) { + case DATA_RESET: + substruct2->u_C[arg1] = 0; break; - case 3: - if (unk->u_array_C[arg1] < 0xfffe) { - unk->u_array_C[arg1]++; + case DATA_INCREMENT: + if (substruct2->u_C[arg1] < 0xfffe) { + substruct2->u_C[arg1]++; } break; } - return unk->u_array_C[arg1]; + return substruct2->u_C[arg1]; } -THUMB_FUNC BOOL FUN_0202A578(struct Unk0202A578 *arg0, u16 arg1, u32 arg2) +THUMB_FUNC BOOL SaveStruct23_Substruct2_SetFlag(struct SaveStruct23_Substruct2 *substruct2, u16 flagNumber, DataSetMode mode) { u16 i; u16 flag = 1; - for (i = 0; i < arg1 ; i++) + for (i = 0; i < flagNumber ; i++) { flag <<= 1; } - switch (arg2) + switch (mode) { - case 2: + case DATA_RESET: flag = (u16) (flag ^ 0xffff); - arg0->u_8 &= flag; + substruct2->flags &= flag; break; - case 1: - arg0->u_8 |= flag; + case DATA_SET: + substruct2->flags |= flag; break; - case 0: - return (BOOL) ((arg0->u_8 >> arg1) & 1); + case DATA_GET: + return (BOOL) ((substruct2->flags >> flagNumber) & 1); } - return 0; + return FALSE; } -THUMB_FUNC void FUN_0202A5CC(struct Unk0202A5CC *unk, u32 arg1) +THUMB_FUNC void SaveStruct23_Substruct2_SetField_0x4(struct SaveStruct23_Substruct2 *substruct2, u32 value) { - unk->u_4 = arg1; + substruct2->u_4 = value; } -THUMB_FUNC u32 FUN_0202A5D0(struct Unk0202A5CC *unk) +THUMB_FUNC u32 SaveStruct23_Substruct2_GetField_0x4(struct SaveStruct23_Substruct2 *substruct2) { - return unk->u_4; + return substruct2->u_4; } -THUMB_FUNC void FUN_0202A5D4(struct SaveBlock2 *sav2, u32 arg1, struct MailMessage *arg2) +THUMB_FUNC void SaveStruct23_SetMessage(struct SaveBlock2 *sav2, u32 index, struct MailMessage *message) { - struct UnkSaveStruct_0202A5D4 *data = SavArray_get(sav2, 23); - MailMsg_copy(&data->messages.messages[arg1], arg2); + struct SaveStruct23 *data = SavArray_get(sav2, 23); + MailMsg_copy(&data->messages.messages[index], message); } -THUMB_FUNC struct MailMessage *FUN_0202A5F4(struct SaveBlock2 *sav2, u32 arg1) +THUMB_FUNC struct MailMessage *SaveStruct23_GetMessage(struct SaveBlock2 *sav2, u32 index) { - struct UnkSaveStruct_0202A5D4 *data = SavArray_get(sav2, 23); - return &data->messages.messages[arg1]; + struct SaveStruct23 *data = SavArray_get(sav2, 23); + return &data->messages.messages[index]; } -THUMB_FUNC void FUN_0202A60C(struct Unk0202A670 *arg0, u8 arg1, u8 arg2, struct Unk0202A68C *arg3) { +THUMB_FUNC void SaveStruct23_Substruct4_SetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3) { - u8 bitmask = 1; + u8 flag = 1; if (arg2 == 0 || arg2 > 200) { @@ -374,44 +371,44 @@ THUMB_FUNC void FUN_0202A60C(struct Unk0202A670 *arg0, u8 arg1, u8 arg2, struct return; } - u16 var2 = (u16) ((arg1 - 1) * 200 + (arg2 - 1)); - u8 index = (u8) (var2 / 8); - u8 remainder = (u8) (var2 % 8); - bitmask <<= remainder; + u16 var1 = (u16) ((arg1 - 1) * 200 + (arg2 - 1)); + u8 index = (u8) (var1 / 8); + u8 remainder = (u8) (var1 % 8); + flag <<= remainder; - arg0->u_4[index] |= bitmask; - arg0->u_0 = (arg3->u_0 << 24) | ((arg3->u_4 & 0xff) << 16) | ((arg3->u_8 & 0xff) << 8) | arg3->u_C; + substruct4->flags[index] |= flag; + substruct4->u_0 = (arg3->u_0 << 24) | ((arg3->u_4 & 0xff) << 16) | ((arg3->u_8 & 0xff) << 8) | arg3->u_C; } -THUMB_FUNC void FUN_0202A670(struct Unk0202A670 *arg0) +THUMB_FUNC void SaveStruct23_Substruct4_ClearArrayFlags(struct SaveStruct23_Substruct4 *substruct4) { - MI_CpuFill8(&(arg0->u_4), 0, 250); - MI_CpuFill8(arg0, 0, 4); + MI_CpuFill8(substruct4->flags, 0, 250); + MI_CpuFill8(&substruct4->u_0, 0, 4); } -THUMB_FUNC BOOL FUN_0202A68C(struct Unk0202A68C *arg0, struct Unk0202A68C *arg1) +THUMB_FUNC BOOL StructUnk0202A68C_Compare(struct Unk0202A68C *struct1, struct Unk0202A68C *struct2) { - if (arg0->u_0 > arg1->u_0) { + if (struct1->u_0 > struct2->u_0) { return TRUE; - } else if (arg0->u_4 > arg1->u_4) { + } else if (struct1->u_4 > struct2->u_4) { return TRUE; - } else if (arg0->u_8 > arg1->u_8) { + } else if (struct1->u_8 > struct2->u_8) { return TRUE; } return FALSE; } -THUMB_FUNC BOOL FUN_0202A6B4(struct Unk0202A670 *arg0, u8 arg1, u8 arg2, struct Unk0202A68C *arg3) +THUMB_FUNC BOOL SaveStruct23_Substruct4_GetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3) { - u8 bitmask = 1; + u8 flag = 1; if (arg2 > 200 || arg1 > 10) { return FALSE; } - u32 var0 = arg0->u_0; + u32 var0 = substruct4->u_0; Unk0202A68C var1; var1.u_0 = var0 >> 24 & 0xff; @@ -419,123 +416,121 @@ THUMB_FUNC BOOL FUN_0202A6B4(struct Unk0202A670 *arg0, u8 arg1, u8 arg2, struct var1.u_8 = var0 >> 8 & 0xff; var1.u_C = var0 & 0xff; - if (FUN_0202A68C(arg3, &var1)) + if (StructUnk0202A68C_Compare(arg3, &var1)) { - FUN_0202A670(arg0); + SaveStruct23_Substruct4_ClearArrayFlags(substruct4); return FALSE; } u16 var2 = (u16) ((arg1 - 1) * 200 + (arg2 - 1)); u8 index = (u8) (var2 / 8); u8 remainder = (u8) (var2 % 8); - bitmask <<= remainder; + flag <<= remainder; - if (arg0->u_4[index] & bitmask) + if (substruct4->flags[index] & flag) { - return 1; + return TRUE; } return FALSE; } -THUMB_FUNC u8 FUN_0202A744(struct Unk0202A744 *unk) +THUMB_FUNC u8 SaveStruct23_Substruct4_GetField_0xFE(struct SaveStruct23_Substruct4 *substruct4) { - return unk->u_FE; + return substruct4->u_FE; } -THUMB_FUNC u8 FUN_0202A74C(struct Unk0202A744 *unk) +THUMB_FUNC u8 SaveStruct23_Substruct4_GetField_0xFF(struct SaveStruct23_Substruct4 *substruct4) { - return unk->u_FF; + return substruct4->u_FF; } -THUMB_FUNC void FUN_0202A754(struct Unk0202A744 *dest, void *src, u8 arg2, u8 arg3) +THUMB_FUNC void SaveStruct23_Substruct4_SetSubstruct1(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct1 *substruct1, u8 arg2, u8 arg3) { - MI_CpuCopy8(src, &dest->u_104, sizeof(struct Unk0202A744_substruct1)); - dest->u_101 = arg2; - dest->u_100 = arg3; - dest->u_FE = 1; + MI_CpuCopy8(substruct1, &substruct4->substruct1, sizeof(struct SaveStruct23_Substruct4_Substruct1)*7); + substruct4->u_101 = arg2; + substruct4->u_100 = arg3; + substruct4->u_FE = 1; } -THUMB_FUNC void FUN_0202A784(struct Unk0202A744 *src, struct Unk0202A784 *dest) +THUMB_FUNC void FUN_0202A784(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dst) { - dest->u_0 = src->u_101; - dest->u_1 = src->u_100; + dst->u_0 = substruct4->u_101; + dst->u_1 = substruct4->u_100; } -THUMB_FUNC void FUN_0202A798(struct Unk0202A798_1 *arg0, struct Unk0202A798_2 *arg1, u32 arg2) +THUMB_FUNC void FUN_0202A798(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A798 *arg1, u32 arg2) { - struct Unk0202A798_substruct2 *var0 = &arg1->u_0; + struct Unk0202A798_substruct *unk_substruct = &arg1->u_0; u8 *var1 = arg1->u_30; - struct Unk0202A798_substruct1 *src = &arg0->u_104[arg2]; + struct SaveStruct23_Substruct4_Substruct1 *substruct4_substruct1 = &substruct4->substruct1[arg2]; struct MsgData *message; - var0->u_0 = 10000; - var0->u_4 = src->u_C9; + unk_substruct->u_0 = 10000; + unk_substruct->u_4 = substruct4_substruct1->u_C9; - if(src->u_C8_0) + if(substruct4_substruct1->u_C8_0) { message = NewMsgDataFromNarc(0, NARC_MSGDATA_MSG, 17, 11); - ReadMsgDataIntoU16Array(message, (u32) (22 + src->u_C8_1), var0->u_8); + ReadMsgDataIntoU16Array(message, (u32) (22 + substruct4_substruct1->u_C8_1), unk_substruct->u_8); DestroyMsgData(message); } else { - MI_CpuCopy8(src->u_A8, var0->u_8, 16); + MI_CpuCopy8(substruct4_substruct1->u_A8, unk_substruct->u_8, 16); } - MI_CpuCopy8(src->u_CA, var0->u_18, 8); - MI_CpuCopy8(src->u_D2, var0->u_20, 8); - MI_CpuCopy8(src->u_DA, var0->u_28, 8); - MI_CpuCopy8(src->u_0, var1, 168); + MI_CpuCopy8(substruct4_substruct1->u_CA, unk_substruct->u_18, 8); + MI_CpuCopy8(substruct4_substruct1->u_D2, unk_substruct->u_20, 8); + MI_CpuCopy8(substruct4_substruct1->u_DA, unk_substruct->u_28, 8); + MI_CpuCopy8(substruct4_substruct1->u_0, var1, 168); } -THUMB_FUNC void FUN_0202A838(struct Unk0202A744 *dest, void *src, u8 arg2, u8 arg3) +THUMB_FUNC void FUN_0202A838(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2, u8 arg2, u8 arg3) { - MI_CpuCopy8(src, &dest->u_740, sizeof(dest->u_740)); - dest->u_103 = arg2; - dest->u_102 = arg3; - dest->u_FF = 1; + MI_CpuCopy8(substruct4_substruct2, &substruct4->substruct2, sizeof(struct SaveStruct23_Substruct4_Substruct2)); + substruct4->u_103 = arg2; + substruct4->u_102 = arg3; + substruct4->u_FF = 1; } -THUMB_FUNC void FUN_0202A864(struct Unk0202A744 *src, struct Unk0202A784 *dest) +THUMB_FUNC void FUN_0202A864(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dst) { - dest->u_0 = src->u_103; - dest->u_1 = src->u_102; + dst->u_0 = substruct4->u_103; + dst->u_1 = substruct4->u_102; } -THUMB_FUNC struct Unk0202A744_substruct2 *FUN_0202A878(struct Unk0202A744 *src, u32 heap_id) +THUMB_FUNC struct SaveStruct23_Substruct4_Substruct2 *FUN_0202A878(struct SaveStruct23_Substruct4 *substruct4, u32 heap_id) { - struct Unk0202A744_substruct2 *dstp = AllocFromHeap(heap_id, sizeof(struct Unk0202A744_substruct2) /* 1020 */); - MI_CpuCopy8(&src->u_740, dstp, sizeof(struct Unk0202A744_substruct2)); - return dstp; + struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2 = AllocFromHeap(heap_id, sizeof(struct SaveStruct23_Substruct4_Substruct2) /* 1020 */); + MI_CpuCopy8(&substruct4->substruct2, substruct4_substruct2, sizeof(struct SaveStruct23_Substruct4_Substruct2)); + return substruct4_substruct2; } -THUMB_FUNC s32 FUN_0202A89C() +THUMB_FUNC s32 SaveStruct23_sizeof() { - return 0xD00; // 3328 + return sizeof(struct SaveStruct23); // 0xD00 (3328) } -THUMB_FUNC void FUN_0202A8A4(struct UnkSaveStruct_0202A5D4 *savStruct) +THUMB_FUNC void SaveStruct23_Init(struct SaveStruct23 *saveStruct23) { - FUN_0202A1E4(savStruct); - FUN_0202A1F0(&savStruct->u_3C); - FUN_0202A204(&savStruct->messages); - FUN_0202A230(&savStruct->u_1C4); + SaveStruct23_Substruct1_Init(&saveStruct23->substruct1); + SaveStruct23_Substruct2_Init(&saveStruct23->substruct2); + SaveStruct23_Messages_Init(&saveStruct23->messages); + SaveStruct23_Substruct4_Init(&saveStruct23->substruct4); } -THUMB_FUNC struct UnkSaveStruct_0202A5D4 *FUN_0202A8CC(struct SaveBlock2* sav2) +THUMB_FUNC struct SaveStruct23_Substruct1 *SaveStruct23_GetSubstruct1(struct SaveBlock2* sav2) { - return SavArray_get(sav2, 23); + return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct1; } -THUMB_FUNC struct Unk0202A1F0 *FUN_0202A8D8(struct SaveBlock2* sav2) +THUMB_FUNC struct SaveStruct23_Substruct2 *SaveStruct23_GetSubstruct2(struct SaveBlock2* sav2) { - struct UnkSaveStruct_0202A5D4 *data = SavArray_get(sav2, 23); - return &data->u_3C; + return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct2; } -THUMB_FUNC void *FUN_0202A8E4(struct SaveBlock2* sav2) +THUMB_FUNC struct SaveStruct23_Substruct4 *SaveStruct23_GetSubstruct4(struct SaveBlock2* sav2) { - struct UnkSaveStruct_0202A5D4 *data = SavArray_get(sav2, 23); - return &data->u_1C4; + return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct4; }
\ No newline at end of file diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c index cabd756e..a023ad83 100644 --- a/arm9/src/unk_0205FA2C.c +++ b/arm9/src/unk_0205FA2C.c @@ -1,5 +1,6 @@ #include "unk_0205FA2C.h" #include "unk_020337E8.h" +#include "unk_0202A1E0.h" extern void *UNK_020F96DC; extern void *UNK_020FA6E8; @@ -11,17 +12,9 @@ extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); extern u16 MOD06_02244660(struct UnkSavStruct80 *param0, u8 *param1); extern u16 MOD06_022446BC(struct UnkSavStruct80 *param0, u8 *param1); extern u16 MOD06_022446E0(struct UnkSavStruct80 *param0, u8 *param1); -extern void FUN_0202A5CC(u32 param0, u32 param1); -extern u32 FUN_0202A5D0(u32 param0); extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1); -extern u32 FUN_0202A8D8(struct SaveBlock2 *sav2); -extern u32 FUN_0202A578(u32 param0, u32 param1, u32 param2); extern u32 FUN_02026CC4(struct SaveBlock2 *sav2); extern u32 FUN_02025D94(u32 param0, u32 param1); -extern u32 FUN_0202A8CC(struct SaveBlock2 *sav2); -extern void FUN_0202A2C4(u32 param0, u32 param1, u32 *param2); -extern u32 FUN_0202A240(u32 param0, u32 param1, u32 param2); -extern int FUN_0202A538(u32 param0, u16 param1, u32 param2); const u8 UNK_020F7454[] = { 0x00, @@ -327,33 +320,33 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) return 0; } - u32 res2 = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); - u8 res4 = (u8)FUN_0202A578(res2, 0, 0); - u8 res5 = (u8)FUN_0202A578(res2, 1, 0); + BOOL flagD = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_GET); + BOOL flag0 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_GET); + BOOL flag1 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_GET); - u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); - u8 res7 = (u8)FUN_0202A578(res2, 2, 0); - u8 res8 = (u8)FUN_0202A578(res2, 3, 0); + BOOL flagE = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_GET); + BOOL flag2 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_GET); + BOOL flag3 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_GET); - if (res3 != 0 && res4 != 0 && res5 != 0) + if (flagD && flag0 && flag1) { return 0; } u32 res9 = FUN_02026CC4(sav2); - if (res3 == 0) + if (!flagD) { if (FUN_02025D94(res9, 0x55) != 0) { - FUN_0202A578(res2, 0xd, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_SET); return 1; } - if (res6 == 0) + if (!flagE) { - FUN_0202A578(res2, 0xe, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_SET); } return 4; @@ -364,36 +357,36 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) return 0; } - if (res4 == 0) + if (!flag0) { if (FUN_02025D94(res9, 0x56) != 0) { - FUN_0202A578(res2, 0, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_SET); return 2; } - if (res7 == 0) + if (!flag2) { - FUN_0202A578(res2, 2, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_SET); } return 4; } - if (res < 100 || res5 != 0) + if (res < 100 || flag1) { return 0; } if (FUN_02025D94(res9, 0x57) != 0) { - FUN_0202A578(res2, 1, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_SET); return 3; } - if (res8 == 0) + if (!flag3) { - FUN_0202A578(res2, 3, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_SET); } return 4; @@ -407,24 +400,24 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) return 0; } - u32 res2 = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); - u8 res4 = (u8)FUN_0202A578(res2, 0, 0); - u8 res5 = (u8)FUN_0202A578(res2, 1, 0); + BOOL flagD = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_GET); + BOOL flag0 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_GET); + BOOL flag1 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_GET); - u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); - u8 res7 = (u8)FUN_0202A578(res2, 2, 0); - u8 res8 = (u8)FUN_0202A578(res2, 3, 0); + BOOL flagE = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_GET); + BOOL flag2 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_GET); + BOOL flag3 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_GET); - if (res3 != 0 && res4 != 0 && res5 != 0) + if (flagD && flag0 && flag1) { return 0; } - if (res3 == 0) + if (!flagD) { - if (res6 != 0) + if (flagE) { return 4; } @@ -437,9 +430,9 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) return 0; } - if (res4 == 0) + if (!flag0) { - if (res7 != 0) + if (flag2) { return 5; } @@ -452,12 +445,12 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) return 0; } - if (res5 != 0) + if (flag1) { return 0; } - if (res8 != 0) + if (flag3) { return 6; } @@ -488,42 +481,42 @@ THUMB_FUNC u32 FUN_0206007C(struct SaveBlock2 *sav2) { u32 res = FUN_02060070(FUN_020287A4(FUN_0202881C(sav2))); - FUN_0202A5CC(FUN_0202A8D8(sav2), res); + SaveStruct23_Substruct2_SetField_0x4(SaveStruct23_GetSubstruct2(sav2), res); return res; } THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2) { - u32 res = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u32 res2 = FUN_02060070(FUN_0202A5D0(res)); + u32 res2 = FUN_02060070(SaveStruct23_Substruct2_GetField_0x4(saveStruct23_substruct2)); - FUN_0202A5CC(res, res2); + SaveStruct23_Substruct2_SetField_0x4(saveStruct23_substruct2, res2); u32 res3 = FUN_02060064(res2); - FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3); + SaveStruct23_Substruct1_SetField(SaveStruct23_GetSubstruct1(sav2), FIELD_0x28, &res3); return res3; } THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2) { - u32 res = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u32 res2 = FUN_0202A8CC(sav2); + struct SaveStruct23_Substruct1 *saveStruct23_substruct1 = SaveStruct23_GetSubstruct1(sav2); - u32 res3 = FUN_02060064(FUN_0202A5D0(res)); + u32 res3 = FUN_02060064(SaveStruct23_Substruct2_GetField_0x4(saveStruct23_substruct2)); int i = 0; - int res4 = FUN_0202A538(res, (u16)FUN_0202A240(res2, 0, 0), 0) * 0x18; + int res4 = SaveStruct23_Substruct2_SetField_0xC(saveStruct23_substruct2, (u16)SaveStruct23_Substruct1_GetField(saveStruct23_substruct1, FIELD_0x0_2, 0), DATA_GET) * 0x18; for (i = 0; i < res4; i++) { res3 = FUN_02060064(res3); } - FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3); + SaveStruct23_Substruct1_SetField(SaveStruct23_GetSubstruct1(sav2), FIELD_0x28, &res3); return res3; } diff --git a/include/unk_0202A1E0.h b/include/unk_0202A1E0.h index c07810c3..8c1e5da9 100644 --- a/include/unk_0202A1E0.h +++ b/include/unk_0202A1E0.h @@ -4,215 +4,206 @@ #include "mail_message.h" #include "save_block_2.h" -struct Unk0202A1F0 -{ - u8 filler[3]; - u8 u_3; -}; - -struct UnkMailStruct -{ - struct MailMessage messages[4]; -}; - -struct Unk0202A240 -{ - u8 u_0_0 : 1; // used - u8 u_0_1 : 1; // used - u8 u_0_2 : 3; // used - u8 u_0_5 : 3; // used - u8 u_1; - u8 u_2; // used - u8 u_3; // used - u16 u_4; // used - u16 u_6; // used - s32 u_8; // used, cpu copy 4 bytes - s32 u_C[7]; // used, cpu copy 28 bytes - u32 u_28; // used - s32 u_2C[4]; // used, cpu copy 16 bytes -}; +typedef enum +{ + DATA_GET = 0, + DATA_SET, + DATA_RESET, + DATA_INCREMENT, + DATA_DECREMENT, + DATA_ADD, + DATA_SUBSTRACT +} +DataSetMode; + +typedef enum +{ + FIELD_0x0_2 = 0, + FIELD_0x2, + FIELD_0x3, + FIELD_0x4, + FIELD_0x6, + FIELD_0x8, + FIELD_0x2C, + FIELD_flag0, + FIELD_0xC, + FIELD_0x0_5, + FIELD_0x28, +} +SaveStruct23_Substruct1_Field; + +struct SaveStruct23_Substruct1 +{ + /* 0x000 */ u8 flag0 : 1; + u8 flag1 : 1; + u8 u_0_2 : 3; + u8 u_0_5 : 3; + /* 0x001 */ u8 u_1; + /* 0x002 */ u8 u_2; + /* 0x003 */ u8 u_3; + /* 0x004 */ u16 u_4; + /* 0x006 */ u16 u_6; + /* 0x008 */ s32 u_8; + /* 0x00C */ s32 u_C[7]; + /* 0x028 */ u32 u_28; + /* 0x02C */ s32 u_2C[4]; +}; // total size = 0x3C (60) + +struct SaveStruct23_Substruct2 +{ + /* 0x000 */ u16 u_0; + /* 0x002 */ u8 u_2; + /* 0x003 */ u8 u_3; + /* 0x004 */ u32 u_4; + + union + { + struct + { + /* 0x008 */ u16 flag0:1; + u16 flag1:1; + u16 flag2:1; + u16 flag3:1; + u16 flag4:1; + u16 filler_1:11; + }; + /* 0x008 */ u16 flags; + }; + /* 0x00A */ u8 filler_2[2]; + /* 0x00C */ u16 u_C[5]; + /* 0x016 */ u16 u_16; + /* 0x018 */ u8 u_18[168]; + /* 0x0C0 */ u8 u_C0[168]; +}; // total size 0x168 (360) + +struct SaveStruct23_Messages +{ + /* 0x000 */ struct MailMessage messages[4]; +}; // total size 0x020 (32) + +struct SaveStruct23_Substruct4_Substruct1 +{ + /* 0x000 */ u8 u_0[168]; + /* 0x0A8 */ u8 u_A8[16]; + /* 0x0B8 */ u8 filler_1[16]; + /* 0x0C8 */ u8 u_C8_0:1; + u8 u_C8_1:1; + u8 filler_2:6; + /* 0x0C8 */ u8 u_C9; + /* 0x0CA */ u16 u_CA[4]; + /* 0x0D2 */ u16 u_D2[4]; + /* 0x0DA */ u16 u_DA[4]; + /* 0x0E2 */ u8 filler_3[2]; +}; // total size 0xE4 (228) -struct Unk0202A3B4 +struct SaveStruct23_Substruct4_Substruct2 { - u16 u_0; // used - u8 filler_0[6]; - u16 filler_1 : 4; - u16 u_8_4 : 1; // used + /* 0x00 */ u8 u_0[1020]; }; -struct Unk0202A40C +struct SaveStruct23_Substruct4 { - u16 filler_0; - u8 u_2; // used - u8 filler_1[5]; - u16 filler_2 : 4; - u16 u_8_4 : 1; // used -}; + /* 0x000 */ u32 u_0; + /* 0x004 */ u8 flags[250]; + /* 0x0FE */ u8 u_FE; + /* 0x0FF */ u8 u_FF; + /* 0x100 */ u8 u_100; + /* 0x101 */ u8 u_101; + /* 0x102 */ u8 u_102; + /* 0x103 */ u8 u_103; + /* 0x104 */ struct SaveStruct23_Substruct4_Substruct1 substruct1[7]; + /* 0x740 */ struct SaveStruct23_Substruct4_Substruct2 substruct2; +}; // total size 0xB3C (2876) -struct Unk0202A444 +struct SaveStruct23 // Struct fetched with SavArray_get(sav2, 23) { - u8 filler_0[3]; - u8 u_3; // used -}; + /* 0x000 */ struct SaveStruct23_Substruct1 substruct1; + /* 0x03C */ struct SaveStruct23_Substruct2 substruct2; + /* 0x1A4 */ struct SaveStruct23_Messages messages; + /* 0x1C4 */ struct SaveStruct23_Substruct4 substruct4; +}; // total size = 0xD00 (3328) struct Unk0202A4B8 { - u8 filler[2]; - u8 u_2; // used - u8 u_3; // used - u16 u_4; // used - u16 u_6; // used - u16 filler_1[2]; - u16 u_array_C[5]; // used - u16 u_16; // used - u16 u_18; // used -}; - -struct Unk0202A578 -{ - u8 filler[8]; - u16 u_8; + /* 0x000 */ u8 filler_1[2]; + /* 0x002 */ u8 u_2; + /* 0x003 */ u8 u_3; + /* 0x004 */ u16 u_4; + /* 0x006 */ u16 u_6; }; -struct Unk0202A5CC -{ - u32 filler; - u32 u_4; -}; - - -struct UnkSaveStruct_0202A5D4 -{ - u32 filler[15]; - struct Unk0202A1F0 u_3C; - u32 filler1[89]; - struct UnkMailStruct messages; - u32 u_1C4; -}; - -typedef struct Unk0202A670 -{ - u32 u_0; // used - u8 u_4[250]; // used -} -Unk0202A670; - typedef struct Unk0202A68C { - u32 u_0; // used - u32 u_4; // used - u32 u_8; // used - u32 u_C; // used -} + /* 0x000 */ u32 u_0; + /* 0x004 */ u32 u_4; + /* 0x008 */ u32 u_8; + /* 0x00C */ u32 u_C; +} Unk0202A68C; // total size 0x10 (16) -struct Unk0202A744_substruct1 -{ - u8 data[0x63c]; -}; // total size 0x63C (1596) - -struct Unk0202A744_substruct2 -{ - u8 data[1020]; -}; // total size 0x3FC (1020) - -struct Unk0202A744 -{ - u8 filler[254]; - u8 u_FE; - u8 u_FF; - u8 u_100; - u8 u_101; - u8 u_102; - u8 u_103; - struct Unk0202A744_substruct1 u_104; - struct Unk0202A744_substruct2 u_740; -}; - struct Unk0202A784 { - u8 u_0; - u8 u_1; -}; - -struct Unk0202A798_substruct1 -{ - u8 u_0[168]; - u8 u_A8[16]; - u16 filler_2[8]; - u8 u_C8_0:1; - u8 u_C8_1:1; - u8 u_C8_filler:6; - u8 u_C9; - u16 u_CA[4]; - u16 u_D2[4]; - u16 u_DA[4]; - u8 filler_3[2]; -}; // total size 0xE4 (228) - -struct Unk0202A798_1 -{ - u8 filler[260]; - struct Unk0202A798_substruct1 u_104[4]; + /* 0x000 */ u8 u_0; + /* 0x001 */ u8 u_1; }; -struct Unk0202A798_substruct2 +struct Unk0202A798_substruct { - u32 u_0; - u16 u_4; - u8 filler_1[2]; - u16 u_8[8]; - u16 u_18[4]; - u16 u_20[4]; - u16 u_28[4]; + /* 0x000 */ u32 u_0; + /* 0x004 */ u16 u_4; + /* 0x006 */ u8 filler_1[2]; + /* 0x008 */ u16 u_8[8]; + /* 0x018 */ u16 u_18[4]; + /* 0x020 */ u16 u_20[4]; + /* 0x028 */ u16 u_28[4]; }; // total size 0x30 (48) -struct Unk0202A798_2 +struct Unk0202A798 { - struct Unk0202A798_substruct2 u_0; - u8 u_30[168]; + /* 0x000 */ struct Unk0202A798_substruct u_0; + /* 0x030 */ u8 u_30[168]; }; -s32 FUN_0202A1E0(); -void FUN_0202A1E4(void *dst); -void FUN_0202A1F0(struct Unk0202A1F0 *unk); -void FUN_0202A204(struct UnkMailStruct *unk); -void FUN_0202A230(void *dst); -u32 FUN_0202A240(struct Unk0202A240 *unk, u32 arg1, void *dst); -void FUN_0202A2C4(struct Unk0202A240 *dst, u32 arg1, void *src); -void FUN_0202A36C(struct Unk0202A240 *unk, s32 arg1, s32 arg2, s32 arg3); -u8 FUN_0202A398(struct Unk0202A240 *unk); -void FUN_0202A3A0(struct Unk0202A240 *unk, u16 arg1); -u16 FUN_0202A3B4(struct Unk0202A3B4 *unk, u16 arg1, s32 arg2); -u8 FUN_0202A40C(struct Unk0202A40C *unk, s32 arg1); -u8 FUN_0202A444(struct Unk0202A444 *unk, s32 arg1); -void FUN_0202A474(void *dst, s32 arg1, const void *src); -void FUN_0202A498(const void *src, s32 arg1, void *dst); -u16 FUN_0202A4B8(struct Unk0202A4B8 *arg0, struct Unk0202A4B8 *arg1); -u16 FUN_0202A520(struct Unk0202A4B8 *unk); -u8 FUN_0202A524(struct Unk0202A4B8 *unk); -u16 FUN_0202A538(struct Unk0202A4B8 *unk, s32 arg1, s32 arg2); -BOOL FUN_0202A578(struct Unk0202A578 *arg0, u16 arg1, u32 arg2); -void FUN_0202A5CC(struct Unk0202A5CC *unk, u32 arg1); -u32 FUN_0202A5D0(struct Unk0202A5CC *unk); -void FUN_0202A5D4(struct SaveBlock2 *sav2, u32 arg1, struct MailMessage *arg2); -struct MailMessage *FUN_0202A5F4(struct SaveBlock2 *sav2, u32 arg1); -void FUN_0202A60C(struct Unk0202A670 *arg0, u8 arg1, u8 arg2, struct Unk0202A68C *arg3); -void FUN_0202A670(struct Unk0202A670 *arg0); -BOOL FUN_0202A68C(struct Unk0202A68C *arg0, struct Unk0202A68C *arg1); -BOOL FUN_0202A6B4(struct Unk0202A670 *arg0, u8 arg1, u8 arg2, struct Unk0202A68C *arg3); -u8 FUN_0202A744(struct Unk0202A744 *unk); -u8 FUN_0202A74C(struct Unk0202A744 *unk); -void FUN_0202A754(struct Unk0202A744 *dest, void *src, u8 arg2, u8 arg3); -void FUN_0202A784(struct Unk0202A744 *src, struct Unk0202A784 *ptr1); -void FUN_0202A798(); -void FUN_0202A838(struct Unk0202A744 *dest, void *src, u8 arg2, u8 arg3); -void FUN_0202A864(struct Unk0202A744 *src, struct Unk0202A784 *dest); -struct Unk0202A744_substruct2 *FUN_0202A878(struct Unk0202A744 *src, u32 head_id); -s32 FUN_0202A89C(); -void FUN_0202A8A4(struct UnkSaveStruct_0202A5D4 *savStruct); -struct UnkSaveStruct_0202A5D4 *FUN_0202A8CC(struct SaveBlock2* sav2); -struct Unk0202A1F0 *FUN_0202A8D8(struct SaveBlock2* sav2); -void *FUN_0202A8E4(struct SaveBlock2* sav2); +s32 SaveStruct23_Substruct4_Substruct1_sizeof(); +void SaveStruct23_Substruct1_Init(struct SaveStruct23_Substruct1 *substruct1); +void SaveStruct23_Substruct2_Init(struct SaveStruct23_Substruct2 *substruct2); +void SaveStruct23_Messages_Init(struct SaveStruct23_Messages *mailStruct); +void SaveStruct23_Substruct4_Init(struct SaveStruct23_Substruct4 *substruct4); +u32 SaveStruct23_Substruct1_GetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *dst); +void SaveStruct23_Substruct1_SetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *value); +void FUN_0202A36C(struct SaveStruct23_Substruct1 *substruct1, s32 arg1, s32 arg2, s32 arg3); +BOOL SaveStruct23_Substruct1_GetFlag1(struct SaveStruct23_Substruct1 *substruct1); +void SaveStruct23_Substruct1_SetFlag1(struct SaveStruct23_Substruct1 *substruct1, BOOL arg1); +u16 SaveStruct23_Substruct2_SetField_0x0(struct SaveStruct23_Substruct2 *substruct2, u16 value, DataSetMode mode); +u8 SaveStruct23_Substruct2_SetField_0x2(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode); +u8 SaveStruct23_Substruct2_SetField_0x3(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode); +void SaveStruct23_Substruct2_SetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *src); +void SaveStruct23_Substruct2_GetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *dst); +u16 SaveStruct23_Substruct2_SetField_0x16(struct SaveStruct23_Substruct2 *substruct2, struct Unk0202A4B8 *arg1); +u16 SaveStruct23_Substruct2_GetField_0x16(struct SaveStruct23_Substruct2 *substruct2); +u8 FUN_0202A524(struct SaveStruct23_Substruct2 *substruct2); +u16 SaveStruct23_Substruct2_SetField_0xC(struct SaveStruct23_Substruct2 *substruct2, u16 arg1, DataSetMode mode); +BOOL SaveStruct23_Substruct2_SetFlag(struct SaveStruct23_Substruct2 *substruct2, u16 flagNumber, DataSetMode mode); +void SaveStruct23_Substruct2_SetField_0x4(struct SaveStruct23_Substruct2 *substruct2, u32 arg1); +u32 SaveStruct23_Substruct2_GetField_0x4(struct SaveStruct23_Substruct2 *substruct2); +void SaveStruct23_SetMessage(struct SaveBlock2 *sav2, u32 index, struct MailMessage *message); +struct MailMessage *SaveStruct23_GetMessage(struct SaveBlock2 *sav2, u32 index); +void SaveStruct23_Substruct4_SetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3); +void SaveStruct23_Substruct4_ClearArrayFlags(struct SaveStruct23_Substruct4 *substruct4); +BOOL StructUnk0202A68C_Compare(struct Unk0202A68C *struct1, struct Unk0202A68C *struct2); +BOOL SaveStruct23_Substruct4_GetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3); +u8 SaveStruct23_Substruct4_GetField_0xFE(struct SaveStruct23_Substruct4 *substruct4); +u8 SaveStruct23_Substruct4_GetField_0xFF(struct SaveStruct23_Substruct4 *substruct4); +void SaveStruct23_Substruct4_SetSubstruct1(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct1 *substruct4_substruct1, u8 arg2, u8 arg3); +void FUN_0202A784(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dest); +void FUN_0202A798(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A798 *arg1, u32 arg2); +void FUN_0202A838(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2, u8 arg2, u8 arg3); +void FUN_0202A864(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dest); +struct SaveStruct23_Substruct4_Substruct2 *FUN_0202A878(struct SaveStruct23_Substruct4 *substruct4, u32 heap_id); +s32 SaveStruct23_sizeof(); +void SaveStruct23_Init(struct SaveStruct23 *saveStruct23); +struct SaveStruct23_Substruct1 *SaveStruct23_GetSubstruct1(struct SaveBlock2* sav2); +struct SaveStruct23_Substruct2 *SaveStruct23_GetSubstruct2(struct SaveBlock2* sav2); +struct SaveStruct23_Substruct4 *SaveStruct23_GetSubstruct4(struct SaveBlock2* sav2); #endif //POKEDIAMOND_UNK_0202A1E0_H
\ No newline at end of file |