summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-06-21 15:04:16 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-06-21 15:04:16 -0400
commitb207354025c33f3084981224e7727d4540c550d3 (patch)
treef4a97588996b64ea8ddc33004a420a06254d911f /arm9/src
parentd2710751ca6b1c4cc5399ea7206fb8faa00de5fe (diff)
Most of itemtool.c; draft of that first item slot function
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/itemtool.c1028
1 files changed, 1028 insertions, 0 deletions
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;
+}