diff options
Diffstat (limited to 'arm9')
-rw-r--r-- | arm9/Makefile | 1 | ||||
-rw-r--r-- | arm9/arm9.lcf | 2 | ||||
-rw-r--r-- | arm9/asm/scrcmd_4.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_020250A4.s | 12 | ||||
-rw-r--r-- | arm9/asm/unk_02060CCC.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0206E5B4.s | 12 | ||||
-rw-r--r-- | arm9/asm/unk_02085258.s | 146 | ||||
-rw-r--r-- | arm9/global.inc | 16 | ||||
-rw-r--r-- | arm9/lib/syscall/_svc_mw.s | 76 | ||||
-rw-r--r-- | arm9/modules/68/asm/module_68.s | 36 | ||||
-rw-r--r-- | arm9/modules/73/asm/module_73.s | 6 | ||||
-rw-r--r-- | arm9/src/nutdata.c | 78 | ||||
-rw-r--r-- | arm9/src/pokemon.c | 2 | ||||
-rw-r--r-- | arm9/src/waza.c | 46 |
14 files changed, 185 insertions, 252 deletions
diff --git a/arm9/Makefile b/arm9/Makefile index 9c1d4f9a..cb8eba06 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -305,7 +305,6 @@ DUMMY != mkdir -p $(ALL_DIRS) %.pal: ; # Included files -baserom.%: ; %.h: ; %.inc: ; diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 5612df2a..8150b54e 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -400,7 +400,7 @@ SECTIONS { unk_020842D0.o (.text) unk_020842DC.o (.text) unk_020851B8.o (.text) - unk_02085258.o (.text) + nutdata.o (.text) unk_02085338.o (.text) unk_020854E0.o (.text) unk_020859C0.o (.text) diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s index 078e899f..f8ec8636 100644 --- a/arm9/asm/scrcmd_4.s +++ b/arm9/asm/scrcmd_4.s @@ -790,7 +790,7 @@ FUN_02040D04: ; 0x02040D04 lsl r0, r5, #0x10 lsr r0, r0, #0x10 mov r1, #0x20 - bl FUN_020852E8 + bl GetNutName add r5, r0, #0x0 cmp r4, #0x2 bhs _02040D5A diff --git a/arm9/asm/unk_020250A4.s b/arm9/asm/unk_020250A4.s index 8a0f16b8..76e0e8ce 100644 --- a/arm9/asm/unk_020250A4.s +++ b/arm9/asm/unk_020250A4.s @@ -78,7 +78,7 @@ FUN_02025128: ; 0x02025128 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 - bl FUN_02085258 + bl OpenNutsDataNarc str r0, [sp, #0x0] add r0, r7, #0x0 mov r1, #0xc0 @@ -90,18 +90,18 @@ _02025142: ldr r0, [sp, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 - bl FUN_02085264 + bl ReadNutDataFromNarc add r4, r0, #0x0 mov r1, #0x3 - bl FUN_02085290 + bl GetNutAttr strb r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x4 - bl FUN_02085290 + bl GetNutAttr strb r0, [r5, #0x1] add r0, r4, #0x0 mov r1, #0x2 - bl FUN_02085290 + bl GetNutAttr strb r0, [r5, #0x2] add r0, r4, #0x0 bl FreeToHeap @@ -110,7 +110,7 @@ _02025142: cmp r6, #0x40 blt _02025142 ldr r0, [sp, #0x0] - bl FUN_0208526C + bl CloseNutsDataNarc ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index 67728262..15021367 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -1535,7 +1535,7 @@ FUN_02061750: ; 0x02061750 sub r0, #0x95 lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl FUN_020852E8 + bl GetNutName add r4, r0, #0x0 mov r1, #0x1 str r1, [sp, #0x0] diff --git a/arm9/asm/unk_0206E5B4.s b/arm9/asm/unk_0206E5B4.s index 5cba23c1..f7c743f6 100644 --- a/arm9/asm/unk_0206E5B4.s +++ b/arm9/asm/unk_0206E5B4.s @@ -723,21 +723,21 @@ _0206E72C: ldr r1, _0206E75C ; =UNK_020F85B4 lsl r3, r3, #0x3 ldrh r1, [r1, r3] - mov r0, #0xf + mov r0, #0xf ; NARC_ITEMTOOL_ITEMDATA_ITEM_DATA bl AllocAndReadWholeNarcMemberByIdPair pop {r3, pc} _0206E73A: ldr r1, _0206E760 ; =UNK_020F85B4 + 2 lsl r3, r3, #0x3 ldrh r1, [r1, r3] - mov r0, #0x10 + mov r0, #0x10 ; NARC_ITEMTOOL_ITEMDATA_ITEM_ICON bl AllocAndReadWholeNarcMemberByIdPair pop {r3, pc} _0206E748: ldr r1, _0206E764 ; =UNK_020F85B4 + 4 lsl r3, r3, #0x3 ldrh r1, [r1, r3] - mov r0, #0x10 + mov r0, #0x10 ; NARC_ITEMTOOL_ITEMDATA_ITEM_ICON bl AllocAndReadWholeNarcMemberByIdPair pop {r3, pc} _0206E756: @@ -756,7 +756,7 @@ FUN_0206E768: ; 0x0206E768 add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x1 - mov r1, #0x1a + mov r1, #0x1a ; NARC_MSGDATA_MSG lsl r2, r2, #0x2 bl NewMsgDataFromNarc add r6, r0, #0x0 @@ -776,7 +776,7 @@ FUN_0206E790: ; 0x0206E790 add r4, r1, #0x0 ldr r2, _0206E7B4 ; =0x00000157 mov r0, #0x1 - mov r1, #0x1a + mov r1, #0x1a ; NARC_MSGDATA_MSG bl NewMsgDataFromNarc add r6, r0, #0x0 add r1, r4, #0x0 @@ -1376,7 +1376,7 @@ FUN_0206EB50: ; 0x0206EB50 mul r1, r0 str r1, [sp, #0x0] mov r1, #0x0 - mov r0, #0xf + mov r0, #0xf ; NARC_ITEMTOOL_ITEMDATA_ITEM_DATA add r2, r4, #0x0 add r3, r1, #0x0 bl AllocAndReadFromNarcMemberByIdPair diff --git a/arm9/asm/unk_02085258.s b/arm9/asm/unk_02085258.s deleted file mode 100644 index ba69aea4..00000000 --- a/arm9/asm/unk_02085258.s +++ /dev/null @@ -1,146 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02085258 -FUN_02085258: ; 0x02085258 - ldr r3, _02085260 ; =NARC_ctor - add r1, r0, #0x0 - mov r0, #0x44 - bx r3 - .balign 4 -_02085260: .word NARC_ctor - - thumb_func_start FUN_02085264 -FUN_02085264: ; 0x02085264 - ldr r3, _02085268 ; =NARC_AllocAndReadWholeMember - bx r3 - .balign 4 -_02085268: .word NARC_AllocAndReadWholeMember - - thumb_func_start FUN_0208526C -FUN_0208526C: ; 0x0208526C - ldr r3, _02085270 ; =NARC_dtor - bx r3 - .balign 4 -_02085270: .word NARC_dtor - - thumb_func_start FUN_02085274 -FUN_02085274: ; 0x02085274 - add r3, r0, #0x0 - add r2, r1, #0x0 - add r1, r3, #0x0 - ldr r3, _02085280 ; =AllocAndReadWholeNarcMemberByIdPair - mov r0, #0x44 - bx r3 - .balign 4 -_02085280: .word AllocAndReadWholeNarcMemberByIdPair - - thumb_func_start FUN_02085284 -FUN_02085284: ; 0x02085284 - ldr r3, _0208528C ; =FUN_02085274 - sub r0, #0x95 - bx r3 - nop -_0208528C: .word FUN_02085274 - - thumb_func_start FUN_02085290 -FUN_02085290: ; 0x02085290 - cmp r1, #0xa - bhi _020852E2 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_020852A0: ; jump table (using 16-bit offset) - .short _020852B6 - _020852A0 - 2; case 0 - .short _020852BA - _020852A0 - 2; case 1 - .short _020852BE - _020852A0 - 2; case 2 - .short _020852C2 - _020852A0 - 2; case 3 - .short _020852C6 - _020852A0 - 2; case 4 - .short _020852CA - _020852A0 - 2; case 5 - .short _020852CE - _020852A0 - 2; case 6 - .short _020852D2 - _020852A0 - 2; case 7 - .short _020852D6 - _020852A0 - 2; case 8 - .short _020852DA - _020852A0 - 2; case 9 - .short _020852DE - _020852A0 - 2; case 10 -_020852B6: - ldrh r0, [r0, #0x0] - bx lr -_020852BA: - ldrb r0, [r0, #0x2] - bx lr -_020852BE: - ldrb r0, [r0, #0x3] - bx lr -_020852C2: - ldrb r0, [r0, #0x4] - bx lr -_020852C6: - ldrb r0, [r0, #0x5] - bx lr -_020852CA: - ldrb r0, [r0, #0x6] - bx lr -_020852CE: - ldrb r0, [r0, #0x7] - bx lr -_020852D2: - ldrb r0, [r0, #0x8] - bx lr -_020852D6: - ldrb r0, [r0, #0x9] - bx lr -_020852DA: - ldrb r0, [r0, #0xa] - bx lr -_020852DE: - ldrb r0, [r0, #0xb] - bx lr -_020852E2: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_020852E8 -FUN_020852E8: ; 0x020852E8 - push {r3-r5, lr} - ldr r2, _0208530C ; =0x00000175 - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r0, #0x1 - mov r1, #0x1a - bl NewMsgDataFromNarc - add r5, r0, #0x0 - add r1, r4, #0x0 - bl FUN_0200A914 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl DestroyMsgData - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_0208530C: .word 0x00000175 - - thumb_func_start FUN_02085310 -FUN_02085310: ; 0x02085310 - push {r3-r5, lr} - mov r2, #0x5d - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r0, #0x1 - mov r1, #0x1a - lsl r2, r2, #0x2 - bl NewMsgDataFromNarc - add r5, r0, #0x0 - add r1, r4, #0x0 - bl FUN_0200A914 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl DestroyMsgData - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 diff --git a/arm9/global.inc b/arm9/global.inc index 810a8074..91b0ca46 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -5282,14 +5282,14 @@ .extern FUN_020851F8 .extern FUN_02085224 .extern FUN_0208524C -.extern FUN_02085258 -.extern FUN_02085264 -.extern FUN_0208526C -.extern FUN_02085274 -.extern FUN_02085284 -.extern FUN_02085290 -.extern FUN_020852E8 -.extern FUN_02085310 +.extern OpenNutsDataNarc +.extern ReadNutDataFromNarc +.extern CloseNutsDataNarc +.extern LoadNutDataSingle +.extern LoadNutDataSingleByItemId +.extern GetNutAttr +.extern GetNutName +.extern GetNutDesc .extern FUN_02085338 .extern FUN_020853A8 .extern FUN_020853B0 diff --git a/arm9/lib/syscall/_svc_mw.s b/arm9/lib/syscall/_svc_mw.s index c1e36b4b..d449ee58 100644 --- a/arm9/lib/syscall/_svc_mw.s +++ b/arm9/lib/syscall/_svc_mw.s @@ -7,115 +7,115 @@ ; Secure area .space 0x800 - non_word_aligned_thumb_func_start SVC_SoftReset + .global SVC_SoftReset + .thumb SVC_SoftReset: swi 0 bx lr - thumb_func_end SVC_SoftReset - non_word_aligned_thumb_func_start SVC_WaitByLoop + .global SVC_WaitByLoop + .thumb SVC_WaitByLoop: swi 3 bx lr - thumb_func_end SVC_WaitByLoop - non_word_aligned_thumb_func_start SVC_WaitIntr + .global SVC_WaitIntr + .thumb SVC_WaitIntr: mov r2, #0 swi 4 bx lr - thumb_func_end SVC_WaitIntr - non_word_aligned_thumb_func_start SVC_WaitVBlankIntr + .global SVC_WaitVBlankIntr + .thumb SVC_WaitVBlankIntr: mov r2, #0 swi 5 bx lr - thumb_func_end SVC_WaitVBlankIntr - non_word_aligned_thumb_func_start SVC_Halt + .global SVC_Halt + .thumb SVC_Halt: swi 6 bx lr - thumb_func_end SVC_Halt - non_word_aligned_thumb_func_start SVC_Div + .global SVC_Div + .thumb SVC_Div: swi 9 bx lr - thumb_func_end SVC_Div - non_word_aligned_thumb_func_start SVC_DimRem + .global SVC_DivRem + .thumb SVC_DivRem: swi 9 add r0, r1, #0 bx lr - thumb_func_end SVC_DivRem - non_word_aligned_thumb_func_start SVC_CpuSet + .global SVC_CpuSet + .thumb SVC_CpuSet: swi 11 bx lr - thumb_func_end SVC_CpuSet - non_word_aligned_thumb_func_start SVC_CpuFastSet -SVC_CpuFastSet: + .global SVC_CpuSetFast + .thumb +SVC_CpuSetFast: swi 12 bx lr - thumb_func_end SVC_CpuFastSet - non_word_aligned_thumb_func_start SVC_Sqrt + .global SVC_Sqrt + .thumb SVC_Sqrt: swi 13 bx lr - thumb_func_end SVC_Sqrt - non_word_aligned_thumb_func_start SVC_GetCRC16 + .global SVC_GetCRC16 + .thumb SVC_GetCRC16: swi 14 bx lr - thumb_func_end SVC_GetCRC16 - non_word_aligned_thumb_func_start IsMemExpanded -IsMemExpanded: + .global IsMmemExpanded + .thumb +IsMmemExpanded: swi 15 bx lr - thumb_func_end IsMemExpanded - non_word_aligned_thumb_func_start SVC_UnpackBits + .global SVC_UnpackBits + .thumb SVC_UnpackBits: swi 16 bx lr - thumb_func_end SVC_UnpackBits - non_word_aligned_thumb_func_start SVC_UncompressLZ8 + .global SVC_UncompressLZ8 + .thumb SVC_UncompressLZ8: swi 17 bx lr - thumb_func_end SVC_UncompressLZ8 - non_word_aligned_thumb_func_start SVC_UncompressLZ16FromDevice + .global SVC_UncompressLZ16FromDevice + .thumb SVC_UncompressLZ16FromDevice: swi 18 bx lr - thumb_func_end SVC_UncompressLZ16FromDevice - non_word_aligned_thumb_func_start SVC_UncompressHuffmanFromDevice + .global SVC_UncompressHuffmanFromDevice + .thumb SVC_UncompressHuffmanFromDevice: swi 19 bx lr - thumb_func_end SVC_UncompressHuffmanFromDevice - non_word_aligned_thumb_func_start SVC_UncompressRL8 + .global SVC_UncompressRL8 + .thumb SVC_UncompressRL8: swi 20 bx lr - thumb_func_end SVC_UncompressRL8 - non_word_aligned_thumb_func_start SVC_UncompressRL16FromDevice + .global SVC_UncompressRL16FromDevice + .thumb SVC_UncompressRL16FromDevice: swi 21 bx lr - thumb_func_end SVC_UncompressRL16FromDevice .balign 4, 0 ; Don't pad with nop diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index 08507c53..fb926299 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -56,7 +56,7 @@ MOD68_021D74E0: ; 0x021D74E0 ldr r0, [r5, r0] mov r1, #0x24 ldrb r0, [r0, #8] - bl FUN_02085274 + bl LoadNutDataSingle mov r1, #0x7f lsl r1, r1, #2 str r0, [r5, r1] @@ -720,7 +720,7 @@ MOD68_021D7A18: ; 0x021D7A18 ldr r0, [r5, r0] mov r1, #0x24 ldrb r0, [r0, #8] - bl FUN_020852E8 + bl GetNutName add r5, r0, #0 mov r1, #0 str r1, [sp] @@ -758,7 +758,7 @@ MOD68_021D7AE4: ; 0x021D7AE4 ldr r0, [r4, r0] mov r1, #0x24 ldrb r0, [r0, #8] - bl FUN_02085310 + bl GetNutDesc mov r1, #0 add r4, r0, #0 str r1, [sp] @@ -831,7 +831,7 @@ MOD68_021D7B80: ; 0x021D7B80 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 - bl FUN_02085290 + bl GetNutAttr add r1, r0, #0 beq _021D7BA4 sub r1, r1, #1 @@ -912,7 +912,7 @@ MOD68_021D7C28: ; 0x021D7C28 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 - bl FUN_02085290 + bl GetNutAttr mov r1, #0xfa lsl r1, r1, #2 mul r1, r0 @@ -1381,7 +1381,7 @@ MOD68_021D7F98: ; 0x021D7F98 ldr r0, [r4, r0] mov r1, #0x24 ldrb r0, [r0, #8] - bl FUN_02085274 + bl LoadNutDataSingle mov r1, #0x7f lsl r1, r1, #2 str r0, [r4, r1] @@ -2159,7 +2159,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #5 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 mov r1, #0x65 lsl r1, r1, #2 @@ -2172,7 +2172,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #6 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 ldr r1, _021D8860 ; =0x0000019A lsl r2, r2, #0x18 @@ -2184,7 +2184,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #7 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 ldr r1, _021D8868 ; =0x000001A6 lsl r2, r2, #0x18 @@ -2202,7 +2202,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #9 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 mov r1, #0x6b lsl r1, r1, #2 @@ -2215,7 +2215,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #5 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 ldr r1, _021D8878 ; =0x000001B2 lsl r2, r2, #0x18 @@ -2232,7 +2232,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #8 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 mov r1, #0x6e lsl r1, r1, #2 @@ -2245,7 +2245,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #9 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 mov r1, #0x71 lsl r1, r1, #2 @@ -2263,7 +2263,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #7 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 ldr r1, _021D8898 ; =0x000001D6 lsl r2, r2, #0x18 @@ -2275,7 +2275,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #8 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 mov r1, #0x1d lsl r1, r1, #4 @@ -2294,7 +2294,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #6 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 ldr r1, _021D88A8 ; =0x000001E2 lsl r2, r2, #0x18 @@ -2306,7 +2306,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #7 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 ldr r1, _021D88B0 ; =0x000001EE lsl r2, r2, #0x18 @@ -2318,7 +2318,7 @@ MOD68_021D85F4: ; 0x021D85F4 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #8 - bl FUN_02085290 + bl GetNutAttr add r2, r0, #0 mov r1, #0x7a lsl r1, r1, #2 diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index 2ea96e13..030457b3 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -9161,7 +9161,7 @@ _021DBA56: lsl r4, r0, #2 ldr r0, [sp, #0x24] ldr r0, [r0, r4] - bl FUN_02085284 + bl LoadNutDataSingleByItemId mov r3, #0 add r7, r0, #0 add r2, r3, #0 @@ -9196,7 +9196,7 @@ _021DBAA0: _021DBAA4: add r0, r7, #0 add r1, r5, #5 - bl FUN_02085290 + bl GetNutAttr ldr r1, [r4] add r5, r5, #1 add r0, r1, r0 @@ -9205,7 +9205,7 @@ _021DBAA4: blt _021DBAA4 add r0, r7, #0 mov r1, #0xa - bl FUN_02085290 + bl GetNutAttr ldr r1, [sp, #0x20] add r0, r1, r0 str r0, [sp, #0x20] diff --git a/arm9/src/nutdata.c b/arm9/src/nutdata.c new file mode 100644 index 00000000..09542052 --- /dev/null +++ b/arm9/src/nutdata.c @@ -0,0 +1,78 @@ +#include "global.h" +#include "filesystem.h" +#include "itemtool.h" +#include "msg_data.h" + +#pragma thumb on + +NARC * OpenNutsDataNarc(u32 heap_id) +{ + return NARC_ctor(NARC_ITEMTOOL_ITEMDATA_NUTS_DATA, heap_id); +} + +struct NutData * ReadNutDataFromNarc(NARC * narc, u32 berry_idx, u32 heap_id) +{ + return NARC_AllocAndReadWholeMember(narc, berry_idx, heap_id); +} + +void CloseNutsDataNarc(NARC * narc) +{ + NARC_dtor(narc); +} + +struct NutData * LoadNutDataSingle(u32 berry_idx, u32 heap_id) +{ + return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_NUTS_DATA, berry_idx, heap_id); +} + +struct NutData * LoadNutDataSingleByItemId(u32 item_id, u32 heap_id) +{ + return LoadNutDataSingle(item_id - FIRST_BERRY_IDX, heap_id); +} + +u32 GetNutAttr(struct NutData * nut, u32 attr) +{ + switch (attr) + { + case 0: + return nut->unk0; + case 1: + return nut->unk2; + case 2: + return nut->unk3; + case 3: + return nut->unk4; + case 4: + return nut->unk5; + case 5: + return nut->unk6; + case 6: + return nut->unk7; + case 7: + return nut->unk8; + case 8: + return nut->unk9; + case 9: + return nut->unkA; + case 10: + return nut->unkB; + default: + return 0; + } +} + +u16 * GetNutName(u32 berry_idx, u32 heap_id) +{ + struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 373, heap_id); + u16 * ret = FUN_0200A914(msgData, berry_idx); + DestroyMsgData(msgData); + return ret; +} + +u16 * GetNutDesc(u32 berry_idx, u32 heap_id) +{ + struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 372, heap_id); + u16 * ret = FUN_0200A914(msgData, berry_idx); + DestroyMsgData(msgData); + return ret; +} diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 9bd9764d..8df597a6 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -2859,7 +2859,7 @@ void FUN_02069718(struct BoxPokemon * boxmon, u16 move) } moves[3] = move; - pp[3] = (u8)GetWazaAttr(move, 5); + pp[3] = (u8)GetWazaAttr(move, MOVEATTR_PP); ppUp[3] = 0; for (i = 0; i < 4; i++) diff --git a/arm9/src/waza.c b/arm9/src/waza.c index 4b505482..f394fedd 100644 --- a/arm9/src/waza.c +++ b/arm9/src/waza.c @@ -15,7 +15,7 @@ void LoadAllWazaTbl(struct WazaTbl * dest) ReadFromNarcMemberByIdPair(dest, NARC_POKETOOL_WAZA_WAZA_TBL, 0, 0, (NUM_MOVES + 1) * sizeof(struct WazaTbl)); } -u32 GetWazaAttr(u16 waza, u32 attr) +u32 GetWazaAttr(u16 waza, MoveAttr attr) { struct WazaTbl wazaTbl; LoadWazaEntry(waza, &wazaTbl); @@ -27,38 +27,40 @@ u8 WazaGetMaxPp(u16 waza, u8 ppUp) u8 pp; if (ppUp > 3) ppUp = 3; - pp = (u8)GetWazaAttr(waza, 5); + pp = (u8)GetWazaAttr(waza, MOVEATTR_PP); return (u8)(pp + (pp * 20 * ppUp) / 100); } -u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, u32 attr) +u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, MoveAttr attr) { switch (attr) { - case 0: - return wazaTbl->unk0; - case 1: + case MOVEATTR_EFFECT: + return wazaTbl->effect; + case MOVEATTR_UNK1: return wazaTbl->unk2; - case 2: - return wazaTbl->unk3; - case 3: - return wazaTbl->unk4; - case 4: - return wazaTbl->unk5; - case 5: + case MOVEATTR_POWER: + return wazaTbl->power; + case MOVEATTR_TYPE: + return wazaTbl->type; + case MOVEATTR_ACCURACY: + return wazaTbl->accuracy; + case MOVEATTR_PP: return wazaTbl->pp; - case 6: - return wazaTbl->unk7; - case 7: + case MOVEATTR_EFFECT_CHANCE: + return wazaTbl->effectChance; + case MOVEATTR_UNK7: return wazaTbl->unk8; - case 8: - return wazaTbl->unkA; - case 9: + case MOVEATTR_PRIORTY: + return wazaTbl->priority; + case MOVEATTR_UNK9: return wazaTbl->unkB; - case 10: + case MOVEATTR_UNK10: return wazaTbl->unkC; - case 11: - return wazaTbl->unkD; + case MOVEATTR_CONTEST_TYPE: + return wazaTbl->contestType; + default: + return (u32)wazaTbl; } } |