diff options
-rw-r--r-- | arm9/arm9.lcf | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0206E5B4.s | 1310 | ||||
-rw-r--r-- | arm9/src/itemtool.c | 1028 | ||||
-rw-r--r-- | include/constants/items.h | 11 | ||||
-rw-r--r-- | include/heap.h | 1 | ||||
-rw-r--r-- | include/itemtool.h | 104 |
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 |