summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
Diffstat (limited to 'arm9')
-rw-r--r--arm9/Makefile1
-rw-r--r--arm9/arm9.lcf2
-rw-r--r--arm9/asm/scrcmd_4.s2
-rw-r--r--arm9/asm/unk_020250A4.s12
-rw-r--r--arm9/asm/unk_02060CCC.s2
-rw-r--r--arm9/asm/unk_0206E5B4.s12
-rw-r--r--arm9/asm/unk_02085258.s146
-rw-r--r--arm9/global.inc16
-rw-r--r--arm9/lib/syscall/_svc_mw.s76
-rw-r--r--arm9/modules/68/asm/module_68.s36
-rw-r--r--arm9/modules/73/asm/module_73.s6
-rw-r--r--arm9/src/nutdata.c78
-rw-r--r--arm9/src/pokemon.c2
-rw-r--r--arm9/src/waza.c46
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;
}
}