diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-21 15:04:16 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-21 15:04:16 -0400 |
commit | b207354025c33f3084981224e7727d4540c550d3 (patch) | |
tree | f4a97588996b64ea8ddc33004a420a06254d911f /arm9/src | |
parent | d2710751ca6b1c4cc5399ea7206fb8faa00de5fe (diff) |
Most of itemtool.c; draft of that first item slot function
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/itemtool.c | 1028 |
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; +} |