summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf2
-rw-r--r--arm9/asm/unk_0206E5B4.s1310
-rw-r--r--arm9/src/itemtool.c1028
-rw-r--r--include/constants/items.h11
-rw-r--r--include/heap.h1
-rw-r--r--include/itemtool.h104
6 files changed, 1143 insertions, 1313 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 70b309a0..a6f59e57 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -375,6 +375,7 @@ SECTIONS {
unk_0206E0F0.o (.text)
unk_0206E2F0.o (.text)
unk_0206E5B4.o (.text)
+ itemtool.o (.text)
unk_0206EB80.o (.text)
unk_0206F1F0.o (.text)
unk_0206F3FC.o (.text)
@@ -696,6 +697,7 @@ SECTIONS {
unk_0206C700.o (.rodata)
unk_0206E0F0.o (.rodata)
unk_0206E5B4.o (.rodata)
+ itemtool.o (.rodata)
unk_0206F1F0.o (.rodata)
unk_0206F3FC.o (.rodata)
unk_02072548.o (.rodata)
diff --git a/arm9/asm/unk_0206E5B4.s b/arm9/asm/unk_0206E5B4.s
index 09f8865a..5fdd814c 100644
--- a/arm9/asm/unk_0206E5B4.s
+++ b/arm9/asm/unk_0206E5B4.s
@@ -1,508 +1,6 @@
.include "asm/macros.inc"
.include "global.inc"
- .section .rodata
-
- .global UNK_020F8454
-UNK_020F8454: ; 0x020F8454
- .short 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 0x0090
- .short 0x0091, 0x0092, 0x0093, 0x0094
-
- .global UNK_020F846C
-UNK_020F846C: ; 0x020F846C
- .short 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C
- .short 0x009D, 0x009E, 0x009F, 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4
- .short 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC
- .short 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4
- .short 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC
- .short 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4
- .short 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC
- .short 0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4
-
- .global UNK_020F84EC
-UNK_020F84EC: ; 0x020F84EC
- .short 0x0108, 0x0151, 0x0160, 0x015B, 0x002E, 0x005C, 0x0102, 0x0153
- .short 0x014B, 0x00ED, 0x00F1, 0x010D, 0x003A, 0x003B, 0x003F, 0x0071
- .short 0x00B6, 0x00F0, 0x00CA, 0x00DB, 0x00DA, 0x004C, 0x00E7, 0x0055
- .short 0x0057, 0x0059, 0x00D8, 0x005B, 0x005E, 0x00F7, 0x0118, 0x0068
- .short 0x0073, 0x015F, 0x0035, 0x00BC, 0x00C9, 0x007E, 0x013D, 0x014C
- .short 0x0103, 0x0107, 0x0122, 0x009C, 0x00D5, 0x00A8, 0x00D3, 0x011D
- .short 0x0121, 0x013B, 0x0163, 0x019B, 0x019C, 0x00CE, 0x016A, 0x0176
- .short 0x01C3, 0x00CB, 0x0196, 0x0199, 0x0105, 0x013E, 0x0175, 0x0099
- .short 0x01A5, 0x0173, 0x0116, 0x01A0, 0x018D, 0x0094, 0x01BC, 0x01A3
- .short 0x0056, 0x0168, 0x000E, 0x01BE, 0x00F4, 0x01BD, 0x018F, 0x009D
- .short 0x0194, 0x00D6, 0x016B, 0x018E, 0x008A, 0x01BF, 0x00CF, 0x016D
- .short 0x0171, 0x00A4, 0x01AE, 0x01B1, 0x000F, 0x0013, 0x0039, 0x0046
- .short 0x01B0, 0x00F9, 0x007F, 0x01AF
-
- .global UNK_020F85B4
-UNK_020F85B4: ; 0x020F85B4
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0001, 0x0002, 0x0003, 0x0001
- .short 0x0002, 0x0004, 0x0005, 0x0002
- .short 0x0003, 0x0006, 0x0007, 0x0003
- .short 0x0004, 0x0008, 0x0009, 0x0004
- .short 0x0005, 0x000A, 0x000B, 0x0005
- .short 0x0006, 0x000C, 0x000D, 0x0006
- .short 0x0007, 0x000E, 0x000F, 0x0007
- .short 0x0008, 0x0010, 0x0011, 0x0008
- .short 0x0009, 0x0012, 0x0013, 0x0009
- .short 0x000A, 0x0014, 0x0013, 0x000A
- .short 0x000B, 0x0015, 0x0016, 0x000B
- .short 0x000C, 0x0017, 0x0016, 0x000C
- .short 0x000D, 0x0297, 0x0298, 0x0000
- .short 0x000E, 0x0299, 0x029A, 0x0000
- .short 0x000F, 0x029B, 0x029C, 0x0000
- .short 0x0010, 0x029D, 0x029E, 0x0000
- .short 0x0011, 0x0018, 0x0019, 0x000D
- .short 0x0012, 0x001A, 0x001B, 0x000E
- .short 0x0013, 0x001E, 0x001C, 0x000F
- .short 0x0014, 0x001E, 0x001D, 0x0010
- .short 0x0015, 0x001E, 0x001F, 0x0011
- .short 0x0016, 0x001E, 0x0020, 0x0012
- .short 0x0017, 0x0021, 0x0022, 0x0013
- .short 0x0018, 0x0021, 0x0023, 0x0014
- .short 0x0019, 0x0018, 0x0024, 0x0015
- .short 0x001A, 0x0018, 0x0025, 0x0016
- .short 0x001B, 0x0026, 0x0027, 0x0017
- .short 0x001C, 0x0028, 0x002A, 0x0018
- .short 0x001D, 0x0029, 0x002A, 0x0019
- .short 0x001E, 0x002B, 0x002C, 0x001A
- .short 0x001F, 0x002D, 0x002E, 0x001B
- .short 0x0020, 0x002F, 0x0030, 0x001C
- .short 0x0021, 0x0031, 0x0032, 0x001D
- .short 0x0022, 0x0033, 0x0034, 0x001E
- .short 0x0023, 0x0035, 0x0036, 0x001F
- .short 0x0024, 0x0033, 0x0037, 0x0020
- .short 0x0025, 0x0038, 0x0039, 0x0021
- .short 0x0026, 0x003A, 0x003B, 0x0022
- .short 0x0027, 0x003A, 0x003C, 0x0023
- .short 0x0028, 0x003A, 0x003D, 0x0024
- .short 0x0029, 0x003A, 0x003E, 0x0025
- .short 0x002A, 0x003F, 0x0040, 0x0026
- .short 0x002B, 0x0047, 0x0048, 0x002C
- .short 0x002C, 0x0049, 0x004A, 0x002D
- .short 0x002D, 0x0053, 0x0054, 0x003F
- .short 0x002E, 0x0055, 0x0056, 0x0040
- .short 0x002F, 0x0055, 0x0057, 0x0041
- .short 0x0030, 0x0055, 0x0058, 0x0042
- .short 0x0031, 0x0055, 0x0059, 0x0043
- .short 0x0032, 0x005A, 0x005B, 0x0044
- .short 0x0033, 0x005C, 0x005D, 0x0045
- .short 0x0034, 0x0055, 0x005E, 0x0046
- .short 0x0035, 0x005F, 0x0060, 0x0047
- .short 0x0036, 0x01D2, 0x01D3, 0x0000
- .short 0x0037, 0x0064, 0x0061, 0x0049
- .short 0x0038, 0x0064, 0x0062, 0x004A
- .short 0x0039, 0x0064, 0x0063, 0x004B
- .short 0x003A, 0x0064, 0x0065, 0x004C
- .short 0x003B, 0x0064, 0x0066, 0x004D
- .short 0x003C, 0x0064, 0x0067, 0x004E
- .short 0x003D, 0x0064, 0x0068, 0x004F
- .short 0x003E, 0x0064, 0x01D5, 0x0000
- .short 0x003F, 0x0069, 0x006A, 0x0050
- .short 0x0040, 0x006B, 0x006C, 0x0051
- .short 0x0041, 0x0041, 0x0042, 0x0027
- .short 0x0042, 0x0041, 0x0043, 0x0028
- .short 0x0043, 0x0041, 0x0044, 0x0029
- .short 0x0044, 0x0041, 0x0045, 0x002A
- .short 0x0045, 0x0041, 0x0046, 0x002B
- .short 0x0046, 0x0033, 0x004B, 0x002E
- .short 0x0047, 0x004C, 0x004D, 0x002F
- .short 0x0048, 0x004E, 0x004F, 0x0030
- .short 0x0049, 0x004E, 0x0050, 0x0031
- .short 0x004A, 0x004E, 0x0051, 0x0032
- .short 0x004B, 0x004E, 0x0052, 0x0033
- .short 0x004C, 0x006D, 0x006E, 0x0053
- .short 0x004D, 0x006D, 0x006F, 0x0054
- .short 0x004E, 0x0070, 0x0071, 0x0055
- .short 0x004F, 0x006D, 0x0072, 0x0056
- .short 0x0050, 0x0073, 0x0074, 0x005D
- .short 0x0051, 0x0075, 0x0076, 0x005E
- .short 0x0052, 0x0077, 0x0078, 0x005F
- .short 0x0053, 0x0079, 0x007A, 0x0060
- .short 0x0054, 0x007B, 0x007C, 0x0061
- .short 0x0055, 0x007D, 0x007E, 0x0062
- .short 0x0056, 0x007F, 0x0081, 0x0067
- .short 0x0057, 0x0080, 0x0081, 0x0068
- .short 0x0058, 0x0082, 0x0083, 0x006A
- .short 0x0059, 0x0084, 0x0083, 0x006B
- .short 0x005A, 0x0085, 0x0086, 0x006C
- .short 0x005B, 0x0087, 0x0086, 0x006D
- .short 0x005C, 0x0088, 0x0089, 0x006E
- .short 0x005D, 0x008A, 0x008B, 0x006F
- .short 0x005E, 0x01D6, 0x01D7, 0x0000
- .short 0x005F, 0x01D8, 0x01D9, 0x0000
- .short 0x0060, 0x01DA, 0x01DB, 0x0000
- .short 0x0061, 0x01DC, 0x01DD, 0x0000
- .short 0x0062, 0x01DE, 0x01DF, 0x0000
- .short 0x0063, 0x0188, 0x0189, 0x011E
- .short 0x0064, 0x018A, 0x0189, 0x011F
- .short 0x0065, 0x01AF, 0x01B0, 0x0165
- .short 0x0066, 0x01B1, 0x01B0, 0x0166
- .short 0x0067, 0x01A9, 0x01AA, 0x0162
- .short 0x0068, 0x0269, 0x026A, 0x0000
- .short 0x0069, 0x0267, 0x0268, 0x0000
- .short 0x006A, 0x0151, 0x0152, 0x0000
- .short 0x006B, 0x01E0, 0x01E1, 0x0000
- .short 0x006C, 0x01E2, 0x01E3, 0x0000
- .short 0x006D, 0x01E4, 0x01E5, 0x0000
- .short 0x006E, 0x01E6, 0x01E7, 0x0000
- .short 0x006F, 0x01E8, 0x01E9, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0000, 0x02BB, 0x02BC, 0x0000
- .short 0x0070, 0x0288, 0x0289, 0x0000
- .short 0x0071, 0x0286, 0x0287, 0x0000
- .short 0x0072, 0x008C, 0x008D, 0x0000
- .short 0x0073, 0x008E, 0x008F, 0x0000
- .short 0x0074, 0x0090, 0x0091, 0x0000
- .short 0x0075, 0x0092, 0x0093, 0x0000
- .short 0x0076, 0x0094, 0x0095, 0x0000
- .short 0x0077, 0x0096, 0x0097, 0x0000
- .short 0x0078, 0x0098, 0x0099, 0x0000
- .short 0x0079, 0x009A, 0x009B, 0x0000
- .short 0x007A, 0x009C, 0x009D, 0x0000
- .short 0x007B, 0x009E, 0x009F, 0x0000
- .short 0x007C, 0x00A0, 0x00A1, 0x0000
- .short 0x007D, 0x00A2, 0x00A3, 0x0000
- .short 0x007E, 0x00A4, 0x00A5, 0x0085
- .short 0x007F, 0x00A6, 0x00A7, 0x0086
- .short 0x0080, 0x00A8, 0x00A9, 0x0087
- .short 0x0081, 0x00AA, 0x00AB, 0x0088
- .short 0x0082, 0x00AC, 0x00AD, 0x0089
- .short 0x0083, 0x00AE, 0x00AF, 0x008A
- .short 0x0084, 0x00B0, 0x00B1, 0x008B
- .short 0x0085, 0x00B2, 0x00B3, 0x008C
- .short 0x0086, 0x00B4, 0x00B5, 0x008D
- .short 0x0087, 0x00B6, 0x00B7, 0x008E
- .short 0x0088, 0x00B8, 0x00B9, 0x008F
- .short 0x0089, 0x00BA, 0x00BB, 0x0090
- .short 0x008A, 0x00BC, 0x00BD, 0x0091
- .short 0x008B, 0x00BE, 0x00BF, 0x0092
- .short 0x008C, 0x00C0, 0x00C1, 0x0093
- .short 0x008D, 0x00C2, 0x00C3, 0x0094
- .short 0x008E, 0x00C4, 0x00C5, 0x0095
- .short 0x008F, 0x00C6, 0x00C7, 0x0096
- .short 0x0090, 0x00C8, 0x00C9, 0x0097
- .short 0x0091, 0x00CA, 0x00CB, 0x0098
- .short 0x0092, 0x00CC, 0x00CD, 0x0099
- .short 0x0093, 0x00CE, 0x00CF, 0x009A
- .short 0x0094, 0x00D0, 0x00D1, 0x009B
- .short 0x0095, 0x00D2, 0x00D3, 0x009C
- .short 0x0096, 0x00D4, 0x00D5, 0x009D
- .short 0x0097, 0x00D6, 0x00D7, 0x009E
- .short 0x0098, 0x00D8, 0x00D9, 0x009F
- .short 0x0099, 0x00DA, 0x00DB, 0x00A0
- .short 0x009A, 0x00DC, 0x00DD, 0x00A1
- .short 0x009B, 0x00DE, 0x00DF, 0x00A2
- .short 0x009C, 0x00E0, 0x00E1, 0x00A3
- .short 0x009D, 0x00E2, 0x00E3, 0x00A4
- .short 0x009E, 0x00E4, 0x00E5, 0x00A5
- .short 0x009F, 0x00E6, 0x00E7, 0x00A6
- .short 0x00A0, 0x00E8, 0x00E9, 0x00A7
- .short 0x00A1, 0x022A, 0x022B, 0x0000
- .short 0x00A2, 0x022C, 0x022D, 0x0000
- .short 0x00A3, 0x022E, 0x022F, 0x0000
- .short 0x00A4, 0x0230, 0x0231, 0x0000
- .short 0x00A5, 0x0232, 0x0233, 0x0000
- .short 0x00A6, 0x0234, 0x0235, 0x0000
- .short 0x00A7, 0x0236, 0x0237, 0x0000
- .short 0x00A8, 0x0238, 0x0239, 0x0000
- .short 0x00A9, 0x023A, 0x023B, 0x0000
- .short 0x00AA, 0x023C, 0x023D, 0x0000
- .short 0x00AB, 0x023E, 0x023F, 0x0000
- .short 0x00AC, 0x0240, 0x0241, 0x0000
- .short 0x00AD, 0x0242, 0x0243, 0x0000
- .short 0x00AE, 0x0244, 0x0245, 0x0000
- .short 0x00AF, 0x0246, 0x0247, 0x0000
- .short 0x00B0, 0x0248, 0x0249, 0x0000
- .short 0x00B1, 0x024A, 0x024B, 0x0000
- .short 0x00B2, 0x00EA, 0x00EB, 0x00A8
- .short 0x00B3, 0x00EC, 0x00ED, 0x00A9
- .short 0x00B4, 0x00EE, 0x00EF, 0x00AA
- .short 0x00B5, 0x00F0, 0x00F1, 0x00AB
- .short 0x00B6, 0x00F2, 0x00F3, 0x00AC
- .short 0x00B7, 0x00F4, 0x00F5, 0x00AD
- .short 0x00B8, 0x00F6, 0x00F7, 0x00AE
- .short 0x00B9, 0x00F8, 0x00F9, 0x00AF
- .short 0x00BA, 0x024C, 0x024D, 0x0000
- .short 0x00BB, 0x024E, 0x024F, 0x0000
- .short 0x00BC, 0x0250, 0x0251, 0x0000
- .short 0x00BD, 0x0252, 0x0253, 0x0000
- .short 0x00BE, 0x00FA, 0x00FB, 0x00B3
- .short 0x00BF, 0x00FC, 0x00FD, 0x00B4
- .short 0x00C0, 0x00FE, 0x00FF, 0x00B5
- .short 0x00C1, 0x0100, 0x0101, 0x00B6
- .short 0x00C2, 0x0102, 0x0103, 0x00B7
- .short 0x00C3, 0x0104, 0x0105, 0x00B8
- .short 0x00C4, 0x00FC, 0x0106, 0x00B9
- .short 0x00C5, 0x0107, 0x0108, 0x00BA
- .short 0x00C6, 0x0109, 0x010A, 0x00BB
- .short 0x00C7, 0x010B, 0x010C, 0x00BC
- .short 0x00C8, 0x010D, 0x010E, 0x00BD
- .short 0x00C9, 0x010F, 0x0110, 0x00BE
- .short 0x00CA, 0x0111, 0x0112, 0x00BF
- .short 0x00CB, 0x0113, 0x0114, 0x00C0
- .short 0x00CC, 0x0115, 0x0116, 0x00C1
- .short 0x00CD, 0x0117, 0x0118, 0x00C2
- .short 0x00CE, 0x0119, 0x011A, 0x00C3
- .short 0x00CF, 0x011B, 0x011C, 0x00C4
- .short 0x00D0, 0x011D, 0x011E, 0x00C5
- .short 0x00D1, 0x011F, 0x0120, 0x00C6
- .short 0x00D2, 0x0121, 0x0122, 0x00C7
- .short 0x00D3, 0x0123, 0x0124, 0x00C8
- .short 0x00D4, 0x0125, 0x0126, 0x00C9
- .short 0x00D5, 0x0127, 0x0128, 0x00CA
- .short 0x00D6, 0x0129, 0x012A, 0x00CB
- .short 0x00D7, 0x012B, 0x012C, 0x00CC
- .short 0x00D8, 0x012D, 0x012E, 0x00CD
- .short 0x00D9, 0x012F, 0x0130, 0x00CE
- .short 0x00DA, 0x0131, 0x0130, 0x00CF
- .short 0x00DB, 0x0132, 0x0133, 0x00D0
- .short 0x00DC, 0x0134, 0x0135, 0x00D1
- .short 0x00DD, 0x0136, 0x0137, 0x00D2
- .short 0x00DE, 0x0138, 0x0139, 0x00D3
- .short 0x00DF, 0x013A, 0x013B, 0x00D4
- .short 0x00E0, 0x013C, 0x013D, 0x00D5
- .short 0x00E1, 0x013E, 0x013F, 0x00D6
- .short 0x00E2, 0x0140, 0x0141, 0x00D7
- .short 0x00E3, 0x0142, 0x0143, 0x00D8
- .short 0x00E4, 0x0144, 0x0145, 0x00D9
- .short 0x00E5, 0x0146, 0x0147, 0x00DA
- .short 0x00E6, 0x0148, 0x004D, 0x00DB
- .short 0x00E7, 0x0149, 0x014A, 0x00DC
- .short 0x00E8, 0x014B, 0x014C, 0x00DD
- .short 0x00E9, 0x014D, 0x014E, 0x00DE
- .short 0x00EA, 0x014F, 0x0150, 0x00DF
- .short 0x00EB, 0x0151, 0x0152, 0x00E0
- .short 0x00EC, 0x0153, 0x0154, 0x00E1
- .short 0x00ED, 0x0155, 0x0156, 0x00FE
- .short 0x00EE, 0x0155, 0x0157, 0x00FF
- .short 0x00EF, 0x0155, 0x0158, 0x0100
- .short 0x00F0, 0x0155, 0x0159, 0x0101
- .short 0x00F1, 0x0155, 0x015A, 0x0102
- .short 0x00F2, 0x01EA, 0x01EB, 0x0000
- .short 0x00F3, 0x01EC, 0x01ED, 0x0000
- .short 0x00F4, 0x01EE, 0x01EF, 0x0000
- .short 0x00F5, 0x01F0, 0x01F1, 0x0000
- .short 0x00F6, 0x0263, 0x0264, 0x0000
- .short 0x00F7, 0x01F2, 0x01F3, 0x0000
- .short 0x00F8, 0x01F4, 0x01F5, 0x0000
- .short 0x00F9, 0x01F6, 0x01F7, 0x0000
- .short 0x00FA, 0x01F8, 0x01F9, 0x0000
- .short 0x00FB, 0x014F, 0x0292, 0x0000
- .short 0x00FC, 0x0293, 0x0294, 0x0000
- .short 0x00FD, 0x01FA, 0x01FB, 0x0000
- .short 0x00FE, 0x01FC, 0x01FD, 0x0000
- .short 0x00FF, 0x0265, 0x0266, 0x0000
- .short 0x0100, 0x028A, 0x028B, 0x0000
- .short 0x0101, 0x028E, 0x028F, 0x0000
- .short 0x0102, 0x01FE, 0x01FF, 0x0000
- .short 0x0103, 0x027C, 0x027D, 0x0000
- .short 0x0104, 0x027E, 0x027F, 0x0000
- .short 0x0105, 0x0280, 0x0281, 0x0000
- .short 0x0106, 0x0282, 0x0283, 0x0000
- .short 0x0107, 0x028C, 0x028D, 0x0000
- .short 0x0108, 0x0200, 0x0201, 0x0000
- .short 0x0109, 0x0202, 0x0203, 0x0000
- .short 0x010A, 0x02AB, 0x02AC, 0x0000
- .short 0x010B, 0x02B3, 0x02B4, 0x0000
- .short 0x010C, 0x02B5, 0x02B6, 0x0000
- .short 0x010D, 0x02AD, 0x02AE, 0x0000
- .short 0x010E, 0x02AF, 0x02B0, 0x0000
- .short 0x010F, 0x02B1, 0x02B2, 0x0000
- .short 0x0110, 0x0204, 0x0205, 0x0000
- .short 0x0111, 0x0206, 0x0207, 0x0000
- .short 0x0112, 0x0208, 0x0209, 0x0000
- .short 0x0113, 0x026B, 0x026C, 0x0000
- .short 0x0114, 0x026B, 0x026D, 0x0000
- .short 0x0115, 0x026B, 0x026E, 0x0000
- .short 0x0116, 0x026B, 0x026F, 0x0000
- .short 0x0117, 0x026B, 0x0270, 0x0000
- .short 0x0118, 0x026B, 0x0271, 0x0000
- .short 0x0119, 0x026B, 0x0272, 0x0000
- .short 0x011A, 0x026B, 0x0273, 0x0000
- .short 0x011B, 0x026B, 0x0274, 0x0000
- .short 0x011C, 0x026B, 0x0275, 0x0000
- .short 0x011D, 0x026B, 0x0276, 0x0000
- .short 0x011E, 0x026B, 0x0277, 0x0000
- .short 0x011F, 0x026B, 0x0278, 0x0000
- .short 0x0120, 0x026B, 0x0279, 0x0000
- .short 0x0121, 0x026B, 0x027A, 0x0000
- .short 0x0122, 0x026B, 0x027B, 0x0000
- .short 0x0123, 0x020A, 0x020B, 0x0000
- .short 0x0124, 0x020C, 0x020D, 0x0000
- .short 0x0125, 0x020E, 0x020F, 0x0000
- .short 0x0126, 0x0210, 0x0211, 0x0000
- .short 0x0127, 0x0212, 0x0213, 0x0000
- .short 0x0128, 0x0214, 0x0215, 0x0000
- .short 0x0129, 0x0216, 0x0217, 0x0000
- .short 0x012A, 0x02B7, 0x02B8, 0x0000
- .short 0x012B, 0x0218, 0x0219, 0x0000
- .short 0x012C, 0x021A, 0x021B, 0x0000
- .short 0x012D, 0x021C, 0x021D, 0x0000
- .short 0x012E, 0x021E, 0x021F, 0x0000
- .short 0x012F, 0x0220, 0x0221, 0x0000
- .short 0x0130, 0x0222, 0x0223, 0x0000
- .short 0x0131, 0x018D, 0x018E, 0x0121
- .short 0x0132, 0x018D, 0x018F, 0x0122
- .short 0x0133, 0x018D, 0x0190, 0x0123
- .short 0x0134, 0x018D, 0x0191, 0x0124
- .short 0x0135, 0x018D, 0x0192, 0x0125
- .short 0x0136, 0x018D, 0x0193, 0x0126
- .short 0x0137, 0x018D, 0x0194, 0x0127
- .short 0x0138, 0x018D, 0x018E, 0x0128
- .short 0x0139, 0x018D, 0x0195, 0x0129
- .short 0x013A, 0x018D, 0x0192, 0x012A
- .short 0x013B, 0x018D, 0x0196, 0x012B
- .short 0x013C, 0x018D, 0x0197, 0x012C
- .short 0x013D, 0x018D, 0x0194, 0x012D
- .short 0x013E, 0x018D, 0x0194, 0x012E
- .short 0x013F, 0x018D, 0x0192, 0x012F
- .short 0x0140, 0x018D, 0x0191, 0x0130
- .short 0x0141, 0x018D, 0x0192, 0x0131
- .short 0x0142, 0x018D, 0x0190, 0x0132
- .short 0x0143, 0x018D, 0x0195, 0x0133
- .short 0x0144, 0x018D, 0x0192, 0x0134
- .short 0x0145, 0x018D, 0x0192, 0x0135
- .short 0x0146, 0x018D, 0x0195, 0x0136
- .short 0x0147, 0x018D, 0x0198, 0x0137
- .short 0x0148, 0x018D, 0x0199, 0x0138
- .short 0x0149, 0x018D, 0x0199, 0x0139
- .short 0x014A, 0x018D, 0x019A, 0x013A
- .short 0x014B, 0x018D, 0x0192, 0x013B
- .short 0x014C, 0x018D, 0x019A, 0x013C
- .short 0x014D, 0x018D, 0x0191, 0x013D
- .short 0x014E, 0x018D, 0x019B, 0x013E
- .short 0x014F, 0x018D, 0x018E, 0x013F
- .short 0x0150, 0x018D, 0x0192, 0x0140
- .short 0x0151, 0x018D, 0x0191, 0x0141
- .short 0x0152, 0x018D, 0x0199, 0x0142
- .short 0x0153, 0x018D, 0x0196, 0x0143
- .short 0x0154, 0x018D, 0x0193, 0x0144
- .short 0x0155, 0x018D, 0x019C, 0x0145
- .short 0x0156, 0x018D, 0x0196, 0x0146
- .short 0x0157, 0x018D, 0x019C, 0x0147
- .short 0x0158, 0x018D, 0x019D, 0x0148
- .short 0x0159, 0x018D, 0x0197, 0x0149
- .short 0x015A, 0x018D, 0x0192, 0x014A
- .short 0x015B, 0x018D, 0x0192, 0x014B
- .short 0x015C, 0x018D, 0x0191, 0x014C
- .short 0x015D, 0x018D, 0x0192, 0x014D
- .short 0x015E, 0x018D, 0x0197, 0x014E
- .short 0x015F, 0x018D, 0x0198, 0x014F
- .short 0x0160, 0x018D, 0x0191, 0x0150
- .short 0x0161, 0x018D, 0x0197, 0x0151
- .short 0x0162, 0x018D, 0x0196, 0x0152
- .short 0x0163, 0x018D, 0x019D, 0x0000
- .short 0x0164, 0x018D, 0x018E, 0x0000
- .short 0x0165, 0x018D, 0x0195, 0x0000
- .short 0x0166, 0x018D, 0x0192, 0x0000
- .short 0x0167, 0x018D, 0x0190, 0x0000
- .short 0x0168, 0x018D, 0x0197, 0x0000
- .short 0x0169, 0x018D, 0x0199, 0x0000
- .short 0x016A, 0x018D, 0x0192, 0x0000
- .short 0x016B, 0x018D, 0x018F, 0x0000
- .short 0x016C, 0x018D, 0x018E, 0x0000
- .short 0x016D, 0x018D, 0x0196, 0x0000
- .short 0x016E, 0x018D, 0x0262, 0x0000
- .short 0x016F, 0x018D, 0x0197, 0x0000
- .short 0x0170, 0x018D, 0x0192, 0x0000
- .short 0x0171, 0x018D, 0x019B, 0x0000
- .short 0x0172, 0x018D, 0x0197, 0x0000
- .short 0x0173, 0x018D, 0x0192, 0x0000
- .short 0x0174, 0x018D, 0x0192, 0x0000
- .short 0x0175, 0x018D, 0x019C, 0x0000
- .short 0x0176, 0x018D, 0x0192, 0x0000
- .short 0x0177, 0x018D, 0x019C, 0x0000
- .short 0x0178, 0x018D, 0x0194, 0x0000
- .short 0x0179, 0x018D, 0x0199, 0x0000
- .short 0x017A, 0x018D, 0x0198, 0x0000
- .short 0x017B, 0x018D, 0x0192, 0x0000
- .short 0x017C, 0x018D, 0x019C, 0x0000
- .short 0x017D, 0x018D, 0x0192, 0x0000
- .short 0x017E, 0x018D, 0x0192, 0x0000
- .short 0x017F, 0x018D, 0x0197, 0x0000
- .short 0x0180, 0x018D, 0x019C, 0x0000
- .short 0x0181, 0x018D, 0x0262, 0x0000
- .short 0x0182, 0x018D, 0x0192, 0x0000
- .short 0x0183, 0x018D, 0x0192, 0x0000
- .short 0x0184, 0x018D, 0x0193, 0x0000
- .short 0x0185, 0x018D, 0x0191, 0x0000
- .short 0x0186, 0x018D, 0x0195, 0x0000
- .short 0x0187, 0x018D, 0x0192, 0x0000
- .short 0x0188, 0x018D, 0x019D, 0x0000
- .short 0x0189, 0x018D, 0x0262, 0x0000
- .short 0x018A, 0x018D, 0x0192, 0x0000
- .short 0x018B, 0x018D, 0x0198, 0x0000
- .short 0x018C, 0x018D, 0x0191, 0x0000
- .short 0x018D, 0x019E, 0x0192, 0x0153
- .short 0x018E, 0x019E, 0x019D, 0x0154
- .short 0x018F, 0x019E, 0x0190, 0x0155
- .short 0x0190, 0x019E, 0x0192, 0x0156
- .short 0x0191, 0x019E, 0x0190, 0x0157
- .short 0x0192, 0x019E, 0x018E, 0x0158
- .short 0x0193, 0x019E, 0x0190, 0x0159
- .short 0x0194, 0x019E, 0x0192, 0x015A
- .short 0x0195, 0x0224, 0x0225, 0x0000
- .short 0x0196, 0x0226, 0x0227, 0x0000
- .short 0x0197, 0x0228, 0x0229, 0x0000
- .short 0x0198, 0x02B9, 0x02BA, 0x0000
- .short 0x0199, 0x02A9, 0x02AA, 0x0000
- .short 0x019A, 0x025E, 0x025F, 0x0000
- .short 0x019B, 0x029F, 0x02A0, 0x0000
- .short 0x019C, 0x02A3, 0x02A4, 0x0000
- .short 0x019D, 0x02A1, 0x02A2, 0x0000
- .short 0x019E, 0x0295, 0x0296, 0x0000
- .short 0x019F, 0x0284, 0x0285, 0x0000
- .short 0x01A0, 0x025C, 0x025D, 0x0000
- .short 0x01A1, 0x0290, 0x0291, 0x0000
- .short 0x01A2, 0x02A7, 0x02A8, 0x0000
- .short 0x01A3, 0x01B7, 0x01B8, 0x0169
- .short 0x01A4, 0x01B9, 0x01BA, 0x016A
- .short 0x01A5, 0x015D, 0x015E, 0x0104
- .short 0x01A6, 0x0161, 0x0162, 0x0106
- .short 0x01A7, 0x0163, 0x0164, 0x0107
- .short 0x01A8, 0x0165, 0x0166, 0x0108
- .short 0x01A9, 0x016B, 0x016C, 0x0000
- .short 0x01AA, 0x0175, 0x0176, 0x0000
- .short 0x01AB, 0x01B5, 0x01B6, 0x0168
- .short 0x01AC, 0x01AD, 0x01AE, 0x0000
- .short 0x01AD, 0x0177, 0x0040, 0x0000
- .short 0x01AE, 0x025A, 0x025B, 0x0000
- .short 0x01AF, 0x0260, 0x0261, 0x0000
- .short 0x01B0, 0x02A5, 0x02A6, 0x0000
- .short 0x01B1, 0x0167, 0x0168, 0x0109
- .short 0x01B2, 0x0169, 0x016A, 0x010A
- .short 0x01B3, 0x0254, 0x0255, 0x0000
- .short 0x01B4, 0x019F, 0x01A0, 0x015D
- .short 0x01B5, 0x01A1, 0x01A2, 0x0000
- .short 0x01B6, 0x01A3, 0x01A4, 0x0000
- .short 0x01B7, 0x01A5, 0x01A6, 0x0000
- .short 0x01B8, 0x0256, 0x0257, 0x011D
- .short 0x01B9, 0x0258, 0x0259, 0x0000
-
.text
thumb_func_start FUN_0206E5B4
@@ -582,811 +80,3 @@ _0206E63A:
pop {r3-r6}
bx lr
.balign 4
-
- thumb_func_start FUN_0206E640
-FUN_0206E640: ; 0x0206E640
- cmp r1, #0x3
- bhi _0206E6B2
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0206E650: ; jump table (using 16-bit offset)
- .short _0206E658 - _0206E650 - 2; case 0
- .short _0206E66A - _0206E650 - 2; case 1
- .short _0206E684 - _0206E650 - 2; case 2
- .short _0206E6A0 - _0206E650 - 2; case 3
-_0206E658:
- cmp r0, #0x0
- beq _0206E6B2
- ldr r1, _0206E6B8 ; =0x0000FFFF
- cmp r0, r1
- beq _0206E6B2
- lsl r1, r0, #0x3
- ldr r0, _0206E6BC ; =UNK_020F85B4
- ldrh r0, [r0, r1]
- bx lr
-_0206E66A:
- cmp r0, #0x0
- bne _0206E672
- ldr r0, _0206E6C0 ; =0x000002BB
- bx lr
-_0206E672:
- ldr r1, _0206E6B8 ; =0x0000FFFF
- cmp r0, r1
- bne _0206E67C
- ldr r0, _0206E6C4 ; =0x000002BD
- bx lr
-_0206E67C:
- lsl r1, r0, #0x3
- ldr r0, _0206E6C8 ; =UNK_020F85B4 + 2
- ldrh r0, [r0, r1]
- bx lr
-_0206E684:
- cmp r0, #0x0
- bne _0206E68E
- mov r0, #0xaf
- lsl r0, r0, #0x2
- bx lr
-_0206E68E:
- ldr r1, _0206E6B8 ; =0x0000FFFF
- cmp r0, r1
- bne _0206E698
- ldr r0, _0206E6CC ; =0x000002BE
- bx lr
-_0206E698:
- lsl r1, r0, #0x3
- ldr r0, _0206E6D0 ; =UNK_020F85B4 + 4
- ldrh r0, [r0, r1]
- bx lr
-_0206E6A0:
- cmp r0, #0x0
- beq _0206E6B2
- ldr r1, _0206E6B8 ; =0x0000FFFF
- cmp r0, r1
- beq _0206E6B2
- lsl r1, r0, #0x3
- ldr r0, _0206E6D4 ; =UNK_020F85B4 + 6
- ldrh r0, [r0, r1]
- bx lr
-_0206E6B2:
- mov r0, #0x0
- bx lr
- nop
-_0206E6B8: .word 0x0000FFFF
-_0206E6BC: .word UNK_020F85B4
-_0206E6C0: .word 0x000002BB
-_0206E6C4: .word 0x000002BD
-_0206E6C8: .word UNK_020F85B4 + 2
-_0206E6CC: .word 0x000002BE
-_0206E6D0: .word UNK_020F85B4 + 4
-_0206E6D4: .word UNK_020F85B4 + 6
-
- thumb_func_start FUN_0206E6D8
-FUN_0206E6D8: ; 0x0206E6D8
- push {r3-r4}
- mov r2, #0x1d
- ldr r3, _0206E704 ; =UNK_020F85B4
- mov r4, #0x1
- lsl r2, r2, #0x4
-_0206E6E2:
- lsl r1, r4, #0x3
- add r1, r3, r1
- ldrh r1, [r1, #0x6]
- cmp r0, r1
- bne _0206E6F2
- add r0, r4, #0x0
- pop {r3-r4}
- bx lr
-_0206E6F2:
- add r1, r4, #0x1
- lsl r1, r1, #0x10
- lsr r4, r1, #0x10
- cmp r4, r2
- bls _0206E6E2
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- nop
-_0206E704: .word UNK_020F85B4
-
- thumb_func_start FUN_0206E708
-FUN_0206E708: ; 0x0206E708
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_0206E70C
-FUN_0206E70C: ; 0x0206E70C
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0206E710
-FUN_0206E710: ; 0x0206E710
- push {r3, lr}
- add r3, r0, #0x0
- mov r0, #0x1d
- lsl r0, r0, #0x4
- cmp r3, r0
- bls _0206E71E
- mov r3, #0x0
-_0206E71E:
- cmp r1, #0x0
- beq _0206E72C
- cmp r1, #0x1
- beq _0206E73A
- cmp r1, #0x2
- beq _0206E748
- b _0206E756
-_0206E72C:
- ldr r1, _0206E75C ; =UNK_020F85B4
- lsl r3, r3, #0x3
- ldrh r1, [r1, r3]
- 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 ; 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 ; NARC_ITEMTOOL_ITEMDATA_ITEM_ICON
- bl AllocAndReadWholeNarcMemberByIdPair
- pop {r3, pc}
-_0206E756:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_0206E75C: .word UNK_020F85B4
-_0206E760: .word UNK_020F85B4 + 2
-_0206E764: .word UNK_020F85B4 + 4
-
- thumb_func_start FUN_0206E768
-FUN_0206E768: ; 0x0206E768
- push {r4-r6, lr}
- add r3, r2, #0x0
- mov r2, #0x56
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0x1
- mov r1, #0x1a ; NARC_MSGDATA_MSG
- lsl r2, r2, #0x2
- bl NewMsgDataFromNarc
- add r6, r0, #0x0
- add r1, r4, #0x0
- add r2, r5, #0x0
- bl ReadMsgDataIntoString
- add r0, r6, #0x0
- bl DestroyMsgData
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0206E790
-FUN_0206E790: ; 0x0206E790
- push {r4-r6, lr}
- add r3, r2, #0x0
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r2, _0206E7B4 ; =0x00000157
- mov r0, #0x1
- mov r1, #0x1a ; NARC_MSGDATA_MSG
- bl NewMsgDataFromNarc
- add r6, r0, #0x0
- add r1, r4, #0x0
- add r2, r5, #0x0
- bl ReadMsgDataIntoString
- add r0, r6, #0x0
- bl DestroyMsgData
- pop {r4-r6, pc}
- .balign 4
-_0206E7B4: .word 0x00000157
-
- thumb_func_start FUN_0206E7B8
-FUN_0206E7B8: ; 0x0206E7B8
- push {r4-r6, lr}
- add r4, r1, #0x0
- mov r1, #0x0
- add r5, r2, #0x0
- bl FUN_0206E710
- add r6, r0, #0x0
- add r1, r4, #0x0
- bl FUN_0206E7DC
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02016A8C
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0206E7DC
-FUN_0206E7DC: ; 0x0206E7DC
- push {r3, lr}
- cmp r1, #0xe
- bhi _0206E85C
- add r2, r1, r1
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206E7EE: ; jump table (using 16-bit offset)
- .short _0206E80C - _0206E7EE - 2; case 0
- .short _0206E810 - _0206E7EE - 2; case 1
- .short _0206E814 - _0206E7EE - 2; case 2
- .short _0206E818 - _0206E7EE - 2; case 3
- .short _0206E820 - _0206E7EE - 2; case 4
- .short _0206E828 - _0206E7EE - 2; case 5
- .short _0206E830 - _0206E7EE - 2; case 6
- .short _0206E834 - _0206E7EE - 2; case 7
- .short _0206E838 - _0206E7EE - 2; case 8
- .short _0206E83C - _0206E7EE - 2; case 9
- .short _0206E840 - _0206E7EE - 2; case 10
- .short _0206E844 - _0206E7EE - 2; case 11
- .short _0206E848 - _0206E7EE - 2; case 12
- .short _0206E850 - _0206E7EE - 2; case 13
- .short _0206E858 - _0206E7EE - 2; case 14
-_0206E80C:
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_0206E810:
- ldrb r0, [r0, #0x2]
- pop {r3, pc}
-_0206E814:
- ldrb r0, [r0, #0x3]
- pop {r3, pc}
-_0206E818:
- ldrh r0, [r0, #0x8]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- pop {r3, pc}
-_0206E820:
- ldrh r0, [r0, #0x8]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- pop {r3, pc}
-_0206E828:
- ldrh r0, [r0, #0x8]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1c
- pop {r3, pc}
-_0206E830:
- ldrb r0, [r0, #0xa]
- pop {r3, pc}
-_0206E834:
- ldrb r0, [r0, #0xb]
- pop {r3, pc}
-_0206E838:
- ldrb r0, [r0, #0x4]
- pop {r3, pc}
-_0206E83C:
- ldrb r0, [r0, #0x5]
- pop {r3, pc}
-_0206E840:
- ldrb r0, [r0, #0x6]
- pop {r3, pc}
-_0206E844:
- ldrb r0, [r0, #0x7]
- pop {r3, pc}
-_0206E848:
- ldrh r0, [r0, #0x8]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1b
- pop {r3, pc}
-_0206E850:
- ldrh r0, [r0, #0x8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1b
- pop {r3, pc}
-_0206E858:
- ldrb r0, [r0, #0xc]
- pop {r3, pc}
-_0206E85C:
- ldrb r2, [r0, #0xc]
- cmp r2, #0x0
- beq _0206E868
- cmp r2, #0x1
- beq _0206E86C
- b _0206E874
-_0206E868:
- ldrb r0, [r0, #0xe]
- pop {r3, pc}
-_0206E86C:
- add r0, #0xe
- bl FUN_0206E878
- pop {r3, pc}
-_0206E874:
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_0206E878
-FUN_0206E878: ; 0x0206E878
- sub r1, #0xf
- cmp r1, #0x2b
- bls _0206E880
- b _0206EA2A
-_0206E880:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0206E88C: ; jump table (using 16-bit offset)
- .short _0206E8E4 - _0206E88C - 2; case 0
- .short _0206E8EC - _0206E88C - 2; case 1
- .short _0206E8F4 - _0206E88C - 2; case 2
- .short _0206E8FC - _0206E88C - 2; case 3
- .short _0206E904 - _0206E88C - 2; case 4
- .short _0206E90C - _0206E88C - 2; case 5
- .short _0206E914 - _0206E88C - 2; case 6
- .short _0206E91C - _0206E88C - 2; case 7
- .short _0206E924 - _0206E88C - 2; case 8
- .short _0206E92C - _0206E88C - 2; case 9
- .short _0206E934 - _0206E88C - 2; case 10
- .short _0206E93C - _0206E88C - 2; case 11
- .short _0206E944 - _0206E88C - 2; case 12
- .short _0206E94C - _0206E88C - 2; case 13
- .short _0206E954 - _0206E88C - 2; case 14
- .short _0206E95C - _0206E88C - 2; case 15
- .short _0206E964 - _0206E88C - 2; case 16
- .short _0206E96C - _0206E88C - 2; case 17
- .short _0206E974 - _0206E88C - 2; case 18
- .short _0206E97C - _0206E88C - 2; case 19
- .short _0206E984 - _0206E88C - 2; case 20
- .short _0206E98C - _0206E88C - 2; case 21
- .short _0206E994 - _0206E88C - 2; case 22
- .short _0206E99C - _0206E88C - 2; case 23
- .short _0206E9A4 - _0206E88C - 2; case 24
- .short _0206E9AC - _0206E88C - 2; case 25
- .short _0206E9B4 - _0206E88C - 2; case 26
- .short _0206E9BC - _0206E88C - 2; case 27
- .short _0206E9C4 - _0206E88C - 2; case 28
- .short _0206E9CC - _0206E88C - 2; case 29
- .short _0206E9D4 - _0206E88C - 2; case 30
- .short _0206E9DC - _0206E88C - 2; case 31
- .short _0206E9E4 - _0206E88C - 2; case 32
- .short _0206E9EC - _0206E88C - 2; case 33
- .short _0206E9F2 - _0206E88C - 2; case 34
- .short _0206E9F8 - _0206E88C - 2; case 35
- .short _0206E9FE - _0206E88C - 2; case 36
- .short _0206EA04 - _0206E88C - 2; case 37
- .short _0206EA0A - _0206E88C - 2; case 38
- .short _0206EA10 - _0206E88C - 2; case 39
- .short _0206EA14 - _0206E88C - 2; case 40
- .short _0206EA18 - _0206E88C - 2; case 41
- .short _0206EA1E - _0206E88C - 2; case 42
- .short _0206EA24 - _0206E88C - 2; case 43
-_0206E8E4:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bx lr
-_0206E8EC:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bx lr
-_0206E8F4:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bx lr
-_0206E8FC:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bx lr
-_0206E904:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- bx lr
-_0206E90C:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- bx lr
-_0206E914:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- bx lr
-_0206E91C:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bx lr
-_0206E924:
- ldrb r0, [r0, #0x1]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bx lr
-_0206E92C:
- ldrb r0, [r0, #0x1]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bx lr
-_0206E934:
- ldrb r0, [r0, #0x1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bx lr
-_0206E93C:
- ldrb r0, [r0, #0x1]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bx lr
-_0206E944:
- ldrb r0, [r0, #0x1]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1c
- bx lr
-_0206E94C:
- ldrb r0, [r0, #0x2]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bx lr
-_0206E954:
- ldrb r0, [r0, #0x2]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1c
- bx lr
-_0206E95C:
- ldrb r0, [r0, #0x3]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bx lr
-_0206E964:
- ldrb r0, [r0, #0x3]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1c
- bx lr
-_0206E96C:
- ldrb r0, [r0, #0x4]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bx lr
-_0206E974:
- ldrb r0, [r0, #0x4]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1e
- bx lr
-_0206E97C:
- ldrb r0, [r0, #0x4]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- bx lr
-_0206E984:
- ldrb r0, [r0, #0x4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bx lr
-_0206E98C:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bx lr
-_0206E994:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bx lr
-_0206E99C:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bx lr
-_0206E9A4:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bx lr
-_0206E9AC:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- bx lr
-_0206E9B4:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- bx lr
-_0206E9BC:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- bx lr
-_0206E9C4:
- ldrb r0, [r0, #0x5]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bx lr
-_0206E9CC:
- ldrb r0, [r0, #0x6]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bx lr
-_0206E9D4:
- ldrb r0, [r0, #0x6]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bx lr
-_0206E9DC:
- ldrb r0, [r0, #0x6]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bx lr
-_0206E9E4:
- ldrb r0, [r0, #0x6]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bx lr
-_0206E9EC:
- mov r1, #0x7
- ldrsb r0, [r0, r1]
- bx lr
-_0206E9F2:
- mov r1, #0x8
- ldrsb r0, [r0, r1]
- bx lr
-_0206E9F8:
- mov r1, #0x9
- ldrsb r0, [r0, r1]
- bx lr
-_0206E9FE:
- mov r1, #0xa
- ldrsb r0, [r0, r1]
- bx lr
-_0206EA04:
- mov r1, #0xb
- ldrsb r0, [r0, r1]
- bx lr
-_0206EA0A:
- mov r1, #0xc
- ldrsb r0, [r0, r1]
- bx lr
-_0206EA10:
- ldrb r0, [r0, #0xd]
- bx lr
-_0206EA14:
- ldrb r0, [r0, #0xe]
- bx lr
-_0206EA18:
- mov r1, #0xf
- ldrsb r0, [r0, r1]
- bx lr
-_0206EA1E:
- mov r1, #0x10
- ldrsb r0, [r0, r1]
- bx lr
-_0206EA24:
- mov r1, #0x11
- ldrsb r0, [r0, r1]
- bx lr
-_0206EA2A:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0206EA30
-FUN_0206EA30: ; 0x0206EA30
- mov r2, #0x52
- lsl r2, r2, #0x2
- cmp r0, r2
- blo _0206EA40
- add r1, r2, #0x0
- add r1, #0x63
- cmp r0, r1
- bls _0206EA44
-_0206EA40:
- mov r0, #0x0
- bx lr
-_0206EA44:
- sub r0, r0, r2
- lsl r0, r0, #0x10
- lsr r1, r0, #0xf
- ldr r0, _0206EA50 ; =UNK_020F84EC
- ldrh r0, [r0, r1]
- bx lr
- .balign 4
-_0206EA50: .word UNK_020F84EC
-
- thumb_func_start FUN_0206EA54
-FUN_0206EA54: ; 0x0206EA54
- ldr r2, _0206EA78 ; =UNK_020F84EC
- mov r3, #0x0
-_0206EA58:
- lsl r1, r3, #0x1
- add r1, r2, r1
- add r1, #0xb8
- ldrh r1, [r1, #0x0]
- cmp r0, r1
- bne _0206EA68
- mov r0, #0x1
- bx lr
-_0206EA68:
- add r1, r3, #0x1
- lsl r1, r1, #0x18
- lsr r3, r1, #0x18
- cmp r3, #0x8
- blo _0206EA58
- mov r0, #0x0
- bx lr
- nop
-_0206EA78: .word UNK_020F84EC
-
- thumb_func_start FUN_0206EA7C
-FUN_0206EA7C: ; 0x0206EA7C
- mov r2, #0x52
- lsl r2, r2, #0x2
- cmp r0, r2
- blo _0206EA8C
- add r1, r2, #0x0
- add r1, #0x63
- cmp r0, r1
- bls _0206EA90
-_0206EA8C:
- mov r0, #0x0
- bx lr
-_0206EA90:
- sub r0, r0, r2
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-
- thumb_func_start FUN_0206EA98
-FUN_0206EA98: ; 0x0206EA98
- ldr r3, _0206EAB4 ; =UNK_020F8454
- mov r2, #0x0
-_0206EA9C:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _0206EAA6
- mov r0, #0x1
- bx lr
-_0206EAA6:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0xc
- blo _0206EA9C
- mov r0, #0x0
- bx lr
- nop
-_0206EAB4: .word UNK_020F8454
-
- thumb_func_start FUN_0206EAB8
-FUN_0206EAB8: ; 0x0206EAB8
- ldr r3, _0206EAD4 ; =UNK_020F8454
- mov r2, #0x0
-_0206EABC:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _0206EAC8
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- bx lr
-_0206EAC8:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0xc
- blo _0206EABC
- mov r0, #0x0
- bx lr
- .balign 4
-_0206EAD4: .word UNK_020F8454
-
- thumb_func_start FUN_0206EAD8
-FUN_0206EAD8: ; 0x0206EAD8
- cmp r0, #0xc
- blo _0206EAE0
- mov r0, #0x0
- bx lr
-_0206EAE0:
- lsl r1, r0, #0x1
- ldr r0, _0206EAE8 ; =UNK_020F8454
- ldrh r0, [r0, r1]
- bx lr
- .balign 4
-_0206EAE8: .word UNK_020F8454
-
- thumb_func_start FUN_0206EAEC
-FUN_0206EAEC: ; 0x0206EAEC
- ldr r3, _0206EB08 ; =UNK_020F846C
- mov r2, #0x0
-_0206EAF0:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _0206EAFA
- mov r0, #0x1
- bx lr
-_0206EAFA:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0x40
- blo _0206EAF0
- mov r0, #0x0
- bx lr
- nop
-_0206EB08: .word UNK_020F846C
-
- thumb_func_start FUN_0206EB0C
-FUN_0206EB0C: ; 0x0206EB0C
- cmp r0, #0x95
- bhs _0206EB14
- mov r0, #0xff
- bx lr
-_0206EB14:
- sub r0, #0x95
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-
- thumb_func_start FUN_0206EB1C
-FUN_0206EB1C: ; 0x0206EB1C
- cmp r0, #0x40
- blo _0206EB24
- ldr r0, _0206EB2C ; =0x0000FFFF
- bx lr
-_0206EB24:
- lsl r1, r0, #0x1
- ldr r0, _0206EB30 ; =UNK_020F846C
- ldrh r0, [r0, r1]
- bx lr
- .balign 4
-_0206EB2C: .word 0x0000FFFF
-_0206EB30: .word UNK_020F846C
-
- thumb_func_start FUN_0206EB34
-FUN_0206EB34: ; 0x0206EB34
- ldr r1, _0206EB4C ; =0x0000FFDE
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #0x3
- bhi _0206EB44
- mov r0, #0x1
- b _0206EB46
-_0206EB44:
- mov r0, #0x0
-_0206EB46:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
- .balign 4
-_0206EB4C: .word 0x0000FFDE
-
- thumb_func_start FUN_0206EB50
-FUN_0206EB50: ; 0x0206EB50
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- mov r0, #0x1d
- lsl r0, r0, #0x4
- mov r1, #0x0
- bl FUN_0206E640
- mov r1, #0x24
- mul r1, r0
- str r1, [sp, #0x0]
- mov r1, #0x0
- mov r0, #0xf ; NARC_ITEMTOOL_ITEMDATA_ITEM_DATA
- add r2, r4, #0x0
- add r3, r1, #0x0
- bl AllocAndReadFromNarcMemberByIdPair
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_0206EB78
-FUN_0206EB78: ; 0x0206EB78
- mov r2, #0x24
- mul r2, r1
- add r0, r0, r2
- bx lr
diff --git a/arm9/src/itemtool.c b/arm9/src/itemtool.c
new file mode 100644
index 00000000..fb4097a3
--- /dev/null
+++ b/arm9/src/itemtool.c
@@ -0,0 +1,1028 @@
+#include "global.h"
+#include "itemtool.h"
+#include "msgdata.h"
+#include "heap.h"
+#include "constants/moves.h"
+
+#pragma thumb on
+
+const u16 UNK_020F8454[] = {
+ ITEM_GRASS_MAIL,
+ ITEM_FLAME_MAIL,
+ ITEM_BUBBLE_MAIL,
+ ITEM_BLOOM_MAIL,
+ ITEM_TUNNEL_MAIL,
+ ITEM_STEEL_MAIL,
+ ITEM_HEART_MAIL,
+ ITEM_SNOW_MAIL,
+ ITEM_SPACE_MAIL,
+ ITEM_AIR_MAIL,
+ ITEM_MOSAIC_MAIL,
+ ITEM_BRICK_MAIL,
+};
+
+const u16 UNK_020F846C[] = {
+ ITEM_CHERI_BERRY,
+ ITEM_CHESTO_BERRY,
+ ITEM_PECHA_BERRY,
+ ITEM_RAWST_BERRY,
+ ITEM_ASPEAR_BERRY,
+ ITEM_LEPPA_BERRY,
+ ITEM_ORAN_BERRY,
+ ITEM_PERSIM_BERRY,
+ ITEM_LUM_BERRY,
+ ITEM_SITRUS_BERRY,
+ ITEM_FIGY_BERRY,
+ ITEM_WIKI_BERRY,
+ ITEM_MAGO_BERRY,
+ ITEM_AGUAV_BERRY,
+ ITEM_IAPAPA_BERRY,
+ ITEM_RAZZ_BERRY,
+ ITEM_BLUK_BERRY,
+ ITEM_NANAB_BERRY,
+ ITEM_WEPEAR_BERRY,
+ ITEM_PINAP_BERRY,
+ ITEM_POMEG_BERRY,
+ ITEM_KELPSY_BERRY,
+ ITEM_QUALOT_BERRY,
+ ITEM_HONDEW_BERRY,
+ ITEM_GREPA_BERRY,
+ ITEM_TAMATO_BERRY,
+ ITEM_CORNN_BERRY,
+ ITEM_MAGOST_BERRY,
+ ITEM_RABUTA_BERRY,
+ ITEM_NOMEL_BERRY,
+ ITEM_SPELON_BERRY,
+ ITEM_PAMTRE_BERRY,
+ ITEM_WATMEL_BERRY,
+ ITEM_DURIN_BERRY,
+ ITEM_BELUE_BERRY,
+ ITEM_OCCA_BERRY,
+ ITEM_PASSHO_BERRY,
+ ITEM_WACAN_BERRY,
+ ITEM_RINDO_BERRY,
+ ITEM_YACHE_BERRY,
+ ITEM_CHOPLE_BERRY,
+ ITEM_KEBIA_BERRY,
+ ITEM_SHUCA_BERRY,
+ ITEM_COBA_BERRY,
+ ITEM_PAYAPA_BERRY,
+ ITEM_TANGA_BERRY,
+ ITEM_CHARTI_BERRY,
+ ITEM_KASIB_BERRY,
+ ITEM_HABAN_BERRY,
+ ITEM_COLBUR_BERRY,
+ ITEM_BABIRI_BERRY,
+ ITEM_CHILAN_BERRY,
+ ITEM_LIECHI_BERRY,
+ ITEM_GANLON_BERRY,
+ ITEM_SALAC_BERRY,
+ ITEM_PETAYA_BERRY,
+ ITEM_APICOT_BERRY,
+ ITEM_LANSAT_BERRY,
+ ITEM_STARF_BERRY,
+ ITEM_ENIGMA_BERRY,
+ ITEM_MICLE_BERRY,
+ ITEM_CUSTAP_BERRY,
+ ITEM_JABOCA_BERRY,
+ ITEM_ROWAP_BERRY,
+};
+
+const u16 UNK_020F84EC[] = {
+ MOVE_FOCUS_PUNCH,
+ MOVE_DRAGON_CLAW,
+ MOVE_WATER_PULSE,
+ MOVE_CALM_MIND,
+ MOVE_ROAR,
+ MOVE_TOXIC,
+ MOVE_HAIL,
+ MOVE_BULK_UP,
+ MOVE_BULLET_SEED,
+ MOVE_HIDDEN_POWER,
+ MOVE_SUNNY_DAY,
+ MOVE_TAUNT,
+ MOVE_ICE_BEAM,
+ MOVE_BLIZZARD,
+ MOVE_HYPER_BEAM,
+ MOVE_LIGHT_SCREEN,
+ MOVE_PROTECT,
+ MOVE_RAIN_DANCE,
+ MOVE_GIGA_DRAIN,
+ MOVE_SAFEGUARD,
+ MOVE_FRUSTRATION,
+ MOVE_SOLAR_BEAM,
+ MOVE_IRON_TAIL,
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER,
+ MOVE_EARTHQUAKE,
+ MOVE_RETURN,
+ MOVE_DIG,
+ MOVE_PSYCHIC,
+ MOVE_SHADOW_BALL,
+ MOVE_BRICK_BREAK,
+ MOVE_DOUBLE_TEAM,
+ MOVE_REFLECT,
+ MOVE_SHOCK_WAVE,
+ MOVE_FLAMETHROWER,
+ MOVE_SLUDGE_BOMB,
+ MOVE_SANDSTORM,
+ MOVE_FIRE_BLAST,
+ MOVE_ROCK_TOMB,
+ MOVE_AERIAL_ACE,
+ MOVE_TORMENT,
+ MOVE_FACADE,
+ MOVE_SECRET_POWER,
+ MOVE_REST,
+ MOVE_ATTRACT,
+ MOVE_THIEF,
+ MOVE_STEEL_WING,
+ MOVE_SKILL_SWAP,
+ MOVE_SNATCH,
+ MOVE_OVERHEAT,
+ MOVE_ROOST,
+ MOVE_FOCUS_BLAST,
+ MOVE_ENERGY_BALL,
+ MOVE_FALSE_SWIPE,
+ MOVE_BRINE,
+ MOVE_FLING,
+ MOVE_CHARGE_BEAM,
+ MOVE_ENDURE,
+ MOVE_DRAGON_PULSE,
+ MOVE_DRAIN_PUNCH,
+ MOVE_WILL_O_WISP,
+ MOVE_SILVER_WIND,
+ MOVE_EMBARGO,
+ MOVE_EXPLOSION,
+ MOVE_SHADOW_CLAW,
+ MOVE_PAYBACK,
+ MOVE_RECYCLE,
+ MOVE_GIGA_IMPACT,
+ MOVE_ROCK_POLISH,
+ MOVE_FLASH,
+ MOVE_STONE_EDGE,
+ MOVE_AVALANCHE,
+ MOVE_THUNDER_WAVE,
+ MOVE_GYRO_BALL,
+ MOVE_SWORDS_DANCE,
+ MOVE_STEALTH_ROCK,
+ MOVE_PSYCH_UP,
+ MOVE_CAPTIVATE,
+ MOVE_DARK_PULSE,
+ MOVE_ROCK_SLIDE,
+ MOVE_X_SCISSOR,
+ MOVE_SLEEP_TALK,
+ MOVE_NATURAL_GIFT,
+ MOVE_POISON_JAB,
+ MOVE_DREAM_EATER,
+ MOVE_GRASS_KNOT,
+ MOVE_SWAGGER,
+ MOVE_PLUCK,
+ MOVE_U_TURN,
+ MOVE_SUBSTITUTE,
+ MOVE_FLASH_CANNON,
+ MOVE_TRICK_ROOM,
+ MOVE_CUT,
+ MOVE_FLY,
+ MOVE_SURF,
+ MOVE_STRENGTH,
+ MOVE_DEFOG,
+ MOVE_ROCK_SMASH,
+ MOVE_WATERFALL,
+ MOVE_ROCK_CLIMB,
+};
+
+const u16 UNK_020F85B4[][4] = {
+ { 0, 699, 700, 0 },
+ { 1, 2, 3, 1 },
+ { 2, 4, 5, 2 },
+ { 3, 6, 7, 3 },
+ { 4, 8, 9, 4 },
+ { 5, 10, 11, 5 },
+ { 6, 12, 13, 6 },
+ { 7, 14, 15, 7 },
+ { 8, 16, 17, 8 },
+ { 9, 18, 19, 9 },
+ { 10, 20, 19, 10 },
+ { 11, 21, 22, 11 },
+ { 12, 23, 22, 12 },
+ { 13, 663, 664, 0 },
+ { 14, 665, 666, 0 },
+ { 15, 667, 668, 0 },
+ { 16, 669, 670, 0 },
+ { 17, 24, 25, 13 },
+ { 18, 26, 27, 14 },
+ { 19, 30, 28, 15 },
+ { 20, 30, 29, 16 },
+ { 21, 30, 31, 17 },
+ { 22, 30, 32, 18 },
+ { 23, 33, 34, 19 },
+ { 24, 33, 35, 20 },
+ { 25, 24, 36, 21 },
+ { 26, 24, 37, 22 },
+ { 27, 38, 39, 23 },
+ { 28, 40, 42, 24 },
+ { 29, 41, 42, 25 },
+ { 30, 43, 44, 26 },
+ { 31, 45, 46, 27 },
+ { 32, 47, 48, 28 },
+ { 33, 49, 50, 29 },
+ { 34, 51, 52, 30 },
+ { 35, 53, 54, 31 },
+ { 36, 51, 55, 32 },
+ { 37, 56, 57, 33 },
+ { 38, 58, 59, 34 },
+ { 39, 58, 60, 35 },
+ { 40, 58, 61, 36 },
+ { 41, 58, 62, 37 },
+ { 42, 63, 64, 38 },
+ { 43, 71, 72, 44 },
+ { 44, 73, 74, 45 },
+ { 45, 83, 84, 63 },
+ { 46, 85, 86, 64 },
+ { 47, 85, 87, 65 },
+ { 48, 85, 88, 66 },
+ { 49, 85, 89, 67 },
+ { 50, 90, 91, 68 },
+ { 51, 92, 93, 69 },
+ { 52, 85, 94, 70 },
+ { 53, 95, 96, 71 },
+ { 54, 466, 467, 0 },
+ { 55, 100, 97, 73 },
+ { 56, 100, 98, 74 },
+ { 57, 100, 99, 75 },
+ { 58, 100, 101, 76 },
+ { 59, 100, 102, 77 },
+ { 60, 100, 103, 78 },
+ { 61, 100, 104, 79 },
+ { 62, 100, 469, 0 },
+ { 63, 105, 106, 80 },
+ { 64, 107, 108, 81 },
+ { 65, 65, 66, 39 },
+ { 66, 65, 67, 40 },
+ { 67, 65, 68, 41 },
+ { 68, 65, 69, 42 },
+ { 69, 65, 70, 43 },
+ { 70, 51, 75, 46 },
+ { 71, 76, 77, 47 },
+ { 72, 78, 79, 48 },
+ { 73, 78, 80, 49 },
+ { 74, 78, 81, 50 },
+ { 75, 78, 82, 51 },
+ { 76, 109, 110, 83 },
+ { 77, 109, 111, 84 },
+ { 78, 112, 113, 85 },
+ { 79, 109, 114, 86 },
+ { 80, 115, 116, 93 },
+ { 81, 117, 118, 94 },
+ { 82, 119, 120, 95 },
+ { 83, 121, 122, 96 },
+ { 84, 123, 124, 97 },
+ { 85, 125, 126, 98 },
+ { 86, 127, 129, 103 },
+ { 87, 128, 129, 104 },
+ { 88, 130, 131, 106 },
+ { 89, 132, 131, 107 },
+ { 90, 133, 134, 108 },
+ { 91, 135, 134, 109 },
+ { 92, 136, 137, 110 },
+ { 93, 138, 139, 111 },
+ { 94, 470, 471, 0 },
+ { 95, 472, 473, 0 },
+ { 96, 474, 475, 0 },
+ { 97, 476, 477, 0 },
+ { 98, 478, 479, 0 },
+ { 99, 392, 393, 286 },
+ { 100, 394, 393, 287 },
+ { 101, 431, 432, 357 },
+ { 102, 433, 432, 358 },
+ { 103, 425, 426, 354 },
+ { 104, 617, 618, 0 },
+ { 105, 615, 616, 0 },
+ { 106, 337, 338, 0 },
+ { 107, 480, 481, 0 },
+ { 108, 482, 483, 0 },
+ { 109, 484, 485, 0 },
+ { 110, 486, 487, 0 },
+ { 111, 488, 489, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 0, 699, 700, 0 },
+ { 112, 648, 649, 0 },
+ { 113, 646, 647, 0 },
+ { 114, 140, 141, 0 },
+ { 115, 142, 143, 0 },
+ { 116, 144, 145, 0 },
+ { 117, 146, 147, 0 },
+ { 118, 148, 149, 0 },
+ { 119, 150, 151, 0 },
+ { 120, 152, 153, 0 },
+ { 121, 154, 155, 0 },
+ { 122, 156, 157, 0 },
+ { 123, 158, 159, 0 },
+ { 124, 160, 161, 0 },
+ { 125, 162, 163, 0 },
+ { 126, 164, 165, 133 },
+ { 127, 166, 167, 134 },
+ { 128, 168, 169, 135 },
+ { 129, 170, 171, 136 },
+ { 130, 172, 173, 137 },
+ { 131, 174, 175, 138 },
+ { 132, 176, 177, 139 },
+ { 133, 178, 179, 140 },
+ { 134, 180, 181, 141 },
+ { 135, 182, 183, 142 },
+ { 136, 184, 185, 143 },
+ { 137, 186, 187, 144 },
+ { 138, 188, 189, 145 },
+ { 139, 190, 191, 146 },
+ { 140, 192, 193, 147 },
+ { 141, 194, 195, 148 },
+ { 142, 196, 197, 149 },
+ { 143, 198, 199, 150 },
+ { 144, 200, 201, 151 },
+ { 145, 202, 203, 152 },
+ { 146, 204, 205, 153 },
+ { 147, 206, 207, 154 },
+ { 148, 208, 209, 155 },
+ { 149, 210, 211, 156 },
+ { 150, 212, 213, 157 },
+ { 151, 214, 215, 158 },
+ { 152, 216, 217, 159 },
+ { 153, 218, 219, 160 },
+ { 154, 220, 221, 161 },
+ { 155, 222, 223, 162 },
+ { 156, 224, 225, 163 },
+ { 157, 226, 227, 164 },
+ { 158, 228, 229, 165 },
+ { 159, 230, 231, 166 },
+ { 160, 232, 233, 167 },
+ { 161, 554, 555, 0 },
+ { 162, 556, 557, 0 },
+ { 163, 558, 559, 0 },
+ { 164, 560, 561, 0 },
+ { 165, 562, 563, 0 },
+ { 166, 564, 565, 0 },
+ { 167, 566, 567, 0 },
+ { 168, 568, 569, 0 },
+ { 169, 570, 571, 0 },
+ { 170, 572, 573, 0 },
+ { 171, 574, 575, 0 },
+ { 172, 576, 577, 0 },
+ { 173, 578, 579, 0 },
+ { 174, 580, 581, 0 },
+ { 175, 582, 583, 0 },
+ { 176, 584, 585, 0 },
+ { 177, 586, 587, 0 },
+ { 178, 234, 235, 168 },
+ { 179, 236, 237, 169 },
+ { 180, 238, 239, 170 },
+ { 181, 240, 241, 171 },
+ { 182, 242, 243, 172 },
+ { 183, 244, 245, 173 },
+ { 184, 246, 247, 174 },
+ { 185, 248, 249, 175 },
+ { 186, 588, 589, 0 },
+ { 187, 590, 591, 0 },
+ { 188, 592, 593, 0 },
+ { 189, 594, 595, 0 },
+ { 190, 250, 251, 179 },
+ { 191, 252, 253, 180 },
+ { 192, 254, 255, 181 },
+ { 193, 256, 257, 182 },
+ { 194, 258, 259, 183 },
+ { 195, 260, 261, 184 },
+ { 196, 252, 262, 185 },
+ { 197, 263, 264, 186 },
+ { 198, 265, 266, 187 },
+ { 199, 267, 268, 188 },
+ { 200, 269, 270, 189 },
+ { 201, 271, 272, 190 },
+ { 202, 273, 274, 191 },
+ { 203, 275, 276, 192 },
+ { 204, 277, 278, 193 },
+ { 205, 279, 280, 194 },
+ { 206, 281, 282, 195 },
+ { 207, 283, 284, 196 },
+ { 208, 285, 286, 197 },
+ { 209, 287, 288, 198 },
+ { 210, 289, 290, 199 },
+ { 211, 291, 292, 200 },
+ { 212, 293, 294, 201 },
+ { 213, 295, 296, 202 },
+ { 214, 297, 298, 203 },
+ { 215, 299, 300, 204 },
+ { 216, 301, 302, 205 },
+ { 217, 303, 304, 206 },
+ { 218, 305, 304, 207 },
+ { 219, 306, 307, 208 },
+ { 220, 308, 309, 209 },
+ { 221, 310, 311, 210 },
+ { 222, 312, 313, 211 },
+ { 223, 314, 315, 212 },
+ { 224, 316, 317, 213 },
+ { 225, 318, 319, 214 },
+ { 226, 320, 321, 215 },
+ { 227, 322, 323, 216 },
+ { 228, 324, 325, 217 },
+ { 229, 326, 327, 218 },
+ { 230, 328, 77, 219 },
+ { 231, 329, 330, 220 },
+ { 232, 331, 332, 221 },
+ { 233, 333, 334, 222 },
+ { 234, 335, 336, 223 },
+ { 235, 337, 338, 224 },
+ { 236, 339, 340, 225 },
+ { 237, 341, 342, 254 },
+ { 238, 341, 343, 255 },
+ { 239, 341, 344, 256 },
+ { 240, 341, 345, 257 },
+ { 241, 341, 346, 258 },
+ { 242, 490, 491, 0 },
+ { 243, 492, 493, 0 },
+ { 244, 494, 495, 0 },
+ { 245, 496, 497, 0 },
+ { 246, 611, 612, 0 },
+ { 247, 498, 499, 0 },
+ { 248, 500, 501, 0 },
+ { 249, 502, 503, 0 },
+ { 250, 504, 505, 0 },
+ { 251, 335, 658, 0 },
+ { 252, 659, 660, 0 },
+ { 253, 506, 507, 0 },
+ { 254, 508, 509, 0 },
+ { 255, 613, 614, 0 },
+ { 256, 650, 651, 0 },
+ { 257, 654, 655, 0 },
+ { 258, 510, 511, 0 },
+ { 259, 636, 637, 0 },
+ { 260, 638, 639, 0 },
+ { 261, 640, 641, 0 },
+ { 262, 642, 643, 0 },
+ { 263, 652, 653, 0 },
+ { 264, 512, 513, 0 },
+ { 265, 514, 515, 0 },
+ { 266, 683, 684, 0 },
+ { 267, 691, 692, 0 },
+ { 268, 693, 694, 0 },
+ { 269, 685, 686, 0 },
+ { 270, 687, 688, 0 },
+ { 271, 689, 690, 0 },
+ { 272, 516, 517, 0 },
+ { 273, 518, 519, 0 },
+ { 274, 520, 521, 0 },
+ { 275, 619, 620, 0 },
+ { 276, 619, 621, 0 },
+ { 277, 619, 622, 0 },
+ { 278, 619, 623, 0 },
+ { 279, 619, 624, 0 },
+ { 280, 619, 625, 0 },
+ { 281, 619, 626, 0 },
+ { 282, 619, 627, 0 },
+ { 283, 619, 628, 0 },
+ { 284, 619, 629, 0 },
+ { 285, 619, 630, 0 },
+ { 286, 619, 631, 0 },
+ { 287, 619, 632, 0 },
+ { 288, 619, 633, 0 },
+ { 289, 619, 634, 0 },
+ { 290, 619, 635, 0 },
+ { 291, 522, 523, 0 },
+ { 292, 524, 525, 0 },
+ { 293, 526, 527, 0 },
+ { 294, 528, 529, 0 },
+ { 295, 530, 531, 0 },
+ { 296, 532, 533, 0 },
+ { 297, 534, 535, 0 },
+ { 298, 695, 696, 0 },
+ { 299, 536, 537, 0 },
+ { 300, 538, 539, 0 },
+ { 301, 540, 541, 0 },
+ { 302, 542, 543, 0 },
+ { 303, 544, 545, 0 },
+ { 304, 546, 547, 0 },
+ { 305, 397, 398, 289 },
+ { 306, 397, 399, 290 },
+ { 307, 397, 400, 291 },
+ { 308, 397, 401, 292 },
+ { 309, 397, 402, 293 },
+ { 310, 397, 403, 294 },
+ { 311, 397, 404, 295 },
+ { 312, 397, 398, 296 },
+ { 313, 397, 405, 297 },
+ { 314, 397, 402, 298 },
+ { 315, 397, 406, 299 },
+ { 316, 397, 407, 300 },
+ { 317, 397, 404, 301 },
+ { 318, 397, 404, 302 },
+ { 319, 397, 402, 303 },
+ { 320, 397, 401, 304 },
+ { 321, 397, 402, 305 },
+ { 322, 397, 400, 306 },
+ { 323, 397, 405, 307 },
+ { 324, 397, 402, 308 },
+ { 325, 397, 402, 309 },
+ { 326, 397, 405, 310 },
+ { 327, 397, 408, 311 },
+ { 328, 397, 409, 312 },
+ { 329, 397, 409, 313 },
+ { 330, 397, 410, 314 },
+ { 331, 397, 402, 315 },
+ { 332, 397, 410, 316 },
+ { 333, 397, 401, 317 },
+ { 334, 397, 411, 318 },
+ { 335, 397, 398, 319 },
+ { 336, 397, 402, 320 },
+ { 337, 397, 401, 321 },
+ { 338, 397, 409, 322 },
+ { 339, 397, 406, 323 },
+ { 340, 397, 403, 324 },
+ { 341, 397, 412, 325 },
+ { 342, 397, 406, 326 },
+ { 343, 397, 412, 327 },
+ { 344, 397, 413, 328 },
+ { 345, 397, 407, 329 },
+ { 346, 397, 402, 330 },
+ { 347, 397, 402, 331 },
+ { 348, 397, 401, 332 },
+ { 349, 397, 402, 333 },
+ { 350, 397, 407, 334 },
+ { 351, 397, 408, 335 },
+ { 352, 397, 401, 336 },
+ { 353, 397, 407, 337 },
+ { 354, 397, 406, 338 },
+ { 355, 397, 413, 0 },
+ { 356, 397, 398, 0 },
+ { 357, 397, 405, 0 },
+ { 358, 397, 402, 0 },
+ { 359, 397, 400, 0 },
+ { 360, 397, 407, 0 },
+ { 361, 397, 409, 0 },
+ { 362, 397, 402, 0 },
+ { 363, 397, 399, 0 },
+ { 364, 397, 398, 0 },
+ { 365, 397, 406, 0 },
+ { 366, 397, 610, 0 },
+ { 367, 397, 407, 0 },
+ { 368, 397, 402, 0 },
+ { 369, 397, 411, 0 },
+ { 370, 397, 407, 0 },
+ { 371, 397, 402, 0 },
+ { 372, 397, 402, 0 },
+ { 373, 397, 412, 0 },
+ { 374, 397, 402, 0 },
+ { 375, 397, 412, 0 },
+ { 376, 397, 404, 0 },
+ { 377, 397, 409, 0 },
+ { 378, 397, 408, 0 },
+ { 379, 397, 402, 0 },
+ { 380, 397, 412, 0 },
+ { 381, 397, 402, 0 },
+ { 382, 397, 402, 0 },
+ { 383, 397, 407, 0 },
+ { 384, 397, 412, 0 },
+ { 385, 397, 610, 0 },
+ { 386, 397, 402, 0 },
+ { 387, 397, 402, 0 },
+ { 388, 397, 403, 0 },
+ { 389, 397, 401, 0 },
+ { 390, 397, 405, 0 },
+ { 391, 397, 402, 0 },
+ { 392, 397, 413, 0 },
+ { 393, 397, 610, 0 },
+ { 394, 397, 402, 0 },
+ { 395, 397, 408, 0 },
+ { 396, 397, 401, 0 },
+ { 397, 414, 402, 339 },
+ { 398, 414, 413, 340 },
+ { 399, 414, 400, 341 },
+ { 400, 414, 402, 342 },
+ { 401, 414, 400, 343 },
+ { 402, 414, 398, 344 },
+ { 403, 414, 400, 345 },
+ { 404, 414, 402, 346 },
+ { 405, 548, 549, 0 },
+ { 406, 550, 551, 0 },
+ { 407, 552, 553, 0 },
+ { 408, 697, 698, 0 },
+ { 409, 681, 682, 0 },
+ { 410, 606, 607, 0 },
+ { 411, 671, 672, 0 },
+ { 412, 675, 676, 0 },
+ { 413, 673, 674, 0 },
+ { 414, 661, 662, 0 },
+ { 415, 644, 645, 0 },
+ { 416, 604, 605, 0 },
+ { 417, 656, 657, 0 },
+ { 418, 679, 680, 0 },
+ { 419, 439, 440, 361 },
+ { 420, 441, 442, 362 },
+ { 421, 349, 350, 260 },
+ { 422, 353, 354, 262 },
+ { 423, 355, 356, 263 },
+ { 424, 357, 358, 264 },
+ { 425, 363, 364, 0 },
+ { 426, 373, 374, 0 },
+ { 427, 437, 438, 360 },
+ { 428, 429, 430, 0 },
+ { 429, 375, 64, 0 },
+ { 430, 602, 603, 0 },
+ { 431, 608, 609, 0 },
+ { 432, 677, 678, 0 },
+ { 433, 359, 360, 265 },
+ { 434, 361, 362, 266 },
+ { 435, 596, 597, 0 },
+ { 436, 415, 416, 349 },
+ { 437, 417, 418, 0 },
+ { 438, 419, 420, 0 },
+ { 439, 421, 422, 0 },
+ { 440, 598, 599, 285 },
+ { 441, 600, 601, 0 },
+};
+//
+//static inline void ShiftItemSlots(struct ItemSlot * itemSlots, s16 from, s16 to, s32 direction)
+//{
+// for (; direction > 0 ? from < to : from > to; from += direction)
+// {
+// itemSlots[from] = itemSlots[from + direction];
+// }
+//}
+//
+//void FUN_0206E5B4(struct ItemSlot * itemSlots, u16 from, u16 to)
+//{
+// if (from != to)
+// {
+// struct ItemSlot firstSlot = itemSlots[from];
+// if (to > from)
+// {
+// to--;
+// ShiftItemSlots(itemSlots, from, to, 1);
+// }
+// else
+// {
+// ShiftItemSlots(itemSlots, from, to, -1);
+// }
+// itemSlots[to] = firstSlot;
+// }
+//}
+
+u16 FUN_0206E640(u16 a0, u16 a1)
+{
+ switch (a1)
+ {
+ case 0:
+ if (a0 == 0)
+ break;
+ if (a0 == 0xFFFF)
+ break;
+ return UNK_020F85B4[a0][0];
+ case 1:
+ if (a0 == 0)
+ return 699;
+ if (a0 == 0xFFFF)
+ return 701;
+ return UNK_020F85B4[a0][1];
+ case 2:
+ if (a0 == 0)
+ return 700;
+ if (a0 == 0xFFFF)
+ return 702;
+ return UNK_020F85B4[a0][2];
+ case 3:
+ if (a0 == 0)
+ break;
+ if (a0 == 0xFFFF)
+ break;
+ return UNK_020F85B4[a0][3];
+ }
+ return 0;
+}
+
+u16 FUN_0206E6D8(u16 a0)
+{
+ u16 i;
+ for (i = 1; i <= NELEMS(UNK_020F85B4) - 1; i++)
+ {
+ if (a0 == UNK_020F85B4[i][3])
+ return i;
+ }
+ return 0;
+}
+
+int FUN_0206E708()
+{
+ return 1;
+}
+
+int FUN_0206E70C()
+{
+ return 0;
+}
+
+void * FUN_0206E710(u16 a0, u16 a1, u32 heap_id)
+{
+ if (a0 > NELEMS(UNK_020F85B4) - 1)
+ a0 = 0;
+ switch (a1)
+ {
+ case 0:
+ return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_DATA, UNK_020F85B4[a0][0], heap_id);
+ case 1:
+ return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_ICON, UNK_020F85B4[a0][1], heap_id);
+ case 2:
+ return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_ICON, UNK_020F85B4[a0][2], heap_id);
+ default:
+ return NULL;
+ }
+}
+
+void FUN_0206E768(struct String * dest, u16 item_id, u32 heap_no)
+{
+ struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 344, heap_no);
+ ReadMsgDataIntoString(msgData, item_id, dest);
+ DestroyMsgData(msgData);
+}
+
+void FUN_0206E790(struct String * dest, u16 item_id, u32 heap_no)
+{
+ struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 343, heap_no);
+ ReadMsgDataIntoString(msgData, item_id, dest);
+ DestroyMsgData(msgData);
+}
+
+struct ItemData;
+
+u32 FUN_0206E7DC(struct ItemData * itemData, u32 attr);
+
+u32 FUN_0206E7B8(u16 item, u32 attr, u32 heap_id)
+{
+ u32 ret;
+ struct ItemData * itemData = (struct ItemData *)FUN_0206E710(item, 0, heap_id);
+ ret = FUN_0206E7DC(itemData, attr);
+ FUN_02016A8C(heap_id, itemData);
+ return ret;
+}
+
+u32 FUN_0206E878(struct ItemDataSub * a0, u32 attr);
+
+u32 FUN_0206E7DC(struct ItemData * itemData, u32 attr)
+{
+ switch (attr)
+ {
+ case 0:
+ return itemData->unk0;
+ case 1:
+ return itemData->unk2;
+ case 2:
+ return itemData->unk3;
+ case 3:
+ return itemData->unk8_5;
+ case 4:
+ return itemData->unk8_6;
+ case 5:
+ return itemData->unk8_7;
+ case 6:
+ return itemData->unkA;
+ case 7:
+ return itemData->unkB;
+ case 8:
+ return itemData->unk4;
+ case 9:
+ return itemData->unk5;
+ case 10:
+ return itemData->unk6;
+ case 11:
+ return itemData->unk7;
+ case 12:
+ return itemData->unk8_0;
+ case 13:
+ return itemData->unk8_11;
+ case 14:
+ return itemData->unkC;
+ default:
+ switch (itemData->unkC)
+ {
+ case 0:
+ return itemData->unkE.flat;
+ case 1:
+ return FUN_0206E878(&itemData->unkE.sub, attr);
+ default:
+ return 0;
+ }
+ }
+}
+
+u32 FUN_0206E878(struct ItemDataSub * sub, u32 attr)
+{
+ switch (attr)
+ {
+ case 15:
+ return sub->unk0_0;
+ case 16:
+ return sub->unk0_1;
+ case 17:
+ return sub->unk0_2;
+ case 18:
+ return sub->unk0_3;
+ case 19:
+ return sub->unk0_4;
+ case 20:
+ return sub->unk0_5;
+ case 21:
+ return sub->unk0_6;
+ case 22:
+ return sub->unk0_7;
+ case 23:
+ return sub->unk1_0;
+ case 24:
+ return sub->unk1_1;
+ case 25:
+ return sub->unk1_2;
+ case 26:
+ return sub->unk1_3;
+ case 27:
+ return sub->unk1_4;
+ case 28:
+ return sub->unk2_0;
+ case 29:
+ return sub->unk2_4;
+ case 30:
+ return sub->unk3_0;
+ case 31:
+ return sub->unk3_4;
+ case 32:
+ return sub->unk4_0;
+ case 33:
+ return sub->unk4_4;
+ case 34:
+ return sub->unk4_6;
+ case 35:
+ return sub->unk4_7;
+ case 36:
+ return sub->unk5_0;
+ case 37:
+ return sub->unk5_1;
+ case 38:
+ return sub->unk5_2;
+ case 39:
+ return sub->unk5_3;
+ case 40:
+ return sub->unk5_4;
+ case 41:
+ return sub->unk5_5;
+ case 42:
+ return sub->unk5_6;
+ case 43:
+ return sub->unk5_7;
+ case 44:
+ return sub->unk6_0;
+ case 45:
+ return sub->unk6_1;
+ case 46:
+ return sub->unk6_2;
+ case 47:
+ return sub->unk6_3;
+ case 48:
+ return sub->unk7;
+ case 49:
+ return sub->unk8;
+ case 50:
+ return sub->unk9;
+ case 51:
+ return sub->unkA;
+ case 52:
+ return sub->unkB;
+ case 53:
+ return sub->unkC;
+ case 54:
+ return sub->unkD;
+ case 55:
+ return sub->unkE;
+ case 56:
+ return sub->unkF;
+ case 57:
+ return sub->unk10;
+ case 58:
+ return sub->unk11;
+ default:
+ return 0;
+ }
+}
+
+u16 FUN_0206EA30(u16 a0)
+{
+ if (a0 < ITEM_TM01 || a0 > ITEM_HM08)
+ return MOVE_NONE;
+ a0 -= ITEM_TM01;
+ return UNK_020F84EC[a0];
+}
+
+BOOL FUN_0206EA54(u16 a0)
+{
+ u8 i;
+ for (i = 0; i < 8; i++)
+ {
+ if (a0 == UNK_020F84EC[i + NUM_TMS])
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+u8 FUN_0206EA7C(u16 a0)
+{
+ if (a0 < ITEM_TM01 || a0 > ITEM_HM08)
+ return 0;
+ return (u8)(a0 - ITEM_TM01);
+}
+
+BOOL FUN_0206EA98(u16 a0)
+{
+ u32 i;
+ for (i = 0; i < 12; i++)
+ {
+ if (a0 == UNK_020F8454[i])
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u8 FUN_0206EAB8(u16 a0)
+{
+ u32 i;
+ for (i = 0; i < 12; i++)
+ {
+ if (a0 == UNK_020F8454[i])
+ return (u8)i;
+ }
+ return 0;
+}
+
+u16 FUN_0206EAD8(u8 i)
+{
+ if (i >= 12)
+ return 0;
+ return UNK_020F8454[i];
+}
+
+BOOL FUN_0206EAEC(u16 a0)
+{
+ u32 i;
+ for (i = 0; i < 64; i++)
+ {
+ if (a0 == UNK_020F846C[i])
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u8 FUN_0206EB0C(u16 a0)
+{
+ if (a0 < FIRST_BERRY_IDX)
+ return 0xFF;
+ return (u8)(a0 - FIRST_BERRY_IDX);
+}
+
+u16 FUN_0206EB1C(u8 a0)
+{
+ if (a0 >= NUM_BERRIES)
+ return 0xFFFF;
+ return UNK_020F846C[a0];
+}
+
+u8 FUN_0206EB34(u16 a0)
+{
+ return a0 == ITEM_ENERGYPOWDER ||
+ a0 == ITEM_ENERGY_ROOT ||
+ a0 == ITEM_HEAL_POWDER ||
+ a0 == ITEM_REVIVAL_HERB;
+}
+
+struct ItemData * FUN_0206EB50(u16 a0)
+{
+ return AllocAndReadFromNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_ITEM_DATA, 0, a0, 0, sizeof(struct ItemData) * FUN_0206E640(ITEM_SECRETPOTION, 0));
+}
+
+struct ItemData * FUN_0206EB78(struct ItemData * a0, u16 a1)
+{
+ return a0 + a1;
+}
diff --git a/include/constants/items.h b/include/constants/items.h
index a7fcc32f..3320ce25 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -35,10 +35,12 @@
#define ITEM_SODA_POP 31
#define ITEM_LEMONADE 32
#define ITEM_MOOMOO_MILK 33
+
#define ITEM_ENERGYPOWDER 34
#define ITEM_ENERGY_ROOT 35
#define ITEM_HEAL_POWDER 36
#define ITEM_REVIVAL_HERB 37
+
#define ITEM_ETHER 38
#define ITEM_MAX_ETHER 39
#define ITEM_ELIXIR 40
@@ -130,7 +132,6 @@
#define ITEM_BRICK_MAIL 148
#define ITEM_CHERI_BERRY 149
-#define FIRST_BERRY_IDX ITEM_CHERI_BERRY
#define ITEM_CHESTO_BERRY 150
#define ITEM_PECHA_BERRY 151
#define ITEM_RAWST_BERRY 152
@@ -194,6 +195,11 @@
#define ITEM_CUSTAP_BERRY 210
#define ITEM_JABOCA_BERRY 211
#define ITEM_ROWAP_BERRY 212
+
+#define FIRST_BERRY_IDX ITEM_CHERI_BERRY
+#define LAST_BERRY_IDX ITEM_ROWAP_BERRY
+#define NUM_BERRIES (LAST_BERRY_IDX - FIRST_BERRY_IDX + 1)
+
#define ITEM_BRIGHTPOWDER 213
#define ITEM_WHITE_HERB 214
#define ITEM_MACHO_BRACE 215
@@ -468,7 +474,7 @@
#define TM_GIGA_DRAIN ITEM_TM19
#define TM_SAFEGUARD ITEM_TM20
#define TM_FRUSTRATION ITEM_TM21
-#define TM_SOLARBEAM ITEM_TM22
+#define TM_SOLAR_BEAM ITEM_TM22
#define TM_IRON_TAIL ITEM_TM23
#define TM_THUNDERBOLT ITEM_TM24
#define TM_THUNDER ITEM_TM25
@@ -544,7 +550,6 @@
#define HM_SURF ITEM_HM03
#define HM_STRENGTH ITEM_HM04
#define HM_DEFOG ITEM_HM05
-#define HM_WHIRLPOOL ITEM_HM05
#define HM_ROCK_SMASH ITEM_HM06
#define HM_WATERFALL ITEM_HM07
#define HM_ROCK_CLIMB ITEM_HM08
diff --git a/include/heap.h b/include/heap.h
index 49c54d22..6f04c5bc 100644
--- a/include/heap.h
+++ b/include/heap.h
@@ -4,5 +4,6 @@
void * AllocFromHeap(u32 heap_id, u32 size);
void * AllocFromHeapAtEnd(u32 heap_id, u32 size);
void FreeToHeap(void * ptr);
+void FUN_02016A8C(u32 heap_id, void * ptr);
#endif //POKEDIAMOND_HEAP_H
diff --git a/include/itemtool.h b/include/itemtool.h
index d8419c2b..84046a4a 100644
--- a/include/itemtool.h
+++ b/include/itemtool.h
@@ -2,6 +2,7 @@
#define POKEDIAMOND_ITEMTOOL_H
#include "global.h"
+#include "filesystem.h"
#include "constants/items.h"
// Berries (nutdata)
@@ -21,6 +22,85 @@ struct NutData
u8 unkB;
};
+struct ItemSlot
+{
+ u16 id;
+ u16 quantity;
+};
+
+struct ItemDataSub
+{
+ u8 unk0_0:1;
+ u8 unk0_1:1;
+ u8 unk0_2:1;
+ u8 unk0_3:1;
+ u8 unk0_4:1;
+ u8 unk0_5:1;
+ u8 unk0_6:1;
+ u8 unk0_7:1;
+ u8 unk1_0:1;
+ u8 unk1_1:1;
+ u8 unk1_2:1;
+ u8 unk1_3:1;
+ u8 unk1_4:4;
+ u8 unk2_0:4;
+ u8 unk2_4:4;
+ u8 unk3_0:4;
+ u8 unk3_4:4;
+ u8 unk4_0:4;
+ u8 unk4_4:2;
+ u8 unk4_6:1;
+ u8 unk4_7:1;
+ u8 unk5_0:1;
+ u8 unk5_1:1;
+ u8 unk5_2:1;
+ u8 unk5_3:1;
+ u8 unk5_4:1;
+ u8 unk5_5:1;
+ u8 unk5_6:1;
+ u8 unk5_7:1;
+ u8 unk6_0:1;
+ u8 unk6_1:1;
+ u8 unk6_2:1;
+ u8 unk6_3:1;
+ s8 unk7;
+ s8 unk8;
+ s8 unk9;
+ s8 unkA;
+ s8 unkB;
+ s8 unkC;
+ u8 unkD;
+ u8 unkE;
+ s8 unkF;
+ s8 unk10;
+ s8 unk11;
+ u8 paddding[4];
+};
+
+struct ItemData
+{
+ u16 unk0;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ u16 unk8_0:5;
+ u16 unk8_5:1;
+ u16 unk8_6:1;
+ u16 unk8_7:4;
+ u16 unk8_11:5;
+ u8 unkA;
+ u8 unkB;
+ u8 unkC;
+ u8 unkD;
+ union {
+ u8 flat;
+ struct ItemDataSub sub;
+ } unkE;
+};
+
NARC * OpenNutsDataNarc(u32 heap_id);
struct NutData * ReadNutDataFromNarc(NARC * narc, u32 berry_idx, u32 heap_id);
void CloseNutsDataNarc(NARC * narc);
@@ -30,4 +110,28 @@ u32 GetNutAttr(struct NutData * nut, u32 attr);
struct String * GetNutName(u32 berry_idx, u32 heap_id);
struct String * GetNutDesc(u32 berry_idx, u32 heap_id);
+void FUN_0206E5B4(struct ItemSlot * itemSlots, u16 from, u16 to);
+u16 FUN_0206E640(u16 a0, u16 a1);
+u16 FUN_0206E6D8(u16 a0);
+int FUN_0206E708();
+int FUN_0206E70C();
+void * FUN_0206E710(u16 a0, u16 a1, u32 heap_id);
+void FUN_0206E768(struct String * dest, u16 item_id, u32 heap_no);
+void FUN_0206E790(struct String * dest, u16 item_id, u32 heap_no);
+u32 FUN_0206E7B8(u16 item, u32 attr, u32 heap_id);
+u32 FUN_0206E7DC(struct ItemData * itemData, u32 attr);
+u32 FUN_0206E878(struct ItemDataSub * sub, u32 attr);
+u16 FUN_0206EA30(u16 a0);
+BOOL FUN_0206EA54(u16 a0);
+u8 FUN_0206EA7C(u16 a0);
+BOOL FUN_0206EA98(u16 a0);
+u8 FUN_0206EAB8(u16 a0);
+u16 FUN_0206EAD8(u8 i);
+BOOL FUN_0206EAEC(u16 a0);
+u8 FUN_0206EB0C(u16 a0);
+u16 FUN_0206EB1C(u8 a0);
+u8 FUN_0206EB34(u16 a0);
+struct ItemData * FUN_0206EB50(u16 a0);
+struct ItemData * FUN_0206EB78(struct ItemData * a0, u16 a1);
+
#endif //POKEDIAMOND_ITEMTOOL_H