diff --git a/include/berry.h b/include/berry.h index ba1bbb1d1..748778955 100644 --- a/include/berry.h +++ b/include/berry.h @@ -14,7 +14,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle); void RemoveBerryTree(u8 id); u8 GetBerryTypeByBerryTreeId(u8 id); u8 GetStageByBerryTreeId(u8); -u8 ItemIdToBerryType(u16 item); +u8 ItemIdToBerryType(enum Item item); void GetBerryNameByBerryType(u8 berry, u8 *string); void ResetBerryTreeSparkleFlag(u8 id); void Bag_ChooseBerry(void); diff --git a/include/constants/species.h b/include/constants/species.h index 98b6f3c8e..bf5122e13 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -6,1691 +6,1697 @@ // Discussion: https://github.com/rh-hideout/pokeemerald-expansion/pull/5075#issuecomment-2384088602 // Showdown: https://github.com/smogon/Pokemon-Showdown/blob/master/data/pokedex.ts -#define SPECIES_NONE 0 -#define SPECIES_BULBASAUR 1 -#define SPECIES_IVYSAUR 2 -#define SPECIES_VENUSAUR 3 -#define SPECIES_CHARMANDER 4 -#define SPECIES_CHARMELEON 5 -#define SPECIES_CHARIZARD 6 -#define SPECIES_SQUIRTLE 7 -#define SPECIES_WARTORTLE 8 -#define SPECIES_BLASTOISE 9 -#define SPECIES_CATERPIE 10 -#define SPECIES_METAPOD 11 -#define SPECIES_BUTTERFREE 12 -#define SPECIES_WEEDLE 13 -#define SPECIES_KAKUNA 14 -#define SPECIES_BEEDRILL 15 -#define SPECIES_PIDGEY 16 -#define SPECIES_PIDGEOTTO 17 -#define SPECIES_PIDGEOT 18 -#define SPECIES_RATTATA 19 -#define SPECIES_RATICATE 20 -#define SPECIES_SPEAROW 21 -#define SPECIES_FEAROW 22 -#define SPECIES_EKANS 23 -#define SPECIES_ARBOK 24 -#define SPECIES_PIKACHU 25 -#define SPECIES_RAICHU 26 -#define SPECIES_SANDSHREW 27 -#define SPECIES_SANDSLASH 28 -#define SPECIES_NIDORAN_F 29 -#define SPECIES_NIDORINA 30 -#define SPECIES_NIDOQUEEN 31 -#define SPECIES_NIDORAN_M 32 -#define SPECIES_NIDORINO 33 -#define SPECIES_NIDOKING 34 -#define SPECIES_CLEFAIRY 35 -#define SPECIES_CLEFABLE 36 -#define SPECIES_VULPIX 37 -#define SPECIES_NINETALES 38 -#define SPECIES_JIGGLYPUFF 39 -#define SPECIES_WIGGLYTUFF 40 -#define SPECIES_ZUBAT 41 -#define SPECIES_GOLBAT 42 -#define SPECIES_ODDISH 43 -#define SPECIES_GLOOM 44 -#define SPECIES_VILEPLUME 45 -#define SPECIES_PARAS 46 -#define SPECIES_PARASECT 47 -#define SPECIES_VENONAT 48 -#define SPECIES_VENOMOTH 49 -#define SPECIES_DIGLETT 50 -#define SPECIES_DUGTRIO 51 -#define SPECIES_MEOWTH 52 -#define SPECIES_PERSIAN 53 -#define SPECIES_PSYDUCK 54 -#define SPECIES_GOLDUCK 55 -#define SPECIES_MANKEY 56 -#define SPECIES_PRIMEAPE 57 -#define SPECIES_GROWLITHE 58 -#define SPECIES_ARCANINE 59 -#define SPECIES_POLIWAG 60 -#define SPECIES_POLIWHIRL 61 -#define SPECIES_POLIWRATH 62 -#define SPECIES_ABRA 63 -#define SPECIES_KADABRA 64 -#define SPECIES_ALAKAZAM 65 -#define SPECIES_MACHOP 66 -#define SPECIES_MACHOKE 67 -#define SPECIES_MACHAMP 68 -#define SPECIES_BELLSPROUT 69 -#define SPECIES_WEEPINBELL 70 -#define SPECIES_VICTREEBEL 71 -#define SPECIES_TENTACOOL 72 -#define SPECIES_TENTACRUEL 73 -#define SPECIES_GEODUDE 74 -#define SPECIES_GRAVELER 75 -#define SPECIES_GOLEM 76 -#define SPECIES_PONYTA 77 -#define SPECIES_RAPIDASH 78 -#define SPECIES_SLOWPOKE 79 -#define SPECIES_SLOWBRO 80 -#define SPECIES_MAGNEMITE 81 -#define SPECIES_MAGNETON 82 -#define SPECIES_FARFETCHD 83 -#define SPECIES_DODUO 84 -#define SPECIES_DODRIO 85 -#define SPECIES_SEEL 86 -#define SPECIES_DEWGONG 87 -#define SPECIES_GRIMER 88 -#define SPECIES_MUK 89 -#define SPECIES_SHELLDER 90 -#define SPECIES_CLOYSTER 91 -#define SPECIES_GASTLY 92 -#define SPECIES_HAUNTER 93 -#define SPECIES_GENGAR 94 -#define SPECIES_ONIX 95 -#define SPECIES_DROWZEE 96 -#define SPECIES_HYPNO 97 -#define SPECIES_KRABBY 98 -#define SPECIES_KINGLER 99 -#define SPECIES_VOLTORB 100 -#define SPECIES_ELECTRODE 101 -#define SPECIES_EXEGGCUTE 102 -#define SPECIES_EXEGGUTOR 103 -#define SPECIES_CUBONE 104 -#define SPECIES_MAROWAK 105 -#define SPECIES_HITMONLEE 106 -#define SPECIES_HITMONCHAN 107 -#define SPECIES_LICKITUNG 108 -#define SPECIES_KOFFING 109 -#define SPECIES_WEEZING 110 -#define SPECIES_RHYHORN 111 -#define SPECIES_RHYDON 112 -#define SPECIES_CHANSEY 113 -#define SPECIES_TANGELA 114 -#define SPECIES_KANGASKHAN 115 -#define SPECIES_HORSEA 116 -#define SPECIES_SEADRA 117 -#define SPECIES_GOLDEEN 118 -#define SPECIES_SEAKING 119 -#define SPECIES_STARYU 120 -#define SPECIES_STARMIE 121 -#define SPECIES_MR_MIME 122 -#define SPECIES_SCYTHER 123 -#define SPECIES_JYNX 124 -#define SPECIES_ELECTABUZZ 125 -#define SPECIES_MAGMAR 126 -#define SPECIES_PINSIR 127 -#define SPECIES_TAUROS 128 -#define SPECIES_MAGIKARP 129 -#define SPECIES_GYARADOS 130 -#define SPECIES_LAPRAS 131 -#define SPECIES_DITTO 132 -#define SPECIES_EEVEE 133 -#define SPECIES_VAPOREON 134 -#define SPECIES_JOLTEON 135 -#define SPECIES_FLAREON 136 -#define SPECIES_PORYGON 137 -#define SPECIES_OMANYTE 138 -#define SPECIES_OMASTAR 139 -#define SPECIES_KABUTO 140 -#define SPECIES_KABUTOPS 141 -#define SPECIES_AERODACTYL 142 -#define SPECIES_SNORLAX 143 -#define SPECIES_ARTICUNO 144 -#define SPECIES_ZAPDOS 145 -#define SPECIES_MOLTRES 146 -#define SPECIES_DRATINI 147 -#define SPECIES_DRAGONAIR 148 -#define SPECIES_DRAGONITE 149 -#define SPECIES_MEWTWO 150 -#define SPECIES_MEW 151 -#define SPECIES_CHIKORITA 152 -#define SPECIES_BAYLEEF 153 -#define SPECIES_MEGANIUM 154 -#define SPECIES_CYNDAQUIL 155 -#define SPECIES_QUILAVA 156 -#define SPECIES_TYPHLOSION 157 -#define SPECIES_TOTODILE 158 -#define SPECIES_CROCONAW 159 -#define SPECIES_FERALIGATR 160 -#define SPECIES_SENTRET 161 -#define SPECIES_FURRET 162 -#define SPECIES_HOOTHOOT 163 -#define SPECIES_NOCTOWL 164 -#define SPECIES_LEDYBA 165 -#define SPECIES_LEDIAN 166 -#define SPECIES_SPINARAK 167 -#define SPECIES_ARIADOS 168 -#define SPECIES_CROBAT 169 -#define SPECIES_CHINCHOU 170 -#define SPECIES_LANTURN 171 -#define SPECIES_PICHU 172 -#define SPECIES_CLEFFA 173 -#define SPECIES_IGGLYBUFF 174 -#define SPECIES_TOGEPI 175 -#define SPECIES_TOGETIC 176 -#define SPECIES_NATU 177 -#define SPECIES_XATU 178 -#define SPECIES_MAREEP 179 -#define SPECIES_FLAAFFY 180 -#define SPECIES_AMPHAROS 181 -#define SPECIES_BELLOSSOM 182 -#define SPECIES_MARILL 183 -#define SPECIES_AZUMARILL 184 -#define SPECIES_SUDOWOODO 185 -#define SPECIES_POLITOED 186 -#define SPECIES_HOPPIP 187 -#define SPECIES_SKIPLOOM 188 -#define SPECIES_JUMPLUFF 189 -#define SPECIES_AIPOM 190 -#define SPECIES_SUNKERN 191 -#define SPECIES_SUNFLORA 192 -#define SPECIES_YANMA 193 -#define SPECIES_WOOPER 194 -#define SPECIES_QUAGSIRE 195 -#define SPECIES_ESPEON 196 -#define SPECIES_UMBREON 197 -#define SPECIES_MURKROW 198 -#define SPECIES_SLOWKING 199 -#define SPECIES_MISDREAVUS 200 -#define SPECIES_UNOWN 201 -#define SPECIES_WOBBUFFET 202 -#define SPECIES_GIRAFARIG 203 -#define SPECIES_PINECO 204 -#define SPECIES_FORRETRESS 205 -#define SPECIES_DUNSPARCE 206 -#define SPECIES_GLIGAR 207 -#define SPECIES_STEELIX 208 -#define SPECIES_SNUBBULL 209 -#define SPECIES_GRANBULL 210 -#define SPECIES_QWILFISH 211 -#define SPECIES_SCIZOR 212 -#define SPECIES_SHUCKLE 213 -#define SPECIES_HERACROSS 214 -#define SPECIES_SNEASEL 215 -#define SPECIES_TEDDIURSA 216 -#define SPECIES_URSARING 217 -#define SPECIES_SLUGMA 218 -#define SPECIES_MAGCARGO 219 -#define SPECIES_SWINUB 220 -#define SPECIES_PILOSWINE 221 -#define SPECIES_CORSOLA 222 -#define SPECIES_REMORAID 223 -#define SPECIES_OCTILLERY 224 -#define SPECIES_DELIBIRD 225 -#define SPECIES_MANTINE 226 -#define SPECIES_SKARMORY 227 -#define SPECIES_HOUNDOUR 228 -#define SPECIES_HOUNDOOM 229 -#define SPECIES_KINGDRA 230 -#define SPECIES_PHANPY 231 -#define SPECIES_DONPHAN 232 -#define SPECIES_PORYGON2 233 -#define SPECIES_STANTLER 234 -#define SPECIES_SMEARGLE 235 -#define SPECIES_TYROGUE 236 -#define SPECIES_HITMONTOP 237 -#define SPECIES_SMOOCHUM 238 -#define SPECIES_ELEKID 239 -#define SPECIES_MAGBY 240 -#define SPECIES_MILTANK 241 -#define SPECIES_BLISSEY 242 -#define SPECIES_RAIKOU 243 -#define SPECIES_ENTEI 244 -#define SPECIES_SUICUNE 245 -#define SPECIES_LARVITAR 246 -#define SPECIES_PUPITAR 247 -#define SPECIES_TYRANITAR 248 -#define SPECIES_LUGIA 249 -#define SPECIES_HO_OH 250 -#define SPECIES_CELEBI 251 -#define SPECIES_TREECKO 252 -#define SPECIES_GROVYLE 253 -#define SPECIES_SCEPTILE 254 -#define SPECIES_TORCHIC 255 -#define SPECIES_COMBUSKEN 256 -#define SPECIES_BLAZIKEN 257 -#define SPECIES_MUDKIP 258 -#define SPECIES_MARSHTOMP 259 -#define SPECIES_SWAMPERT 260 -#define SPECIES_POOCHYENA 261 -#define SPECIES_MIGHTYENA 262 -#define SPECIES_ZIGZAGOON 263 -#define SPECIES_LINOONE 264 -#define SPECIES_WURMPLE 265 -#define SPECIES_SILCOON 266 -#define SPECIES_BEAUTIFLY 267 -#define SPECIES_CASCOON 268 -#define SPECIES_DUSTOX 269 -#define SPECIES_LOTAD 270 -#define SPECIES_LOMBRE 271 -#define SPECIES_LUDICOLO 272 -#define SPECIES_SEEDOT 273 -#define SPECIES_NUZLEAF 274 -#define SPECIES_SHIFTRY 275 -#define SPECIES_TAILLOW 276 -#define SPECIES_SWELLOW 277 -#define SPECIES_WINGULL 278 -#define SPECIES_PELIPPER 279 -#define SPECIES_RALTS 280 -#define SPECIES_KIRLIA 281 -#define SPECIES_GARDEVOIR 282 -#define SPECIES_SURSKIT 283 -#define SPECIES_MASQUERAIN 284 -#define SPECIES_SHROOMISH 285 -#define SPECIES_BRELOOM 286 -#define SPECIES_SLAKOTH 287 -#define SPECIES_VIGOROTH 288 -#define SPECIES_SLAKING 289 -#define SPECIES_NINCADA 290 -#define SPECIES_NINJASK 291 -#define SPECIES_SHEDINJA 292 -#define SPECIES_WHISMUR 293 -#define SPECIES_LOUDRED 294 -#define SPECIES_EXPLOUD 295 -#define SPECIES_MAKUHITA 296 -#define SPECIES_HARIYAMA 297 -#define SPECIES_AZURILL 298 -#define SPECIES_NOSEPASS 299 -#define SPECIES_SKITTY 300 -#define SPECIES_DELCATTY 301 -#define SPECIES_SABLEYE 302 -#define SPECIES_MAWILE 303 -#define SPECIES_ARON 304 -#define SPECIES_LAIRON 305 -#define SPECIES_AGGRON 306 -#define SPECIES_MEDITITE 307 -#define SPECIES_MEDICHAM 308 -#define SPECIES_ELECTRIKE 309 -#define SPECIES_MANECTRIC 310 -#define SPECIES_PLUSLE 311 -#define SPECIES_MINUN 312 -#define SPECIES_VOLBEAT 313 -#define SPECIES_ILLUMISE 314 -#define SPECIES_ROSELIA 315 -#define SPECIES_GULPIN 316 -#define SPECIES_SWALOT 317 -#define SPECIES_CARVANHA 318 -#define SPECIES_SHARPEDO 319 -#define SPECIES_WAILMER 320 -#define SPECIES_WAILORD 321 -#define SPECIES_NUMEL 322 -#define SPECIES_CAMERUPT 323 -#define SPECIES_TORKOAL 324 -#define SPECIES_SPOINK 325 -#define SPECIES_GRUMPIG 326 -#define SPECIES_SPINDA 327 -#define SPECIES_TRAPINCH 328 -#define SPECIES_VIBRAVA 329 -#define SPECIES_FLYGON 330 -#define SPECIES_CACNEA 331 -#define SPECIES_CACTURNE 332 -#define SPECIES_SWABLU 333 -#define SPECIES_ALTARIA 334 -#define SPECIES_ZANGOOSE 335 -#define SPECIES_SEVIPER 336 -#define SPECIES_LUNATONE 337 -#define SPECIES_SOLROCK 338 -#define SPECIES_BARBOACH 339 -#define SPECIES_WHISCASH 340 -#define SPECIES_CORPHISH 341 -#define SPECIES_CRAWDAUNT 342 -#define SPECIES_BALTOY 343 -#define SPECIES_CLAYDOL 344 -#define SPECIES_LILEEP 345 -#define SPECIES_CRADILY 346 -#define SPECIES_ANORITH 347 -#define SPECIES_ARMALDO 348 -#define SPECIES_FEEBAS 349 -#define SPECIES_MILOTIC 350 -#define SPECIES_CASTFORM SPECIES_CASTFORM_NORMAL -#define SPECIES_CASTFORM_NORMAL 351 -#define SPECIES_KECLEON 352 -#define SPECIES_SHUPPET 353 -#define SPECIES_BANETTE 354 -#define SPECIES_DUSKULL 355 -#define SPECIES_DUSCLOPS 356 -#define SPECIES_TROPIUS 357 -#define SPECIES_CHIMECHO 358 -#define SPECIES_ABSOL 359 -#define SPECIES_WYNAUT 360 -#define SPECIES_SNORUNT 361 -#define SPECIES_GLALIE 362 -#define SPECIES_SPHEAL 363 -#define SPECIES_SEALEO 364 -#define SPECIES_WALREIN 365 -#define SPECIES_CLAMPERL 366 -#define SPECIES_HUNTAIL 367 -#define SPECIES_GOREBYSS 368 -#define SPECIES_RELICANTH 369 -#define SPECIES_LUVDISC 370 -#define SPECIES_BAGON 371 -#define SPECIES_SHELGON 372 -#define SPECIES_SALAMENCE 373 -#define SPECIES_BELDUM 374 -#define SPECIES_METANG 375 -#define SPECIES_METAGROSS 376 -#define SPECIES_REGIROCK 377 -#define SPECIES_REGICE 378 -#define SPECIES_REGISTEEL 379 -#define SPECIES_LATIAS 380 -#define SPECIES_LATIOS 381 -#define SPECIES_KYOGRE 382 -#define SPECIES_GROUDON 383 -#define SPECIES_RAYQUAZA 384 -#define SPECIES_JIRACHI 385 -#define SPECIES_DEOXYS SPECIES_DEOXYS_NORMAL -#define SPECIES_DEOXYS_NORMAL 386 -#define SPECIES_TURTWIG 387 -#define SPECIES_GROTLE 388 -#define SPECIES_TORTERRA 389 -#define SPECIES_CHIMCHAR 390 -#define SPECIES_MONFERNO 391 -#define SPECIES_INFERNAPE 392 -#define SPECIES_PIPLUP 393 -#define SPECIES_PRINPLUP 394 -#define SPECIES_EMPOLEON 395 -#define SPECIES_STARLY 396 -#define SPECIES_STARAVIA 397 -#define SPECIES_STARAPTOR 398 -#define SPECIES_BIDOOF 399 -#define SPECIES_BIBAREL 400 -#define SPECIES_KRICKETOT 401 -#define SPECIES_KRICKETUNE 402 -#define SPECIES_SHINX 403 -#define SPECIES_LUXIO 404 -#define SPECIES_LUXRAY 405 -#define SPECIES_BUDEW 406 -#define SPECIES_ROSERADE 407 -#define SPECIES_CRANIDOS 408 -#define SPECIES_RAMPARDOS 409 -#define SPECIES_SHIELDON 410 -#define SPECIES_BASTIODON 411 -#define SPECIES_BURMY_PLANT 412 -#define SPECIES_BURMY SPECIES_BURMY_PLANT -#define SPECIES_WORMADAM_PLANT 413 -#define SPECIES_WORMADAM SPECIES_WORMADAM_PLANT -#define SPECIES_MOTHIM_PLANT 414 -#define SPECIES_MOTHIM SPECIES_MOTHIM_PLANT -#define SPECIES_COMBEE 415 -#define SPECIES_VESPIQUEN 416 -#define SPECIES_PACHIRISU 417 -#define SPECIES_BUIZEL 418 -#define SPECIES_FLOATZEL 419 -#define SPECIES_CHERUBI 420 -#define SPECIES_CHERRIM SPECIES_CHERRIM_OVERCAST -#define SPECIES_CHERRIM_OVERCAST 421 -#define SPECIES_SHELLOS_WEST 422 -#define SPECIES_SHELLOS SPECIES_SHELLOS_WEST -#define SPECIES_GASTRODON_WEST 423 -#define SPECIES_GASTRODON SPECIES_GASTRODON_WEST -#define SPECIES_AMBIPOM 424 -#define SPECIES_DRIFLOON 425 -#define SPECIES_DRIFBLIM 426 -#define SPECIES_BUNEARY 427 -#define SPECIES_LOPUNNY 428 -#define SPECIES_MISMAGIUS 429 -#define SPECIES_HONCHKROW 430 -#define SPECIES_GLAMEOW 431 -#define SPECIES_PURUGLY 432 -#define SPECIES_CHINGLING 433 -#define SPECIES_STUNKY 434 -#define SPECIES_SKUNTANK 435 -#define SPECIES_BRONZOR 436 -#define SPECIES_BRONZONG 437 -#define SPECIES_BONSLY 438 -#define SPECIES_MIME_JR 439 -#define SPECIES_HAPPINY 440 -#define SPECIES_CHATOT 441 -#define SPECIES_SPIRITOMB 442 -#define SPECIES_GIBLE 443 -#define SPECIES_GABITE 444 -#define SPECIES_GARCHOMP 445 -#define SPECIES_MUNCHLAX 446 -#define SPECIES_RIOLU 447 -#define SPECIES_LUCARIO 448 -#define SPECIES_HIPPOPOTAS 449 -#define SPECIES_HIPPOWDON 450 -#define SPECIES_SKORUPI 451 -#define SPECIES_DRAPION 452 -#define SPECIES_CROAGUNK 453 -#define SPECIES_TOXICROAK 454 -#define SPECIES_CARNIVINE 455 -#define SPECIES_FINNEON 456 -#define SPECIES_LUMINEON 457 -#define SPECIES_MANTYKE 458 -#define SPECIES_SNOVER 459 -#define SPECIES_ABOMASNOW 460 -#define SPECIES_WEAVILE 461 -#define SPECIES_MAGNEZONE 462 -#define SPECIES_LICKILICKY 463 -#define SPECIES_RHYPERIOR 464 -#define SPECIES_TANGROWTH 465 -#define SPECIES_ELECTIVIRE 466 -#define SPECIES_MAGMORTAR 467 -#define SPECIES_TOGEKISS 468 -#define SPECIES_YANMEGA 469 -#define SPECIES_LEAFEON 470 -#define SPECIES_GLACEON 471 -#define SPECIES_GLISCOR 472 -#define SPECIES_MAMOSWINE 473 -#define SPECIES_PORYGON_Z 474 -#define SPECIES_GALLADE 475 -#define SPECIES_PROBOPASS 476 -#define SPECIES_DUSKNOIR 477 -#define SPECIES_FROSLASS 478 -#define SPECIES_ROTOM 479 -#define SPECIES_UXIE 480 -#define SPECIES_MESPRIT 481 -#define SPECIES_AZELF 482 -#define SPECIES_DIALGA 483 -#define SPECIES_PALKIA 484 -#define SPECIES_HEATRAN 485 -#define SPECIES_REGIGIGAS 486 -#define SPECIES_GIRATINA SPECIES_GIRATINA_ALTERED -#define SPECIES_GIRATINA_ALTERED 487 -#define SPECIES_CRESSELIA 488 -#define SPECIES_PHIONE 489 -#define SPECIES_MANAPHY 490 -#define SPECIES_DARKRAI 491 -#define SPECIES_SHAYMIN SPECIES_SHAYMIN_LAND -#define SPECIES_SHAYMIN_LAND 492 -#define SPECIES_ARCEUS SPECIES_ARCEUS_NORMAL -#define SPECIES_ARCEUS_NORMAL 493 -#define SPECIES_VICTINI 494 -#define SPECIES_SNIVY 495 -#define SPECIES_SERVINE 496 -#define SPECIES_SERPERIOR 497 -#define SPECIES_TEPIG 498 -#define SPECIES_PIGNITE 499 -#define SPECIES_EMBOAR 500 -#define SPECIES_OSHAWOTT 501 -#define SPECIES_DEWOTT 502 -#define SPECIES_SAMUROTT 503 -#define SPECIES_PATRAT 504 -#define SPECIES_WATCHOG 505 -#define SPECIES_LILLIPUP 506 -#define SPECIES_HERDIER 507 -#define SPECIES_STOUTLAND 508 -#define SPECIES_PURRLOIN 509 -#define SPECIES_LIEPARD 510 -#define SPECIES_PANSAGE 511 -#define SPECIES_SIMISAGE 512 -#define SPECIES_PANSEAR 513 -#define SPECIES_SIMISEAR 514 -#define SPECIES_PANPOUR 515 -#define SPECIES_SIMIPOUR 516 -#define SPECIES_MUNNA 517 -#define SPECIES_MUSHARNA 518 -#define SPECIES_PIDOVE 519 -#define SPECIES_TRANQUILL 520 -#define SPECIES_UNFEZANT 521 -#define SPECIES_BLITZLE 522 -#define SPECIES_ZEBSTRIKA 523 -#define SPECIES_ROGGENROLA 524 -#define SPECIES_BOLDORE 525 -#define SPECIES_GIGALITH 526 -#define SPECIES_WOOBAT 527 -#define SPECIES_SWOOBAT 528 -#define SPECIES_DRILBUR 529 -#define SPECIES_EXCADRILL 530 -#define SPECIES_AUDINO 531 -#define SPECIES_TIMBURR 532 -#define SPECIES_GURDURR 533 -#define SPECIES_CONKELDURR 534 -#define SPECIES_TYMPOLE 535 -#define SPECIES_PALPITOAD 536 -#define SPECIES_SEISMITOAD 537 -#define SPECIES_THROH 538 -#define SPECIES_SAWK 539 -#define SPECIES_SEWADDLE 540 -#define SPECIES_SWADLOON 541 -#define SPECIES_LEAVANNY 542 -#define SPECIES_VENIPEDE 543 -#define SPECIES_WHIRLIPEDE 544 -#define SPECIES_SCOLIPEDE 545 -#define SPECIES_COTTONEE 546 -#define SPECIES_WHIMSICOTT 547 -#define SPECIES_PETILIL 548 -#define SPECIES_LILLIGANT 549 -#define SPECIES_BASCULIN SPECIES_BASCULIN_RED_STRIPED -#define SPECIES_BASCULIN_RED_STRIPED 550 -#define SPECIES_SANDILE 551 -#define SPECIES_KROKOROK 552 -#define SPECIES_KROOKODILE 553 -#define SPECIES_DARUMAKA 554 -#define SPECIES_DARMANITAN SPECIES_DARMANITAN_STANDARD -#define SPECIES_DARMANITAN_STANDARD 555 -#define SPECIES_MARACTUS 556 -#define SPECIES_DWEBBLE 557 -#define SPECIES_CRUSTLE 558 -#define SPECIES_SCRAGGY 559 -#define SPECIES_SCRAFTY 560 -#define SPECIES_SIGILYPH 561 -#define SPECIES_YAMASK 562 -#define SPECIES_COFAGRIGUS 563 -#define SPECIES_TIRTOUGA 564 -#define SPECIES_CARRACOSTA 565 -#define SPECIES_ARCHEN 566 -#define SPECIES_ARCHEOPS 567 -#define SPECIES_TRUBBISH 568 -#define SPECIES_GARBODOR 569 -#define SPECIES_ZORUA 570 -#define SPECIES_ZOROARK 571 -#define SPECIES_MINCCINO 572 -#define SPECIES_CINCCINO 573 -#define SPECIES_GOTHITA 574 -#define SPECIES_GOTHORITA 575 -#define SPECIES_GOTHITELLE 576 -#define SPECIES_SOLOSIS 577 -#define SPECIES_DUOSION 578 -#define SPECIES_REUNICLUS 579 -#define SPECIES_DUCKLETT 580 -#define SPECIES_SWANNA 581 -#define SPECIES_VANILLITE 582 -#define SPECIES_VANILLISH 583 -#define SPECIES_VANILLUXE 584 -#define SPECIES_DEERLING SPECIES_DEERLING_SPRING -#define SPECIES_DEERLING_SPRING 585 -#define SPECIES_SAWSBUCK SPECIES_SAWSBUCK_SPRING -#define SPECIES_SAWSBUCK_SPRING 586 -#define SPECIES_EMOLGA 587 -#define SPECIES_KARRABLAST 588 -#define SPECIES_ESCAVALIER 589 -#define SPECIES_FOONGUS 590 -#define SPECIES_AMOONGUSS 591 -#define SPECIES_FRILLISH 592 -#define SPECIES_JELLICENT 593 -#define SPECIES_ALOMOMOLA 594 -#define SPECIES_JOLTIK 595 -#define SPECIES_GALVANTULA 596 -#define SPECIES_FERROSEED 597 -#define SPECIES_FERROTHORN 598 -#define SPECIES_KLINK 599 -#define SPECIES_KLANG 600 -#define SPECIES_KLINKLANG 601 -#define SPECIES_TYNAMO 602 -#define SPECIES_EELEKTRIK 603 -#define SPECIES_EELEKTROSS 604 -#define SPECIES_ELGYEM 605 -#define SPECIES_BEHEEYEM 606 -#define SPECIES_LITWICK 607 -#define SPECIES_LAMPENT 608 -#define SPECIES_CHANDELURE 609 -#define SPECIES_AXEW 610 -#define SPECIES_FRAXURE 611 -#define SPECIES_HAXORUS 612 -#define SPECIES_CUBCHOO 613 -#define SPECIES_BEARTIC 614 -#define SPECIES_CRYOGONAL 615 -#define SPECIES_SHELMET 616 -#define SPECIES_ACCELGOR 617 -#define SPECIES_STUNFISK 618 -#define SPECIES_MIENFOO 619 -#define SPECIES_MIENSHAO 620 -#define SPECIES_DRUDDIGON 621 -#define SPECIES_GOLETT 622 -#define SPECIES_GOLURK 623 -#define SPECIES_PAWNIARD 624 -#define SPECIES_BISHARP 625 -#define SPECIES_BOUFFALANT 626 -#define SPECIES_RUFFLET 627 -#define SPECIES_BRAVIARY 628 -#define SPECIES_VULLABY 629 -#define SPECIES_MANDIBUZZ 630 -#define SPECIES_HEATMOR 631 -#define SPECIES_DURANT 632 -#define SPECIES_DEINO 633 -#define SPECIES_ZWEILOUS 634 -#define SPECIES_HYDREIGON 635 -#define SPECIES_LARVESTA 636 -#define SPECIES_VOLCARONA 637 -#define SPECIES_COBALION 638 -#define SPECIES_TERRAKION 639 -#define SPECIES_VIRIZION 640 -#define SPECIES_TORNADUS SPECIES_TORNADUS_INCARNATE -#define SPECIES_TORNADUS_INCARNATE 641 -#define SPECIES_THUNDURUS SPECIES_THUNDURUS_INCARNATE -#define SPECIES_THUNDURUS_INCARNATE 642 -#define SPECIES_RESHIRAM 643 -#define SPECIES_ZEKROM 644 -#define SPECIES_LANDORUS SPECIES_LANDORUS_INCARNATE -#define SPECIES_LANDORUS_INCARNATE 645 -#define SPECIES_KYUREM 646 -#define SPECIES_KELDEO SPECIES_KELDEO_ORDINARY -#define SPECIES_KELDEO_ORDINARY 647 -#define SPECIES_MELOETTA SPECIES_MELOETTA_ARIA -#define SPECIES_MELOETTA_ARIA 648 -#define SPECIES_GENESECT 649 -#define SPECIES_CHESPIN 650 -#define SPECIES_QUILLADIN 651 -#define SPECIES_CHESNAUGHT 652 -#define SPECIES_FENNEKIN 653 -#define SPECIES_BRAIXEN 654 -#define SPECIES_DELPHOX 655 -#define SPECIES_FROAKIE 656 -#define SPECIES_FROGADIER 657 -#define SPECIES_GRENINJA 658 -#define SPECIES_BUNNELBY 659 -#define SPECIES_DIGGERSBY 660 -#define SPECIES_FLETCHLING 661 -#define SPECIES_FLETCHINDER 662 -#define SPECIES_TALONFLAME 663 -#define SPECIES_SCATTERBUG SPECIES_SCATTERBUG_ICY_SNOW -#define SPECIES_SCATTERBUG_ICY_SNOW 664 -#define SPECIES_SPEWPA SPECIES_SPEWPA_ICY_SNOW -#define SPECIES_SPEWPA_ICY_SNOW 665 -#define SPECIES_VIVILLON SPECIES_VIVILLON_ICY_SNOW -#define SPECIES_VIVILLON_ICY_SNOW 666 -#define SPECIES_LITLEO 667 -#define SPECIES_PYROAR 668 -#define SPECIES_FLABEBE SPECIES_FLABEBE_RED -#define SPECIES_FLABEBE_RED 669 -#define SPECIES_FLOETTE SPECIES_FLOETTE_RED -#define SPECIES_FLOETTE_RED 670 -#define SPECIES_FLORGES SPECIES_FLORGES_RED -#define SPECIES_FLORGES_RED 671 -#define SPECIES_SKIDDO 672 -#define SPECIES_GOGOAT 673 -#define SPECIES_PANCHAM 674 -#define SPECIES_PANGORO 675 -#define SPECIES_FURFROU SPECIES_FURFROU_NATURAL -#define SPECIES_FURFROU_NATURAL 676 -#define SPECIES_ESPURR 677 -#define SPECIES_MEOWSTIC SPECIES_MEOWSTIC_M -#define SPECIES_MEOWSTIC_M 678 -#define SPECIES_HONEDGE 679 -#define SPECIES_DOUBLADE 680 -#define SPECIES_AEGISLASH SPECIES_AEGISLASH_SHIELD -#define SPECIES_AEGISLASH_SHIELD 681 -#define SPECIES_SPRITZEE 682 -#define SPECIES_AROMATISSE 683 -#define SPECIES_SWIRLIX 684 -#define SPECIES_SLURPUFF 685 -#define SPECIES_INKAY 686 -#define SPECIES_MALAMAR 687 -#define SPECIES_BINACLE 688 -#define SPECIES_BARBARACLE 689 -#define SPECIES_SKRELP 690 -#define SPECIES_DRAGALGE 691 -#define SPECIES_CLAUNCHER 692 -#define SPECIES_CLAWITZER 693 -#define SPECIES_HELIOPTILE 694 -#define SPECIES_HELIOLISK 695 -#define SPECIES_TYRUNT 696 -#define SPECIES_TYRANTRUM 697 -#define SPECIES_AMAURA 698 -#define SPECIES_AURORUS 699 -#define SPECIES_SYLVEON 700 -#define SPECIES_HAWLUCHA 701 -#define SPECIES_DEDENNE 702 -#define SPECIES_CARBINK 703 -#define SPECIES_GOOMY 704 -#define SPECIES_SLIGGOO 705 -#define SPECIES_GOODRA 706 -#define SPECIES_KLEFKI 707 -#define SPECIES_PHANTUMP 708 -#define SPECIES_TREVENANT 709 -#define SPECIES_PUMPKABOO SPECIES_PUMPKABOO_AVERAGE -#define SPECIES_PUMPKABOO_AVERAGE 710 -#define SPECIES_GOURGEIST SPECIES_GOURGEIST_AVERAGE -#define SPECIES_GOURGEIST_AVERAGE 711 -#define SPECIES_BERGMITE 712 -#define SPECIES_AVALUGG 713 -#define SPECIES_NOIBAT 714 -#define SPECIES_NOIVERN 715 -#define SPECIES_XERNEAS SPECIES_XERNEAS_NEUTRAL -#define SPECIES_XERNEAS_NEUTRAL 716 -#define SPECIES_YVELTAL 717 -#define SPECIES_ZYGARDE SPECIES_ZYGARDE_50 -#define SPECIES_ZYGARDE_50 718 -#define SPECIES_DIANCIE 719 -#define SPECIES_HOOPA SPECIES_HOOPA_CONFINED -#define SPECIES_HOOPA_CONFINED 720 -#define SPECIES_VOLCANION 721 -#define SPECIES_ROWLET 722 -#define SPECIES_DARTRIX 723 -#define SPECIES_DECIDUEYE 724 -#define SPECIES_LITTEN 725 -#define SPECIES_TORRACAT 726 -#define SPECIES_INCINEROAR 727 -#define SPECIES_POPPLIO 728 -#define SPECIES_BRIONNE 729 -#define SPECIES_PRIMARINA 730 -#define SPECIES_PIKIPEK 731 -#define SPECIES_TRUMBEAK 732 -#define SPECIES_TOUCANNON 733 -#define SPECIES_YUNGOOS 734 -#define SPECIES_GUMSHOOS 735 -#define SPECIES_GRUBBIN 736 -#define SPECIES_CHARJABUG 737 -#define SPECIES_VIKAVOLT 738 -#define SPECIES_CRABRAWLER 739 -#define SPECIES_CRABOMINABLE 740 -#define SPECIES_ORICORIO SPECIES_ORICORIO_BAILE -#define SPECIES_ORICORIO_BAILE 741 -#define SPECIES_CUTIEFLY 742 -#define SPECIES_RIBOMBEE 743 -#define SPECIES_ROCKRUFF 744 -#define SPECIES_LYCANROC SPECIES_LYCANROC_MIDDAY -#define SPECIES_LYCANROC_MIDDAY 745 -#define SPECIES_WISHIWASHI SPECIES_WISHIWASHI_SOLO -#define SPECIES_WISHIWASHI_SOLO 746 -#define SPECIES_MAREANIE 747 -#define SPECIES_TOXAPEX 748 -#define SPECIES_MUDBRAY 749 -#define SPECIES_MUDSDALE 750 -#define SPECIES_DEWPIDER 751 -#define SPECIES_ARAQUANID 752 -#define SPECIES_FOMANTIS 753 -#define SPECIES_LURANTIS 754 -#define SPECIES_MORELULL 755 -#define SPECIES_SHIINOTIC 756 -#define SPECIES_SALANDIT 757 -#define SPECIES_SALAZZLE 758 -#define SPECIES_STUFFUL 759 -#define SPECIES_BEWEAR 760 -#define SPECIES_BOUNSWEET 761 -#define SPECIES_STEENEE 762 -#define SPECIES_TSAREENA 763 -#define SPECIES_COMFEY 764 -#define SPECIES_ORANGURU 765 -#define SPECIES_PASSIMIAN 766 -#define SPECIES_WIMPOD 767 -#define SPECIES_GOLISOPOD 768 -#define SPECIES_SANDYGAST 769 -#define SPECIES_PALOSSAND 770 -#define SPECIES_PYUKUMUKU 771 -#define SPECIES_TYPE_NULL 772 -#define SPECIES_SILVALLY SPECIES_SILVALLY_NORMAL -#define SPECIES_SILVALLY_NORMAL 773 -#define SPECIES_MINIOR SPECIES_MINIOR_METEOR -#define SPECIES_MINIOR_METEOR SPECIES_MINIOR_METEOR_RED -#define SPECIES_MINIOR_RED SPECIES_MINIOR_METEOR_RED -#define SPECIES_MINIOR_METEOR_RED 774 -#define SPECIES_KOMALA 775 -#define SPECIES_TURTONATOR 776 -#define SPECIES_TOGEDEMARU 777 -#define SPECIES_MIMIKYU SPECIES_MIMIKYU_DISGUISED -#define SPECIES_MIMIKYU_DISGUISED 778 -#define SPECIES_BRUXISH 779 -#define SPECIES_DRAMPA 780 -#define SPECIES_DHELMISE 781 -#define SPECIES_JANGMO_O 782 -#define SPECIES_HAKAMO_O 783 -#define SPECIES_KOMMO_O 784 -#define SPECIES_TAPU_KOKO 785 -#define SPECIES_TAPU_LELE 786 -#define SPECIES_TAPU_BULU 787 -#define SPECIES_TAPU_FINI 788 -#define SPECIES_COSMOG 789 -#define SPECIES_COSMOEM 790 -#define SPECIES_SOLGALEO 791 -#define SPECIES_LUNALA 792 -#define SPECIES_NIHILEGO 793 -#define SPECIES_BUZZWOLE 794 -#define SPECIES_PHEROMOSA 795 -#define SPECIES_XURKITREE 796 -#define SPECIES_CELESTEELA 797 -#define SPECIES_KARTANA 798 -#define SPECIES_GUZZLORD 799 -#define SPECIES_NECROZMA 800 -#define SPECIES_MAGEARNA 801 -#define SPECIES_MARSHADOW 802 -#define SPECIES_POIPOLE 803 -#define SPECIES_NAGANADEL 804 -#define SPECIES_STAKATAKA 805 -#define SPECIES_BLACEPHALON 806 -#define SPECIES_ZERAORA 807 -#define SPECIES_MELTAN 808 -#define SPECIES_MELMETAL 809 -#define SPECIES_GROOKEY 810 -#define SPECIES_THWACKEY 811 -#define SPECIES_RILLABOOM 812 -#define SPECIES_SCORBUNNY 813 -#define SPECIES_RABOOT 814 -#define SPECIES_CINDERACE 815 -#define SPECIES_SOBBLE 816 -#define SPECIES_DRIZZILE 817 -#define SPECIES_INTELEON 818 -#define SPECIES_SKWOVET 819 -#define SPECIES_GREEDENT 820 -#define SPECIES_ROOKIDEE 821 -#define SPECIES_CORVISQUIRE 822 -#define SPECIES_CORVIKNIGHT 823 -#define SPECIES_BLIPBUG 824 -#define SPECIES_DOTTLER 825 -#define SPECIES_ORBEETLE 826 -#define SPECIES_NICKIT 827 -#define SPECIES_THIEVUL 828 -#define SPECIES_GOSSIFLEUR 829 -#define SPECIES_ELDEGOSS 830 -#define SPECIES_WOOLOO 831 -#define SPECIES_DUBWOOL 832 -#define SPECIES_CHEWTLE 833 -#define SPECIES_DREDNAW 834 -#define SPECIES_YAMPER 835 -#define SPECIES_BOLTUND 836 -#define SPECIES_ROLYCOLY 837 -#define SPECIES_CARKOL 838 -#define SPECIES_COALOSSAL 839 -#define SPECIES_APPLIN 840 -#define SPECIES_FLAPPLE 841 -#define SPECIES_APPLETUN 842 -#define SPECIES_SILICOBRA 843 -#define SPECIES_SANDACONDA 844 -#define SPECIES_CRAMORANT 845 -#define SPECIES_ARROKUDA 846 -#define SPECIES_BARRASKEWDA 847 -#define SPECIES_TOXEL 848 -#define SPECIES_TOXTRICITY SPECIES_TOXTRICITY_AMPED -#define SPECIES_TOXTRICITY_AMPED 849 -#define SPECIES_SIZZLIPEDE 850 -#define SPECIES_CENTISKORCH 851 -#define SPECIES_CLOBBOPUS 852 -#define SPECIES_GRAPPLOCT 853 -#define SPECIES_SINISTEA SPECIES_SINISTEA_PHONY -#define SPECIES_SINISTEA_PHONY 854 -#define SPECIES_POLTEAGEIST SPECIES_POLTEAGEIST_PHONY -#define SPECIES_POLTEAGEIST_PHONY 855 -#define SPECIES_HATENNA 856 -#define SPECIES_HATTREM 857 -#define SPECIES_HATTERENE 858 -#define SPECIES_IMPIDIMP 859 -#define SPECIES_MORGREM 860 -#define SPECIES_GRIMMSNARL 861 -#define SPECIES_OBSTAGOON 862 -#define SPECIES_PERRSERKER 863 -#define SPECIES_CURSOLA 864 -#define SPECIES_SIRFETCHD 865 -#define SPECIES_MR_RIME 866 -#define SPECIES_RUNERIGUS 867 -#define SPECIES_MILCERY 868 -#define SPECIES_ALCREMIE SPECIES_ALCREMIE_STRAWBERRY -#define SPECIES_ALCREMIE_STRAWBERRY SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_VANILLA_CREAM SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM 869 -#define SPECIES_FALINKS 870 -#define SPECIES_PINCURCHIN 871 -#define SPECIES_SNOM 872 -#define SPECIES_FROSMOTH 873 -#define SPECIES_STONJOURNER 874 -#define SPECIES_EISCUE SPECIES_EISCUE_ICE -#define SPECIES_EISCUE_ICE 875 -#define SPECIES_INDEEDEE SPECIES_INDEEDEE_M -#define SPECIES_INDEEDEE_M 876 -#define SPECIES_MORPEKO SPECIES_MORPEKO_FULL_BELLY -#define SPECIES_MORPEKO_FULL_BELLY 877 -#define SPECIES_CUFANT 878 -#define SPECIES_COPPERAJAH 879 -#define SPECIES_DRACOZOLT 880 -#define SPECIES_ARCTOZOLT 881 -#define SPECIES_DRACOVISH 882 -#define SPECIES_ARCTOVISH 883 -#define SPECIES_DURALUDON 884 -#define SPECIES_DREEPY 885 -#define SPECIES_DRAKLOAK 886 -#define SPECIES_DRAGAPULT 887 -#define SPECIES_ZACIAN SPECIES_ZACIAN_HERO -#define SPECIES_ZACIAN_HERO 888 -#define SPECIES_ZAMAZENTA SPECIES_ZAMAZENTA_HERO -#define SPECIES_ZAMAZENTA_HERO 889 -#define SPECIES_ETERNATUS 890 -#define SPECIES_KUBFU 891 -#define SPECIES_URSHIFU SPECIES_URSHIFU_SINGLE_STRIKE -#define SPECIES_URSHIFU_SINGLE_STRIKE 892 -#define SPECIES_ZARUDE 893 -#define SPECIES_REGIELEKI 894 -#define SPECIES_REGIDRAGO 895 -#define SPECIES_GLASTRIER 896 -#define SPECIES_SPECTRIER 897 -#define SPECIES_CALYREX 898 -#define SPECIES_WYRDEER 899 -#define SPECIES_KLEAVOR 900 -#define SPECIES_URSALUNA 901 -#define SPECIES_BASCULEGION SPECIES_BASCULEGION_M -#define SPECIES_BASCULEGION_M 902 -#define SPECIES_SNEASLER 903 -#define SPECIES_OVERQWIL 904 -#define SPECIES_ENAMORUS SPECIES_ENAMORUS_INCARNATE -#define SPECIES_ENAMORUS_INCARNATE 905 -#define SPECIES_VENUSAUR_MEGA 906 -#define SPECIES_CHARIZARD_MEGA_X 907 -#define SPECIES_CHARIZARD_MEGA_Y 908 -#define SPECIES_BLASTOISE_MEGA 909 -#define SPECIES_BEEDRILL_MEGA 910 -#define SPECIES_PIDGEOT_MEGA 911 -#define SPECIES_ALAKAZAM_MEGA 912 -#define SPECIES_SLOWBRO_MEGA 913 -#define SPECIES_GENGAR_MEGA 914 -#define SPECIES_KANGASKHAN_MEGA 915 -#define SPECIES_PINSIR_MEGA 916 -#define SPECIES_GYARADOS_MEGA 917 -#define SPECIES_AERODACTYL_MEGA 918 -#define SPECIES_MEWTWO_MEGA_X 919 -#define SPECIES_MEWTWO_MEGA_Y 920 -#define SPECIES_AMPHAROS_MEGA 921 -#define SPECIES_STEELIX_MEGA 922 -#define SPECIES_SCIZOR_MEGA 923 -#define SPECIES_HERACROSS_MEGA 924 -#define SPECIES_HOUNDOOM_MEGA 925 -#define SPECIES_TYRANITAR_MEGA 926 -#define SPECIES_SCEPTILE_MEGA 927 -#define SPECIES_BLAZIKEN_MEGA 928 -#define SPECIES_SWAMPERT_MEGA 929 -#define SPECIES_GARDEVOIR_MEGA 930 -#define SPECIES_SABLEYE_MEGA 931 -#define SPECIES_MAWILE_MEGA 932 -#define SPECIES_AGGRON_MEGA 933 -#define SPECIES_MEDICHAM_MEGA 934 -#define SPECIES_MANECTRIC_MEGA 935 -#define SPECIES_SHARPEDO_MEGA 936 -#define SPECIES_CAMERUPT_MEGA 937 -#define SPECIES_ALTARIA_MEGA 938 -#define SPECIES_BANETTE_MEGA 939 -#define SPECIES_ABSOL_MEGA 940 -#define SPECIES_GLALIE_MEGA 941 -#define SPECIES_SALAMENCE_MEGA 942 -#define SPECIES_METAGROSS_MEGA 943 -#define SPECIES_LATIAS_MEGA 944 -#define SPECIES_LATIOS_MEGA 945 -#define SPECIES_LOPUNNY_MEGA 946 -#define SPECIES_GARCHOMP_MEGA 947 -#define SPECIES_LUCARIO_MEGA 948 -#define SPECIES_ABOMASNOW_MEGA 949 -#define SPECIES_GALLADE_MEGA 950 -#define SPECIES_AUDINO_MEGA 951 -#define SPECIES_DIANCIE_MEGA 952 -#define SPECIES_RAYQUAZA_MEGA 953 -#define SPECIES_KYOGRE_PRIMAL 954 -#define SPECIES_GROUDON_PRIMAL 955 -#define SPECIES_RATTATA_ALOLA 956 -#define SPECIES_RATICATE_ALOLA 957 -#define SPECIES_RAICHU_ALOLA 958 -#define SPECIES_SANDSHREW_ALOLA 959 -#define SPECIES_SANDSLASH_ALOLA 960 -#define SPECIES_VULPIX_ALOLA 961 -#define SPECIES_NINETALES_ALOLA 962 -#define SPECIES_DIGLETT_ALOLA 963 -#define SPECIES_DUGTRIO_ALOLA 964 -#define SPECIES_MEOWTH_ALOLA 965 -#define SPECIES_PERSIAN_ALOLA 966 -#define SPECIES_GEODUDE_ALOLA 967 -#define SPECIES_GRAVELER_ALOLA 968 -#define SPECIES_GOLEM_ALOLA 969 -#define SPECIES_GRIMER_ALOLA 970 -#define SPECIES_MUK_ALOLA 971 -#define SPECIES_EXEGGUTOR_ALOLA 972 -#define SPECIES_MAROWAK_ALOLA 973 -#define SPECIES_MEOWTH_GALAR 974 -#define SPECIES_PONYTA_GALAR 975 -#define SPECIES_RAPIDASH_GALAR 976 -#define SPECIES_SLOWPOKE_GALAR 977 -#define SPECIES_SLOWBRO_GALAR 978 -#define SPECIES_FARFETCHD_GALAR 979 -#define SPECIES_WEEZING_GALAR 980 -#define SPECIES_MR_MIME_GALAR 981 -#define SPECIES_ARTICUNO_GALAR 982 -#define SPECIES_ZAPDOS_GALAR 983 -#define SPECIES_MOLTRES_GALAR 984 -#define SPECIES_SLOWKING_GALAR 985 -#define SPECIES_CORSOLA_GALAR 986 -#define SPECIES_ZIGZAGOON_GALAR 987 -#define SPECIES_LINOONE_GALAR 988 -#define SPECIES_DARUMAKA_GALAR 989 -#define SPECIES_DARMANITAN_GALAR_STANDARD 990 -#define SPECIES_DARMANITAN_GALAR SPECIES_DARMANITAN_GALAR_STANDARD -#define SPECIES_YAMASK_GALAR 991 -#define SPECIES_STUNFISK_GALAR 992 +enum __attribute__((packed)) Species +{ + SPECIES_NONE = 0, + SPECIES_BULBASAUR = 1, + SPECIES_IVYSAUR = 2, + SPECIES_VENUSAUR = 3, + SPECIES_CHARMANDER = 4, + SPECIES_CHARMELEON = 5, + SPECIES_CHARIZARD = 6, + SPECIES_SQUIRTLE = 7, + SPECIES_WARTORTLE = 8, + SPECIES_BLASTOISE = 9, + SPECIES_CATERPIE = 10, + SPECIES_METAPOD = 11, + SPECIES_BUTTERFREE = 12, + SPECIES_WEEDLE = 13, + SPECIES_KAKUNA = 14, + SPECIES_BEEDRILL = 15, + SPECIES_PIDGEY = 16, + SPECIES_PIDGEOTTO = 17, + SPECIES_PIDGEOT = 18, + SPECIES_RATTATA = 19, + SPECIES_RATICATE = 20, + SPECIES_SPEAROW = 21, + SPECIES_FEAROW = 22, + SPECIES_EKANS = 23, + SPECIES_ARBOK = 24, + SPECIES_PIKACHU = 25, + SPECIES_RAICHU = 26, + SPECIES_SANDSHREW = 27, + SPECIES_SANDSLASH = 28, + SPECIES_NIDORAN_F = 29, + SPECIES_NIDORINA = 30, + SPECIES_NIDOQUEEN = 31, + SPECIES_NIDORAN_M = 32, + SPECIES_NIDORINO = 33, + SPECIES_NIDOKING = 34, + SPECIES_CLEFAIRY = 35, + SPECIES_CLEFABLE = 36, + SPECIES_VULPIX = 37, + SPECIES_NINETALES = 38, + SPECIES_JIGGLYPUFF = 39, + SPECIES_WIGGLYTUFF = 40, + SPECIES_ZUBAT = 41, + SPECIES_GOLBAT = 42, + SPECIES_ODDISH = 43, + SPECIES_GLOOM = 44, + SPECIES_VILEPLUME = 45, + SPECIES_PARAS = 46, + SPECIES_PARASECT = 47, + SPECIES_VENONAT = 48, + SPECIES_VENOMOTH = 49, + SPECIES_DIGLETT = 50, + SPECIES_DUGTRIO = 51, + SPECIES_MEOWTH = 52, + SPECIES_PERSIAN = 53, + SPECIES_PSYDUCK = 54, + SPECIES_GOLDUCK = 55, + SPECIES_MANKEY = 56, + SPECIES_PRIMEAPE = 57, + SPECIES_GROWLITHE = 58, + SPECIES_ARCANINE = 59, + SPECIES_POLIWAG = 60, + SPECIES_POLIWHIRL = 61, + SPECIES_POLIWRATH = 62, + SPECIES_ABRA = 63, + SPECIES_KADABRA = 64, + SPECIES_ALAKAZAM = 65, + SPECIES_MACHOP = 66, + SPECIES_MACHOKE = 67, + SPECIES_MACHAMP = 68, + SPECIES_BELLSPROUT = 69, + SPECIES_WEEPINBELL = 70, + SPECIES_VICTREEBEL = 71, + SPECIES_TENTACOOL = 72, + SPECIES_TENTACRUEL = 73, + SPECIES_GEODUDE = 74, + SPECIES_GRAVELER = 75, + SPECIES_GOLEM = 76, + SPECIES_PONYTA = 77, + SPECIES_RAPIDASH = 78, + SPECIES_SLOWPOKE = 79, + SPECIES_SLOWBRO = 80, + SPECIES_MAGNEMITE = 81, + SPECIES_MAGNETON = 82, + SPECIES_FARFETCHD = 83, + SPECIES_DODUO = 84, + SPECIES_DODRIO = 85, + SPECIES_SEEL = 86, + SPECIES_DEWGONG = 87, + SPECIES_GRIMER = 88, + SPECIES_MUK = 89, + SPECIES_SHELLDER = 90, + SPECIES_CLOYSTER = 91, + SPECIES_GASTLY = 92, + SPECIES_HAUNTER = 93, + SPECIES_GENGAR = 94, + SPECIES_ONIX = 95, + SPECIES_DROWZEE = 96, + SPECIES_HYPNO = 97, + SPECIES_KRABBY = 98, + SPECIES_KINGLER = 99, + SPECIES_VOLTORB = 100, + SPECIES_ELECTRODE = 101, + SPECIES_EXEGGCUTE = 102, + SPECIES_EXEGGUTOR = 103, + SPECIES_CUBONE = 104, + SPECIES_MAROWAK = 105, + SPECIES_HITMONLEE = 106, + SPECIES_HITMONCHAN = 107, + SPECIES_LICKITUNG = 108, + SPECIES_KOFFING = 109, + SPECIES_WEEZING = 110, + SPECIES_RHYHORN = 111, + SPECIES_RHYDON = 112, + SPECIES_CHANSEY = 113, + SPECIES_TANGELA = 114, + SPECIES_KANGASKHAN = 115, + SPECIES_HORSEA = 116, + SPECIES_SEADRA = 117, + SPECIES_GOLDEEN = 118, + SPECIES_SEAKING = 119, + SPECIES_STARYU = 120, + SPECIES_STARMIE = 121, + SPECIES_MR_MIME = 122, + SPECIES_SCYTHER = 123, + SPECIES_JYNX = 124, + SPECIES_ELECTABUZZ = 125, + SPECIES_MAGMAR = 126, + SPECIES_PINSIR = 127, + SPECIES_TAUROS = 128, + SPECIES_MAGIKARP = 129, + SPECIES_GYARADOS = 130, + SPECIES_LAPRAS = 131, + SPECIES_DITTO = 132, + SPECIES_EEVEE = 133, + SPECIES_VAPOREON = 134, + SPECIES_JOLTEON = 135, + SPECIES_FLAREON = 136, + SPECIES_PORYGON = 137, + SPECIES_OMANYTE = 138, + SPECIES_OMASTAR = 139, + SPECIES_KABUTO = 140, + SPECIES_KABUTOPS = 141, + SPECIES_AERODACTYL = 142, + SPECIES_SNORLAX = 143, + SPECIES_ARTICUNO = 144, + SPECIES_ZAPDOS = 145, + SPECIES_MOLTRES = 146, + SPECIES_DRATINI = 147, + SPECIES_DRAGONAIR = 148, + SPECIES_DRAGONITE = 149, + SPECIES_MEWTWO = 150, + SPECIES_MEW = 151, + SPECIES_CHIKORITA = 152, + SPECIES_BAYLEEF = 153, + SPECIES_MEGANIUM = 154, + SPECIES_CYNDAQUIL = 155, + SPECIES_QUILAVA = 156, + SPECIES_TYPHLOSION = 157, + SPECIES_TOTODILE = 158, + SPECIES_CROCONAW = 159, + SPECIES_FERALIGATR = 160, + SPECIES_SENTRET = 161, + SPECIES_FURRET = 162, + SPECIES_HOOTHOOT = 163, + SPECIES_NOCTOWL = 164, + SPECIES_LEDYBA = 165, + SPECIES_LEDIAN = 166, + SPECIES_SPINARAK = 167, + SPECIES_ARIADOS = 168, + SPECIES_CROBAT = 169, + SPECIES_CHINCHOU = 170, + SPECIES_LANTURN = 171, + SPECIES_PICHU = 172, + SPECIES_CLEFFA = 173, + SPECIES_IGGLYBUFF = 174, + SPECIES_TOGEPI = 175, + SPECIES_TOGETIC = 176, + SPECIES_NATU = 177, + SPECIES_XATU = 178, + SPECIES_MAREEP = 179, + SPECIES_FLAAFFY = 180, + SPECIES_AMPHAROS = 181, + SPECIES_BELLOSSOM = 182, + SPECIES_MARILL = 183, + SPECIES_AZUMARILL = 184, + SPECIES_SUDOWOODO = 185, + SPECIES_POLITOED = 186, + SPECIES_HOPPIP = 187, + SPECIES_SKIPLOOM = 188, + SPECIES_JUMPLUFF = 189, + SPECIES_AIPOM = 190, + SPECIES_SUNKERN = 191, + SPECIES_SUNFLORA = 192, + SPECIES_YANMA = 193, + SPECIES_WOOPER = 194, + SPECIES_QUAGSIRE = 195, + SPECIES_ESPEON = 196, + SPECIES_UMBREON = 197, + SPECIES_MURKROW = 198, + SPECIES_SLOWKING = 199, + SPECIES_MISDREAVUS = 200, + SPECIES_UNOWN = 201, + SPECIES_WOBBUFFET = 202, + SPECIES_GIRAFARIG = 203, + SPECIES_PINECO = 204, + SPECIES_FORRETRESS = 205, + SPECIES_DUNSPARCE = 206, + SPECIES_GLIGAR = 207, + SPECIES_STEELIX = 208, + SPECIES_SNUBBULL = 209, + SPECIES_GRANBULL = 210, + SPECIES_QWILFISH = 211, + SPECIES_SCIZOR = 212, + SPECIES_SHUCKLE = 213, + SPECIES_HERACROSS = 214, + SPECIES_SNEASEL = 215, + SPECIES_TEDDIURSA = 216, + SPECIES_URSARING = 217, + SPECIES_SLUGMA = 218, + SPECIES_MAGCARGO = 219, + SPECIES_SWINUB = 220, + SPECIES_PILOSWINE = 221, + SPECIES_CORSOLA = 222, + SPECIES_REMORAID = 223, + SPECIES_OCTILLERY = 224, + SPECIES_DELIBIRD = 225, + SPECIES_MANTINE = 226, + SPECIES_SKARMORY = 227, + SPECIES_HOUNDOUR = 228, + SPECIES_HOUNDOOM = 229, + SPECIES_KINGDRA = 230, + SPECIES_PHANPY = 231, + SPECIES_DONPHAN = 232, + SPECIES_PORYGON2 = 233, + SPECIES_STANTLER = 234, + SPECIES_SMEARGLE = 235, + SPECIES_TYROGUE = 236, + SPECIES_HITMONTOP = 237, + SPECIES_SMOOCHUM = 238, + SPECIES_ELEKID = 239, + SPECIES_MAGBY = 240, + SPECIES_MILTANK = 241, + SPECIES_BLISSEY = 242, + SPECIES_RAIKOU = 243, + SPECIES_ENTEI = 244, + SPECIES_SUICUNE = 245, + SPECIES_LARVITAR = 246, + SPECIES_PUPITAR = 247, + SPECIES_TYRANITAR = 248, + SPECIES_LUGIA = 249, + SPECIES_HO_OH = 250, + SPECIES_CELEBI = 251, + SPECIES_TREECKO = 252, + SPECIES_GROVYLE = 253, + SPECIES_SCEPTILE = 254, + SPECIES_TORCHIC = 255, + SPECIES_COMBUSKEN = 256, + SPECIES_BLAZIKEN = 257, + SPECIES_MUDKIP = 258, + SPECIES_MARSHTOMP = 259, + SPECIES_SWAMPERT = 260, + SPECIES_POOCHYENA = 261, + SPECIES_MIGHTYENA = 262, + SPECIES_ZIGZAGOON = 263, + SPECIES_LINOONE = 264, + SPECIES_WURMPLE = 265, + SPECIES_SILCOON = 266, + SPECIES_BEAUTIFLY = 267, + SPECIES_CASCOON = 268, + SPECIES_DUSTOX = 269, + SPECIES_LOTAD = 270, + SPECIES_LOMBRE = 271, + SPECIES_LUDICOLO = 272, + SPECIES_SEEDOT = 273, + SPECIES_NUZLEAF = 274, + SPECIES_SHIFTRY = 275, + SPECIES_TAILLOW = 276, + SPECIES_SWELLOW = 277, + SPECIES_WINGULL = 278, + SPECIES_PELIPPER = 279, + SPECIES_RALTS = 280, + SPECIES_KIRLIA = 281, + SPECIES_GARDEVOIR = 282, + SPECIES_SURSKIT = 283, + SPECIES_MASQUERAIN = 284, + SPECIES_SHROOMISH = 285, + SPECIES_BRELOOM = 286, + SPECIES_SLAKOTH = 287, + SPECIES_VIGOROTH = 288, + SPECIES_SLAKING = 289, + SPECIES_NINCADA = 290, + SPECIES_NINJASK = 291, + SPECIES_SHEDINJA = 292, + SPECIES_WHISMUR = 293, + SPECIES_LOUDRED = 294, + SPECIES_EXPLOUD = 295, + SPECIES_MAKUHITA = 296, + SPECIES_HARIYAMA = 297, + SPECIES_AZURILL = 298, + SPECIES_NOSEPASS = 299, + SPECIES_SKITTY = 300, + SPECIES_DELCATTY = 301, + SPECIES_SABLEYE = 302, + SPECIES_MAWILE = 303, + SPECIES_ARON = 304, + SPECIES_LAIRON = 305, + SPECIES_AGGRON = 306, + SPECIES_MEDITITE = 307, + SPECIES_MEDICHAM = 308, + SPECIES_ELECTRIKE = 309, + SPECIES_MANECTRIC = 310, + SPECIES_PLUSLE = 311, + SPECIES_MINUN = 312, + SPECIES_VOLBEAT = 313, + SPECIES_ILLUMISE = 314, + SPECIES_ROSELIA = 315, + SPECIES_GULPIN = 316, + SPECIES_SWALOT = 317, + SPECIES_CARVANHA = 318, + SPECIES_SHARPEDO = 319, + SPECIES_WAILMER = 320, + SPECIES_WAILORD = 321, + SPECIES_NUMEL = 322, + SPECIES_CAMERUPT = 323, + SPECIES_TORKOAL = 324, + SPECIES_SPOINK = 325, + SPECIES_GRUMPIG = 326, + SPECIES_SPINDA = 327, + SPECIES_TRAPINCH = 328, + SPECIES_VIBRAVA = 329, + SPECIES_FLYGON = 330, + SPECIES_CACNEA = 331, + SPECIES_CACTURNE = 332, + SPECIES_SWABLU = 333, + SPECIES_ALTARIA = 334, + SPECIES_ZANGOOSE = 335, + SPECIES_SEVIPER = 336, + SPECIES_LUNATONE = 337, + SPECIES_SOLROCK = 338, + SPECIES_BARBOACH = 339, + SPECIES_WHISCASH = 340, + SPECIES_CORPHISH = 341, + SPECIES_CRAWDAUNT = 342, + SPECIES_BALTOY = 343, + SPECIES_CLAYDOL = 344, + SPECIES_LILEEP = 345, + SPECIES_CRADILY = 346, + SPECIES_ANORITH = 347, + SPECIES_ARMALDO = 348, + SPECIES_FEEBAS = 349, + SPECIES_MILOTIC = 350, + SPECIES_CASTFORM_NORMAL = 351, + SPECIES_CASTFORM = SPECIES_CASTFORM_NORMAL, + SPECIES_KECLEON = 352, + SPECIES_SHUPPET = 353, + SPECIES_BANETTE = 354, + SPECIES_DUSKULL = 355, + SPECIES_DUSCLOPS = 356, + SPECIES_TROPIUS = 357, + SPECIES_CHIMECHO = 358, + SPECIES_ABSOL = 359, + SPECIES_WYNAUT = 360, + SPECIES_SNORUNT = 361, + SPECIES_GLALIE = 362, + SPECIES_SPHEAL = 363, + SPECIES_SEALEO = 364, + SPECIES_WALREIN = 365, + SPECIES_CLAMPERL = 366, + SPECIES_HUNTAIL = 367, + SPECIES_GOREBYSS = 368, + SPECIES_RELICANTH = 369, + SPECIES_LUVDISC = 370, + SPECIES_BAGON = 371, + SPECIES_SHELGON = 372, + SPECIES_SALAMENCE = 373, + SPECIES_BELDUM = 374, + SPECIES_METANG = 375, + SPECIES_METAGROSS = 376, + SPECIES_REGIROCK = 377, + SPECIES_REGICE = 378, + SPECIES_REGISTEEL = 379, + SPECIES_LATIAS = 380, + SPECIES_LATIOS = 381, + SPECIES_KYOGRE = 382, + SPECIES_GROUDON = 383, + SPECIES_RAYQUAZA = 384, + SPECIES_JIRACHI = 385, + SPECIES_DEOXYS_NORMAL = 386, + SPECIES_DEOXYS = SPECIES_DEOXYS_NORMAL, + SPECIES_TURTWIG = 387, + SPECIES_GROTLE = 388, + SPECIES_TORTERRA = 389, + SPECIES_CHIMCHAR = 390, + SPECIES_MONFERNO = 391, + SPECIES_INFERNAPE = 392, + SPECIES_PIPLUP = 393, + SPECIES_PRINPLUP = 394, + SPECIES_EMPOLEON = 395, + SPECIES_STARLY = 396, + SPECIES_STARAVIA = 397, + SPECIES_STARAPTOR = 398, + SPECIES_BIDOOF = 399, + SPECIES_BIBAREL = 400, + SPECIES_KRICKETOT = 401, + SPECIES_KRICKETUNE = 402, + SPECIES_SHINX = 403, + SPECIES_LUXIO = 404, + SPECIES_LUXRAY = 405, + SPECIES_BUDEW = 406, + SPECIES_ROSERADE = 407, + SPECIES_CRANIDOS = 408, + SPECIES_RAMPARDOS = 409, + SPECIES_SHIELDON = 410, + SPECIES_BASTIODON = 411, + SPECIES_BURMY_PLANT = 412, + SPECIES_BURMY = SPECIES_BURMY_PLANT, + SPECIES_WORMADAM_PLANT = 413, + SPECIES_WORMADAM = SPECIES_WORMADAM_PLANT, + SPECIES_MOTHIM_PLANT = 414, + SPECIES_MOTHIM = SPECIES_MOTHIM_PLANT, + SPECIES_COMBEE = 415, + SPECIES_VESPIQUEN = 416, + SPECIES_PACHIRISU = 417, + SPECIES_BUIZEL = 418, + SPECIES_FLOATZEL = 419, + SPECIES_CHERUBI = 420, + SPECIES_CHERRIM_OVERCAST = 421, + SPECIES_CHERRIM = SPECIES_CHERRIM_OVERCAST, + SPECIES_SHELLOS_WEST = 422, + SPECIES_SHELLOS = SPECIES_SHELLOS_WEST, + SPECIES_GASTRODON_WEST = 423, + SPECIES_GASTRODON = SPECIES_GASTRODON_WEST, + SPECIES_AMBIPOM = 424, + SPECIES_DRIFLOON = 425, + SPECIES_DRIFBLIM = 426, + SPECIES_BUNEARY = 427, + SPECIES_LOPUNNY = 428, + SPECIES_MISMAGIUS = 429, + SPECIES_HONCHKROW = 430, + SPECIES_GLAMEOW = 431, + SPECIES_PURUGLY = 432, + SPECIES_CHINGLING = 433, + SPECIES_STUNKY = 434, + SPECIES_SKUNTANK = 435, + SPECIES_BRONZOR = 436, + SPECIES_BRONZONG = 437, + SPECIES_BONSLY = 438, + SPECIES_MIME_JR = 439, + SPECIES_HAPPINY = 440, + SPECIES_CHATOT = 441, + SPECIES_SPIRITOMB = 442, + SPECIES_GIBLE = 443, + SPECIES_GABITE = 444, + SPECIES_GARCHOMP = 445, + SPECIES_MUNCHLAX = 446, + SPECIES_RIOLU = 447, + SPECIES_LUCARIO = 448, + SPECIES_HIPPOPOTAS = 449, + SPECIES_HIPPOWDON = 450, + SPECIES_SKORUPI = 451, + SPECIES_DRAPION = 452, + SPECIES_CROAGUNK = 453, + SPECIES_TOXICROAK = 454, + SPECIES_CARNIVINE = 455, + SPECIES_FINNEON = 456, + SPECIES_LUMINEON = 457, + SPECIES_MANTYKE = 458, + SPECIES_SNOVER = 459, + SPECIES_ABOMASNOW = 460, + SPECIES_WEAVILE = 461, + SPECIES_MAGNEZONE = 462, + SPECIES_LICKILICKY = 463, + SPECIES_RHYPERIOR = 464, + SPECIES_TANGROWTH = 465, + SPECIES_ELECTIVIRE = 466, + SPECIES_MAGMORTAR = 467, + SPECIES_TOGEKISS = 468, + SPECIES_YANMEGA = 469, + SPECIES_LEAFEON = 470, + SPECIES_GLACEON = 471, + SPECIES_GLISCOR = 472, + SPECIES_MAMOSWINE = 473, + SPECIES_PORYGON_Z = 474, + SPECIES_GALLADE = 475, + SPECIES_PROBOPASS = 476, + SPECIES_DUSKNOIR = 477, + SPECIES_FROSLASS = 478, + SPECIES_ROTOM = 479, + SPECIES_UXIE = 480, + SPECIES_MESPRIT = 481, + SPECIES_AZELF = 482, + SPECIES_DIALGA = 483, + SPECIES_PALKIA = 484, + SPECIES_HEATRAN = 485, + SPECIES_REGIGIGAS = 486, + SPECIES_GIRATINA_ALTERED = 487, + SPECIES_GIRATINA = SPECIES_GIRATINA_ALTERED, + SPECIES_CRESSELIA = 488, + SPECIES_PHIONE = 489, + SPECIES_MANAPHY = 490, + SPECIES_DARKRAI = 491, + SPECIES_SHAYMIN_LAND = 492, + SPECIES_SHAYMIN = SPECIES_SHAYMIN_LAND, + SPECIES_ARCEUS_NORMAL = 493, + SPECIES_ARCEUS = SPECIES_ARCEUS_NORMAL, + SPECIES_VICTINI = 494, + SPECIES_SNIVY = 495, + SPECIES_SERVINE = 496, + SPECIES_SERPERIOR = 497, + SPECIES_TEPIG = 498, + SPECIES_PIGNITE = 499, + SPECIES_EMBOAR = 500, + SPECIES_OSHAWOTT = 501, + SPECIES_DEWOTT = 502, + SPECIES_SAMUROTT = 503, + SPECIES_PATRAT = 504, + SPECIES_WATCHOG = 505, + SPECIES_LILLIPUP = 506, + SPECIES_HERDIER = 507, + SPECIES_STOUTLAND = 508, + SPECIES_PURRLOIN = 509, + SPECIES_LIEPARD = 510, + SPECIES_PANSAGE = 511, + SPECIES_SIMISAGE = 512, + SPECIES_PANSEAR = 513, + SPECIES_SIMISEAR = 514, + SPECIES_PANPOUR = 515, + SPECIES_SIMIPOUR = 516, + SPECIES_MUNNA = 517, + SPECIES_MUSHARNA = 518, + SPECIES_PIDOVE = 519, + SPECIES_TRANQUILL = 520, + SPECIES_UNFEZANT = 521, + SPECIES_BLITZLE = 522, + SPECIES_ZEBSTRIKA = 523, + SPECIES_ROGGENROLA = 524, + SPECIES_BOLDORE = 525, + SPECIES_GIGALITH = 526, + SPECIES_WOOBAT = 527, + SPECIES_SWOOBAT = 528, + SPECIES_DRILBUR = 529, + SPECIES_EXCADRILL = 530, + SPECIES_AUDINO = 531, + SPECIES_TIMBURR = 532, + SPECIES_GURDURR = 533, + SPECIES_CONKELDURR = 534, + SPECIES_TYMPOLE = 535, + SPECIES_PALPITOAD = 536, + SPECIES_SEISMITOAD = 537, + SPECIES_THROH = 538, + SPECIES_SAWK = 539, + SPECIES_SEWADDLE = 540, + SPECIES_SWADLOON = 541, + SPECIES_LEAVANNY = 542, + SPECIES_VENIPEDE = 543, + SPECIES_WHIRLIPEDE = 544, + SPECIES_SCOLIPEDE = 545, + SPECIES_COTTONEE = 546, + SPECIES_WHIMSICOTT = 547, + SPECIES_PETILIL = 548, + SPECIES_LILLIGANT = 549, + SPECIES_BASCULIN_RED_STRIPED = 550, + SPECIES_BASCULIN = SPECIES_BASCULIN_RED_STRIPED, + SPECIES_SANDILE = 551, + SPECIES_KROKOROK = 552, + SPECIES_KROOKODILE = 553, + SPECIES_DARUMAKA = 554, + SPECIES_DARMANITAN_STANDARD = 555, + SPECIES_DARMANITAN = SPECIES_DARMANITAN_STANDARD, + SPECIES_MARACTUS = 556, + SPECIES_DWEBBLE = 557, + SPECIES_CRUSTLE = 558, + SPECIES_SCRAGGY = 559, + SPECIES_SCRAFTY = 560, + SPECIES_SIGILYPH = 561, + SPECIES_YAMASK = 562, + SPECIES_COFAGRIGUS = 563, + SPECIES_TIRTOUGA = 564, + SPECIES_CARRACOSTA = 565, + SPECIES_ARCHEN = 566, + SPECIES_ARCHEOPS = 567, + SPECIES_TRUBBISH = 568, + SPECIES_GARBODOR = 569, + SPECIES_ZORUA = 570, + SPECIES_ZOROARK = 571, + SPECIES_MINCCINO = 572, + SPECIES_CINCCINO = 573, + SPECIES_GOTHITA = 574, + SPECIES_GOTHORITA = 575, + SPECIES_GOTHITELLE = 576, + SPECIES_SOLOSIS = 577, + SPECIES_DUOSION = 578, + SPECIES_REUNICLUS = 579, + SPECIES_DUCKLETT = 580, + SPECIES_SWANNA = 581, + SPECIES_VANILLITE = 582, + SPECIES_VANILLISH = 583, + SPECIES_VANILLUXE = 584, + SPECIES_DEERLING_SPRING = 585, + SPECIES_DEERLING = SPECIES_DEERLING_SPRING, + SPECIES_SAWSBUCK_SPRING = 586, + SPECIES_SAWSBUCK = SPECIES_SAWSBUCK_SPRING, + SPECIES_EMOLGA = 587, + SPECIES_KARRABLAST = 588, + SPECIES_ESCAVALIER = 589, + SPECIES_FOONGUS = 590, + SPECIES_AMOONGUSS = 591, + SPECIES_FRILLISH = 592, + SPECIES_JELLICENT = 593, + SPECIES_ALOMOMOLA = 594, + SPECIES_JOLTIK = 595, + SPECIES_GALVANTULA = 596, + SPECIES_FERROSEED = 597, + SPECIES_FERROTHORN = 598, + SPECIES_KLINK = 599, + SPECIES_KLANG = 600, + SPECIES_KLINKLANG = 601, + SPECIES_TYNAMO = 602, + SPECIES_EELEKTRIK = 603, + SPECIES_EELEKTROSS = 604, + SPECIES_ELGYEM = 605, + SPECIES_BEHEEYEM = 606, + SPECIES_LITWICK = 607, + SPECIES_LAMPENT = 608, + SPECIES_CHANDELURE = 609, + SPECIES_AXEW = 610, + SPECIES_FRAXURE = 611, + SPECIES_HAXORUS = 612, + SPECIES_CUBCHOO = 613, + SPECIES_BEARTIC = 614, + SPECIES_CRYOGONAL = 615, + SPECIES_SHELMET = 616, + SPECIES_ACCELGOR = 617, + SPECIES_STUNFISK = 618, + SPECIES_MIENFOO = 619, + SPECIES_MIENSHAO = 620, + SPECIES_DRUDDIGON = 621, + SPECIES_GOLETT = 622, + SPECIES_GOLURK = 623, + SPECIES_PAWNIARD = 624, + SPECIES_BISHARP = 625, + SPECIES_BOUFFALANT = 626, + SPECIES_RUFFLET = 627, + SPECIES_BRAVIARY = 628, + SPECIES_VULLABY = 629, + SPECIES_MANDIBUZZ = 630, + SPECIES_HEATMOR = 631, + SPECIES_DURANT = 632, + SPECIES_DEINO = 633, + SPECIES_ZWEILOUS = 634, + SPECIES_HYDREIGON = 635, + SPECIES_LARVESTA = 636, + SPECIES_VOLCARONA = 637, + SPECIES_COBALION = 638, + SPECIES_TERRAKION = 639, + SPECIES_VIRIZION = 640, + SPECIES_TORNADUS_INCARNATE = 641, + SPECIES_TORNADUS = SPECIES_TORNADUS_INCARNATE, + SPECIES_THUNDURUS_INCARNATE = 642, + SPECIES_THUNDURUS = SPECIES_THUNDURUS_INCARNATE, + SPECIES_RESHIRAM = 643, + SPECIES_ZEKROM = 644, + SPECIES_LANDORUS_INCARNATE = 645, + SPECIES_LANDORUS = SPECIES_LANDORUS_INCARNATE, + SPECIES_KYUREM = 646, + SPECIES_KELDEO_ORDINARY = 647, + SPECIES_KELDEO = SPECIES_KELDEO_ORDINARY, + SPECIES_MELOETTA_ARIA = 648, + SPECIES_MELOETTA = SPECIES_MELOETTA_ARIA, + SPECIES_GENESECT = 649, + SPECIES_CHESPIN = 650, + SPECIES_QUILLADIN = 651, + SPECIES_CHESNAUGHT = 652, + SPECIES_FENNEKIN = 653, + SPECIES_BRAIXEN = 654, + SPECIES_DELPHOX = 655, + SPECIES_FROAKIE = 656, + SPECIES_FROGADIER = 657, + SPECIES_GRENINJA = 658, + SPECIES_BUNNELBY = 659, + SPECIES_DIGGERSBY = 660, + SPECIES_FLETCHLING = 661, + SPECIES_FLETCHINDER = 662, + SPECIES_TALONFLAME = 663, + SPECIES_SCATTERBUG_ICY_SNOW = 664, + SPECIES_SCATTERBUG = SPECIES_SCATTERBUG_ICY_SNOW, + SPECIES_SPEWPA_ICY_SNOW = 665, + SPECIES_SPEWPA = SPECIES_SPEWPA_ICY_SNOW, + SPECIES_VIVILLON_ICY_SNOW = 666, + SPECIES_VIVILLON = SPECIES_VIVILLON_ICY_SNOW, + SPECIES_LITLEO = 667, + SPECIES_PYROAR = 668, + SPECIES_FLABEBE_RED = 669, + SPECIES_FLABEBE = SPECIES_FLABEBE_RED, + SPECIES_FLOETTE_RED = 670, + SPECIES_FLOETTE = SPECIES_FLOETTE_RED, + SPECIES_FLORGES_RED = 671, + SPECIES_FLORGES = SPECIES_FLORGES_RED, + SPECIES_SKIDDO = 672, + SPECIES_GOGOAT = 673, + SPECIES_PANCHAM = 674, + SPECIES_PANGORO = 675, + SPECIES_FURFROU_NATURAL = 676, + SPECIES_FURFROU = SPECIES_FURFROU_NATURAL, + SPECIES_ESPURR = 677, + SPECIES_MEOWSTIC_M = 678, + SPECIES_MEOWSTIC = SPECIES_MEOWSTIC_M, + SPECIES_HONEDGE = 679, + SPECIES_DOUBLADE = 680, + SPECIES_AEGISLASH_SHIELD = 681, + SPECIES_AEGISLASH = SPECIES_AEGISLASH_SHIELD, + SPECIES_SPRITZEE = 682, + SPECIES_AROMATISSE = 683, + SPECIES_SWIRLIX = 684, + SPECIES_SLURPUFF = 685, + SPECIES_INKAY = 686, + SPECIES_MALAMAR = 687, + SPECIES_BINACLE = 688, + SPECIES_BARBARACLE = 689, + SPECIES_SKRELP = 690, + SPECIES_DRAGALGE = 691, + SPECIES_CLAUNCHER = 692, + SPECIES_CLAWITZER = 693, + SPECIES_HELIOPTILE = 694, + SPECIES_HELIOLISK = 695, + SPECIES_TYRUNT = 696, + SPECIES_TYRANTRUM = 697, + SPECIES_AMAURA = 698, + SPECIES_AURORUS = 699, + SPECIES_SYLVEON = 700, + SPECIES_HAWLUCHA = 701, + SPECIES_DEDENNE = 702, + SPECIES_CARBINK = 703, + SPECIES_GOOMY = 704, + SPECIES_SLIGGOO = 705, + SPECIES_GOODRA = 706, + SPECIES_KLEFKI = 707, + SPECIES_PHANTUMP = 708, + SPECIES_TREVENANT = 709, + SPECIES_PUMPKABOO_AVERAGE = 710, + SPECIES_PUMPKABOO = SPECIES_PUMPKABOO_AVERAGE, + SPECIES_GOURGEIST_AVERAGE = 711, + SPECIES_GOURGEIST = SPECIES_GOURGEIST_AVERAGE, + SPECIES_BERGMITE = 712, + SPECIES_AVALUGG = 713, + SPECIES_NOIBAT = 714, + SPECIES_NOIVERN = 715, + SPECIES_XERNEAS_NEUTRAL = 716, + SPECIES_XERNEAS = SPECIES_XERNEAS_NEUTRAL, + SPECIES_YVELTAL = 717, + SPECIES_ZYGARDE_50 = 718, + SPECIES_ZYGARDE = SPECIES_ZYGARDE_50, + SPECIES_DIANCIE = 719, + SPECIES_HOOPA_CONFINED = 720, + SPECIES_HOOPA = SPECIES_HOOPA_CONFINED, + SPECIES_VOLCANION = 721, + SPECIES_ROWLET = 722, + SPECIES_DARTRIX = 723, + SPECIES_DECIDUEYE = 724, + SPECIES_LITTEN = 725, + SPECIES_TORRACAT = 726, + SPECIES_INCINEROAR = 727, + SPECIES_POPPLIO = 728, + SPECIES_BRIONNE = 729, + SPECIES_PRIMARINA = 730, + SPECIES_PIKIPEK = 731, + SPECIES_TRUMBEAK = 732, + SPECIES_TOUCANNON = 733, + SPECIES_YUNGOOS = 734, + SPECIES_GUMSHOOS = 735, + SPECIES_GRUBBIN = 736, + SPECIES_CHARJABUG = 737, + SPECIES_VIKAVOLT = 738, + SPECIES_CRABRAWLER = 739, + SPECIES_CRABOMINABLE = 740, + SPECIES_ORICORIO_BAILE = 741, + SPECIES_ORICORIO = SPECIES_ORICORIO_BAILE, + SPECIES_CUTIEFLY = 742, + SPECIES_RIBOMBEE = 743, + SPECIES_ROCKRUFF = 744, + SPECIES_LYCANROC_MIDDAY = 745, + SPECIES_LYCANROC = SPECIES_LYCANROC_MIDDAY, + SPECIES_WISHIWASHI_SOLO = 746, + SPECIES_WISHIWASHI = SPECIES_WISHIWASHI_SOLO, + SPECIES_MAREANIE = 747, + SPECIES_TOXAPEX = 748, + SPECIES_MUDBRAY = 749, + SPECIES_MUDSDALE = 750, + SPECIES_DEWPIDER = 751, + SPECIES_ARAQUANID = 752, + SPECIES_FOMANTIS = 753, + SPECIES_LURANTIS = 754, + SPECIES_MORELULL = 755, + SPECIES_SHIINOTIC = 756, + SPECIES_SALANDIT = 757, + SPECIES_SALAZZLE = 758, + SPECIES_STUFFUL = 759, + SPECIES_BEWEAR = 760, + SPECIES_BOUNSWEET = 761, + SPECIES_STEENEE = 762, + SPECIES_TSAREENA = 763, + SPECIES_COMFEY = 764, + SPECIES_ORANGURU = 765, + SPECIES_PASSIMIAN = 766, + SPECIES_WIMPOD = 767, + SPECIES_GOLISOPOD = 768, + SPECIES_SANDYGAST = 769, + SPECIES_PALOSSAND = 770, + SPECIES_PYUKUMUKU = 771, + SPECIES_TYPE_NULL = 772, + SPECIES_SILVALLY_NORMAL = 773, + SPECIES_SILVALLY = SPECIES_SILVALLY_NORMAL, + SPECIES_MINIOR_METEOR_RED = 774, + SPECIES_MINIOR_METEOR = SPECIES_MINIOR_METEOR_RED, + SPECIES_MINIOR = SPECIES_MINIOR_METEOR, + SPECIES_MINIOR_RED = SPECIES_MINIOR_METEOR_RED, + SPECIES_KOMALA = 775, + SPECIES_TURTONATOR = 776, + SPECIES_TOGEDEMARU = 777, + SPECIES_MIMIKYU_DISGUISED = 778, + SPECIES_MIMIKYU = SPECIES_MIMIKYU_DISGUISED, + SPECIES_BRUXISH = 779, + SPECIES_DRAMPA = 780, + SPECIES_DHELMISE = 781, + SPECIES_JANGMO_O = 782, + SPECIES_HAKAMO_O = 783, + SPECIES_KOMMO_O = 784, + SPECIES_TAPU_KOKO = 785, + SPECIES_TAPU_LELE = 786, + SPECIES_TAPU_BULU = 787, + SPECIES_TAPU_FINI = 788, + SPECIES_COSMOG = 789, + SPECIES_COSMOEM = 790, + SPECIES_SOLGALEO = 791, + SPECIES_LUNALA = 792, + SPECIES_NIHILEGO = 793, + SPECIES_BUZZWOLE = 794, + SPECIES_PHEROMOSA = 795, + SPECIES_XURKITREE = 796, + SPECIES_CELESTEELA = 797, + SPECIES_KARTANA = 798, + SPECIES_GUZZLORD = 799, + SPECIES_NECROZMA = 800, + SPECIES_MAGEARNA = 801, + SPECIES_MARSHADOW = 802, + SPECIES_POIPOLE = 803, + SPECIES_NAGANADEL = 804, + SPECIES_STAKATAKA = 805, + SPECIES_BLACEPHALON = 806, + SPECIES_ZERAORA = 807, + SPECIES_MELTAN = 808, + SPECIES_MELMETAL = 809, + SPECIES_GROOKEY = 810, + SPECIES_THWACKEY = 811, + SPECIES_RILLABOOM = 812, + SPECIES_SCORBUNNY = 813, + SPECIES_RABOOT = 814, + SPECIES_CINDERACE = 815, + SPECIES_SOBBLE = 816, + SPECIES_DRIZZILE = 817, + SPECIES_INTELEON = 818, + SPECIES_SKWOVET = 819, + SPECIES_GREEDENT = 820, + SPECIES_ROOKIDEE = 821, + SPECIES_CORVISQUIRE = 822, + SPECIES_CORVIKNIGHT = 823, + SPECIES_BLIPBUG = 824, + SPECIES_DOTTLER = 825, + SPECIES_ORBEETLE = 826, + SPECIES_NICKIT = 827, + SPECIES_THIEVUL = 828, + SPECIES_GOSSIFLEUR = 829, + SPECIES_ELDEGOSS = 830, + SPECIES_WOOLOO = 831, + SPECIES_DUBWOOL = 832, + SPECIES_CHEWTLE = 833, + SPECIES_DREDNAW = 834, + SPECIES_YAMPER = 835, + SPECIES_BOLTUND = 836, + SPECIES_ROLYCOLY = 837, + SPECIES_CARKOL = 838, + SPECIES_COALOSSAL = 839, + SPECIES_APPLIN = 840, + SPECIES_FLAPPLE = 841, + SPECIES_APPLETUN = 842, + SPECIES_SILICOBRA = 843, + SPECIES_SANDACONDA = 844, + SPECIES_CRAMORANT = 845, + SPECIES_ARROKUDA = 846, + SPECIES_BARRASKEWDA = 847, + SPECIES_TOXEL = 848, + SPECIES_TOXTRICITY_AMPED = 849, + SPECIES_TOXTRICITY = SPECIES_TOXTRICITY_AMPED, + SPECIES_SIZZLIPEDE = 850, + SPECIES_CENTISKORCH = 851, + SPECIES_CLOBBOPUS = 852, + SPECIES_GRAPPLOCT = 853, + SPECIES_SINISTEA_PHONY = 854, + SPECIES_SINISTEA = SPECIES_SINISTEA_PHONY, + SPECIES_POLTEAGEIST_PHONY = 855, + SPECIES_POLTEAGEIST = SPECIES_POLTEAGEIST_PHONY, + SPECIES_HATENNA = 856, + SPECIES_HATTREM = 857, + SPECIES_HATTERENE = 858, + SPECIES_IMPIDIMP = 859, + SPECIES_MORGREM = 860, + SPECIES_GRIMMSNARL = 861, + SPECIES_OBSTAGOON = 862, + SPECIES_PERRSERKER = 863, + SPECIES_CURSOLA = 864, + SPECIES_SIRFETCHD = 865, + SPECIES_MR_RIME = 866, + SPECIES_RUNERIGUS = 867, + SPECIES_MILCERY = 868, + SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM = 869, + SPECIES_ALCREMIE_STRAWBERRY = SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM, + SPECIES_ALCREMIE = SPECIES_ALCREMIE_STRAWBERRY, + SPECIES_ALCREMIE_VANILLA_CREAM = SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM, + SPECIES_FALINKS = 870, + SPECIES_PINCURCHIN = 871, + SPECIES_SNOM = 872, + SPECIES_FROSMOTH = 873, + SPECIES_STONJOURNER = 874, + SPECIES_EISCUE_ICE = 875, + SPECIES_EISCUE = SPECIES_EISCUE_ICE, + SPECIES_INDEEDEE_M = 876, + SPECIES_INDEEDEE = SPECIES_INDEEDEE_M, + SPECIES_MORPEKO_FULL_BELLY = 877, + SPECIES_MORPEKO = SPECIES_MORPEKO_FULL_BELLY, + SPECIES_CUFANT = 878, + SPECIES_COPPERAJAH = 879, + SPECIES_DRACOZOLT = 880, + SPECIES_ARCTOZOLT = 881, + SPECIES_DRACOVISH = 882, + SPECIES_ARCTOVISH = 883, + SPECIES_DURALUDON = 884, + SPECIES_DREEPY = 885, + SPECIES_DRAKLOAK = 886, + SPECIES_DRAGAPULT = 887, + SPECIES_ZACIAN_HERO = 888, + SPECIES_ZACIAN = SPECIES_ZACIAN_HERO, + SPECIES_ZAMAZENTA_HERO = 889, + SPECIES_ZAMAZENTA = SPECIES_ZAMAZENTA_HERO, + SPECIES_ETERNATUS = 890, + SPECIES_KUBFU = 891, + SPECIES_URSHIFU_SINGLE_STRIKE = 892, + SPECIES_URSHIFU = SPECIES_URSHIFU_SINGLE_STRIKE, + SPECIES_ZARUDE = 893, + SPECIES_REGIELEKI = 894, + SPECIES_REGIDRAGO = 895, + SPECIES_GLASTRIER = 896, + SPECIES_SPECTRIER = 897, + SPECIES_CALYREX = 898, + SPECIES_WYRDEER = 899, + SPECIES_KLEAVOR = 900, + SPECIES_URSALUNA = 901, + SPECIES_BASCULEGION_M = 902, + SPECIES_BASCULEGION = SPECIES_BASCULEGION_M, + SPECIES_SNEASLER = 903, + SPECIES_OVERQWIL = 904, + SPECIES_ENAMORUS_INCARNATE = 905, + SPECIES_ENAMORUS = SPECIES_ENAMORUS_INCARNATE, + SPECIES_VENUSAUR_MEGA = 906, + SPECIES_CHARIZARD_MEGA_X = 907, + SPECIES_CHARIZARD_MEGA_Y = 908, + SPECIES_BLASTOISE_MEGA = 909, + SPECIES_BEEDRILL_MEGA = 910, + SPECIES_PIDGEOT_MEGA = 911, + SPECIES_ALAKAZAM_MEGA = 912, + SPECIES_SLOWBRO_MEGA = 913, + SPECIES_GENGAR_MEGA = 914, + SPECIES_KANGASKHAN_MEGA = 915, + SPECIES_PINSIR_MEGA = 916, + SPECIES_GYARADOS_MEGA = 917, + SPECIES_AERODACTYL_MEGA = 918, + SPECIES_MEWTWO_MEGA_X = 919, + SPECIES_MEWTWO_MEGA_Y = 920, + SPECIES_AMPHAROS_MEGA = 921, + SPECIES_STEELIX_MEGA = 922, + SPECIES_SCIZOR_MEGA = 923, + SPECIES_HERACROSS_MEGA = 924, + SPECIES_HOUNDOOM_MEGA = 925, + SPECIES_TYRANITAR_MEGA = 926, + SPECIES_SCEPTILE_MEGA = 927, + SPECIES_BLAZIKEN_MEGA = 928, + SPECIES_SWAMPERT_MEGA = 929, + SPECIES_GARDEVOIR_MEGA = 930, + SPECIES_SABLEYE_MEGA = 931, + SPECIES_MAWILE_MEGA = 932, + SPECIES_AGGRON_MEGA = 933, + SPECIES_MEDICHAM_MEGA = 934, + SPECIES_MANECTRIC_MEGA = 935, + SPECIES_SHARPEDO_MEGA = 936, + SPECIES_CAMERUPT_MEGA = 937, + SPECIES_ALTARIA_MEGA = 938, + SPECIES_BANETTE_MEGA = 939, + SPECIES_ABSOL_MEGA = 940, + SPECIES_GLALIE_MEGA = 941, + SPECIES_SALAMENCE_MEGA = 942, + SPECIES_METAGROSS_MEGA = 943, + SPECIES_LATIAS_MEGA = 944, + SPECIES_LATIOS_MEGA = 945, + SPECIES_LOPUNNY_MEGA = 946, + SPECIES_GARCHOMP_MEGA = 947, + SPECIES_LUCARIO_MEGA = 948, + SPECIES_ABOMASNOW_MEGA = 949, + SPECIES_GALLADE_MEGA = 950, + SPECIES_AUDINO_MEGA = 951, + SPECIES_DIANCIE_MEGA = 952, + SPECIES_RAYQUAZA_MEGA = 953, + SPECIES_KYOGRE_PRIMAL = 954, + SPECIES_GROUDON_PRIMAL = 955, + SPECIES_RATTATA_ALOLA = 956, + SPECIES_RATICATE_ALOLA = 957, + SPECIES_RAICHU_ALOLA = 958, + SPECIES_SANDSHREW_ALOLA = 959, + SPECIES_SANDSLASH_ALOLA = 960, + SPECIES_VULPIX_ALOLA = 961, + SPECIES_NINETALES_ALOLA = 962, + SPECIES_DIGLETT_ALOLA = 963, + SPECIES_DUGTRIO_ALOLA = 964, + SPECIES_MEOWTH_ALOLA = 965, + SPECIES_PERSIAN_ALOLA = 966, + SPECIES_GEODUDE_ALOLA = 967, + SPECIES_GRAVELER_ALOLA = 968, + SPECIES_GOLEM_ALOLA = 969, + SPECIES_GRIMER_ALOLA = 970, + SPECIES_MUK_ALOLA = 971, + SPECIES_EXEGGUTOR_ALOLA = 972, + SPECIES_MAROWAK_ALOLA = 973, + SPECIES_MEOWTH_GALAR = 974, + SPECIES_PONYTA_GALAR = 975, + SPECIES_RAPIDASH_GALAR = 976, + SPECIES_SLOWPOKE_GALAR = 977, + SPECIES_SLOWBRO_GALAR = 978, + SPECIES_FARFETCHD_GALAR = 979, + SPECIES_WEEZING_GALAR = 980, + SPECIES_MR_MIME_GALAR = 981, + SPECIES_ARTICUNO_GALAR = 982, + SPECIES_ZAPDOS_GALAR = 983, + SPECIES_MOLTRES_GALAR = 984, + SPECIES_SLOWKING_GALAR = 985, + SPECIES_CORSOLA_GALAR = 986, + SPECIES_ZIGZAGOON_GALAR = 987, + SPECIES_LINOONE_GALAR = 988, + SPECIES_DARUMAKA_GALAR = 989, + SPECIES_DARMANITAN_GALAR_STANDARD = 990, + SPECIES_DARMANITAN_GALAR = SPECIES_DARMANITAN_GALAR_STANDARD, + SPECIES_YAMASK_GALAR = 991, + SPECIES_STUNFISK_GALAR = 992, -//Hisuian Forms -#define SPECIES_GROWLITHE_HISUI 993 -#define SPECIES_ARCANINE_HISUI 994 -#define SPECIES_VOLTORB_HISUI 995 -#define SPECIES_ELECTRODE_HISUI 996 -#define SPECIES_TYPHLOSION_HISUI 997 -#define SPECIES_QWILFISH_HISUI 998 -#define SPECIES_SNEASEL_HISUI 999 -#define SPECIES_SAMUROTT_HISUI 1000 -#define SPECIES_LILLIGANT_HISUI 1001 -#define SPECIES_ZORUA_HISUI 1002 -#define SPECIES_ZOROARK_HISUI 1003 -#define SPECIES_BRAVIARY_HISUI 1004 -#define SPECIES_SLIGGOO_HISUI 1005 -#define SPECIES_GOODRA_HISUI 1006 -#define SPECIES_AVALUGG_HISUI 1007 -#define SPECIES_DECIDUEYE_HISUI 1008 + //Hisuian Forms + SPECIES_GROWLITHE_HISUI = 993, + SPECIES_ARCANINE_HISUI = 994, + SPECIES_VOLTORB_HISUI = 995, + SPECIES_ELECTRODE_HISUI = 996, + SPECIES_TYPHLOSION_HISUI = 997, + SPECIES_QWILFISH_HISUI = 998, + SPECIES_SNEASEL_HISUI = 999, + SPECIES_SAMUROTT_HISUI = 1000, + SPECIES_LILLIGANT_HISUI = 1001, + SPECIES_ZORUA_HISUI = 1002, + SPECIES_ZOROARK_HISUI = 1003, + SPECIES_BRAVIARY_HISUI = 1004, + SPECIES_SLIGGOO_HISUI = 1005, + SPECIES_GOODRA_HISUI = 1006, + SPECIES_AVALUGG_HISUI = 1007, + SPECIES_DECIDUEYE_HISUI = 1008, -// Misc Forms -#define SPECIES_PIKACHU_COSPLAY 1009 -#define SPECIES_PIKACHU_ROCK_STAR 1010 -#define SPECIES_PIKACHU_BELLE 1011 -#define SPECIES_PIKACHU_POP_STAR 1012 -#define SPECIES_PIKACHU_PHD 1013 -#define SPECIES_PIKACHU_LIBRE 1014 -#define SPECIES_PIKACHU_ORIGINAL 1015 -#define SPECIES_PIKACHU_HOENN 1016 -#define SPECIES_PIKACHU_SINNOH 1017 -#define SPECIES_PIKACHU_UNOVA 1018 -#define SPECIES_PIKACHU_KALOS 1019 -#define SPECIES_PIKACHU_ALOLA 1020 -#define SPECIES_PIKACHU_PARTNER 1021 -#define SPECIES_PIKACHU_WORLD 1022 -#define SPECIES_PICHU_SPIKY_EARED 1023 -#define SPECIES_UNOWN_B 1024 -#define SPECIES_UNOWN_C 1025 -#define SPECIES_UNOWN_D 1026 -#define SPECIES_UNOWN_E 1027 -#define SPECIES_UNOWN_F 1028 -#define SPECIES_UNOWN_G 1029 -#define SPECIES_UNOWN_H 1030 -#define SPECIES_UNOWN_I 1031 -#define SPECIES_UNOWN_J 1032 -#define SPECIES_UNOWN_K 1033 -#define SPECIES_UNOWN_L 1034 -#define SPECIES_UNOWN_M 1035 -#define SPECIES_UNOWN_N 1036 -#define SPECIES_UNOWN_O 1037 -#define SPECIES_UNOWN_P 1038 -#define SPECIES_UNOWN_Q 1039 -#define SPECIES_UNOWN_R 1040 -#define SPECIES_UNOWN_S 1041 -#define SPECIES_UNOWN_T 1042 -#define SPECIES_UNOWN_U 1043 -#define SPECIES_UNOWN_V 1044 -#define SPECIES_UNOWN_W 1045 -#define SPECIES_UNOWN_X 1046 -#define SPECIES_UNOWN_Y 1047 -#define SPECIES_UNOWN_Z 1048 -#define SPECIES_UNOWN_EXCLAMATION 1049 -#define SPECIES_UNOWN_QUESTION 1050 -#define SPECIES_CASTFORM_SUNNY 1051 -#define SPECIES_CASTFORM_RAINY 1052 -#define SPECIES_CASTFORM_SNOWY 1053 -#define SPECIES_DEOXYS_ATTACK 1054 -#define SPECIES_DEOXYS_DEFENSE 1055 -#define SPECIES_DEOXYS_SPEED 1056 -#define SPECIES_BURMY_SANDY 1057 -#define SPECIES_BURMY_TRASH 1058 -#define SPECIES_WORMADAM_SANDY 1059 -#define SPECIES_WORMADAM_TRASH 1060 -#define SPECIES_CHERRIM_SUNSHINE 1061 -#define SPECIES_SHELLOS_EAST 1062 -#define SPECIES_GASTRODON_EAST 1063 -#define SPECIES_ROTOM_HEAT 1064 -#define SPECIES_ROTOM_WASH 1065 -#define SPECIES_ROTOM_FROST 1066 -#define SPECIES_ROTOM_FAN 1067 -#define SPECIES_ROTOM_MOW 1068 -#define SPECIES_DIALGA_ORIGIN 1069 -#define SPECIES_PALKIA_ORIGIN 1070 -#define SPECIES_GIRATINA_ORIGIN 1071 -#define SPECIES_SHAYMIN_SKY 1072 -#define SPECIES_ARCEUS_FIGHTING 1073 -#define SPECIES_ARCEUS_FLYING 1074 -#define SPECIES_ARCEUS_POISON 1075 -#define SPECIES_ARCEUS_GROUND 1076 -#define SPECIES_ARCEUS_ROCK 1077 -#define SPECIES_ARCEUS_BUG 1078 -#define SPECIES_ARCEUS_GHOST 1079 -#define SPECIES_ARCEUS_STEEL 1080 -#define SPECIES_ARCEUS_FIRE 1081 -#define SPECIES_ARCEUS_WATER 1082 -#define SPECIES_ARCEUS_GRASS 1083 -#define SPECIES_ARCEUS_ELECTRIC 1084 -#define SPECIES_ARCEUS_PSYCHIC 1085 -#define SPECIES_ARCEUS_ICE 1086 -#define SPECIES_ARCEUS_DRAGON 1087 -#define SPECIES_ARCEUS_DARK 1088 -#define SPECIES_ARCEUS_FAIRY 1089 -#define SPECIES_BASCULIN_BLUE_STRIPED 1090 -#define SPECIES_BASCULIN_WHITE_STRIPED 1091 -#define SPECIES_DARMANITAN_ZEN 1092 -#define SPECIES_DARMANITAN_GALAR_ZEN 1093 -#define SPECIES_DEERLING_SUMMER 1094 -#define SPECIES_DEERLING_AUTUMN 1095 -#define SPECIES_DEERLING_WINTER 1096 -#define SPECIES_SAWSBUCK_SUMMER 1097 -#define SPECIES_SAWSBUCK_AUTUMN 1098 -#define SPECIES_SAWSBUCK_WINTER 1099 -#define SPECIES_TORNADUS_THERIAN 1100 -#define SPECIES_THUNDURUS_THERIAN 1101 -#define SPECIES_LANDORUS_THERIAN 1102 -#define SPECIES_ENAMORUS_THERIAN 1103 -#define SPECIES_KYUREM_WHITE 1104 -#define SPECIES_KYUREM_BLACK 1105 -#define SPECIES_KELDEO_RESOLUTE 1106 -#define SPECIES_MELOETTA_PIROUETTE 1107 -#define SPECIES_GENESECT_DOUSE 1108 -#define SPECIES_GENESECT_SHOCK 1109 -#define SPECIES_GENESECT_BURN 1110 -#define SPECIES_GENESECT_CHILL 1111 -#define SPECIES_GRENINJA_BOND 1112 -#define SPECIES_GRENINJA_BATTLE_BOND SPECIES_GRENINJA_BOND -#define SPECIES_GRENINJA_ASH 1113 -#define SPECIES_VIVILLON_POLAR 1114 -#define SPECIES_VIVILLON_TUNDRA 1115 -#define SPECIES_VIVILLON_CONTINENTAL 1116 -#define SPECIES_VIVILLON_GARDEN 1117 -#define SPECIES_VIVILLON_ELEGANT 1118 -#define SPECIES_VIVILLON_MEADOW 1119 -#define SPECIES_VIVILLON_MODERN 1120 -#define SPECIES_VIVILLON_MARINE 1121 -#define SPECIES_VIVILLON_ARCHIPELAGO 1122 -#define SPECIES_VIVILLON_HIGH_PLAINS 1123 -#define SPECIES_VIVILLON_SANDSTORM 1124 -#define SPECIES_VIVILLON_RIVER 1125 -#define SPECIES_VIVILLON_MONSOON 1126 -#define SPECIES_VIVILLON_SAVANNA 1127 -#define SPECIES_VIVILLON_SUN 1128 -#define SPECIES_VIVILLON_OCEAN 1129 -#define SPECIES_VIVILLON_JUNGLE 1130 -#define SPECIES_VIVILLON_FANCY 1131 -#define SPECIES_VIVILLON_POKEBALL 1132 -#define SPECIES_FLABEBE_YELLOW 1133 -#define SPECIES_FLABEBE_ORANGE 1134 -#define SPECIES_FLABEBE_BLUE 1135 -#define SPECIES_FLABEBE_WHITE 1136 -#define SPECIES_FLOETTE_YELLOW 1137 -#define SPECIES_FLOETTE_ORANGE 1138 -#define SPECIES_FLOETTE_BLUE 1139 -#define SPECIES_FLOETTE_WHITE 1140 -#define SPECIES_FLOETTE_ETERNAL 1141 -#define SPECIES_FLORGES_YELLOW 1142 -#define SPECIES_FLORGES_ORANGE 1143 -#define SPECIES_FLORGES_BLUE 1144 -#define SPECIES_FLORGES_WHITE 1145 -#define SPECIES_FURFROU_HEART 1146 -#define SPECIES_FURFROU_STAR 1147 -#define SPECIES_FURFROU_DIAMOND 1148 -#define SPECIES_FURFROU_DEBUTANTE 1149 -#define SPECIES_FURFROU_MATRON 1150 -#define SPECIES_FURFROU_DANDY 1151 -#define SPECIES_FURFROU_LA_REINE 1152 -#define SPECIES_FURFROU_KABUKI 1153 -#define SPECIES_FURFROU_PHARAOH 1154 -#define SPECIES_MEOWSTIC_F 1155 -#define SPECIES_AEGISLASH_BLADE 1156 -#define SPECIES_PUMPKABOO_SMALL 1157 -#define SPECIES_PUMPKABOO_LARGE 1158 -#define SPECIES_PUMPKABOO_SUPER 1159 -#define SPECIES_GOURGEIST_SMALL 1160 -#define SPECIES_GOURGEIST_LARGE 1161 -#define SPECIES_GOURGEIST_SUPER 1162 -#define SPECIES_XERNEAS_ACTIVE 1163 -#define SPECIES_ZYGARDE_10 SPECIES_ZYGARDE_10_AURA_BREAK -#define SPECIES_ZYGARDE_10_AURA_BREAK 1164 -#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT 1165 -#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT 1166 -#define SPECIES_ZYGARDE_COMPLETE 1167 -#define SPECIES_HOOPA_UNBOUND 1168 -#define SPECIES_ORICORIO_POM_POM 1169 -#define SPECIES_ORICORIO_PAU 1170 -#define SPECIES_ORICORIO_SENSU 1171 -#define SPECIES_ROCKRUFF_OWN_TEMPO 1172 -#define SPECIES_LYCANROC_MIDNIGHT 1173 -#define SPECIES_LYCANROC_DUSK 1174 -#define SPECIES_WISHIWASHI_SCHOOL 1175 -#define SPECIES_SILVALLY_FIGHTING 1176 -#define SPECIES_SILVALLY_FLYING 1177 -#define SPECIES_SILVALLY_POISON 1178 -#define SPECIES_SILVALLY_GROUND 1179 -#define SPECIES_SILVALLY_ROCK 1180 -#define SPECIES_SILVALLY_BUG 1181 -#define SPECIES_SILVALLY_GHOST 1182 -#define SPECIES_SILVALLY_STEEL 1183 -#define SPECIES_SILVALLY_FIRE 1184 -#define SPECIES_SILVALLY_WATER 1185 -#define SPECIES_SILVALLY_GRASS 1186 -#define SPECIES_SILVALLY_ELECTRIC 1187 -#define SPECIES_SILVALLY_PSYCHIC 1188 -#define SPECIES_SILVALLY_ICE 1189 -#define SPECIES_SILVALLY_DRAGON 1190 -#define SPECIES_SILVALLY_DARK 1191 -#define SPECIES_SILVALLY_FAIRY 1192 -#define SPECIES_MINIOR_ORANGE SPECIES_MINIOR_METEOR_ORANGE -#define SPECIES_MINIOR_YELLOW SPECIES_MINIOR_METEOR_YELLOW -#define SPECIES_MINIOR_GREEN SPECIES_MINIOR_METEOR_GREEN -#define SPECIES_MINIOR_BLUE SPECIES_MINIOR_METEOR_BLUE -#define SPECIES_MINIOR_INDIGO SPECIES_MINIOR_METEOR_INDIGO -#define SPECIES_MINIOR_VIOLET SPECIES_MINIOR_METEOR_VIOLET -#define SPECIES_MINIOR_METEOR_ORANGE 1193 -#define SPECIES_MINIOR_METEOR_YELLOW 1194 -#define SPECIES_MINIOR_METEOR_GREEN 1195 -#define SPECIES_MINIOR_METEOR_BLUE 1196 -#define SPECIES_MINIOR_METEOR_INDIGO 1197 -#define SPECIES_MINIOR_METEOR_VIOLET 1198 -#define SPECIES_MINIOR_CORE SPECIES_MINIOR_CORE_RED -#define SPECIES_MINIOR_CORE_RED 1199 -#define SPECIES_MINIOR_CORE_ORANGE 1200 -#define SPECIES_MINIOR_CORE_YELLOW 1201 -#define SPECIES_MINIOR_CORE_GREEN 1202 -#define SPECIES_MINIOR_CORE_BLUE 1203 -#define SPECIES_MINIOR_CORE_INDIGO 1204 -#define SPECIES_MINIOR_CORE_VIOLET 1205 -#define SPECIES_MIMIKYU_BUSTED 1206 -#define SPECIES_NECROZMA_DUSK_MANE 1207 -#define SPECIES_NECROZMA_DAWN_WINGS 1208 -#define SPECIES_NECROZMA_ULTRA 1209 -#define SPECIES_MAGEARNA_ORIGINAL 1210 -#define SPECIES_CRAMORANT_GULPING 1211 -#define SPECIES_CRAMORANT_GORGING 1212 -#define SPECIES_TOXTRICITY_LOW_KEY 1213 -#define SPECIES_SINISTEA_ANTIQUE 1214 -#define SPECIES_POLTEAGEIST_ANTIQUE 1215 -#define SPECIES_ALCREMIE_RUBY_CREAM SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM -#define SPECIES_ALCREMIE_MATCHA_CREAM SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM -#define SPECIES_ALCREMIE_MINT_CREAM SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM -#define SPECIES_ALCREMIE_LEMON_CREAM SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM -#define SPECIES_ALCREMIE_SALTED_CREAM SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM -#define SPECIES_ALCREMIE_RUBY_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL -#define SPECIES_ALCREMIE_CARAMEL_SWIRL SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL -#define SPECIES_ALCREMIE_RAINBOW_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM 1216 -#define SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM 1217 -#define SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM 1218 -#define SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM 1219 -#define SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM 1220 -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL 1221 -#define SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL 1222 -#define SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL 1223 -#define SPECIES_EISCUE_NOICE 1224 -#define SPECIES_INDEEDEE_F 1225 -#define SPECIES_MORPEKO_HANGRY 1226 -#define SPECIES_ZACIAN_CROWNED 1227 -#define SPECIES_ZAMAZENTA_CROWNED 1228 -#define SPECIES_ETERNATUS_ETERNAMAX 1229 -#define SPECIES_URSHIFU_RAPID_STRIKE 1230 -#define SPECIES_ZARUDE_DADA 1231 -#define SPECIES_CALYREX_ICE 1232 -#define SPECIES_CALYREX_SHADOW 1233 -#define SPECIES_BASCULEGION_F 1234 -#define SPECIES_ALCREMIE_BERRY SPECIES_ALCREMIE_BERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_BERRY_VANILLA_CREAM 1235 -#define SPECIES_ALCREMIE_BERRY_RUBY_CREAM 1236 -#define SPECIES_ALCREMIE_BERRY_MATCHA_CREAM 1237 -#define SPECIES_ALCREMIE_BERRY_MINT_CREAM 1238 -#define SPECIES_ALCREMIE_BERRY_LEMON_CREAM 1239 -#define SPECIES_ALCREMIE_BERRY_SALTED_CREAM 1240 -#define SPECIES_ALCREMIE_BERRY_RUBY_SWIRL 1241 -#define SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL 1242 -#define SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL 1243 -#define SPECIES_ALCREMIE_LOVE SPECIES_ALCREMIE_LOVE_VANILLA_CREAM -#define SPECIES_ALCREMIE_LOVE_VANILLA_CREAM 1244 -#define SPECIES_ALCREMIE_LOVE_RUBY_CREAM 1245 -#define SPECIES_ALCREMIE_LOVE_MATCHA_CREAM 1246 -#define SPECIES_ALCREMIE_LOVE_MINT_CREAM 1247 -#define SPECIES_ALCREMIE_LOVE_LEMON_CREAM 1248 -#define SPECIES_ALCREMIE_LOVE_SALTED_CREAM 1249 -#define SPECIES_ALCREMIE_LOVE_RUBY_SWIRL 1250 -#define SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL 1251 -#define SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL 1252 -#define SPECIES_ALCREMIE_STAR SPECIES_ALCREMIE_STAR_VANILLA_CREAM -#define SPECIES_ALCREMIE_STAR_VANILLA_CREAM 1253 -#define SPECIES_ALCREMIE_STAR_RUBY_CREAM 1254 -#define SPECIES_ALCREMIE_STAR_MATCHA_CREAM 1255 -#define SPECIES_ALCREMIE_STAR_MINT_CREAM 1256 -#define SPECIES_ALCREMIE_STAR_LEMON_CREAM 1257 -#define SPECIES_ALCREMIE_STAR_SALTED_CREAM 1258 -#define SPECIES_ALCREMIE_STAR_RUBY_SWIRL 1259 -#define SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL 1260 -#define SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL 1261 -#define SPECIES_ALCREMIE_CLOVER SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM -#define SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM 1262 -#define SPECIES_ALCREMIE_CLOVER_RUBY_CREAM 1263 -#define SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM 1264 -#define SPECIES_ALCREMIE_CLOVER_MINT_CREAM 1265 -#define SPECIES_ALCREMIE_CLOVER_LEMON_CREAM 1266 -#define SPECIES_ALCREMIE_CLOVER_SALTED_CREAM 1267 -#define SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL 1268 -#define SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL 1269 -#define SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL 1270 -#define SPECIES_ALCREMIE_FLOWER SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM -#define SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM 1271 -#define SPECIES_ALCREMIE_FLOWER_RUBY_CREAM 1272 -#define SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM 1273 -#define SPECIES_ALCREMIE_FLOWER_MINT_CREAM 1274 -#define SPECIES_ALCREMIE_FLOWER_LEMON_CREAM 1275 -#define SPECIES_ALCREMIE_FLOWER_SALTED_CREAM 1276 -#define SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL 1277 -#define SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL 1278 -#define SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL 1279 -#define SPECIES_ALCREMIE_RIBBON SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM -#define SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM 1280 -#define SPECIES_ALCREMIE_RIBBON_RUBY_CREAM 1281 -#define SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM 1282 -#define SPECIES_ALCREMIE_RIBBON_MINT_CREAM 1283 -#define SPECIES_ALCREMIE_RIBBON_LEMON_CREAM 1284 -#define SPECIES_ALCREMIE_RIBBON_SALTED_CREAM 1285 -#define SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL 1286 -#define SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL 1287 -#define SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL 1288 + // Misc Forms + SPECIES_PIKACHU_COSPLAY = 1009, + SPECIES_PIKACHU_ROCK_STAR = 1010, + SPECIES_PIKACHU_BELLE = 1011, + SPECIES_PIKACHU_POP_STAR = 1012, + SPECIES_PIKACHU_PHD = 1013, + SPECIES_PIKACHU_LIBRE = 1014, + SPECIES_PIKACHU_ORIGINAL = 1015, + SPECIES_PIKACHU_HOENN = 1016, + SPECIES_PIKACHU_SINNOH = 1017, + SPECIES_PIKACHU_UNOVA = 1018, + SPECIES_PIKACHU_KALOS = 1019, + SPECIES_PIKACHU_ALOLA = 1020, + SPECIES_PIKACHU_PARTNER = 1021, + SPECIES_PIKACHU_WORLD = 1022, + SPECIES_PICHU_SPIKY_EARED = 1023, + SPECIES_UNOWN_B = 1024, + SPECIES_UNOWN_C = 1025, + SPECIES_UNOWN_D = 1026, + SPECIES_UNOWN_E = 1027, + SPECIES_UNOWN_F = 1028, + SPECIES_UNOWN_G = 1029, + SPECIES_UNOWN_H = 1030, + SPECIES_UNOWN_I = 1031, + SPECIES_UNOWN_J = 1032, + SPECIES_UNOWN_K = 1033, + SPECIES_UNOWN_L = 1034, + SPECIES_UNOWN_M = 1035, + SPECIES_UNOWN_N = 1036, + SPECIES_UNOWN_O = 1037, + SPECIES_UNOWN_P = 1038, + SPECIES_UNOWN_Q = 1039, + SPECIES_UNOWN_R = 1040, + SPECIES_UNOWN_S = 1041, + SPECIES_UNOWN_T = 1042, + SPECIES_UNOWN_U = 1043, + SPECIES_UNOWN_V = 1044, + SPECIES_UNOWN_W = 1045, + SPECIES_UNOWN_X = 1046, + SPECIES_UNOWN_Y = 1047, + SPECIES_UNOWN_Z = 1048, + SPECIES_UNOWN_EXCLAMATION = 1049, + SPECIES_UNOWN_QUESTION = 1050, + SPECIES_CASTFORM_SUNNY = 1051, + SPECIES_CASTFORM_RAINY = 1052, + SPECIES_CASTFORM_SNOWY = 1053, + SPECIES_DEOXYS_ATTACK = 1054, + SPECIES_DEOXYS_DEFENSE = 1055, + SPECIES_DEOXYS_SPEED = 1056, + SPECIES_BURMY_SANDY = 1057, + SPECIES_BURMY_TRASH = 1058, + SPECIES_WORMADAM_SANDY = 1059, + SPECIES_WORMADAM_TRASH = 1060, + SPECIES_CHERRIM_SUNSHINE = 1061, + SPECIES_SHELLOS_EAST = 1062, + SPECIES_GASTRODON_EAST = 1063, + SPECIES_ROTOM_HEAT = 1064, + SPECIES_ROTOM_WASH = 1065, + SPECIES_ROTOM_FROST = 1066, + SPECIES_ROTOM_FAN = 1067, + SPECIES_ROTOM_MOW = 1068, + SPECIES_DIALGA_ORIGIN = 1069, + SPECIES_PALKIA_ORIGIN = 1070, + SPECIES_GIRATINA_ORIGIN = 1071, + SPECIES_SHAYMIN_SKY = 1072, + SPECIES_ARCEUS_FIGHTING = 1073, + SPECIES_ARCEUS_FLYING = 1074, + SPECIES_ARCEUS_POISON = 1075, + SPECIES_ARCEUS_GROUND = 1076, + SPECIES_ARCEUS_ROCK = 1077, + SPECIES_ARCEUS_BUG = 1078, + SPECIES_ARCEUS_GHOST = 1079, + SPECIES_ARCEUS_STEEL = 1080, + SPECIES_ARCEUS_FIRE = 1081, + SPECIES_ARCEUS_WATER = 1082, + SPECIES_ARCEUS_GRASS = 1083, + SPECIES_ARCEUS_ELECTRIC = 1084, + SPECIES_ARCEUS_PSYCHIC = 1085, + SPECIES_ARCEUS_ICE = 1086, + SPECIES_ARCEUS_DRAGON = 1087, + SPECIES_ARCEUS_DARK = 1088, + SPECIES_ARCEUS_FAIRY = 1089, + SPECIES_BASCULIN_BLUE_STRIPED = 1090, + SPECIES_BASCULIN_WHITE_STRIPED = 1091, + SPECIES_DARMANITAN_ZEN = 1092, + SPECIES_DARMANITAN_GALAR_ZEN = 1093, + SPECIES_DEERLING_SUMMER = 1094, + SPECIES_DEERLING_AUTUMN = 1095, + SPECIES_DEERLING_WINTER = 1096, + SPECIES_SAWSBUCK_SUMMER = 1097, + SPECIES_SAWSBUCK_AUTUMN = 1098, + SPECIES_SAWSBUCK_WINTER = 1099, + SPECIES_TORNADUS_THERIAN = 1100, + SPECIES_THUNDURUS_THERIAN = 1101, + SPECIES_LANDORUS_THERIAN = 1102, + SPECIES_ENAMORUS_THERIAN = 1103, + SPECIES_KYUREM_WHITE = 1104, + SPECIES_KYUREM_BLACK = 1105, + SPECIES_KELDEO_RESOLUTE = 1106, + SPECIES_MELOETTA_PIROUETTE = 1107, + SPECIES_GENESECT_DOUSE = 1108, + SPECIES_GENESECT_SHOCK = 1109, + SPECIES_GENESECT_BURN = 1110, + SPECIES_GENESECT_CHILL = 1111, + SPECIES_GRENINJA_BOND = 1112, + SPECIES_GRENINJA_BATTLE_BOND = SPECIES_GRENINJA_BOND, + SPECIES_GRENINJA_ASH = 1113, + SPECIES_VIVILLON_POLAR = 1114, + SPECIES_VIVILLON_TUNDRA = 1115, + SPECIES_VIVILLON_CONTINENTAL = 1116, + SPECIES_VIVILLON_GARDEN = 1117, + SPECIES_VIVILLON_ELEGANT = 1118, + SPECIES_VIVILLON_MEADOW = 1119, + SPECIES_VIVILLON_MODERN = 1120, + SPECIES_VIVILLON_MARINE = 1121, + SPECIES_VIVILLON_ARCHIPELAGO = 1122, + SPECIES_VIVILLON_HIGH_PLAINS = 1123, + SPECIES_VIVILLON_SANDSTORM = 1124, + SPECIES_VIVILLON_RIVER = 1125, + SPECIES_VIVILLON_MONSOON = 1126, + SPECIES_VIVILLON_SAVANNA = 1127, + SPECIES_VIVILLON_SUN = 1128, + SPECIES_VIVILLON_OCEAN = 1129, + SPECIES_VIVILLON_JUNGLE = 1130, + SPECIES_VIVILLON_FANCY = 1131, + SPECIES_VIVILLON_POKEBALL = 1132, + SPECIES_FLABEBE_YELLOW = 1133, + SPECIES_FLABEBE_ORANGE = 1134, + SPECIES_FLABEBE_BLUE = 1135, + SPECIES_FLABEBE_WHITE = 1136, + SPECIES_FLOETTE_YELLOW = 1137, + SPECIES_FLOETTE_ORANGE = 1138, + SPECIES_FLOETTE_BLUE = 1139, + SPECIES_FLOETTE_WHITE = 1140, + SPECIES_FLOETTE_ETERNAL = 1141, + SPECIES_FLORGES_YELLOW = 1142, + SPECIES_FLORGES_ORANGE = 1143, + SPECIES_FLORGES_BLUE = 1144, + SPECIES_FLORGES_WHITE = 1145, + SPECIES_FURFROU_HEART = 1146, + SPECIES_FURFROU_STAR = 1147, + SPECIES_FURFROU_DIAMOND = 1148, + SPECIES_FURFROU_DEBUTANTE = 1149, + SPECIES_FURFROU_MATRON = 1150, + SPECIES_FURFROU_DANDY = 1151, + SPECIES_FURFROU_LA_REINE = 1152, + SPECIES_FURFROU_KABUKI = 1153, + SPECIES_FURFROU_PHARAOH = 1154, + SPECIES_MEOWSTIC_F = 1155, + SPECIES_AEGISLASH_BLADE = 1156, + SPECIES_PUMPKABOO_SMALL = 1157, + SPECIES_PUMPKABOO_LARGE = 1158, + SPECIES_PUMPKABOO_SUPER = 1159, + SPECIES_GOURGEIST_SMALL = 1160, + SPECIES_GOURGEIST_LARGE = 1161, + SPECIES_GOURGEIST_SUPER = 1162, + SPECIES_XERNEAS_ACTIVE = 1163, + SPECIES_ZYGARDE_10_AURA_BREAK = 1164, + SPECIES_ZYGARDE_10 = SPECIES_ZYGARDE_10_AURA_BREAK, + SPECIES_ZYGARDE_10_POWER_CONSTRUCT = 1165, + SPECIES_ZYGARDE_50_POWER_CONSTRUCT = 1166, + SPECIES_ZYGARDE_COMPLETE = 1167, + SPECIES_HOOPA_UNBOUND = 1168, + SPECIES_ORICORIO_POM_POM = 1169, + SPECIES_ORICORIO_PAU = 1170, + SPECIES_ORICORIO_SENSU = 1171, + SPECIES_ROCKRUFF_OWN_TEMPO = 1172, + SPECIES_LYCANROC_MIDNIGHT = 1173, + SPECIES_LYCANROC_DUSK = 1174, + SPECIES_WISHIWASHI_SCHOOL = 1175, + SPECIES_SILVALLY_FIGHTING = 1176, + SPECIES_SILVALLY_FLYING = 1177, + SPECIES_SILVALLY_POISON = 1178, + SPECIES_SILVALLY_GROUND = 1179, + SPECIES_SILVALLY_ROCK = 1180, + SPECIES_SILVALLY_BUG = 1181, + SPECIES_SILVALLY_GHOST = 1182, + SPECIES_SILVALLY_STEEL = 1183, + SPECIES_SILVALLY_FIRE = 1184, + SPECIES_SILVALLY_WATER = 1185, + SPECIES_SILVALLY_GRASS = 1186, + SPECIES_SILVALLY_ELECTRIC = 1187, + SPECIES_SILVALLY_PSYCHIC = 1188, + SPECIES_SILVALLY_ICE = 1189, + SPECIES_SILVALLY_DRAGON = 1190, + SPECIES_SILVALLY_DARK = 1191, + SPECIES_SILVALLY_FAIRY = 1192, + SPECIES_MINIOR_METEOR_ORANGE = 1193, + SPECIES_MINIOR_METEOR_YELLOW = 1194, + SPECIES_MINIOR_METEOR_GREEN = 1195, + SPECIES_MINIOR_METEOR_BLUE = 1196, + SPECIES_MINIOR_METEOR_INDIGO = 1197, + SPECIES_MINIOR_METEOR_VIOLET = 1198, + SPECIES_MINIOR_ORANGE = SPECIES_MINIOR_METEOR_ORANGE, + SPECIES_MINIOR_YELLOW = SPECIES_MINIOR_METEOR_YELLOW, + SPECIES_MINIOR_GREEN = SPECIES_MINIOR_METEOR_GREEN, + SPECIES_MINIOR_BLUE = SPECIES_MINIOR_METEOR_BLUE, + SPECIES_MINIOR_INDIGO = SPECIES_MINIOR_METEOR_INDIGO, + SPECIES_MINIOR_VIOLET = SPECIES_MINIOR_METEOR_VIOLET, + SPECIES_MINIOR_CORE_RED = 1199, + SPECIES_MINIOR_CORE = SPECIES_MINIOR_CORE_RED, + SPECIES_MINIOR_CORE_ORANGE = 1200, + SPECIES_MINIOR_CORE_YELLOW = 1201, + SPECIES_MINIOR_CORE_GREEN = 1202, + SPECIES_MINIOR_CORE_BLUE = 1203, + SPECIES_MINIOR_CORE_INDIGO = 1204, + SPECIES_MINIOR_CORE_VIOLET = 1205, + SPECIES_MIMIKYU_BUSTED = 1206, + SPECIES_NECROZMA_DUSK_MANE = 1207, + SPECIES_NECROZMA_DAWN_WINGS = 1208, + SPECIES_NECROZMA_ULTRA = 1209, + SPECIES_MAGEARNA_ORIGINAL = 1210, + SPECIES_CRAMORANT_GULPING = 1211, + SPECIES_CRAMORANT_GORGING = 1212, + SPECIES_TOXTRICITY_LOW_KEY = 1213, + SPECIES_SINISTEA_ANTIQUE = 1214, + SPECIES_POLTEAGEIST_ANTIQUE = 1215, + SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM = 1216, + SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM = 1217, + SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM = 1218, + SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM = 1219, + SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM = 1220, + SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL = 1221, + SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL = 1222, + SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL = 1223, + SPECIES_ALCREMIE_RUBY_CREAM = SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM, + SPECIES_ALCREMIE_MATCHA_CREAM = SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM, + SPECIES_ALCREMIE_MINT_CREAM = SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM, + SPECIES_ALCREMIE_LEMON_CREAM = SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM, + SPECIES_ALCREMIE_SALTED_CREAM = SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM, + SPECIES_ALCREMIE_RUBY_SWIRL = SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL, + SPECIES_ALCREMIE_CARAMEL_SWIRL = SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, + SPECIES_ALCREMIE_RAINBOW_SWIRL = SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, + SPECIES_EISCUE_NOICE = 1224, + SPECIES_INDEEDEE_F = 1225, + SPECIES_MORPEKO_HANGRY = 1226, + SPECIES_ZACIAN_CROWNED = 1227, + SPECIES_ZAMAZENTA_CROWNED = 1228, + SPECIES_ETERNATUS_ETERNAMAX = 1229, + SPECIES_URSHIFU_RAPID_STRIKE = 1230, + SPECIES_ZARUDE_DADA = 1231, + SPECIES_CALYREX_ICE = 1232, + SPECIES_CALYREX_SHADOW = 1233, + SPECIES_BASCULEGION_F = 1234, + SPECIES_ALCREMIE_BERRY_VANILLA_CREAM = 1235, + SPECIES_ALCREMIE_BERRY = SPECIES_ALCREMIE_BERRY_VANILLA_CREAM, + SPECIES_ALCREMIE_BERRY_RUBY_CREAM = 1236, + SPECIES_ALCREMIE_BERRY_MATCHA_CREAM = 1237, + SPECIES_ALCREMIE_BERRY_MINT_CREAM = 1238, + SPECIES_ALCREMIE_BERRY_LEMON_CREAM = 1239, + SPECIES_ALCREMIE_BERRY_SALTED_CREAM = 1240, + SPECIES_ALCREMIE_BERRY_RUBY_SWIRL = 1241, + SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL = 1242, + SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL = 1243, + SPECIES_ALCREMIE_LOVE_VANILLA_CREAM = 1244, + SPECIES_ALCREMIE_LOVE = SPECIES_ALCREMIE_LOVE_VANILLA_CREAM, + SPECIES_ALCREMIE_LOVE_RUBY_CREAM = 1245, + SPECIES_ALCREMIE_LOVE_MATCHA_CREAM = 1246, + SPECIES_ALCREMIE_LOVE_MINT_CREAM = 1247, + SPECIES_ALCREMIE_LOVE_LEMON_CREAM = 1248, + SPECIES_ALCREMIE_LOVE_SALTED_CREAM = 1249, + SPECIES_ALCREMIE_LOVE_RUBY_SWIRL = 1250, + SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL = 1251, + SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL = 1252, + SPECIES_ALCREMIE_STAR_VANILLA_CREAM = 1253, + SPECIES_ALCREMIE_STAR = SPECIES_ALCREMIE_STAR_VANILLA_CREAM, + SPECIES_ALCREMIE_STAR_RUBY_CREAM = 1254, + SPECIES_ALCREMIE_STAR_MATCHA_CREAM = 1255, + SPECIES_ALCREMIE_STAR_MINT_CREAM = 1256, + SPECIES_ALCREMIE_STAR_LEMON_CREAM = 1257, + SPECIES_ALCREMIE_STAR_SALTED_CREAM = 1258, + SPECIES_ALCREMIE_STAR_RUBY_SWIRL = 1259, + SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL = 1260, + SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL = 1261, + SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM = 1262, + SPECIES_ALCREMIE_CLOVER = SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM, + SPECIES_ALCREMIE_CLOVER_RUBY_CREAM = 1263, + SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM = 1264, + SPECIES_ALCREMIE_CLOVER_MINT_CREAM = 1265, + SPECIES_ALCREMIE_CLOVER_LEMON_CREAM = 1266, + SPECIES_ALCREMIE_CLOVER_SALTED_CREAM = 1267, + SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL = 1268, + SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL = 1269, + SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL = 1270, + SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM = 1271, + SPECIES_ALCREMIE_FLOWER = SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM, + SPECIES_ALCREMIE_FLOWER_RUBY_CREAM = 1272, + SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM = 1273, + SPECIES_ALCREMIE_FLOWER_MINT_CREAM = 1274, + SPECIES_ALCREMIE_FLOWER_LEMON_CREAM = 1275, + SPECIES_ALCREMIE_FLOWER_SALTED_CREAM = 1276, + SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL = 1277, + SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL = 1278, + SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL = 1279, + SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM = 1280, + SPECIES_ALCREMIE_RIBBON = SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM, + SPECIES_ALCREMIE_RIBBON_RUBY_CREAM = 1281, + SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM = 1282, + SPECIES_ALCREMIE_RIBBON_MINT_CREAM = 1283, + SPECIES_ALCREMIE_RIBBON_LEMON_CREAM = 1284, + SPECIES_ALCREMIE_RIBBON_SALTED_CREAM = 1285, + SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL = 1286, + SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL = 1287, + SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL = 1288, -#define GEN9_START SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL + GEN9_START = SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL, -#define SPECIES_SPRIGATITO 1289 -#define SPECIES_FLORAGATO 1290 -#define SPECIES_MEOWSCARADA 1291 -#define SPECIES_FUECOCO 1292 -#define SPECIES_CROCALOR 1293 -#define SPECIES_SKELEDIRGE 1294 -#define SPECIES_QUAXLY 1295 -#define SPECIES_QUAXWELL 1296 -#define SPECIES_QUAQUAVAL 1297 -#define SPECIES_LECHONK 1298 -#define SPECIES_OINKOLOGNE SPECIES_OINKOLOGNE_M -#define SPECIES_OINKOLOGNE_M 1299 -#define SPECIES_OINKOLOGNE_F 1300 -#define SPECIES_TAROUNTULA 1301 -#define SPECIES_SPIDOPS 1302 -#define SPECIES_NYMBLE 1303 -#define SPECIES_LOKIX 1304 -#define SPECIES_PAWMI 1305 -#define SPECIES_PAWMO 1306 -#define SPECIES_PAWMOT 1307 -#define SPECIES_TANDEMAUS 1308 -#define SPECIES_MAUSHOLD SPECIES_MAUSHOLD_THREE -#define SPECIES_MAUSHOLD_THREE 1309 -#define SPECIES_MAUSHOLD_FOUR 1310 -#define SPECIES_FIDOUGH 1311 -#define SPECIES_DACHSBUN 1312 -#define SPECIES_SMOLIV 1313 -#define SPECIES_DOLLIV 1314 -#define SPECIES_ARBOLIVA 1315 -#define SPECIES_SQUAWKABILLY SPECIES_SQUAWKABILLY_GREEN -#define SPECIES_SQUAWKABILLY_GREEN 1316 -#define SPECIES_SQUAWKABILLY_BLUE 1317 -#define SPECIES_SQUAWKABILLY_YELLOW 1318 -#define SPECIES_SQUAWKABILLY_WHITE 1319 -#define SPECIES_NACLI 1320 -#define SPECIES_NACLSTACK 1321 -#define SPECIES_GARGANACL 1322 -#define SPECIES_CHARCADET 1323 -#define SPECIES_ARMAROUGE 1324 -#define SPECIES_CERULEDGE 1325 -#define SPECIES_TADBULB 1326 -#define SPECIES_BELLIBOLT 1327 -#define SPECIES_WATTREL 1328 -#define SPECIES_KILOWATTREL 1329 -#define SPECIES_MASCHIFF 1330 -#define SPECIES_MABOSSTIFF 1331 -#define SPECIES_SHROODLE 1332 -#define SPECIES_GRAFAIAI 1333 -#define SPECIES_BRAMBLIN 1334 -#define SPECIES_BRAMBLEGHAST 1335 -#define SPECIES_TOEDSCOOL 1336 -#define SPECIES_TOEDSCRUEL 1337 -#define SPECIES_KLAWF 1338 -#define SPECIES_CAPSAKID 1339 -#define SPECIES_SCOVILLAIN 1340 -#define SPECIES_RELLOR 1341 -#define SPECIES_RABSCA 1342 -#define SPECIES_FLITTLE 1343 -#define SPECIES_ESPATHRA 1344 -#define SPECIES_TINKATINK 1345 -#define SPECIES_TINKATUFF 1346 -#define SPECIES_TINKATON 1347 -#define SPECIES_WIGLETT 1348 -#define SPECIES_WUGTRIO 1349 -#define SPECIES_BOMBIRDIER 1350 -#define SPECIES_FINIZEN 1351 -#define SPECIES_PALAFIN SPECIES_PALAFIN_ZERO -#define SPECIES_PALAFIN_ZERO 1352 -#define SPECIES_PALAFIN_HERO 1353 -#define SPECIES_VAROOM 1354 -#define SPECIES_REVAVROOM 1355 -#define SPECIES_CYCLIZAR 1356 -#define SPECIES_ORTHWORM 1357 -#define SPECIES_GLIMMET 1358 -#define SPECIES_GLIMMORA 1359 -#define SPECIES_GREAVARD 1360 -#define SPECIES_HOUNDSTONE 1361 -#define SPECIES_FLAMIGO 1362 -#define SPECIES_CETODDLE 1363 -#define SPECIES_CETITAN 1364 -#define SPECIES_VELUZA 1365 -#define SPECIES_DONDOZO 1366 -#define SPECIES_TATSUGIRI SPECIES_TATSUGIRI_CURLY -#define SPECIES_TATSUGIRI_CURLY 1367 -#define SPECIES_TATSUGIRI_DROOPY 1368 -#define SPECIES_TATSUGIRI_STRETCHY 1369 -#define SPECIES_ANNIHILAPE 1370 -#define SPECIES_CLODSIRE 1371 -#define SPECIES_FARIGIRAF 1372 -#define SPECIES_DUDUNSPARCE SPECIES_DUDUNSPARCE_TWO_SEGMENT -#define SPECIES_DUDUNSPARCE_TWO_SEGMENT 1373 -#define SPECIES_DUDUNSPARCE_THREE_SEGMENT 1374 -#define SPECIES_KINGAMBIT 1375 -#define SPECIES_GREAT_TUSK 1376 -#define SPECIES_SCREAM_TAIL 1377 -#define SPECIES_BRUTE_BONNET 1378 -#define SPECIES_FLUTTER_MANE 1379 -#define SPECIES_SLITHER_WING 1380 -#define SPECIES_SANDY_SHOCKS 1381 -#define SPECIES_IRON_TREADS 1382 -#define SPECIES_IRON_BUNDLE 1383 -#define SPECIES_IRON_HANDS 1384 -#define SPECIES_IRON_JUGULIS 1385 -#define SPECIES_IRON_MOTH 1386 -#define SPECIES_IRON_THORNS 1387 -#define SPECIES_FRIGIBAX 1388 -#define SPECIES_ARCTIBAX 1389 -#define SPECIES_BAXCALIBUR 1390 -#define SPECIES_GIMMIGHOUL SPECIES_GIMMIGHOUL_CHEST -#define SPECIES_GIMMIGHOUL_CHEST 1391 -#define SPECIES_GIMMIGHOUL_ROAMING 1392 -#define SPECIES_GHOLDENGO 1393 -#define SPECIES_WO_CHIEN 1394 -#define SPECIES_CHIEN_PAO 1395 -#define SPECIES_TING_LU 1396 -#define SPECIES_CHI_YU 1397 -#define SPECIES_ROARING_MOON 1398 -#define SPECIES_IRON_VALIANT 1399 -#define SPECIES_KORAIDON 1400 -#define SPECIES_MIRAIDON 1401 -// Paldean Forms -#define SPECIES_TAUROS_PALDEA_COMBAT 1402 -#define SPECIES_TAUROS_PALDEA_BLAZE 1403 -#define SPECIES_TAUROS_PALDEA_AQUA 1404 -#define SPECIES_WOOPER_PALDEA 1405 -// Scarlet and Violet 1.2.0 -#define SPECIES_WALKING_WAKE 1406 -#define SPECIES_IRON_LEAVES 1407 -// Teal Mask -#define SPECIES_DIPPLIN 1408 -#define SPECIES_POLTCHAGEIST SPECIES_POLTCHAGEIST_COUNTERFEIT -#define SPECIES_POLTCHAGEIST_COUNTERFEIT 1409 -#define SPECIES_POLTCHAGEIST_ARTISAN 1410 -#define SPECIES_SINISTCHA SPECIES_SINISTCHA_UNREMARKABLE -#define SPECIES_SINISTCHA_UNREMARKABLE 1411 -#define SPECIES_SINISTCHA_MASTERPIECE 1412 -#define SPECIES_OKIDOGI 1413 -#define SPECIES_MUNKIDORI 1414 -#define SPECIES_FEZANDIPITI 1415 -#define SPECIES_OGERPON SPECIES_OGERPON_TEAL -#define SPECIES_OGERPON_TEAL 1416 -#define SPECIES_OGERPON_WELLSPRING 1417 -#define SPECIES_OGERPON_HEARTHFLAME 1418 -#define SPECIES_OGERPON_CORNERSTONE 1419 -#define SPECIES_OGERPON_TEAL_TERA 1420 -#define SPECIES_OGERPON_WELLSPRING_TERA 1421 -#define SPECIES_OGERPON_HEARTHFLAME_TERA 1422 -#define SPECIES_OGERPON_CORNERSTONE_TERA 1423 -#define SPECIES_URSALUNA_BLOODMOON 1424 -// Indigo Disk -#define SPECIES_ARCHALUDON 1425 -#define SPECIES_HYDRAPPLE 1426 -#define SPECIES_GOUGING_FIRE 1427 -#define SPECIES_RAGING_BOLT 1428 -#define SPECIES_IRON_BOULDER 1429 -#define SPECIES_IRON_CROWN 1430 -#define SPECIES_TERAPAGOS SPECIES_TERAPAGOS_NORMAL -#define SPECIES_TERAPAGOS_NORMAL 1431 -#define SPECIES_TERAPAGOS_TERASTAL 1432 -#define SPECIES_TERAPAGOS_STELLAR 1433 -#define SPECIES_PECHARUNT 1434 -#define SPECIES_LUGIA_SHADOW 1435 -#define SPECIES_MOTHIM_SANDY 1436 -#define SPECIES_MOTHIM_TRASH 1437 -#define SPECIES_SCATTERBUG_POLAR 1438 -#define SPECIES_SCATTERBUG_TUNDRA 1439 -#define SPECIES_SCATTERBUG_CONTINENTAL 1440 -#define SPECIES_SCATTERBUG_GARDEN 1441 -#define SPECIES_SCATTERBUG_ELEGANT 1442 -#define SPECIES_SCATTERBUG_MEADOW 1443 -#define SPECIES_SCATTERBUG_MODERN 1444 -#define SPECIES_SCATTERBUG_MARINE 1445 -#define SPECIES_SCATTERBUG_ARCHIPELAGO 1446 -#define SPECIES_SCATTERBUG_HIGH_PLAINS 1447 -#define SPECIES_SCATTERBUG_SANDSTORM 1448 -#define SPECIES_SCATTERBUG_RIVER 1449 -#define SPECIES_SCATTERBUG_MONSOON 1450 -#define SPECIES_SCATTERBUG_SAVANNA 1451 -#define SPECIES_SCATTERBUG_SUN 1452 -#define SPECIES_SCATTERBUG_OCEAN 1453 -#define SPECIES_SCATTERBUG_JUNGLE 1454 -#define SPECIES_SCATTERBUG_FANCY 1455 -#define SPECIES_SCATTERBUG_POKEBALL 1456 -#define SPECIES_SPEWPA_POLAR 1457 -#define SPECIES_SPEWPA_TUNDRA 1458 -#define SPECIES_SPEWPA_CONTINENTAL 1459 -#define SPECIES_SPEWPA_GARDEN 1460 -#define SPECIES_SPEWPA_ELEGANT 1461 -#define SPECIES_SPEWPA_MEADOW 1462 -#define SPECIES_SPEWPA_MODERN 1463 -#define SPECIES_SPEWPA_MARINE 1464 -#define SPECIES_SPEWPA_ARCHIPELAGO 1465 -#define SPECIES_SPEWPA_HIGH_PLAINS 1466 -#define SPECIES_SPEWPA_SANDSTORM 1467 -#define SPECIES_SPEWPA_RIVER 1468 -#define SPECIES_SPEWPA_MONSOON 1469 -#define SPECIES_SPEWPA_SAVANNA 1470 -#define SPECIES_SPEWPA_SUN 1471 -#define SPECIES_SPEWPA_OCEAN 1472 -#define SPECIES_SPEWPA_JUNGLE 1473 -#define SPECIES_SPEWPA_FANCY 1474 -#define SPECIES_SPEWPA_POKEBALL 1475 -#define SPECIES_RATICATE_ALOLA_TOTEM 1476 -#define SPECIES_GUMSHOOS_TOTEM 1477 -#define SPECIES_VIKAVOLT_TOTEM 1478 -#define SPECIES_LURANTIS_TOTEM 1479 -#define SPECIES_SALAZZLE_TOTEM 1480 -#define SPECIES_MIMIKYU_TOTEM SPECIES_MIMIKYU_TOTEM_DISGUISED -#define SPECIES_MIMIKYU_TOTEM_DISGUISED 1481 -#define SPECIES_KOMMO_O_TOTEM 1482 -#define SPECIES_MAROWAK_ALOLA_TOTEM 1483 -#define SPECIES_RIBOMBEE_TOTEM 1484 -#define SPECIES_ARAQUANID_TOTEM 1485 -#define SPECIES_TOGEDEMARU_TOTEM 1486 -#define SPECIES_PIKACHU_STARTER 1487 -#define SPECIES_EEVEE_STARTER 1488 -#define SPECIES_VENUSAUR_GMAX 1489 -#define SPECIES_BLASTOISE_GMAX 1490 -#define SPECIES_CHARIZARD_GMAX 1491 -#define SPECIES_BUTTERFREE_GMAX 1492 -#define SPECIES_PIKACHU_GMAX 1493 -#define SPECIES_MEOWTH_GMAX 1494 -#define SPECIES_MACHAMP_GMAX 1495 -#define SPECIES_GENGAR_GMAX 1496 -#define SPECIES_KINGLER_GMAX 1497 -#define SPECIES_LAPRAS_GMAX 1498 -#define SPECIES_EEVEE_GMAX 1499 -#define SPECIES_SNORLAX_GMAX 1500 -#define SPECIES_GARBODOR_GMAX 1501 -#define SPECIES_MELMETAL_GMAX 1502 -#define SPECIES_RILLABOOM_GMAX 1503 -#define SPECIES_CINDERACE_GMAX 1504 -#define SPECIES_INTELEON_GMAX 1505 -#define SPECIES_CORVIKNIGHT_GMAX 1506 -#define SPECIES_ORBEETLE_GMAX 1507 -#define SPECIES_DREDNAW_GMAX 1508 -#define SPECIES_COALOSSAL_GMAX 1509 -#define SPECIES_FLAPPLE_GMAX 1510 -#define SPECIES_APPLETUN_GMAX 1511 -#define SPECIES_SANDACONDA_GMAX 1512 -#define SPECIES_TOXTRICITY_AMPED_GMAX 1513 -#define SPECIES_TOXTRICITY_LOW_KEY_GMAX 1514 -#define SPECIES_CENTISKORCH_GMAX 1515 -#define SPECIES_HATTERENE_GMAX 1516 -#define SPECIES_GRIMMSNARL_GMAX 1517 -#define SPECIES_ALCREMIE_GMAX 1518 -#define SPECIES_COPPERAJAH_GMAX 1519 -#define SPECIES_DURALUDON_GMAX 1520 -#define SPECIES_URSHIFU_SINGLE_STRIKE_GMAX 1521 -#define SPECIES_URSHIFU_GMAX SPECIES_URSHIFU_SINGLE_STRIKE_GMAX -#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GMAX SPECIES_URSHIFU_SINGLE_STRIKE_GMAX -#define SPECIES_URSHIFU_RAPID_STRIKE_GMAX 1522 -#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GMAX SPECIES_URSHIFU_RAPID_STRIKE_GMAX -#define SPECIES_MIMIKYU_BUSTED_TOTEM 1523 -#define SPECIES_MIMIKYU_TOTEM_BUSTED SPECIES_MIMIKYU_BUSTED_TOTEM -// Legends Z-A -#define SPECIES_CLEFABLE_MEGA 1524 -#define SPECIES_VICTREEBEL_MEGA 1525 -#define SPECIES_STARMIE_MEGA 1526 -#define SPECIES_DRAGONITE_MEGA 1527 -#define SPECIES_MEGANIUM_MEGA 1528 -#define SPECIES_FERALIGATR_MEGA 1529 -#define SPECIES_SKARMORY_MEGA 1530 -#define SPECIES_FROSLASS_MEGA 1531 -#define SPECIES_EMBOAR_MEGA 1532 -#define SPECIES_EXCADRILL_MEGA 1533 -#define SPECIES_SCOLIPEDE_MEGA 1534 -#define SPECIES_SCRAFTY_MEGA 1535 -#define SPECIES_EELEKTROSS_MEGA 1536 -#define SPECIES_CHANDELURE_MEGA 1537 -#define SPECIES_CHESNAUGHT_MEGA 1538 -#define SPECIES_DELPHOX_MEGA 1539 -#define SPECIES_GRENINJA_MEGA 1540 -#define SPECIES_PYROAR_MEGA 1541 -#define SPECIES_MALAMAR_MEGA 1542 -#define SPECIES_DRAGALGE_MEGA 1543 -#define SPECIES_HAWLUCHA_MEGA 1544 -#define SPECIES_FLOETTE_MEGA 1545 -#define SPECIES_BARBARACLE_MEGA 1546 -#define SPECIES_ZYGARDE_MEGA 1547 -#define SPECIES_DRAMPA_MEGA 1548 -#define SPECIES_FALINKS_MEGA 1549 -#define SPECIES_HEATRAN_MEGA 1550 -#define SPECIES_DARKRAI_MEGA 1551 -#define SPECIES_ZERAORA_MEGA 1552 -#define SPECIES_RAICHU_MEGA_X 1553 -#define SPECIES_RAICHU_MEGA_Y 1554 -#define SPECIES_CHIMECHO_MEGA 1555 -#define SPECIES_ABSOL_MEGA_Z 1556 -#define SPECIES_STARAPTOR_MEGA 1557 -#define SPECIES_GARCHOMP_MEGA_Z 1558 -#define SPECIES_LUCARIO_MEGA_Z 1559 -#define SPECIES_GOLURK_MEGA 1560 -#define SPECIES_MEOWSTIC_M_MEGA 1561 -#define SPECIES_MEOWSTIC_F_MEGA 1562 -#define SPECIES_CRABOMINABLE_MEGA 1563 -#define SPECIES_GOLISOPOD_MEGA 1564 -#define SPECIES_MAGEARNA_MEGA 1565 -#define SPECIES_MAGEARNA_ORIGINAL_MEGA 1566 -#define SPECIES_SCOVILLAIN_MEGA 1567 -#define SPECIES_BAXCALIBUR_MEGA 1568 -#define SPECIES_TATSUGIRI_CURLY_MEGA 1569 -#define SPECIES_TATSUGIRI_DROOPY_MEGA 1570 -#define SPECIES_TATSUGIRI_STRETCHY_MEGA 1571 -#define SPECIES_GLIMMORA_MEGA 1572 + SPECIES_SPRIGATITO = 1289, + SPECIES_FLORAGATO = 1290, + SPECIES_MEOWSCARADA = 1291, + SPECIES_FUECOCO = 1292, + SPECIES_CROCALOR = 1293, + SPECIES_SKELEDIRGE = 1294, + SPECIES_QUAXLY = 1295, + SPECIES_QUAXWELL = 1296, + SPECIES_QUAQUAVAL = 1297, + SPECIES_LECHONK = 1298, + SPECIES_OINKOLOGNE_M = 1299, + SPECIES_OINKOLOGNE = SPECIES_OINKOLOGNE_M, + SPECIES_OINKOLOGNE_F = 1300, + SPECIES_TAROUNTULA = 1301, + SPECIES_SPIDOPS = 1302, + SPECIES_NYMBLE = 1303, + SPECIES_LOKIX = 1304, + SPECIES_PAWMI = 1305, + SPECIES_PAWMO = 1306, + SPECIES_PAWMOT = 1307, + SPECIES_TANDEMAUS = 1308, + SPECIES_MAUSHOLD_THREE = 1309, + SPECIES_MAUSHOLD = SPECIES_MAUSHOLD_THREE, + SPECIES_MAUSHOLD_FOUR = 1310, + SPECIES_FIDOUGH = 1311, + SPECIES_DACHSBUN = 1312, + SPECIES_SMOLIV = 1313, + SPECIES_DOLLIV = 1314, + SPECIES_ARBOLIVA = 1315, + SPECIES_SQUAWKABILLY_GREEN = 1316, + SPECIES_SQUAWKABILLY = SPECIES_SQUAWKABILLY_GREEN, + SPECIES_SQUAWKABILLY_BLUE = 1317, + SPECIES_SQUAWKABILLY_YELLOW = 1318, + SPECIES_SQUAWKABILLY_WHITE = 1319, + SPECIES_NACLI = 1320, + SPECIES_NACLSTACK = 1321, + SPECIES_GARGANACL = 1322, + SPECIES_CHARCADET = 1323, + SPECIES_ARMAROUGE = 1324, + SPECIES_CERULEDGE = 1325, + SPECIES_TADBULB = 1326, + SPECIES_BELLIBOLT = 1327, + SPECIES_WATTREL = 1328, + SPECIES_KILOWATTREL = 1329, + SPECIES_MASCHIFF = 1330, + SPECIES_MABOSSTIFF = 1331, + SPECIES_SHROODLE = 1332, + SPECIES_GRAFAIAI = 1333, + SPECIES_BRAMBLIN = 1334, + SPECIES_BRAMBLEGHAST = 1335, + SPECIES_TOEDSCOOL = 1336, + SPECIES_TOEDSCRUEL = 1337, + SPECIES_KLAWF = 1338, + SPECIES_CAPSAKID = 1339, + SPECIES_SCOVILLAIN = 1340, + SPECIES_RELLOR = 1341, + SPECIES_RABSCA = 1342, + SPECIES_FLITTLE = 1343, + SPECIES_ESPATHRA = 1344, + SPECIES_TINKATINK = 1345, + SPECIES_TINKATUFF = 1346, + SPECIES_TINKATON = 1347, + SPECIES_WIGLETT = 1348, + SPECIES_WUGTRIO = 1349, + SPECIES_BOMBIRDIER = 1350, + SPECIES_FINIZEN = 1351, + SPECIES_PALAFIN_ZERO = 1352, + SPECIES_PALAFIN = SPECIES_PALAFIN_ZERO, + SPECIES_PALAFIN_HERO = 1353, + SPECIES_VAROOM = 1354, + SPECIES_REVAVROOM = 1355, + SPECIES_CYCLIZAR = 1356, + SPECIES_ORTHWORM = 1357, + SPECIES_GLIMMET = 1358, + SPECIES_GLIMMORA = 1359, + SPECIES_GREAVARD = 1360, + SPECIES_HOUNDSTONE = 1361, + SPECIES_FLAMIGO = 1362, + SPECIES_CETODDLE = 1363, + SPECIES_CETITAN = 1364, + SPECIES_VELUZA = 1365, + SPECIES_DONDOZO = 1366, + SPECIES_TATSUGIRI_CURLY = 1367, + SPECIES_TATSUGIRI = SPECIES_TATSUGIRI_CURLY, + SPECIES_TATSUGIRI_DROOPY = 1368, + SPECIES_TATSUGIRI_STRETCHY = 1369, + SPECIES_ANNIHILAPE = 1370, + SPECIES_CLODSIRE = 1371, + SPECIES_FARIGIRAF = 1372, + SPECIES_DUDUNSPARCE_TWO_SEGMENT = 1373, + SPECIES_DUDUNSPARCE = SPECIES_DUDUNSPARCE_TWO_SEGMENT, + SPECIES_DUDUNSPARCE_THREE_SEGMENT = 1374, + SPECIES_KINGAMBIT = 1375, + SPECIES_GREAT_TUSK = 1376, + SPECIES_SCREAM_TAIL = 1377, + SPECIES_BRUTE_BONNET = 1378, + SPECIES_FLUTTER_MANE = 1379, + SPECIES_SLITHER_WING = 1380, + SPECIES_SANDY_SHOCKS = 1381, + SPECIES_IRON_TREADS = 1382, + SPECIES_IRON_BUNDLE = 1383, + SPECIES_IRON_HANDS = 1384, + SPECIES_IRON_JUGULIS = 1385, + SPECIES_IRON_MOTH = 1386, + SPECIES_IRON_THORNS = 1387, + SPECIES_FRIGIBAX = 1388, + SPECIES_ARCTIBAX = 1389, + SPECIES_BAXCALIBUR = 1390, + SPECIES_GIMMIGHOUL_CHEST = 1391, + SPECIES_GIMMIGHOUL = SPECIES_GIMMIGHOUL_CHEST, + SPECIES_GIMMIGHOUL_ROAMING = 1392, + SPECIES_GHOLDENGO = 1393, + SPECIES_WO_CHIEN = 1394, + SPECIES_CHIEN_PAO = 1395, + SPECIES_TING_LU = 1396, + SPECIES_CHI_YU = 1397, + SPECIES_ROARING_MOON = 1398, + SPECIES_IRON_VALIANT = 1399, + SPECIES_KORAIDON = 1400, + SPECIES_MIRAIDON = 1401, + // Paldean Forms + SPECIES_TAUROS_PALDEA_COMBAT = 1402, + SPECIES_TAUROS_PALDEA_BLAZE = 1403, + SPECIES_TAUROS_PALDEA_AQUA = 1404, + SPECIES_WOOPER_PALDEA = 1405, + // Scarlet and Violet 1.2.0 + SPECIES_WALKING_WAKE = 1406, + SPECIES_IRON_LEAVES = 1407, + // Teal Mask + SPECIES_DIPPLIN = 1408, + SPECIES_POLTCHAGEIST_COUNTERFEIT = 1409, + SPECIES_POLTCHAGEIST = SPECIES_POLTCHAGEIST_COUNTERFEIT, + SPECIES_POLTCHAGEIST_ARTISAN = 1410, + SPECIES_SINISTCHA_UNREMARKABLE = 1411, + SPECIES_SINISTCHA = SPECIES_SINISTCHA_UNREMARKABLE, + SPECIES_SINISTCHA_MASTERPIECE = 1412, + SPECIES_OKIDOGI = 1413, + SPECIES_MUNKIDORI = 1414, + SPECIES_FEZANDIPITI = 1415, + SPECIES_OGERPON_TEAL = 1416, + SPECIES_OGERPON = SPECIES_OGERPON_TEAL, + SPECIES_OGERPON_WELLSPRING = 1417, + SPECIES_OGERPON_HEARTHFLAME = 1418, + SPECIES_OGERPON_CORNERSTONE = 1419, + SPECIES_OGERPON_TEAL_TERA = 1420, + SPECIES_OGERPON_WELLSPRING_TERA = 1421, + SPECIES_OGERPON_HEARTHFLAME_TERA = 1422, + SPECIES_OGERPON_CORNERSTONE_TERA = 1423, + SPECIES_URSALUNA_BLOODMOON = 1424, + // Indigo Disk + SPECIES_ARCHALUDON = 1425, + SPECIES_HYDRAPPLE = 1426, + SPECIES_GOUGING_FIRE = 1427, + SPECIES_RAGING_BOLT = 1428, + SPECIES_IRON_BOULDER = 1429, + SPECIES_IRON_CROWN = 1430, + SPECIES_TERAPAGOS_NORMAL = 1431, + SPECIES_TERAPAGOS = SPECIES_TERAPAGOS_NORMAL, + SPECIES_TERAPAGOS_TERASTAL = 1432, + SPECIES_TERAPAGOS_STELLAR = 1433, + SPECIES_PECHARUNT = 1434, + SPECIES_LUGIA_SHADOW = 1435, + SPECIES_MOTHIM_SANDY = 1436, + SPECIES_MOTHIM_TRASH = 1437, + SPECIES_SCATTERBUG_POLAR = 1438, + SPECIES_SCATTERBUG_TUNDRA = 1439, + SPECIES_SCATTERBUG_CONTINENTAL = 1440, + SPECIES_SCATTERBUG_GARDEN = 1441, + SPECIES_SCATTERBUG_ELEGANT = 1442, + SPECIES_SCATTERBUG_MEADOW = 1443, + SPECIES_SCATTERBUG_MODERN = 1444, + SPECIES_SCATTERBUG_MARINE = 1445, + SPECIES_SCATTERBUG_ARCHIPELAGO = 1446, + SPECIES_SCATTERBUG_HIGH_PLAINS = 1447, + SPECIES_SCATTERBUG_SANDSTORM = 1448, + SPECIES_SCATTERBUG_RIVER = 1449, + SPECIES_SCATTERBUG_MONSOON = 1450, + SPECIES_SCATTERBUG_SAVANNA = 1451, + SPECIES_SCATTERBUG_SUN = 1452, + SPECIES_SCATTERBUG_OCEAN = 1453, + SPECIES_SCATTERBUG_JUNGLE = 1454, + SPECIES_SCATTERBUG_FANCY = 1455, + SPECIES_SCATTERBUG_POKEBALL = 1456, + SPECIES_SPEWPA_POLAR = 1457, + SPECIES_SPEWPA_TUNDRA = 1458, + SPECIES_SPEWPA_CONTINENTAL = 1459, + SPECIES_SPEWPA_GARDEN = 1460, + SPECIES_SPEWPA_ELEGANT = 1461, + SPECIES_SPEWPA_MEADOW = 1462, + SPECIES_SPEWPA_MODERN = 1463, + SPECIES_SPEWPA_MARINE = 1464, + SPECIES_SPEWPA_ARCHIPELAGO = 1465, + SPECIES_SPEWPA_HIGH_PLAINS = 1466, + SPECIES_SPEWPA_SANDSTORM = 1467, + SPECIES_SPEWPA_RIVER = 1468, + SPECIES_SPEWPA_MONSOON = 1469, + SPECIES_SPEWPA_SAVANNA = 1470, + SPECIES_SPEWPA_SUN = 1471, + SPECIES_SPEWPA_OCEAN = 1472, + SPECIES_SPEWPA_JUNGLE = 1473, + SPECIES_SPEWPA_FANCY = 1474, + SPECIES_SPEWPA_POKEBALL = 1475, + SPECIES_RATICATE_ALOLA_TOTEM = 1476, + SPECIES_GUMSHOOS_TOTEM = 1477, + SPECIES_VIKAVOLT_TOTEM = 1478, + SPECIES_LURANTIS_TOTEM = 1479, + SPECIES_SALAZZLE_TOTEM = 1480, + SPECIES_MIMIKYU_TOTEM_DISGUISED = 1481, + SPECIES_MIMIKYU_TOTEM = SPECIES_MIMIKYU_TOTEM_DISGUISED, + SPECIES_KOMMO_O_TOTEM = 1482, + SPECIES_MAROWAK_ALOLA_TOTEM = 1483, + SPECIES_RIBOMBEE_TOTEM = 1484, + SPECIES_ARAQUANID_TOTEM = 1485, + SPECIES_TOGEDEMARU_TOTEM = 1486, + SPECIES_PIKACHU_STARTER = 1487, + SPECIES_EEVEE_STARTER = 1488, + SPECIES_VENUSAUR_GMAX = 1489, + SPECIES_BLASTOISE_GMAX = 1490, + SPECIES_CHARIZARD_GMAX = 1491, + SPECIES_BUTTERFREE_GMAX = 1492, + SPECIES_PIKACHU_GMAX = 1493, + SPECIES_MEOWTH_GMAX = 1494, + SPECIES_MACHAMP_GMAX = 1495, + SPECIES_GENGAR_GMAX = 1496, + SPECIES_KINGLER_GMAX = 1497, + SPECIES_LAPRAS_GMAX = 1498, + SPECIES_EEVEE_GMAX = 1499, + SPECIES_SNORLAX_GMAX = 1500, + SPECIES_GARBODOR_GMAX = 1501, + SPECIES_MELMETAL_GMAX = 1502, + SPECIES_RILLABOOM_GMAX = 1503, + SPECIES_CINDERACE_GMAX = 1504, + SPECIES_INTELEON_GMAX = 1505, + SPECIES_CORVIKNIGHT_GMAX = 1506, + SPECIES_ORBEETLE_GMAX = 1507, + SPECIES_DREDNAW_GMAX = 1508, + SPECIES_COALOSSAL_GMAX = 1509, + SPECIES_FLAPPLE_GMAX = 1510, + SPECIES_APPLETUN_GMAX = 1511, + SPECIES_SANDACONDA_GMAX = 1512, + SPECIES_TOXTRICITY_AMPED_GMAX = 1513, + SPECIES_TOXTRICITY_LOW_KEY_GMAX = 1514, + SPECIES_CENTISKORCH_GMAX = 1515, + SPECIES_HATTERENE_GMAX = 1516, + SPECIES_GRIMMSNARL_GMAX = 1517, + SPECIES_ALCREMIE_GMAX = 1518, + SPECIES_COPPERAJAH_GMAX = 1519, + SPECIES_DURALUDON_GMAX = 1520, + SPECIES_URSHIFU_SINGLE_STRIKE_GMAX = 1521, + SPECIES_URSHIFU_GMAX = SPECIES_URSHIFU_SINGLE_STRIKE_GMAX, + SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GMAX = SPECIES_URSHIFU_SINGLE_STRIKE_GMAX, + SPECIES_URSHIFU_RAPID_STRIKE_GMAX = 1522, + SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GMAX = SPECIES_URSHIFU_RAPID_STRIKE_GMAX, + SPECIES_MIMIKYU_BUSTED_TOTEM = 1523, + SPECIES_MIMIKYU_TOTEM_BUSTED = SPECIES_MIMIKYU_BUSTED_TOTEM, + // Legends Z-A + SPECIES_CLEFABLE_MEGA = 1524, + SPECIES_VICTREEBEL_MEGA = 1525, + SPECIES_STARMIE_MEGA = 1526, + SPECIES_DRAGONITE_MEGA = 1527, + SPECIES_MEGANIUM_MEGA = 1528, + SPECIES_FERALIGATR_MEGA = 1529, + SPECIES_SKARMORY_MEGA = 1530, + SPECIES_FROSLASS_MEGA = 1531, + SPECIES_EMBOAR_MEGA = 1532, + SPECIES_EXCADRILL_MEGA = 1533, + SPECIES_SCOLIPEDE_MEGA = 1534, + SPECIES_SCRAFTY_MEGA = 1535, + SPECIES_EELEKTROSS_MEGA = 1536, + SPECIES_CHANDELURE_MEGA = 1537, + SPECIES_CHESNAUGHT_MEGA = 1538, + SPECIES_DELPHOX_MEGA = 1539, + SPECIES_GRENINJA_MEGA = 1540, + SPECIES_PYROAR_MEGA = 1541, + SPECIES_MALAMAR_MEGA = 1542, + SPECIES_DRAGALGE_MEGA = 1543, + SPECIES_HAWLUCHA_MEGA = 1544, + SPECIES_FLOETTE_MEGA = 1545, + SPECIES_BARBARACLE_MEGA = 1546, + SPECIES_ZYGARDE_MEGA = 1547, + SPECIES_DRAMPA_MEGA = 1548, + SPECIES_FALINKS_MEGA = 1549, + SPECIES_HEATRAN_MEGA = 1550, + SPECIES_DARKRAI_MEGA = 1551, + SPECIES_ZERAORA_MEGA = 1552, + SPECIES_RAICHU_MEGA_X = 1553, + SPECIES_RAICHU_MEGA_Y = 1554, + SPECIES_CHIMECHO_MEGA = 1555, + SPECIES_ABSOL_MEGA_Z = 1556, + SPECIES_STARAPTOR_MEGA = 1557, + SPECIES_GARCHOMP_MEGA_Z = 1558, + SPECIES_LUCARIO_MEGA_Z = 1559, + SPECIES_GOLURK_MEGA = 1560, + SPECIES_MEOWSTIC_M_MEGA = 1561, + SPECIES_MEOWSTIC_F_MEGA = 1562, + SPECIES_CRABOMINABLE_MEGA = 1563, + SPECIES_GOLISOPOD_MEGA = 1564, + SPECIES_MAGEARNA_MEGA = 1565, + SPECIES_MAGEARNA_ORIGINAL_MEGA = 1566, + SPECIES_SCOVILLAIN_MEGA = 1567, + SPECIES_BAXCALIBUR_MEGA = 1568, + SPECIES_TATSUGIRI_CURLY_MEGA = 1569, + SPECIES_TATSUGIRI_DROOPY_MEGA = 1570, + SPECIES_TATSUGIRI_STRETCHY_MEGA = 1571, + SPECIES_GLIMMORA_MEGA = 1572, -#define SPECIES_EGG (SPECIES_GLIMMORA_MEGA + 1) + SPECIES_CUSTOM_START = SPECIES_GLIMMORA_MEGA, + // Add any custom species between here and SPECIES_CUSTOM_END + SPECIES_CUSTOM_END, -#define NUM_SPECIES SPECIES_EGG + SPECIES_EGG = SPECIES_CUSTOM_END, + NUM_SPECIES = SPECIES_EGG, +}; #define SPECIES_SHINY_TAG 5000 diff --git a/include/daycare.h b/include/daycare.h index bc230fc3c..82587485c 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -10,12 +10,12 @@ u8 CountPokemonInDaycare(struct DayCare *daycare); void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail); s8 Daycare_FindEmptySpot(struct DayCare *daycare); void StoreSelectedPokemonInDaycare(void); -u16 TakePokemonFromDaycare(void); +enum Species TakePokemonFromDaycare(void); void GetDaycareCost(void); u8 GetNumLevelsGainedFromDaycare(void); void TriggerPendingDaycareEgg(void); void RejectEggFromDayCare(void); -void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation); +void CreateEgg(struct Pokemon *mon, enum Species species, bool8 setHotSpringsLocation); void GiveEggFromDaycare(void); bool8 DoEggActions_CheckHatch(void); u16 GetSelectedMonNickAndSpecies(void); @@ -32,7 +32,7 @@ void EggHatch(void); u8 GetEggStepsToSubtract(void); bool8 ShouldEggHatch(void); u8 GetEggCyclesToSubtract(void); -u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves); +u8 GetEggMovesBySpecies(enum Species species, u16 *eggMoves); void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycareMon); u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves); diff --git a/include/decompress.h b/include/decompress.h index 80f3f90f9..2e7ba76ba 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -74,11 +74,11 @@ u32 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s u32 LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer); bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src); -void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality); -void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, s32 species, u32 personality, bool32 isEgg); +void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality); +void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, enum Species species, u32 personality, bool32 isEgg); -void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic); -void LoadSpecialPokePicIsEgg(void *dest, s32 species, u32 personality, bool8 isFrontPic, bool32 isEgg); +void LoadSpecialPokePic(void *dest, enum Species species, u32 personality, bool8 isFrontPic); +void LoadSpecialPokePicIsEgg(void *dest, enum Species species, u32 personality, bool8 isFrontPic, bool32 isEgg); u32 GetDecompressedDataSize(const u32 *ptr); bool32 IsCompressedData(const u32 *ptr); diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 46967616e..cea67d4e5 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -263,7 +263,7 @@ u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent); u8 GetMoveDirectionAnimNum(u8 direction); u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority); void FieldEffectFreeTilesIfUnused(u16 tileStart); -u16 GetOverworldWeatherSpecies(u16 species); +enum Species GetOverworldWeatherSpecies(enum Species species); const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32 shiny, bool32 female); // Exported data declarations diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h index 781f26ed3..5cdcf4613 100644 --- a/include/evolution_graphics.h +++ b/include/evolution_graphics.h @@ -8,8 +8,8 @@ void LoadEvoSparkleSpriteAndPal(void); u8 EvolutionSparkles_SpiralUpward(u16 arg0); u8 EvolutionSparkles_ArcDown(void); u8 EvolutionSparkles_CircleInward(void); -u8 EvolutionSparkles_SprayAndFlash(u16 species); -u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species); +u8 EvolutionSparkles_SprayAndFlash(enum Species species); +u8 EvolutionSparkles_SprayAndFlash_Trade(enum Species species); u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId); #define EvoGraphicsTaskEvoStop data[8] diff --git a/include/field_effect.h b/include/field_effect.h index 15872c4ef..d3ab7c5e4 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -81,7 +81,7 @@ void StartLavaridgeGymB1FWarp(u8 a0); void StartLavaridgeGym1FWarp(u8 a0); void ApplyGlobalFieldPaletteTint(u8 paletteIdx); void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId); -u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, bool8 unused); +u8 CreateMonSprite_PicBox(enum Species species, s16 x, s16 y, bool8 unused); void ReturnToFieldFromFlyMapSelect(void); void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); void SpriteCB_PopOutOfAsh(struct Sprite *sprite); diff --git a/include/field_move.h b/include/field_move.h index 93a2f3b4b..74dcc1a6e 100644 --- a/include/field_move.h +++ b/include/field_move.h @@ -4,18 +4,18 @@ #include "constants/field_move.h" struct FieldMoveInfo { - u16 defaultSpecies; + enum Species defaultSpecies; bool32 (*isUnlockedFunc)(void); - u16 moveId; + enum Move moveId; u8 partyMessageId; - const u8* description; + const u8 *description; bool32 (*setUpFunc)(void); - const u8* questLogText; + const u8 *questLogText; }; extern const struct FieldMoveInfo gFieldMovesInfo[]; bool32 FieldMove_IsUnlocked(enum FieldMove fieldMove); -u16 FieldMove_GetDefaultSpecies(enum FieldMove fieldMove); +enum Species FieldMove_GetDefaultSpecies(enum FieldMove fieldMove); #endif // GUARD_FIELD_MOVE_H diff --git a/include/field_specials.h b/include/field_specials.h index 1062de032..19ff2985d 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -5,35 +5,35 @@ extern u16 gScrollableMultichoice_ScrollOffset; -u8 GetLeadMonIndex(void); -size_t CountDigits(s32 value); -void TV_PrintIntToStringVar(u8 varidx, s32 number); -u16 GetStarterSpecies(void); -void StopPokemonLeagueLightingEffectTask(void); -void FieldCB_ShowPortholeView(void); -u8 ContextNpcGetTextColor(void); -void SetPCBoxToSendMon(u8); -u16 GetPCBoxToSendMon(void); +bool8 CutMoveRuinValleyCheck(void); +bool8 InMultiPartnerRoom(void); +bool8 InPokemonCenter(void); bool8 IsDestinationBoxFull(void); bool8 ShouldShowBoxWasFullMessage(void); -u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr); -u8 GetUnlockedSeviiAreas(void); -u32 GetPlayerTrainerId(void); -bool8 CutMoveRuinValleyCheck(void); -void CutMoveOpenDottedHoleDoor(void); -void RunMassageCooldownStepCounter(void); -void IncrementResortGorgeousStepCounter(void); -void IncrementBirthIslandRockStepCount(void); -void ResetCyclingRoadChallengeData(void); -void ResetFieldTasksArgs(void); bool8 UsedPokemonCenterWarp(void); +enum Species GetStarterSpecies(void); +size_t CountDigits(s32 value); +u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr); +u16 GetPCBoxToSendMon(void); +u32 GetPlayerTrainerId(void); +u8 ContextNpcGetTextColor(void); +u8 GetLeadMonIndex(void); +u8 GetUnlockedSeviiAreas(void); +void CutMoveOpenDottedHoleDoor(void); +void DoPicboxCancel(void); +void FieldCB_ShowPortholeView(void); +void FrontierGamblerSetWonOrLost(bool8 won); +void IncrementBirthIslandRockStepCount(void); +void IncrementResortGorgeousStepCounter(void); void QuestLog_CheckDepartingIndoorsMap(void); void QuestLog_TryRecordDepartedLocation(void); -bool8 InPokemonCenter(void); -void UpdateFrontierManiac(u16 daysSince); +void ResetCyclingRoadChallengeData(void); +void ResetFieldTasksArgs(void); +void RunMassageCooldownStepCounter(void); +void SetPCBoxToSendMon(u8); +void StopPokemonLeagueLightingEffectTask(void); +void TV_PrintIntToStringVar(u8 varidx, s32 number); void UpdateFrontierGambler(u16 daysSince); -void FrontierGamblerSetWonOrLost(bool8 won); -bool8 InMultiPartnerRoom(void); -void DoPicboxCancel(void); +void UpdateFrontierManiac(u16 daysSince); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/global.h b/include/global.h index 3f2e65573..c75e4d2de 100644 --- a/include/global.h +++ b/include/global.h @@ -420,7 +420,7 @@ struct RecordMixingGiftData { u8 unk0; u8 quantity; - u16 itemId; + enum Item itemId; u8 filler4[8]; }; @@ -715,7 +715,7 @@ struct WarpData struct ItemSlot { - u16 itemId; + enum Item itemId; u16 quantity; }; @@ -768,8 +768,8 @@ struct Mail /*0x00*/ u16 words[MAIL_WORDS_COUNT]; /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH]; - /*0x1E*/ u16 species; - /*0x20*/ u16 itemId; + /*0x1E*/ enum Species species; + /*0x20*/ enum Item itemId; }; struct DayCareMail diff --git a/include/international_string_util.h b/include/international_string_util.h index 0628ab932..706b8f57c 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -13,7 +13,7 @@ int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int lett int GetMaxWidthInMenuTable(const struct MenuAction *actions, int numActions); int GetMaxWidthInSubsetOfMenuTable(const struct MenuAction *actions, const u8 *actionIds, int numActions); int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu); -void CopyMonCategoryText(u16 species, u8 *dest); +void CopyMonCategoryText(enum Species species, u8 *dest); u8 *GetStringClearToWidth(u8 *dest, int fontId, const u8 *str, int totalStringWidth); void PadNameString(u8 *dest, u8 padChar); void ConvertInternationalPlayerNameStripChar(u8 *, u8); diff --git a/include/item.h b/include/item.h index 3edc668b3..f40528708 100644 --- a/include/item.h +++ b/include/item.h @@ -103,6 +103,60 @@ extern const struct ItemInfo gItemsInfo[]; extern struct BagPocket gBagPockets[]; extern const struct TmHmIndexKey gTMHMItemMoveIds[]; +bool32 AddPyramidBagItem(enum Item itemId, u16 count); +bool32 HasAtLeastOneBerry(void); +bool32 HasAtLeastOnePokeBall(void); +bool32 IsHoldEffectChoice(enum HoldEffect holdEffect); +bool32 IsItemBall(enum Item itemId); +bool32 IsItemHM(enum Item itemId); +bool32 IsItemTM(enum Item itemId); +bool32 IsItemTMHM(enum Item itemId); +bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile volatile); +bool32 RemovePyramidBagItem(enum Item itemId, u16 count); +bool32 AddBagItem(enum Item itemId, u16 amount); +bool32 AddPCItem(enum Item itemId, u16 count); +bool32 CheckBagHasItem(enum Item itemId, u16 count); +bool32 CheckBagHasSpace(enum Item itemId, u16 count); +bool32 CheckPCHasItem(enum Item itemId, u16 count); +bool32 IsBagPocketNonEmpty(u8 pocket); +bool32 RemoveBagItem(enum Item itemId, u16 count); +const u8 *GetItemDescription(enum Item itemId); +const u8 *GetItemEffect(enum Item itemId); +const u8 *GetItemName(enum Item itemId); +enum Pocket GetItemPocket(enum Item itemId); +ItemUseFunc GetItemFieldFunc(enum Item itemId); +u16 CountTotalItemQuantityInBag(enum Item item); +u16 GetItemSecondaryId(enum Item itemId); +u16 GetPCItemQuantity(u16 *quantity); +u32 GetFreeSpaceForItemInBag(enum Item itemId); +u32 GetItemFlingPower(enum Item itemId); +u32 GetItemPrice(enum Item itemId); +u32 GetItemSellPrice(enum Item itemId); +u32 GetItemStatus1Mask(enum Item itemId); +u8 *CopyItemName(enum Item itemId, u8 *string); +u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *string, u32 quantity); +u8 CountItemsInPC(void); +u8 CountUsedPCItemSlots(void); +u8 GetItemBattleUsage(enum Item itemId); +u8 GetItemConsumability(enum Item itemId); +u8 GetItemHoldEffect(enum Item itemId); +u8 GetItemHoldEffectParam(enum Item itemId); +u8 GetItemImportance(enum Item itemId); +u8 GetItemType(enum Item itemId); +u8 GetPocketByItemId(enum Item itemId); +void ClearBag(void); +void ClearPCItemSlots(void); +void CompactItemsInBagPocket(enum Pocket pocketId); +void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity); +void ItemPcCompaction(void); +void MoveItemSlotInPC(struct ItemSlot *itemSlots_, u32 from, u32 to_); +void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to); +void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count); +void RemovePCItem(u8 index, u16 count); +void SetBagItemsPointers(void); +void SwapRegisteredBike(void); +void TrySetObtainedItemQuestLogEvent(enum Item itemId); + #define UNPACK_ITEM_TO_TM_INDEX(_tm) case CAT(ITEM_TM_, _tm): return CAT(ENUM_TM_HM_, _tm) + 1; #define UNPACK_ITEM_TO_HM_INDEX(_hm) case CAT(ITEM_HM_, _hm): return CAT(ENUM_TM_HM_, _hm) + 1; #define UNPACK_ITEM_TO_TM_MOVE_ID(_tm) case CAT(ITEM_TM_, _tm): return CAT(MOVE_, _tm); @@ -173,7 +227,7 @@ static inline enum Item GetTMHMItemId(enum TMHMIndex index) return gTMHMItemMoveIds[index].itemId; } -static inline u16 GetTMHMMoveId(enum TMHMIndex index) +static inline enum Move GetTMHMMoveId(enum TMHMIndex index) { return gTMHMItemMoveIds[index].moveId; } @@ -181,12 +235,12 @@ static inline u16 GetTMHMMoveId(enum TMHMIndex index) void BagPocket_SetSlotData(struct BagPocket *pocket, u32 pocketPos, struct ItemSlot newSlot); struct ItemSlot BagPocket_GetSlotData(struct BagPocket *pocket, u32 pocketPos); -static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, u16 itemId, u16 quantity) +static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, enum Item itemId, u16 quantity) { BagPocket_SetSlotData(pocket, pocketPos, (struct ItemSlot) {itemId, quantity}); } -static inline u16 GetBagItemId(enum Pocket pocketId, u32 pocketPos) +static inline enum Item GetBagItemId(enum Pocket pocketId, u32 pocketPos) { return BagPocket_GetSlotData(&gBagPockets[pocketId], pocketPos).itemId; } @@ -201,65 +255,5 @@ static inline struct ItemSlot GetBagItemIdAndQuantity(enum Pocket pocketId, u32 return BagPocket_GetSlotData(&gBagPockets[pocketId], pocketPos); } -void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity); -u8 *CopyItemName(u16 itemId, u8 *string); -u8 *CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity); -bool8 IsBagPocketNonEmpty(u8 pocket); -bool8 CheckBagHasItem(u16 itemId, u16 count); -bool8 CheckBagHasSpace(u16 itemId, u16 count); -u32 GetFreeSpaceForItemInBag(u16 itemId); -bool8 RemoveBagItem(u16 itemId, u16 count); -void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count); -u8 GetPocketByItemId(u16 itemId); -u8 CountUsedPCItemSlots(void); -bool8 CheckPCHasItem(u16 itemId, u16 count); -bool8 AddPCItem(u16 itemId, u16 count); -void SwapRegisteredBike(void); -const u8 *GetItemName(u16 itemId); -u32 GetItemPrice(u16 itemId); -u8 GetItemHoldEffect(u16 itemId); -u8 GetItemHoldEffectParam(u16 itemId); -const u8 *GetItemDescription(u16 itemId); -u8 GetItemImportance(u16 itemId); -u8 GetItemConsumability(u16 itemId); -enum Pocket GetItemPocket(u16 itemId); -u8 GetItemType(u16 itemId); -ItemUseFunc GetItemFieldFunc(u16 itemId); -u8 GetItemBattleUsage(u16 itemId); -u16 GetItemSecondaryId(u16 itemId); -u32 GetItemFlingPower(u32 itemId); -void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to); -void MoveItemSlotInPC(struct ItemSlot *itemSlots_, u32 from, u32 to_); -void ClearBag(void); -void ClearPCItemSlots(void); -void TrySetObtainedItemQuestLogEvent(u16 itemId); -bool8 AddBagItem(u16 itemId, u16 amount); - -u16 CountTotalItemQuantityInBag(u16 item); -bool32 AddPyramidBagItem(enum Item itemId, u16 count); -bool32 RemovePyramidBagItem(enum Item itemId, u16 count); -u8 GetItemImportance(u16 itemId); -u16 GetPCItemQuantity(u16 *); -void SetBagItemsPointers(void); - -void ItemPcCompaction(void); -void RemovePCItem(u8 index, u16 count); -void CompactItemsInBagPocket(enum Pocket pocketId); -u8 CountItemsInPC(void); -bool32 HasAtLeastOneBerry(void); -bool32 HasAtLeastOnePokeBall(void); - -bool32 IsItemTM(u16 itemId); -bool32 IsItemHM(u16 itemId); -bool32 IsItemTMHM(u16 itemId); - -bool32 IsItemBall(u16 itemId); - -const u8 *GetItemEffect(u32 itemId); -u32 GetItemStatus1Mask(u16 itemId); -bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile volatile); -u32 GetItemSellPrice(u32 itemId); -bool32 IsHoldEffectChoice(enum HoldEffect holdEffect); - #endif // GUARD_ITEM_H diff --git a/include/item_icon.h b/include/item_icon.h index 4fb1e9cbb..6fce8900e 100644 --- a/include/item_icon.h +++ b/include/item_icon.h @@ -9,9 +9,9 @@ extern const struct SpriteTemplate gItemIconSpriteTemplate; bool8 AllocItemIconTemporaryBuffers(void); void FreeItemIconTemporaryBuffers(void); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); -u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId); -u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); -const void *GetItemIconPic(u16 itemId); -const void *GetItemIconPalette(u16 itemId); +u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item itemId); +u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, enum Item itemId); +const void *GetItemIconPic(enum Item itemId); +const void *GetItemIconPalette(enum Item itemId); #endif // GUARD_ITEM_MENU_ICONS diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 0ff351196..ed60cf430 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -8,7 +8,7 @@ extern const struct SpritePalette gSpritePalette_Bag; void AddBagVisualSprite(u8 bagPocketId); void SetBagVisualPocketId(u8 bagPocketId); void ShakeBagSprite(void); -void AddBagItemIconSprite(u16 itemId, u8 id); +void AddBagItemIconSprite(enum Item itemId, u8 id); void RemoveBagItemIconSprite(u8 id); void CreateItemMenuSwapLine(void); void SetItemMenuSwapLineInvisibility(bool8 invisible); diff --git a/include/item_use.h b/include/item_use.h index 3ded70c53..3dd752b50 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -46,9 +46,9 @@ void ItemUseInBattle_PartyMenu(u8 taskId); void ItemUseInBattle_PartyMenuChooseMove(u8 taskId); void Task_UseDigEscapeRopeOnField(u8 taskId); u8 CanUseEscapeRopeOnCurrMap(void); -u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); +u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId); void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8); -void ItemUse_SetQuestLogEvent(u8, struct Pokemon *, u16, u16); +void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, enum Item itemId, u16 param); void FieldCB_UseItemOnField(void); enum { @@ -60,7 +60,7 @@ enum { }; bool32 CanThrowBall(void); -bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon); +bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon); extern void (*sItemUseOnFieldCB)(u8 taskId); diff --git a/include/mail.h b/include/mail.h index b12dbea93..e689757c8 100644 --- a/include/mail.h +++ b/include/mail.h @@ -29,14 +29,14 @@ void ReadMail(struct Mail * mail, void (*savedCallback)(void), bool8 messageExis void ClearMailData(void); void ClearMailStruct(struct Mail *mail); bool8 MonHasMail(struct Pokemon *mon); -u8 GiveMailToMon(struct Pokemon *mon, u16 itemId); -u16 SpeciesToMailSpecies(u16 species, u32 personality); -u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); +u8 GiveMailToMon(struct Pokemon *mon, enum Item itemId); +u16 SpeciesToMailSpecies(enum Species species, u32 personality); +enum Species MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); u8 GiveMailToMon2(struct Pokemon *mon, struct Mail *mail); void TakeMailFromMon(struct Pokemon *mon); void ClearMailItemId(u8 mailId); u8 SaveMailToPC(struct Mail *mail); u8 TakeMailFromMonAndSave(struct Pokemon *mon); -bool8 ItemIsMail(u16 itemId); +bool8 ItemIsMail(enum Item itemId); #endif // GUARD_MAIL_H diff --git a/include/menu.h b/include/menu.h index 567cf646f..2af7db5dc 100644 --- a/include/menu.h +++ b/include/menu.h @@ -49,12 +49,12 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u void PrintPlayerNameOnWindow(u8 windowId, const u8 * src, u16 x, u16 y); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); bool8 IsBlendTaskActive(void); -u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId); -s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId); +u8 Menu2_GetMonPosAttribute(enum Species species, u32 personality, u8 attributeId); +s8 Menu2_GetStarSpritePosAttribute(enum Species species, u32 personality, u8 attributeId); // list_menu -void LoadMonIconPalAtOffset(u8 palOffset, u16 speciesId); -void DrawMonIconAtPos(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y); +void LoadMonIconPalAtOffset(u8 palOffset, enum Species speciesId); +void DrawMonIconAtPos(u8 windowId, enum Species speciesId, u32 personality, u16 x, u16 y); void ListMenuLoadStdPalAt(u8 palOffset, u8 palId); void BlitMenuInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 9902b6cb1..a09ee61f7 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -37,8 +37,8 @@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 palet void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo); u8 GetLRKeysPressed(void); u8 GetLRKeysPressedAndHeld(void); -bool8 IsHoldingItemAllowed(u16 itemId); -bool8 IsWritingMailAllowed(u16 itemId); +bool8 IsHoldingItemAllowed(enum Item itemId); +bool8 IsWritingMailAllowed(enum Item itemId); void ResetVramOamAndBgCntRegs(void); void LoadListMenuSwapLineGfx(void); void CreateSwapLineSprites(u8 *spriteIds, u8 count); diff --git a/include/overworld.h b/include/overworld.h index 60ddcaaef..97fb4bc49 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -206,6 +206,6 @@ enum ItemObtainFlags FLAG_GET_ITEM_OBTAINED, FLAG_SET_ITEM_OBTAINED, }; -bool8 GetSetItemObtained(u16 item, enum ItemObtainFlags caseId); +bool8 GetSetItemObtained(enum Item item, enum ItemObtainFlags caseId); #endif //GUARD_OVERWORLD_H diff --git a/include/party_menu.h b/include/party_menu.h index 73dfad5a0..155e02e63 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -15,7 +15,7 @@ struct PartyMenu s8 slotId; s8 slotId2; u8 action; - u16 bagItem; + enum Item bagItem; s16 data[2]; }; @@ -32,76 +32,76 @@ extern const u16 gHeldItemPalette[]; extern void (*gItemUseCB)(u8, TaskFunc); extern const struct SpriteTemplate gSpriteTemplate_StatusIcons; -void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, u8 messageId, TaskFunc task, MainCallback callback); -void AnimatePartySlot(u8 slot, u8 animNum); +bool32 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move); +bool32 MonKnowsMove(struct Pokemon *mon, enum Move move); +bool8 CB2_FadeFromPartyMenu(void); +bool8 FieldCallback_PrepareFadeInFromMenu(void); bool8 IsMultiBattle(void); -u8 GetCursorSelectionMonId(void); -u8 GetPartyMenuType(void); -void Task_HandleChooseMonInput(u8 taskId); +bool8 IsPartyMenuTextPrinterActive(void); +enum Move ItemIdToBattleMoveId(enum Item item); +u32 Party_FirstMonWithMove(enum Move moveId); u8 *GetMonNickname(struct Pokemon *mon, u8 *dest); u8 DisplayPartyMenuMessage(const u8 *str, bool8 keepOpen); -bool8 IsPartyMenuTextPrinterActive(void); -void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 hpDifference, TaskFunc task); u8 GetAilmentFromStatus(u32 status); +u8 GetCursorSelectionMonId(void); +u8 GetItemEffectType(enum Item item); u8 GetMonAilment(struct Pokemon *mon); -void DisplayPartyMenuStdMessage(u32 stringId); -void LoadHeldItemIcons(void); -void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty); -void LoadPartyMenuAilmentGfx(void); -void SpriteCB_BounceConfirmCancelButton(u8 spriteId, u8 spriteId2, u8 animNum); -void CB2_SelectBagItemToGive(void); -void CB2_GiveHoldItem(void); -bool8 FieldCallback_PrepareFadeInFromMenu(void); -void CB2_ReturnToPartyMenuFromFlyMap(void); -void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData); -void CB2_ShowPartyMenuForItemUse(void); -void ItemUseCB_AbilityCapsule(u8 taskId, TaskFunc task); -void ItemUseCB_AbilityPatch(u8 taskId, TaskFunc task); -void ItemUseCB_BattleScript(u8 taskId, TaskFunc task); -void ItemUseCB_Medicine(u8 taskId, TaskFunc func); -void ItemUseCB_Mint(u8 taskId, TaskFunc task); -void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task); -void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task); -void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func); -void ItemUseCB_PPUp(u8 taskId, TaskFunc func); -enum Move ItemIdToBattleMoveId(enum Item item); -bool8 MonKnowsMove(struct Pokemon *mon, u16 move); -bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, u16 move); -void ItemUseCB_TMHM(u8 taskId, TaskFunc func); -void ItemUseCB_RareCandy(u8 taskId, TaskFunc func); -void ItemUseCB_DynamaxCandy(u8 taskId, TaskFunc task); -void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func); -void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func); -u8 GetItemEffectType(u16 item); -void CB2_PartyMenuFromStartMenu(void); -void CB2_ChooseMonToGiveItem(void); -void ChooseMonToGiveMailFromMailbox(void); -void InitChooseMonsForBattle(u8 unused); -void ClearSelectedPartyOrder(void); -void ChooseMonForTradingBoard(u8 menuType, MainCallback callback); -void ChooseMonForMoveTutor(void); -void ChooseMonForWirelessMinigame(void); -void OpenPartyMenuInBattle(u8 partyAction); -void Pokedude_OpenPartyMenuInBattle(void); -void Pokedude_ChooseMonForInBattleItem(void); -void ChooseMonForInBattleItem(void); +u8 GetPartyIdFromBattlePartyId(u8 battlePartyId); +u8 GetPartyMenuType(void); +void AnimatePartySlot(u8 slot, u8 animNum); void BufferBattlePartyCurrentOrder(void); void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId); -void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2); -void SwitchPartyMonSlots(u8 slot, u8 slot2); -u8 GetPartyIdFromBattlePartyId(u8 battlePartyId); -void ShowPartyMenuToShowcaseMultiBattleParty(void); -void ChooseMonForDaycare(void); -void ItemUseCB_BattleChooseMove(u8 taskId, TaskFunc task); -void ItemUseCB_FormChange(u8 taskId, TaskFunc task); -void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task); -void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task); -void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task); -void ItemUseCB_Fusion(u8 taskId, TaskFunc task); -u32 Party_FirstMonWithMove(u16 moveId); -void ChoosePartyMon(void); -bool8 CB2_FadeFromPartyMenu(void); -void ChooseMonForMoveRelearner(void); +void CB2_ChooseMonToGiveItem(void); +void CB2_GiveHoldItem(void); +void CB2_PartyMenuFromStartMenu(void); +void CB2_ReturnToPartyMenuFromFlyMap(void); void CB2_ReturnToPartyMenuFromSummaryScreen(void); +void CB2_SelectBagItemToGive(void); +void CB2_ShowPartyMenuForItemUse(void); +void ChooseMonForDaycare(void); +void ChooseMonForInBattleItem(void); +void ChooseMonForMoveRelearner(void); +void ChooseMonForMoveTutor(void); +void ChooseMonForTradingBoard(u8 menuType, MainCallback callback); +void ChooseMonForWirelessMinigame(void); +void ChooseMonToGiveMailFromMailbox(void); +void ChoosePartyMon(void); +void ClearSelectedPartyOrder(void); +void DisplayPartyMenuStdMessage(u32 stringId); +void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty); +void InitChooseMonsForBattle(u8 unused); +void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, u8 messageId, TaskFunc task, MainCallback callback); +void ItemUseCB_AbilityCapsule(u8 taskId, TaskFunc task); +void ItemUseCB_AbilityPatch(u8 taskId, TaskFunc task); +void ItemUseCB_BattleChooseMove(u8 taskId, TaskFunc task); +void ItemUseCB_BattleScript(u8 taskId, TaskFunc task); +void ItemUseCB_DynamaxCandy(u8 taskId, TaskFunc task); +void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func); +void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task); +void ItemUseCB_FormChange(u8 taskId, TaskFunc task); +void ItemUseCB_Fusion(u8 taskId, TaskFunc task); +void ItemUseCB_Medicine(u8 taskId, TaskFunc func); +void ItemUseCB_Mint(u8 taskId, TaskFunc task); +void ItemUseCB_PPRecovery(u8 taskId, TaskFunc func); +void ItemUseCB_PPUp(u8 taskId, TaskFunc func); +void ItemUseCB_RareCandy(u8 taskId, TaskFunc func); +void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task); +void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task); +void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task); +void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func); +void ItemUseCB_TMHM(u8 taskId, TaskFunc func); +void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task); +void LoadHeldItemIcons(void); +void LoadPartyMenuAilmentGfx(void); +void OpenPartyMenuInBattle(u8 partyAction); +void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 hpDifference, TaskFunc task); +void Pokedude_ChooseMonForInBattleItem(void); +void Pokedude_OpenPartyMenuInBattle(void); +void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData); +void ShowPartyMenuToShowcaseMultiBattleParty(void); +void SpriteCB_BounceConfirmCancelButton(u8 spriteId, u8 spriteId2, u8 animNum); +void SwitchPartyMonSlots(u8 slot, u8 slot2); +void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2); +void Task_HandleChooseMonInput(u8 taskId); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokeball.h b/include/pokeball.h index 1caf478af..546a01638 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -16,7 +16,7 @@ struct PokeBallSprite struct CompressedSpriteSheet pic; struct SpritePalette palette; struct SpriteTemplate spriteTemplate; - u16 itemId; + enum Item itemId; }; extern const struct PokeBallSprite gPokeBalls[]; @@ -26,7 +26,7 @@ extern const struct PokeBallSprite gPokeBalls[]; #define POKEBALL_PLAYER_SLIDEIN 0xFD u8 DoPokeballSendOutAnimation(enum BattlerId battler, s16 pan, u8 kindOfThrow); -void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, u16 species); +void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, enum Species species); u8 CreateTradePokeballSprite(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 delay, u32 fadePalettes); void StartHealthboxSlideIn(enum BattlerId battler); void DoHitAnimHealthboxEffect(enum BattlerId battler); diff --git a/include/pokedex.h b/include/pokedex.h index 24a563895..107dcce12 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -108,7 +108,7 @@ bool16 HasAllKantoMons(void); bool16 HasAllMons(void); u8* ConvertMonHeightToString(u32 height); u8* ConvertMonWeightToString(u32 weight); -u8 DisplayCaughtMonDexPage(u16 species, bool32 isShiny, u32 personality); -u8 DexScreen_RegisterMonToPokedex(u16 species); +u8 DisplayCaughtMonDexPage(enum Species species, bool32 isShiny, u32 personality); +u8 DexScreen_RegisterMonToPokedex(enum Species species); #endif // GUARD_POKEDEX_H diff --git a/include/pokedex_area_markers.h b/include/pokedex_area_markers.h index 48f54389f..dcfe4478d 100644 --- a/include/pokedex_area_markers.h +++ b/include/pokedex_area_markers.h @@ -3,7 +3,7 @@ void GetAreaMarkerSubsprite(s32 i, s32 dexArea, struct Subsprite * subsprites); void DestroyPokedexAreaMarkers(u8 taskId); -u8 CreatePokedexAreaMarkers(u16 species, u16 tilesTag, u8 palIdx, u8 y); +u8 CreatePokedexAreaMarkers(enum Species species, u16 tilesTag, u8 palIdx, u8 y); u8 GetNumPokedexAreaMarkers(u8 taskId); #endif //GUARD_POKEDEX_AREA_MARKERS_H diff --git a/include/pokedex_emerald.h b/include/pokedex_emerald.h index f1131b238..b0bc42d99 100644 --- a/include/pokedex_emerald.h +++ b/include/pokedex_emerald.h @@ -9,7 +9,7 @@ u16 GetNationalPokedexCount(u8 caseID); u16 GetHoennPokedexCount(u8 caseID); u16 GetKantoPokedexCount(u8 caseID); u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y); -void DrawFootprint(u8 windowId, u16 species); +void DrawFootprint(u8 windowId, enum Species species); u16 CreateMonSpriteFromNationalDexNumber(enum NationalDexOrder nationalNum, s16 x, s16 y, u16 paletteSlot); bool16 HasAllRegionalMons(void); bool16 HasAllHoennMons(void); @@ -17,7 +17,7 @@ bool16 HasAllKantoMons(void); void ResetPokedexScrollPositions(void); bool16 HasAllMons(void); void CB2_OpenPokedex(void); -void PrintMonMeasurements(u16 species, u32 owned); +void PrintMonMeasurements(enum Species species, u32 owned); u8* ConvertMonHeightToString(u32 height); u8* ConvertMonWeightToString(u32 weight); void Task_DisplayCaughtMonDexPage(u8); diff --git a/include/pokedex_emerald_area_screen.h b/include/pokedex_emerald_area_screen.h index ba577d123..424c699c7 100755 --- a/include/pokedex_emerald_area_screen.h +++ b/include/pokedex_emerald_area_screen.h @@ -11,7 +11,6 @@ enum PokedexAreaScreenState DEX_UPDATE_AREA_SCREEN }; -void DisplayPokedexAreaScreen(u16 species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState); -void ShowPokedexAreaScreen(u16 species, u8 *screenSwitchState); +void DisplayPokedexAreaScreen(enum Species species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState); #endif // GUARD_POKEDEX_AREA_SCREEN_H diff --git a/include/pokedex_emerald_cry_screen.h b/include/pokedex_emerald_cry_screen.h index c44035605..037e7f323 100755 --- a/include/pokedex_emerald_cry_screen.h +++ b/include/pokedex_emerald_cry_screen.h @@ -14,7 +14,7 @@ extern u8 gDexCryScreenState; bool8 LoadCryWaveformWindow(struct CryScreenWindow *window, u8 windowId); void UpdateCryWaveformWindow(u8 windowId); -void CryScreenPlayButton(u16 species); +void CryScreenPlayButton(enum Species species); bool8 LoadCryMeter(struct CryScreenWindow *window, u8 windowId); void FreeCryScreen(void); diff --git a/include/pokemon.h b/include/pokemon.h index 62f33bc26..8afe26ea1 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -128,7 +128,7 @@ enum MonData { struct PokemonSubstruct0 { - u16 species:11; // 2047 species. + enum Species species:11; // 2047 species. enum Type teraType:5; // 30 types. u16 heldItem:10; // 1023 items. u16 unused_02:6; @@ -336,7 +336,7 @@ struct Volatiles struct BattlePokemon { - /*0x00*/ u16 species; + /*0x00*/ enum Species species; /*0x02*/ u16 attack; /*0x04*/ u16 defense; /*0x06*/ u16 speed; @@ -622,7 +622,7 @@ struct LevelUpMove struct FormChange { u16 method; - u16 targetSpecies; + enum Species targetSpecies; u16 param1; u16 param2; u16 param3; @@ -632,7 +632,7 @@ struct FormChange struct FormChangeContext { enum FormChanges method:16; - u16 currentSpecies; + enum Species currentSpecies; u16 partyItemUsed; u16 multichoiceSelection; u16 heldItem; @@ -729,15 +729,15 @@ void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroMonData(struct Pokemon *mon); void ZeroPlayerPartyMons(void); void ZeroEnemyPartyMons(void); -u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter); -void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId); -void CreateRandomMon(struct Pokemon *mon, u16 species, u8 level); -void CreateRandomMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u8 fixedIv); -void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u32 personality, struct OriginalTrainerId); -void CreateMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV); +u32 GetMonPersonality(enum Species species, u8 gender, u8 nature, u8 unownLetter); +void CreateMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId); +void CreateRandomMon(struct Pokemon *mon, enum Species species, u8 level); +void CreateRandomMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u8 fixedIv); +void CreateBoxMon(struct BoxPokemon *boxMon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId); +void CreateMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV); void SetBoxMonIVs(struct BoxPokemon *mon, u8 fixedIV); -void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level); -void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality); +void CreateMaleMon(struct Pokemon *mon, enum Species species, u8 level); +void CreateMonWithIVsPersonality(struct Pokemon *mon, enum Species species, u8 level, u32 ivs, u32 personality); void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src); void CreateBattleTowerMon_HandleLevel(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50); void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId); @@ -767,9 +767,9 @@ u8 CountAliveMonsInBattle(u8 caseId, enum BattlerId battler); u8 GetDefaultMoveTarget(enum BattlerId battler); u8 GetMonGender(struct Pokemon *mon); u8 GetBoxMonGender(struct BoxPokemon *boxMon); -u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality); -bool32 IsPersonalityFemale(u16 species, u32 personality); -u32 GetUnownSpeciesId(u32 personality); +u8 GetGenderFromSpeciesAndPersonality(enum Species species, u32 personality); +bool32 IsPersonalityFemale(enum Species species, u32 personality); +enum Species GetUnownSpeciesId(u32 personality); void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, enum BattlerPosition battlerPosition); void SetMultiuseSpriteTemplateToTrainerBack(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition); void SetMultiuseSpriteTemplateToTrainerFront(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition); @@ -796,33 +796,33 @@ u8 CalculateEnemyPartyCount(void); u8 CalculateEnemyPartyCountInSide(enum BattlerId battler); u8 GetMonsStateToDoubles(void); u8 GetMonsStateToDoubles_2(void); -enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum); +enum Ability GetAbilityBySpecies(enum Species species, u8 abilityNum); enum Ability GetMonAbility(struct Pokemon *mon); void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord); enum TrainerPicID GetSecretBaseTrainerPicIndex(void); enum TrainerClassID GetSecretBaseTrainerClass(void); bool8 IsPlayerPartyAndPokemonStorageFull(void); bool8 IsPokemonStorageFull(void); -const u8 *GetSpeciesName(u16 species); -const u8 *GetSpeciesCategory(u16 species); -const u8 *GetSpeciesPokedexDescription(u16 species); -u32 GetSpeciesHeight(u16 species); -u32 GetSpeciesWeight(u16 species); -enum Type GetSpeciesType(u16 species, u8 slot); -enum Ability GetSpeciesAbility(u16 species, u8 slot); -u32 GetSpeciesBaseHP(u16 species); -u32 GetSpeciesBaseAttack(u16 species); -u32 GetSpeciesBaseDefense(u16 species); -u32 GetSpeciesBaseSpAttack(u16 species); -u32 GetSpeciesBaseSpDefense(u16 species); -u32 GetSpeciesBaseSpeed(u16 species); -u32 GetSpeciesBaseStat(u16 species, u32 statIndex); -const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species); -const u16 *GetSpeciesTeachableLearnset(u16 species); -const u16 *GetSpeciesEggMoves(u16 species); -const struct Evolution *GetSpeciesEvolutions(u16 species); -const u16 *GetSpeciesFormTable(u16 species); -const struct FormChange *GetSpeciesFormChanges(u16 species); +const u8 *GetSpeciesName(enum Species species); +const u8 *GetSpeciesCategory(enum Species species); +const u8 *GetSpeciesPokedexDescription(enum Species species); +u32 GetSpeciesHeight(enum Species species); +u32 GetSpeciesWeight(enum Species species); +enum Type GetSpeciesType(enum Species species, u8 slot); +enum Ability GetSpeciesAbility(enum Species species, u8 slot); +u32 GetSpeciesBaseHP(enum Species species); +u32 GetSpeciesBaseAttack(enum Species species); +u32 GetSpeciesBaseDefense(enum Species species); +u32 GetSpeciesBaseSpAttack(enum Species species); +u32 GetSpeciesBaseSpDefense(enum Species species); +u32 GetSpeciesBaseSpeed(enum Species species); +u32 GetSpeciesBaseStat(enum Species species, u32 statIndex); +const struct LevelUpMove *GetSpeciesLevelUpLearnset(enum Species species); +const u16 *GetSpeciesTeachableLearnset(enum Species species); +const u16 *GetSpeciesEggMoves(enum Species species); +const struct Evolution *GetSpeciesEvolutions(enum Species species); +const u16 *GetSpeciesFormTable(enum Species species); +const struct FormChange *GetSpeciesFormChanges(enum Species species); u8 CalculatePPWithBonus(enum Move move, u8 ppBonuses, u8 moveIndex); void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); void RemoveBoxMonPPBonus(struct BoxPokemon *mon, u8 moveIndex); @@ -840,16 +840,16 @@ u32 GetGMaxTargetSpecies(u32 species); bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct EvolutionParam *params, struct Pokemon *tradePartner, u32 partyId, bool32 *canStopEvo, enum EvoState evoState); u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 evolutionItem, struct Pokemon *tradePartner, bool32 *canStopEvo, enum EvoState evoState); bool8 IsMonPastEvolutionLevel(struct Pokemon *mon); -u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum); +enum Species NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum); u32 NationalToRegionalOrder(enum NationalDexOrder nationalNum); enum HoennDexOrder NationalToHoennOrder(enum NationalDexOrder nationalNum); -enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species); -u32 SpeciesToRegionalPokedexNum(u16 species); -enum HoennDexOrder SpeciesToHoennPokedexNum(u16 species); +enum NationalDexOrder SpeciesToNationalPokedexNum(enum Species species); +u32 SpeciesToRegionalPokedexNum(enum Species species); +enum HoennDexOrder SpeciesToHoennPokedexNum(enum Species species); enum NationalDexOrder RegionalToNationalOrder(u32 regionNum); enum NationalDexOrder HoennToNationalOrder(enum HoennDexOrder hoennNum); -enum KantoDexOrder SpeciesToKantoDexNum(u16 species); -bool32 IsSpeciesInKantoDex(u16 species); +enum KantoDexOrder SpeciesToKantoDexNum(enum Species species); +bool32 IsSpeciesInKantoDex(enum Species species); enum NationalDexOrder KantoToNationalDexNum(enum KantoDexOrder kantoNum); enum KantoDexOrder NationalToKantoDexNum(enum NationalDexOrder natDexNum); enum NationalDexOrder HoennToNationalDexNum(enum HoennDexOrder hoennNum); @@ -867,22 +867,22 @@ u8 CalculateFriendshipBonuses(struct Pokemon *mon, u32 modifier, enum HoldEffect void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); u16 GetMonEVCount(struct Pokemon *mon); bool8 TryIncrementMonLevel(struct Pokemon *mon); -u8 CanLearnTeachableMove(u16 species, enum Move move); -u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); -u16 SpeciesToPokedexNum(u16 species); -bool32 IsSpeciesInHoennDex(u16 species); +u8 CanLearnTeachableMove(enum Species species, enum Move move); +u8 GetLevelUpMovesBySpecies(enum Species species, u16 *moves); +u16 SpeciesToPokedexNum(enum Species species); +bool32 IsSpeciesInHoennDex(enum Species species); u16 GetBattleBGM(void); void PlayBattleBGM(void); void PlayMapChosenOrBattleBGM(u16 songId); void CreateTask_PlayMapChosenOrBattleBGM(u16 songId); const u16 *GetMonFrontSpritePal(struct Pokemon *mon); -const u16 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, bool32 isShiny, u32 personality); -const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(u16 species, bool32 isShiny, u32 personality, bool32 isEgg); -const u16 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFemale); -const u16 *GetMonSpritePalFromSpeciesIsEgg(u16 species, bool32 isShiny, bool32 isFemale, bool32 isEgg); +const u16 *GetMonSpritePalFromSpeciesAndPersonality(enum Species species, bool32 isShiny, u32 personality); +const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(enum Species species, bool32 isShiny, u32 personality, bool32 isEgg); +const u16 *GetMonSpritePalFromSpecies(enum Species species, bool32 isShiny, bool32 isFemale); +const u16 *GetMonSpritePalFromSpeciesIsEgg(enum Species species, bool32 isShiny, bool32 isFemale, bool32 isEgg); bool32 IsMoveHM(enum Move move); bool32 CannotForgetMove(enum Move move); -bool8 IsMonSpriteNotFlipped(u16 species); +bool8 IsMonSpriteNotFlipped(enum Species species); s8 GetMonFlavorRelation(struct Pokemon *mon, enum Flavor flavor); s8 GetFlavorRelationByPersonality(u32 personality, enum Flavor flavor); bool8 IsTradedMon(struct Pokemon *mon); @@ -893,28 +893,28 @@ void SetMonPreventsSwitchingString(void); void SetWildMonHeldItem(void); bool8 IsMonShiny(struct Pokemon *mon); const u8 *GetTrainerPartnerName(void); -void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u8 panMode); -void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, u8 panModeAnimFlag); -void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneFrame); +void BattleAnimateFrontSprite(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panMode); +void DoMonFrontSpriteAnimation(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panModeAnimFlag); +void PokemonSummaryDoMonAnimation(struct Sprite *sprite, enum Species species, bool8 oneFrame); void StopPokemonAnimationDelayTask(void); -void BattleAnimateBackSprite(struct Sprite *sprite, u16 species); +void BattleAnimateBackSprite(struct Sprite *sprite, enum Species species); u8 GetOpposingLinkMultiBattlerId(bool8 rightSide, u8 multiplayerId); enum TrainerPicID FacilityClassToPicIndex(u16 facilityClass); enum TrainerPicID PlayerGenderToFrontTrainerPicId(enum Gender playerGender); void HandleSetPokedexFlag(enum NationalDexOrder nationalNum, u8 caseId, u32 personality); void HandleSetPokedexFlagFromMon(struct Pokemon *mon, u32 caseId); -bool8 HasTwoFramesAnimation(u16 species); +bool8 HasTwoFramesAnimation(enum Species species); struct MonSpritesGfxManager *CreateMonSpritesGfxManager(u8 managerId, u8 mode); void DestroyMonSpritesGfxManager(u8 managerId); u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum); -u16 GetFormSpeciesId(u16 speciesId, u8 formId); +u16 GetFormSpeciesId(enum Species speciesId, u8 formId); u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId); u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx); -bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method); +bool32 DoesSpeciesHaveFormChangeMethod(enum Species species, enum FormChanges method); u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove); void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv); void TrySpecialOverworldEvo(void); -bool32 SpeciesHasGenderDifferences(u16 species); +bool32 SpeciesHasGenderDifferences(enum Species species); bool32 TryFormChange(struct Pokemon *mon, enum FormChanges method); bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method); void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method); @@ -922,10 +922,10 @@ u32 GetMonFriendshipScore(struct Pokemon *pokemon); u32 GetMonAffectionHearts(struct Pokemon *pokemon); void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality); u8 CalculatePartyCount(struct Pokemon *party); -u16 SanitizeSpeciesId(u16 species); -bool32 IsSpeciesEnabled(u16 species); -enum PokemonCry GetCryIdBySpecies(u16 species); -u16 GetSpeciesPreEvolution(u16 species); +u16 SanitizeSpeciesId(enum Species species); +bool32 IsSpeciesEnabled(enum Species species); +enum PokemonCry GetCryIdBySpecies(enum Species species); +u16 GetSpeciesPreEvolution(enum Species species); void HealPokemon(struct Pokemon *mon); void HealBoxPokemon(struct BoxPokemon *boxMon); void UpdateDaysPassedSinceFormChange(u16 days); @@ -945,8 +945,8 @@ u32 GiveScriptedMonToPlayer(struct Pokemon *mon, u8 slot); void ChangePokemonNicknameWithCallback(void (*callback)(void)); // pokefirered -u16 GetFirstPartnerMove(u16 species); +enum Move GetFirstPartnerMove(enum Species species); u8 GetPlayerPartyHighestLevel(void); -bool8 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler); +bool32 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler); #endif // GUARD_POKEMON_H diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h index ce53a1e6e..41120ec8e 100644 --- a/include/pokemon_animation.h +++ b/include/pokemon_animation.h @@ -193,7 +193,7 @@ enum AnimFunctionIDs ANIM_COUNT, }; -enum BackAnim GetSpeciesBackAnimSet(u16 species); +enum BackAnim GetSpeciesBackAnimSet(enum Species species); void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId); void StartMonSummaryAnimation(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId); void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, enum BackAnim backAnimSet); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 459fb7dec..948f1cff3 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -8,30 +8,30 @@ extern const struct SpritePalette gMonIconPaletteTable[]; extern const u16 gMonIconPalettes[][16]; // extern const u8 gMonIconPaletteIndices[]; -const u8 *GetMonIconPtr(u16 speciesId, u32 personality); -const u8 *GetMonIconPtrIsEgg(u16 species, u32 personality, bool32 isEgg); -const u8 *GetMonIconTiles(u16 iconSpecies, bool32 extra); -const u8 *GetMonIconTilesIsEgg(u16 species, u32 personality, bool32 isEgg); -const u16 *GetValidMonIconPalettePtr(u16 speciesId); +const u8 *GetMonIconPtr(enum Species species, u32 personality); +const u8 *GetMonIconPtrIsEgg(enum Species species, u32 personality, bool32 isEgg); +const u8 *GetMonIconTiles(enum Species species, bool32 extra); +const u8 *GetMonIconTilesIsEgg(enum Species species, u32 personality, bool32 isEgg); +const u16 *GetValidMonIconPalettePtr(enum Species species); void LoadMonIconPalettes(void); void FreeMonIconPalettes(void); -u16 GetIconSpeciesNoPersonality(u16); -u8 CreateMonIconNoPersonality(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority); +u16 GetIconSpeciesNoPersonality(enum Species species); +u8 CreateMonIconNoPersonality(enum Species species, SpriteCallback callback, s16 x, s16 y, u8 subpriority); void FreeAndDestroyMonIconSprite(struct Sprite *); u16 GetUnownLetterByPersonality(u32 personality); void SpriteCB_MonIcon(struct Sprite *); -u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality); -u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg); +u8 CreateMonIcon(enum Species species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality); +u8 CreateMonIconIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg); u8 UpdateMonIconFrame(struct Sprite *sprite); -void LoadMonIconPalette(u16 iconId); -void LoadMonIconPalettePersonality(u16 species, u32 personality); -void FreeMonIconPalette(u16 iconId); +void LoadMonIconPalette(enum Species species); +void LoadMonIconPalettePersonality(enum Species species, u32 personality); +void FreeMonIconPalette(enum Species species); void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum); -u8 GetMonIconPaletteIndexFromSpecies(u16 species); -u16 GetIconSpecies(u16 species, u32 personality); +u8 GetMonIconPaletteIndexFromSpecies(enum Species species); +enum Species GetIconSpecies(enum Species species, u32 personality); void TryLoadAllMonIconPalettesAtOffset(u16 offset); -u8 GetValidMonIconPalIndex(u16 species); -void SafeLoadMonIconPalette(u16 species); -void SafeFreeMonIconPalette(u16 species); +u8 GetValidMonIconPalIndex(enum Species species); +void SafeLoadMonIconPalette(enum Species species); +void SafeFreeMonIconPalette(enum Species species); #endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h index 20f96ec10..01b883852 100644 --- a/include/pokemon_jump.h +++ b/include/pokemon_jump.h @@ -4,7 +4,7 @@ #include "main.h" void ResetPokemonJumpRecords(void); -bool32 IsSpeciesAllowedInPokemonJump(u16 species); -void StartPokemonJump(u16 species, MainCallback callback); +bool32 IsSpeciesAllowedInPokemonJump(enum Species species); +void StartPokemonJump(u16 partyId, MainCallback callback); #endif // GUARD_POKEMON_JUMP_H diff --git a/include/pokemon_special_anim.h b/include/pokemon_special_anim.h index 8d2e6ebb6..c2010bd20 100644 --- a/include/pokemon_special_anim.h +++ b/include/pokemon_special_anim.h @@ -8,9 +8,9 @@ bool8 LevelUpVerticalSpritesTaskIsRunning(void); void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats); void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr); void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr); -void StartUseItemAnim_Normal(u8 slotId, u16 itemId, MainCallback callback); -void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback); +void StartUseItemAnim_Normal(u8 slotId, enum Item itemId, MainCallback callback); +void StartUseItemAnim_CantEvolve(u8 slotId, enum Item itemId, MainCallback callback); bool32 PSA_IsCancelDisabled(void); -void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId, MainCallback callback); +void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, enum Item itemId, enum Move moveId, MainCallback callback); #endif // GUARD_POKEMON_SPECIAL_ANIM_H diff --git a/include/pokemon_special_anim_internal.h b/include/pokemon_special_anim_internal.h index 447b03d06..b4430209b 100644 --- a/include/pokemon_special_anim_internal.h +++ b/include/pokemon_special_anim_internal.h @@ -31,8 +31,8 @@ struct PokemonSpecialAnim /*0x0084*/ u8 nameOfMoveToTeach[MOVE_NAME_LENGTH + 1]; /*0x0091*/ bool8 cancelDisabled; /*0x0092*/ u16 state; - /*0x0094*/ u16 species; - /*0x0096*/ u16 itemId; + /*0x0094*/ enum Species species; + /*0x0096*/ enum Item itemId; /*0x0098*/ u16 animType; /*0x009a*/ u16 slotId; /*0x009c*/ u16 closeness; @@ -45,13 +45,13 @@ struct PokemonSpecialAnim struct PokemonSpecialAnim * GetPSAStruct(void); struct Pokemon * PSA_GetPokemon(void); struct PokemonSpecialAnimScene * PSA_GetSceneWork(void); -u16 PSA_GetItemId(void); +enum Item PSA_GetItemId(void); u8 *PSA_GetNameOfMoveForgotten(void); u8 *PSA_GetNameOfMoveToTeach(void); u8 *PSA_CopyMonNickname(u8 *dest); u8 *PSA_GetMonNickname(void); u8 PSA_GetAnimType(void); -u16 PSA_GetMonSpecies(void); +enum Species PSA_GetMonSpecies(void); u32 PSA_GetMonPersonality(void); void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 animType); @@ -73,8 +73,8 @@ bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void); void PSA_CreateMonSpriteAtCloseness(u8 closeness); void PSA_SetUpZoomAnim(u8 closeness); bool8 PSA_IsZoomTaskActive(void); -void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2); -void CreateItemIconSpriteAtMaxCloseness(u16 itemId); +void PSA_SetUpItemUseOnMonAnim(enum Item itemId, u8 closeness, bool32 a2); +void CreateItemIconSpriteAtMaxCloseness(enum Item itemId); bool8 PSA_IsItemUseOnMonAnimActive(void); void PSA_UseItem_CleanUpForCancel(void); diff --git a/include/pokemon_sprite_visualizer.h b/include/pokemon_sprite_visualizer.h index ed7335db2..0d238e836 100644 --- a/include/pokemon_sprite_visualizer.h +++ b/include/pokemon_sprite_visualizer.h @@ -57,7 +57,7 @@ struct PokemonShadowSettings struct PokemonSpriteVisualizer { - u16 currentmonId; + enum Species currentmonId; u8 currentmonWindowId; u8 InstructionsWindowId; u8 frontspriteId; diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 221a0eacb..1d044586b 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -28,44 +28,41 @@ struct PokemonStorage extern struct PokemonStorage *gPokemonStoragePtr; -void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, s32 bytesToBuffer); -u8 CountMonsInBox(u8 boxId); -s16 GetFirstFreeBoxSpot(u8 boxId); -u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore); -u16 CountPartyAliveNonEggMons_IgnoreVar0x8004Slot(void); -u8 CountPartyMons(void); -u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n); -void ShowPokemonStorageSystemPC(void); -void ResetPokemonStorageSystem(void); +bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition); +bool8 CheckFreePokemonStorageSpace(void); +s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 mode); s16 CompactPartySlots(void); -u8 StorageGetCurrentBox(void); -u32 GetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request); -void SetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, const void *value); -u32 GetCurrentBoxMonData(u8 boxPosition, s32 request); -void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value); -void GetBoxMonNickAt(u8 boxId, u8 boxPosition, u8 *dst); -u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition); -void SetBoxMonNickAt(u8 boxId, u8 boxPosition, const u8 *nick); +s16 GetFirstFreeBoxSpot(u8 boxId); +struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition); +u16 CountPartyAliveNonEggMons_IgnoreVar0x8004Slot(void); +u32 CountAllStorageMons(void); +u32 CountPartyNonEggMons(void); +u32 CountStorageNonEggMons(void); u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst); -void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *src); +u32 GetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request); +u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition); +u32 GetCurrentBoxMonData(u8 boxPosition, s32 request); +u8 *GetBoxNamePtr(u8 boxId); +u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n); +u8 CountMonsInBox(u8 boxId); +u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore); +u8 CountPartyMons(void); +u8 StorageGetCurrentBox(void); +void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst); +void CB2_ReturnToPokeStorage(void); +void ChooseMonFromStorage(); void CopyBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *dst); void CreateBoxMonAt(u8 boxId, u8 boxPosition, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 personality, u8 otIDType, u32 otID); -void ZeroBoxMonAt(u8 boxId, u8 boxPosition); -void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst); -struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition); -u8 *GetBoxNamePtr(u8 boxId); -s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 mode); -bool8 CheckFreePokemonStorageSpace(void); -bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition); -u32 CountStorageNonEggMons(void); -u32 CountAllStorageMons(void); -bool32 AnyStorageMonWithMove(u16 moveId); - -void CB2_ReturnToPokeStorage(void); - +void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, s32 bytesToBuffer); void EnterPokeStorage(u8 boxOption); -u32 CountPartyNonEggMons(void); -void ChooseMonFromStorage(); +void GetBoxMonNickAt(u8 boxId, u8 boxPosition, u8 *dst); void RemoveSelectedPcMon(struct Pokemon *mon); +void ResetPokemonStorageSystem(void); +void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *src); +void SetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, const void *value); +void SetBoxMonNickAt(u8 boxId, u8 boxPosition, const u8 *nick); +void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value); +void ShowPokemonStorageSystemPC(void); +void ZeroBoxMonAt(u8 boxId, u8 boxPosition); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 36b208743..22b29301d 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -12,7 +12,7 @@ extern const struct SpritePalette gSpritePal_CategoryIcons; extern const struct SpriteTemplate gSpriteTemplate_CategoryIcons; extern MainCallback gInitialSummaryScreenCallback; -void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, void (*callback)(void), u16 newMove); +void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, void (*callback)(void), enum Move newMove); u8 GetMoveSlotToReplace(void); void SummaryScreen_SetUnknownTaskId(u8 a0); void SummaryScreen_DestroyUnknownTask(void); diff --git a/include/quest_log.h b/include/quest_log.h index 279786985..171edd40d 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -63,7 +63,7 @@ struct QuestLogEvent_SwitchedPartyOrder // QL_EVENT_WITHDREW_ITEM_PC struct QuestLogEvent_Item { - u16 itemId; + enum Item itemId; u16 unused; u16 species; u16 itemParam; @@ -154,7 +154,7 @@ struct QuestLogEvent_FieldMove struct QuestLogEvent_Shop { u32 totalMoney; // Total amount of money spent buying or earned selling - u16 lastItemId; + enum Item lastItemId; u16 itemQuantity; // Total number of items bought or sold u8 mapSec; bool8 hasMultipleTransactions; @@ -164,7 +164,7 @@ struct QuestLogEvent_Shop // QL_EVENT_OBTAINED_STORY_ITEM struct QuestLogEvent_StoryItem { - u16 itemId; + enum Item itemId; u8 mapSec; }; diff --git a/include/script_menu.h b/include/script_menu.h index 286edb5f1..0c9bf6bcd 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -30,7 +30,7 @@ bool8 (*ScriptMenu_HidePokemonPic(void))(void); bool8 ScriptMenu_Multichoice(u8 left, u8 top, enum MultichoiceID multichoiceId, bool8 ignoreBPress); bool8 ScriptMenu_MultichoiceDynamic(u8 left, u8 top, u8 argc, struct ListMenuItem *items, bool8 ignoreBPress, u8 maxBeforeScroll, u32 initialRow, u32 callbackSet); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, enum MultichoiceID multichoiceId, bool8 ignoreBpress, u8 columnCount); -bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); +bool8 ScriptMenu_ShowPokemonPic(enum Species species, u8 x, u8 y); bool8 ScriptMenu_YesNo(u8 var1, u8 var2); int ConvertPixelWidthToTileWidth(int width); int DisplayTextAndGetWidth(const u8 *str, int width); diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h index a2e68c110..7cc289143 100644 --- a/include/script_pokemon_util.h +++ b/include/script_pokemon_util.h @@ -1,12 +1,12 @@ #ifndef GUARD_SCRIPT_POKEMON_UTIL_H #define GUARD_SCRIPT_POKEMON_UTIL_H -u32 ScriptGiveMon(u16 species, u8 level, enum Item item); -bool8 ScriptGiveEgg(u16 species); -void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot); +u32 ScriptGiveMon(enum Species species, u8 level, enum Item item); +bool8 ScriptGiveEgg(enum Species species); +void ScriptSetMonMoveSlot(u8 partyIdx, enum Move move, u8 slot); void HealPlayerParty(void); void ReducePlayerPartyToSelectedMons(void); -void CreateScriptedWildMon(u16 species, u8 level, u16 item); -void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 species2, u8 level2, enum Item item2); +void CreateScriptedWildMon(enum Species species, u8 level, enum Item item); +void CreateScriptedDoubleWildMon(enum Species species1, u8 level1, enum Item item1, enum Species species2, u8 level2, enum Item item2); #endif //GUARD_SCRIPT_POKEMON_UTIL_H diff --git a/include/shop.h b/include/shop.h index c364531a3..cae65c963 100644 --- a/include/shop.h +++ b/include/shop.h @@ -10,6 +10,6 @@ void CreatePokemartMenu(const u16 *itemsForSale); void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); u8 GetMartFontId(void); -void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId); +void RecordItemTransaction(enum Item itemId, u16 quantity, u8 logEventId); #endif // GUARD_SHOP_H diff --git a/include/sound.h b/include/sound.h index ea1405054..3ce00fa26 100644 --- a/include/sound.h +++ b/include/sound.h @@ -24,13 +24,13 @@ bool8 IsBGMPausedOrStopped(void); void FadeInBGM(u8 speed); void FadeOutBGM(u8 speed); bool8 IsBGMStopped(void); -void PlayCry_Normal(u16 species, s8 pan); -void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority); -void PlayCry_ByMode(u16 species, s8 pan, u8 mode); -void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode); -void PlayCry_Script(u16 species, u8 mode); -void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode); -void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode); +void PlayCry_Normal(enum Species species, s8 pan); +void PlayCry_NormalNoDucking(enum Species species, s8 pan, s8 volume, u8 priority); +void PlayCry_ByMode(enum Species species, s8 pan, u8 mode); +void PlayCry_ReleaseDouble(enum Species species, s8 pan, u8 mode); +void PlayCry_Script(enum Species species, u8 mode); +void PlayCry_DuckNoRestore(enum Species species, s8 pan, u8 mode); +void PlayCryInternal(enum Species species, s8 pan, s8 volume, u8 priority, u8 mode); bool8 IsCryFinished(void); void StopCryAndClearCrySongs(void); void StopCry(void); diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h index ec39dcb67..cc20d2dec 100644 --- a/include/trainer_pokemon_sprites.h +++ b/include/trainer_pokemon_sprites.h @@ -7,15 +7,15 @@ #define MON_PIC_AFFINE_NONE 3 #define F_MON_PIC_NO_AFFINE (1 << 7) -u16 CreateMonFrontPicSprite(u16 species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); -u16 CreateMonPicSprite_Affine(u16 species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 CreateMonFrontPicSprite(enum Species species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 CreateMonPicSprite_Affine(enum Species species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 CreateTrainerFrontPicSprite(enum TrainerPicID trainerPicId, s16 x, s16 y, u8 paletteSlot); u8 CreateTrainerSprite(enum TrainerPicID trainerPicId, s16 x, s16 y, u8 subpriority, u8 *buffer); void CopyTrainerBackspriteFramesToDest(u8 trainerPicId, u8 *dest); void FreeAndDestroyMonPicSprite(u16 spriteId); void FreeAndDestroyMonPicSpriteNoPalette(u16 spriteId); void FreeAndDestroyTrainerPicSprite(u16); -void LoadMonFrontPicInWindow(u16 species, bool32 isShiny, u32 personality, u8 paletteSlot, u8 windowId); +void LoadMonFrontPicInWindow(enum Species species, bool32 isShiny, u32 personality, u8 paletteSlot, u8 windowId); void LoadTrainerFrontPicInWindow(enum TrainerPicID trainerPicID, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); void ResetAllPicSprites(void); diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 10e3fd0b8..af1a8ad20 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -28,7 +28,7 @@ struct WildPokemon { u8 minLevel; u8 maxLevel; - u16 species; + enum Species species; }; struct WildPokemonInfo @@ -72,7 +72,7 @@ void SeedWildEncounterRng(u16 randVal); void ResetEncounterRateModifiers(void); bool8 TryStandardWildEncounter(u32 currMetatileAttrs); bool8 TryDoDoubleWildBattle(void); -void CreateWildMon(u16 species, u8 level, u8 unownSlot); +void CreateWildMon(enum Species species, u8 level, u8 unownSlot); u16 GetCurrentMapWildMonHeaderId(void); u8 ChooseWildMonIndex_Land(void); u8 ChooseWildMonIndex_WaterRock(void); diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index 3667677cd..2ad6cbcbc 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -142,7 +142,7 @@ static void OakOldManBufferRunCommand(enum BattlerId battler) static void HandleInputChooseAction(enum BattlerId battler) { // Like player, but specifically for Rival in Oak's Lab - u16 itemId = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8); + enum Item itemId = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8); DoBounceEffect(battler, BOUNCE_HEALTHBOX, 7, 1); DoBounceEffect(battler, BOUNCE_MON, 7, 1); diff --git a/src/berry.c b/src/berry.c index 95b2fb461..4aa19f7b7 100644 --- a/src/berry.c +++ b/src/berry.c @@ -15,7 +15,7 @@ #include "constants/event_object_movement.h" #include "constants/items.h" -static u16 BerryTypeToItemId(u16 berry); +static enum Item BerryTypeToItemId(u16 berry); static u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree); static u8 GetNumStagesWateredByBerryTreeId(u8 id); static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water); @@ -28,7 +28,7 @@ static u8 GetWeedingBonusByBerryType(u8); static u8 GetPestsBonusByBerryType(u8); static void SetTreeMutations(u8 id, u8 berry); static u8 GetTreeMutationValue(u8 id); -static u16 GetBerryPestSpecies(u8 berryId); +static enum Species GetBerryPestSpecies(u8 berryId); static void TryForWeeds(struct BerryTree *tree); static void TryForPests(struct BerryTree *tree); static void AddTreeBonus(struct BerryTree *tree, u8 bonus); @@ -1969,7 +1969,7 @@ u8 GetMulchByBerryTreeId(u8 id) return gSaveBlock3Ptr->berryTrees[id].mulch; } -u8 ItemIdToBerryType(u16 item) +u8 ItemIdToBerryType(enum Item item) { u16 berry = item - FIRST_BERRY_INDEX; @@ -1979,9 +1979,9 @@ u8 ItemIdToBerryType(u16 item) return ITEM_TO_BERRY(item); } -static u16 BerryTypeToItemId(u16 berry) +static enum Item BerryTypeToItemId(u16 berry) { - u16 item = berry - 1; + enum Item item = berry - 1; if (item > LAST_BERRY_INDEX - FIRST_BERRY_INDEX) return FIRST_BERRY_INDEX; @@ -2235,12 +2235,15 @@ bool8 ObjectEventInteractionBerryHasWeed(void) bool8 ObjectEventInteractionBerryHasPests(void) { - u16 species; + enum Species species; + if (!OW_BERRY_PESTS || !gSaveBlock3Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].pests) return FALSE; + species = GetBerryPestSpecies(gSaveBlock3Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].berry); if (species == SPECIES_NONE) return FALSE; + CreateScriptedWildMon(species, 14 + Random() % 3, ITEM_NONE); gSaveBlock3Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].pests = FALSE; return TRUE; @@ -2408,7 +2411,7 @@ static void SetTreeMutations(u8 id, u8 berry) #endif } -static u16 GetBerryPestSpecies(u8 berryId) +static enum Species GetBerryPestSpecies(u8 berryId) { #if OW_BERRY_PESTS == TRUE const struct Berry *berry = GetBerryInfo(berryId); diff --git a/src/berry_pouch.c b/src/berry_pouch.c index 683c3fca5..2ace5e161 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -83,7 +83,7 @@ static void BerryPouchInitBgs(void); static bool8 BerryPouchLoadGfx(void); static bool8 AllocateListMenuBuffers(void); static void SetUpListMenuTemplate(void); -static void GetBerryNameAndIndexForMenu(u8 * dest, u16 itemId); +static void GetBerryNameAndIndexForMenu(u8 * dest, enum Item itemId); static void BerryPouchMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void BerryPouchItemPrintFunc(u8 windowId, u32 itemId, u8 y); static void BerryPouchSetArrowCursorAt(u8 y, u8 colorIdx); @@ -706,7 +706,7 @@ static void SetUpListMenuTemplate(void) gMultiuseListMenuTemplate.scrollMultiple = 0; } -static void GetBerryNameAndIndexForMenu(u8 * dest, u16 itemId) +static void GetBerryNameAndIndexForMenu(u8 * dest, enum Item itemId) { StringCopy(gStringVar4, gText_FontSmall); StringAppend(gStringVar4, gText_NumberClear01); @@ -724,7 +724,7 @@ static void CopySelectedListMenuItemName(s16 itemIdx, u8 * dest) StringCopy(dest, &sListMenuStrbuf[itemIdx * 27]); } -static void CreateBerryPouchItemIcon(u16 item, u8 iconSlot) +static void CreateBerryPouchItemIcon(enum Item item, u8 iconSlot) { u8 *spriteIdPtr = &sResources->itemSpriteIds[iconSlot]; diff --git a/src/daycare.c b/src/daycare.c index 650721a18..7d4889000 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -58,16 +58,16 @@ struct EggHatchData u8 windowId; u8 unused_9; u8 unused_A; - u16 species; + enum Species species; u8 textColor[3]; }; // this file's functions static void ClearDaycareMonMail(struct DayCareMail *mail); -static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare); +static void SetInitialEggData(struct Pokemon *mon, enum Species species, struct DayCare *daycare); static void DaycarePrintMonInfo(u8 windowId, u32 daycareSlotId, u8 y); static u8 ModifyBreedingScoreForOvalCharm(u8 score); -static u16 GetEggSpecies(u16 species); +static enum Species GetEggSpecies(enum Species species); static void Task_EggHatch(u8 taskID); static void CB2_EggHatch_0(void); @@ -87,11 +87,11 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 static struct EggHatchData *sEggHatchData; // RAM buffers used to assist with BuildEggMoveset() -EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0}; -EWRAM_DATA static u16 sHatchedEggFatherMoves[MAX_MON_MOVES] = {0}; -EWRAM_DATA static u16 sHatchedEggFinalMoves[MAX_MON_MOVES] = {0}; -EWRAM_DATA static u16 sHatchedEggEggMoves[EGG_MOVES_ARRAY_COUNT] = {0}; -EWRAM_DATA static u16 sHatchedEggMotherMoves[MAX_MON_MOVES] = {0}; +EWRAM_DATA static enum Move sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0}; +EWRAM_DATA static enum Move sHatchedEggFatherMoves[MAX_MON_MOVES] = {0}; +EWRAM_DATA static enum Move sHatchedEggFinalMoves[MAX_MON_MOVES] = {0}; +EWRAM_DATA static enum Move sHatchedEggEggMoves[EGG_MOVES_ARRAY_COUNT] = {0}; +EWRAM_DATA static enum Move sHatchedEggMotherMoves[MAX_MON_MOVES] = {0}; static const struct WindowTemplate sDaycareLevelMenuWindowTemplate = { @@ -134,9 +134,9 @@ static const struct ListMenuTemplate sDaycareListMenuLevelTemplate = }; static const struct { - u16 currSpecies; - u16 item; - u16 babySpecies; + enum Species currSpecies; + enum Item item; + enum Species babySpecies; } sIncenseBabyTable[] = { // Regular offspring, Item, Incense Offspring @@ -479,8 +479,8 @@ static void TransferEggMoves(void) for (i = 0; i < DAYCARE_MON_COUNT; i++) { - u16 moveLearnerSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SPECIES); - u16 eggSpecies = GetEggSpecies(moveLearnerSpecies); + enum Species moveLearnerSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SPECIES); + enum Species eggSpecies = GetEggSpecies(moveLearnerSpecies); if (!GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SANITY_HAS_SPECIES)) continue; @@ -614,9 +614,9 @@ static void ApplyDaycareExperience(struct Pokemon *mon) CalculateMonStats(mon); } -static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon) +static enum Species TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon) { - u16 species; + enum Species species; u32 experience; struct Pokemon pokemon; @@ -645,14 +645,14 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon) return species; } -static u16 TakeSelectedPokemonMonFromDaycareShiftSlots(struct DayCare *daycare, u8 slotId) +static enum Species TakeSelectedPokemonMonFromDaycareShiftSlots(struct DayCare *daycare, u8 slotId) { - u16 species = TakeSelectedPokemonFromDaycare(&daycare->mons[slotId]); + enum Species species = TakeSelectedPokemonFromDaycare(&daycare->mons[slotId]); ShiftDaycareSlots(daycare); return species; } -u16 TakePokemonFromDaycare(void) +enum Species TakePokemonFromDaycare(void) { return TakeSelectedPokemonMonFromDaycareShiftSlots(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); } @@ -755,7 +755,7 @@ static void UNUSED ClearAllDaycareData(struct DayCare *daycare) // Determines what the species of an Egg would be based on the given species. // It determines this by working backwards through the evolution chain of the // given species. -static u16 GetEggSpecies(u16 species) +static enum Species GetEggSpecies(enum Species species) { int i, j, k; bool8 found; @@ -1032,7 +1032,7 @@ static void InheritAbility(struct Pokemon *egg, struct BoxPokemon *father, struc u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves) { u16 numEggMoves; - u16 species; + enum Species species; u32 i; const u16 *eggMoveLearnset; @@ -1049,7 +1049,7 @@ u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves) return numEggMoves; } -u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves) +u8 GetEggMovesBySpecies(enum Species species, u16 *eggMoves) { u16 numEggMoves; const u16 *eggMoveLearnset; @@ -1145,7 +1145,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++) { - u16 moveId = ItemIdToBattleMoveId(ITEM_TM01 + j); + enum Move moveId = ItemIdToBattleMoveId(ITEM_TM01 + j); if (sHatchedEggFatherMoves[i] == moveId && CanLearnTeachableMove(GetMonData(egg, MON_DATA_SPECIES_OR_EGG), moveId)) { if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES) @@ -1194,14 +1194,12 @@ void RejectEggFromDayCare(void) RemoveEggFromDayCare(&gSaveBlock1Ptr->daycare); } -static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare) +static void AlterEggSpeciesWithIncenseItem(enum Species *species, struct DayCare *daycare) { - u32 i; - u16 motherItem, fatherItem; - motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM); - fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM); + enum Item motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM); + enum Item fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM); - for (i = 0; i < ARRAY_COUNT(sIncenseBabyTable); i++) + for (u32 i = 0; i < ARRAY_COUNT(sIncenseBabyTable); i++) { if (sIncenseBabyTable[i].babySpecies == *species && motherItem != sIncenseBabyTable[i].item && fatherItem != sIncenseBabyTable[i].item) { @@ -1212,9 +1210,9 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare } static const struct { - u16 offspring; - u16 item; - u16 move; + enum Species offspring; + enum Item item; + enum Move move; } sBreedingSpecialMoveItemTable[] = { // Offspring, Item, Move @@ -1223,11 +1221,11 @@ static const struct { static void GiveMoveIfItem(struct Pokemon *mon, struct DayCare *daycare) { - u16 i, species = GetMonData(mon, MON_DATA_SPECIES); - u32 motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM); - u32 fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); + enum Item motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM); + enum Item fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM); - for (i = 0; i < ARRAY_COUNT(sBreedingSpecialMoveItemTable); i++) + for (u32 i = 0; i < ARRAY_COUNT(sBreedingSpecialMoveItemTable); i++) { if (sBreedingSpecialMoveItemTable[i].offspring == species && (motherItem == sBreedingSpecialMoveItemTable[i].item || @@ -1241,13 +1239,13 @@ static void GiveMoveIfItem(struct Pokemon *mon, struct DayCare *daycare) STATIC_ASSERT(P_SCATTERBUG_LINE_FORM_BREED == SPECIES_SCATTERBUG_ICY_SNOW || (P_SCATTERBUG_LINE_FORM_BREED >= SPECIES_SCATTERBUG_POLAR && P_SCATTERBUG_LINE_FORM_BREED <= SPECIES_SCATTERBUG_POKEBALL), ScatterbugLineFormBreedMustBeAValidScatterbugForm); -static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots) +static enum Species DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots) { u32 i; - u32 species[DAYCARE_MON_COUNT]; - u32 eggSpecies, parentSpecies; + enum Species species[DAYCARE_MON_COUNT]; + enum Species eggSpecies, parentSpecies; + enum Species motherEggSpecies, fatherEggSpecies; bool32 hasMotherEverstone, hasFatherEverstone, motherIsForeign, fatherIsForeign; - bool32 motherEggSpecies, fatherEggSpecies; u32 currentRegion = GetCurrentRegion(); for (i = 0; i < DAYCARE_MON_COUNT; i++) @@ -1323,7 +1321,7 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent static void _GiveEggFromDaycare(struct DayCare *daycare) { struct Pokemon egg; - u16 species; + enum Species species; u8 parentSlots[DAYCARE_MON_COUNT] = {0}; bool8 isEgg; @@ -1350,7 +1348,7 @@ static void _GiveEggFromDaycare(struct DayCare *daycare) RemoveEggFromDayCare(daycare); } -void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) +void CreateEgg(struct Pokemon *mon, enum Species species, bool8 setHotSpringsLocation) { u8 metLevel; enum PokeBall ball; @@ -1377,7 +1375,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) SetMonData(mon, MON_DATA_IS_EGG, &isEgg); } -static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare) +static void SetInitialEggData(struct Pokemon *mon, enum Species species, struct DayCare *daycare) { u32 personality; u16 ball; @@ -1543,7 +1541,7 @@ u8 GetDaycareCompatibilityScore(struct DayCare *daycare) { u32 i; u16 eggGroups[DAYCARE_MON_COUNT][EGG_GROUPS_PER_MON]; - u16 species[DAYCARE_MON_COUNT]; + enum Species species[DAYCARE_MON_COUNT]; u32 trainerIds[DAYCARE_MON_COUNT]; u32 genders[DAYCARE_MON_COUNT]; @@ -1860,7 +1858,7 @@ u16 TakePokemonFromRoute5Daycare(void) static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) { - u16 species; + enum Species species; u32 personality, pokerus; u8 i, friendship, language, gameMet, markings, isModernFatefulEncounter, ball; u16 moves[MAX_MON_MOVES]; @@ -1906,8 +1904,9 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) static void AddHatchedMonToParty(u8 id) { - u8 isEgg = 0x46; // ? - u16 species, natDexNum; + bool8 isEgg = 0x46; // ? + enum Species species; + enum NationalDexOrder natDexNum; u8 name[POKEMON_NAME_LENGTH + 1]; u16 metLevel; u8 metLocation; @@ -1965,46 +1964,47 @@ bool8 DaycareMonReceivedMail(void) return BufferDayCareMonReceivedMail(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); } -// extern const struct CompressedSpriteSheet gMonFrontPicTable[]; - -static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16 *speciesLoc) +static u8 EggHatchCreateMonSprite(bool32 useAlt, u8 state, u8 partyId, enum Species *speciesLoc) { - u8 r4 = 0; - u8 spriteID = 0; // r7 - struct Pokemon* mon = NULL; // r5 + enum BattlerPosition position = 0; + u8 spriteId = 0; + struct Pokemon *mon = NULL; - if (a0 == 0) + if (useAlt == FALSE) { - mon = &gPlayerParty[pokeID]; - r4 = 1; + mon = &gPlayerParty[partyId]; + position = B_POSITION_OPPONENT_LEFT; } - if (a0 == 1) + if (useAlt == TRUE) { - mon = &gPlayerParty[pokeID]; - r4 = 3; + mon = &gPlayerParty[partyId]; + position = B_POSITION_OPPONENT_RIGHT; } - switch (switchID) + + switch (state) { case 0: { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); - HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->spritesGfx[(a0 * 2) + 1], species, pid); + + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->spritesGfx[(useAlt * 2) + 1], species, pid); LoadSpritePaletteWithTag(GetMonFrontSpritePal(mon), species); *speciesLoc = species; - } break; + } case 1: { - u16 species = GetMonData(mon, MON_DATA_SPECIES); - SetMultiuseSpriteTemplateToPokemon(species, r4); - spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 70, 6); - gSprites[spriteID].invisible = TRUE; - gSprites[spriteID].callback = SpriteCallbackDummy; + enum Species species = GetMonData(mon, MON_DATA_SPECIES); + + SetMultiuseSpriteTemplateToPokemon(species, position); + spriteId = CreateSprite(&gMultiuseSpriteTemplate, 120, 70, 6); + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].callback = SpriteCallbackDummy; break; } } - return spriteID; + return spriteId; } static void VBlankCB_EggHatch(void) @@ -2093,11 +2093,11 @@ static void CB2_EggHatch_0(void) gMain.state++; break; case 5: - EggHatchCreateMonSprite(0, 0, sEggHatchData->eggPartyID, &sEggHatchData->species); + EggHatchCreateMonSprite(FALSE, 0, sEggHatchData->eggPartyID, &sEggHatchData->species); gMain.state++; break; case 6: - sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(0, 1, sEggHatchData->eggPartyID, &sEggHatchData->species); + sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(FALSE, 1, sEggHatchData->eggPartyID, &sEggHatchData->species); gMain.state++; break; case 7: @@ -2148,7 +2148,7 @@ static void Task_EggHatchPlayBGM(u8 taskID) static void CB2_EggHatch_1(void) { - u16 species; + enum Species species; u8 gender; u32 personality; @@ -2309,7 +2309,7 @@ static void SpriteCB_Egg_2(struct Sprite* sprite) { if (++sprite->data[0] > 38) { - u16 species; + enum Species species; sprite->callback = SpriteCB_Egg_3; sprite->data[0] = 0; diff --git a/src/debug.c b/src/debug.c index b766841d5..24aa97aef 100644 --- a/src/debug.c +++ b/src/debug.c @@ -209,7 +209,7 @@ struct DebugMenuOption struct DebugMonData { - u16 species; + enum Species species; u8 level; bool8 isShiny:1; u8 nature:5; @@ -2401,7 +2401,7 @@ static void DebugAction_FlagsVars_PokedexFlags_All(u8 taskId) static void DebugAction_FlagsVars_PokedexFlags_Reset(u8 taskId) { int boxId, boxPosition, partyId; - u16 species; + enum Species species; // Reset Pokedex to emtpy memset(&gSaveBlock1Ptr->dexCaught, 0, sizeof(gSaveBlock1Ptr->dexCaught)); @@ -3480,7 +3480,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu u8 iv_val; u8 EVs[NUM_STATS]; u8 ev_val; - u16 species = sDebugMonData->species; + enum Species species = sDebugMonData->species; u8 level = sDebugMonData->level; bool8 isShiny = sDebugMonData->isShiny; u8 nature = sDebugMonData->nature; @@ -3723,7 +3723,7 @@ static void DebugAction_PCBag_Fill_PCBoxes_Fast(u8 taskId) //Credit: Sierraffini { int boxId, boxPosition; struct BoxPokemon boxMon; - u16 species = SPECIES_BULBASAUR; + enum Species species = SPECIES_BULBASAUR; u8 speciesName[POKEMON_NAME_LENGTH + 1]; CreateBoxMon(&boxMon, species, 100, Random32(), OTID_STRUCT_PLAYER_ID); diff --git a/src/decompress.c b/src/decompress.c index 784bdc377..fbe73d031 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -244,12 +244,12 @@ u32 LoadCompressedSpriteSheetByTemplate(const struct SpriteTemplate *template, s } -void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality) +void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality) { LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, FALSE); } -void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, s32 species, u32 personality, bool32 isEgg) +void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, enum Species species, u32 personality, bool32 isEgg) { LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, isEgg); } @@ -1124,12 +1124,12 @@ static bool32 isModeSymDelta(enum CompressionMode mode) return FALSE; } -void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic) +void LoadSpecialPokePic(void *dest, enum Species species, u32 personality, bool8 isFrontPic) { LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, FALSE); } -void LoadSpecialPokePicIsEgg(void *dest, s32 species, u32 personality, bool8 isFrontPic, bool32 isEgg) +void LoadSpecialPokePicIsEgg(void *dest, enum Species species, u32 personality, bool8 isFrontPic, bool32 isEgg) { species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) diff --git a/src/dexnav.c b/src/dexnav.c index 8d2ef8b1b..f702763cb 100644 --- a/src/dexnav.c +++ b/src/dexnav.c @@ -87,7 +87,7 @@ enum Statuses struct DexNavSearch { - u16 species; + enum Species species; u16 moves[MAX_MON_MOVES]; u16 heldItem; u8 abilityNum; @@ -144,13 +144,13 @@ static void Task_DexNavMain(u8 taskId); static void PrintCurrentSpeciesInfo(void); // SEARCH static bool8 TryStartHiddenMonFieldEffect(u8 environment, u8 xSize, u8 ySize, bool8 smallScan); -static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel, u16* moveDst); -static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel); -static u8 DexNavGetAbilityNum(u16 species, u8 searchLevel); +static void DexNavGenerateMoveset(enum Species species, u8 searchLevel, u8 encounterLevel, u16* moveDst); +static u16 DexNavGenerateHeldItem(enum Species species, u8 searchLevel); +static u8 DexNavGetAbilityNum(enum Species species, u8 searchLevel); static u8 DexNavGeneratePotential(u8 searchLevel); -static u8 DexNavTryGenerateMonLevel(u16 species, u8 environment); -static u8 GetEncounterLevelFromMapData(u16 species, u8 environment); -static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityNum, u16 item, u16* moves); +static u8 DexNavTryGenerateMonLevel(enum Species species, u8 environment); +static u8 GetEncounterLevelFromMapData(enum Species species, u8 environment); +static void CreateDexNavWildMon(enum Species species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move* moves); static u8 GetPlayerDistance(s16 x, s16 y); static u8 DexNavPickTile(u8 environment, u8 xSize, u8 ySize, bool8 smallScan); static void DexNavProximityUpdate(void); @@ -439,7 +439,7 @@ static s16 GetSearchWindowY(void) } #define SPECIES_ICON_X 28 -static void DrawDexNavSearchMonIcon(u16 species, u8 *dst, bool8 owned) +static void DrawDexNavSearchMonIcon(enum Species species, u8 *dst, bool8 owned) { u8 spriteId; @@ -478,7 +478,7 @@ static void AddSearchWindow(u8 width) #define SEARCH_ARROW_X (WINDOW_MOVE_NAME_X + 90) #define SEARCH_ARROW_Y 0 -static void AddSearchWindowText(u16 species, u8 proximity, u8 searchLevel, bool8 hidden) +static void AddSearchWindowText(enum Species species, u8 proximity, u8 searchLevel, bool8 hidden) { u8 windowId = sDexNavSearchDataPtr->windowId; @@ -540,7 +540,7 @@ static void AddSearchWindowText(u16 species, u8 proximity, u8 searchLevel, bool8 #define SEARCH_WINDOW_WIDTH 28 -static void DrawSearchWindow(u16 species, u8 potential, bool8 hidden) +static void DrawSearchWindow(enum Species species, u8 potential, bool8 hidden) { u8 searchLevel = sDexNavSearchDataPtr->searchLevel; @@ -829,7 +829,7 @@ static void Task_SetUpDexNavSearch(u8 taskId) { struct Task *task = &gTasks[taskId]; - u16 species = sDexNavSearchDataPtr->species; + enum Species species = sDexNavSearchDataPtr->species; u8 searchLevel = GetSearchLevel(species); // init sprites @@ -879,7 +879,7 @@ static void DexNavSearchBail(u8 taskId, const u8 *script) static void Task_InitDexNavSearch(u8 taskId) { struct Task *task = &gTasks[taskId]; - u16 species = task->tSpecies; + enum Species species = (enum Species)task->tSpecies; u8 environment = task->tEnvironment; sDexNavSearchDataPtr = AllocZeroed(sizeof(struct DexNavSearch)); @@ -966,7 +966,7 @@ static void DexNavUpdateDirectionArrow(void) static void DexNavDrawIcons(void) { - u16 species = sDexNavSearchDataPtr->species; + enum Species species = sDexNavSearchDataPtr->species; DrawSearchWindow(species, sDexNavSearchDataPtr->potential, FALSE); DrawDexNavSearchMonIcon(species, &sDexNavSearchDataPtr->iconSpriteId, GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)); @@ -1024,7 +1024,7 @@ static u8 GetMovementProximityBySearchLevel(void) static void Task_RevealHiddenMon(u8 taskId) { struct Task *task = &gTasks[taskId]; - u16 species = sDexNavSearchDataPtr->species; + enum Species species = sDexNavSearchDataPtr->species; // remove owned icon if it exists if (sDexNavSearchDataPtr->ownedIconSpriteId != MAX_SPRITES) @@ -1213,7 +1213,7 @@ static void DexNavUpdateSearchWindow(u8 proximity, u8 searchLevel) ////////////////////////////// //// DEXNAV MON GENERATOR //// ////////////////////////////// -static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityNum, u16 item, u16* moves) +static void CreateDexNavWildMon(enum Species species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move* moves) { struct Pokemon* mon = &gEnemyParty[0]; u8 iv[3] = {NUM_STATS}; @@ -1253,7 +1253,7 @@ static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityN // gets a random level of the species based on map data. //if it was a hidden encounter, updates the environment it is to be found from the wildheader encounterRate -static u8 DexNavTryGenerateMonLevel(u16 species, u8 environment) +static u8 DexNavTryGenerateMonLevel(enum Species species, u8 environment) { u8 levelBase = GetEncounterLevelFromMapData(species, environment); u8 levelBonus = gSaveBlock3Ptr->dexNavChain / 5; @@ -1270,7 +1270,7 @@ static u8 DexNavTryGenerateMonLevel(u16 species, u8 environment) return levelBase + levelBonus; } -static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel, u16* moveDst) +static void DexNavGenerateMoveset(enum Species species, u8 searchLevel, u8 encounterLevel, u16* moveDst) { bool8 genMove = FALSE; u16 randVal = Random() % 100; @@ -1325,12 +1325,12 @@ static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel } } -static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel) +static u16 DexNavGenerateHeldItem(enum Species species, u8 searchLevel) { u16 randVal = Random() % 100; u8 searchLevelInfluence = searchLevel >> 1; - u16 item1 = gSpeciesInfo[species].itemCommon; - u16 item2 = gSpeciesInfo[species].itemRare; + enum Item item1 = gSpeciesInfo[species].itemCommon; + enum Item item2 = gSpeciesInfo[species].itemRare; // if both are the same, 100% to hold if (item1 == item2) @@ -1353,7 +1353,7 @@ static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel) return ITEM_NONE; } -static u8 DexNavGetAbilityNum(u16 species, u8 searchLevel) +static u8 DexNavGetAbilityNum(enum Species species, u8 searchLevel) { bool8 genAbility = FALSE; u16 randVal = Random() % 100; @@ -1514,7 +1514,7 @@ static u8 DexNavGeneratePotential(u8 searchLevel) return 0; // No potential } -static u8 GetEncounterLevelFromMapData(u16 species, u8 environment) +static u8 GetEncounterLevelFromMapData(enum Species species, u8 environment) { u16 headerId = GetCurrentMapWildMonHeaderId(); enum Season season; @@ -1770,7 +1770,7 @@ static bool8 CapturedAllLandMons(u16 headerId) static bool8 CapturedAllWaterMons(u16 headerId) { u32 i; - u16 species; + enum Species species; u8 count = 0; enum Season season; enum TimeOfDay timeOfDay; @@ -1804,7 +1804,7 @@ static bool8 CapturedAllWaterMons(u16 headerId) static bool8 CapturedAllHiddenMons(u16 headerId) { u32 i; - u16 species; + enum Species species; u8 count = 0; enum Season season; enum TimeOfDay timeOfDay; @@ -1910,29 +1910,28 @@ static void DexNavFadeAndExit(void) SetMainCallback2(DexNav_MainCB); } -static bool8 SpeciesInArray(u16 species, u8 section) +static bool8 SpeciesInArray(enum Species species, u8 section) { - u32 i; u16 dexNum = SpeciesToNationalPokedexNum(species); switch (section) { case 0: //land - for (i = 0; i < LAND_WILD_COUNT; i++) + for (u32 i = 0; i < LAND_WILD_COUNT; i++) { if (SpeciesToNationalPokedexNum(sDexNavUiDataPtr->landSpecies[i]) == dexNum) return TRUE; } break; case 1: //water - for (i = 0; i < WATER_WILD_COUNT; i++) + for (u32 i = 0; i < WATER_WILD_COUNT; i++) { if (SpeciesToNationalPokedexNum(sDexNavUiDataPtr->waterSpecies[i]) == dexNum) return TRUE; } break; case 2: //hidden - for (i = 0; i < HIDDEN_WILD_COUNT; i++) + for (u32 i = 0; i < HIDDEN_WILD_COUNT; i++) { if (SpeciesToNationalPokedexNum(sDexNavUiDataPtr->hiddenSpecies[i]) == dexNum) return TRUE; @@ -1951,7 +1950,7 @@ static void DexNavLoadEncounterData(void) u8 grassIndex = 0; u8 waterIndex = 0; u8 hiddenIndex = 0; - u16 species; + enum Species species; u32 i; u16 headerId = GetCurrentMapWildMonHeaderId(); enum Season season; @@ -2003,7 +2002,7 @@ static void DexNavLoadEncounterData(void) } } -static void TryDrawIconInSlot(u16 species, s16 x, s16 y) +static void TryDrawIconInSlot(enum Species species, s16 x, s16 y) { if (species == SPECIES_NONE || species > NUM_SPECIES) CreateNoDataIcon(x, y); //'X' in slot @@ -2016,11 +2015,10 @@ static void TryDrawIconInSlot(u16 species, s16 x, s16 y) static void DrawSpeciesIcons(void) { s16 x, y; - u32 i; - u16 species; + enum Species species; LoadCompressedSpriteSheetUsingHeap(&sNoDataIconSpriteSheet); - for (i = 0; i < LAND_WILD_COUNT; i++) + for (u32 i = 0; i < LAND_WILD_COUNT; i++) { species = sDexNavUiDataPtr->landSpecies[i]; x = ROW_LAND_ICON_X + (24 * (i % COL_LAND_COUNT)); @@ -2028,7 +2026,7 @@ static void DrawSpeciesIcons(void) TryDrawIconInSlot(species, x, y); } - for (i = 0; i < WATER_WILD_COUNT; i++) + for (u32 i = 0; i < WATER_WILD_COUNT; i++) { species = sDexNavUiDataPtr->waterSpecies[i]; x = ROW_WATER_ICON_X + 24 * i; @@ -2036,7 +2034,7 @@ static void DrawSpeciesIcons(void) TryDrawIconInSlot(species, x, y); } - for (i = 0; i < HIDDEN_WILD_COUNT; i++) + for (u32 i = 0; i < HIDDEN_WILD_COUNT; i++) { species = sDexNavUiDataPtr->hiddenSpecies[i]; x = ROW_HIDDEN_ICON_X + 24 * i; @@ -2050,9 +2048,9 @@ static void DrawSpeciesIcons(void) } } -static u16 DexNavGetSpecies(void) +static enum Species DexNavGetSpecies(void) { - u16 species; + enum Species species; switch (sDexNavUiDataPtr->cursorRow) { @@ -2126,7 +2124,7 @@ static void SetTypeIconPosAndPal(u8 typeId, u8 x, u8 y, u8 spriteArrayId) static void PrintCurrentSpeciesInfo(void) { - u16 species = DexNavGetSpecies(); + enum Species species = DexNavGetSpecies(); u16 dexNum = SpeciesToNationalPokedexNum(species); u8 type1, type2; @@ -2205,7 +2203,7 @@ static void PrintMapName(void) CopyWindowToVram(WINDOW_REGISTERED, 3); } -static void PrintSearchableSpecies(u16 species) +static void PrintSearchableSpecies(enum Species species) { FillWindowPixelBuffer(WINDOW_REGISTERED, PIXEL_FILL(TEXT_COLOR_TRANSPARENT)); PutWindowTilemap(WINDOW_REGISTERED); @@ -2371,7 +2369,7 @@ static void Task_DexNavWaitFadeIn(u8 taskId) static void Task_DexNavMain(u8 taskId) { struct Task *task = &gTasks[taskId]; - u16 species; + enum Species species; if (IsSEPlaying()) return; @@ -2536,7 +2534,7 @@ bool8 TryFindHiddenPokemon(void) // hidden pokemon u16 headerId = GetCurrentMapWildMonHeaderId(); u8 index; - u16 species; + enum Species species; u8 environment; u8 taskId; enum Season season; @@ -2669,7 +2667,7 @@ static void DrawHiddenSearchWindow(u8 width) static void DexNavDrawHiddenIcons(void) { - u16 species = sDexNavSearchDataPtr->species; + enum Species species = sDexNavSearchDataPtr->species; DrawHiddenSearchWindow(12); DrawSearchIcon(); diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index d7ec9448c..a89fddf84 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -2700,7 +2700,7 @@ static void ResetPickState(void) sGame->players[sGame->multiplayerId].comm.pickState = PICK_NONE; } -static u16 GetPrizeItemId(void) +static enum Item GetPrizeItemId(void) { return sGame->berryResults[sGame->multiplayerId][BERRY_PRIZE] + FIRST_BERRY_INDEX; } @@ -2857,7 +2857,7 @@ enum { static u8 TryGivePrize(void) { u8 multiplayerId = sGame->multiplayerId; - u16 itemId = GetPrizeItemId(); + enum Item itemId = GetPrizeItemId(); if (GetScore(multiplayerId) != GetHighestScore()) return NO_PRIZE; diff --git a/src/easy_chat.c b/src/easy_chat.c index a2f1f889a..7b9d8a332 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -34,7 +34,7 @@ static void PopulateAlphabeticalGroups(void); static u16 GetUnlockedWordsInECGroup(u16); static u16 GetUnlockedWordsInAlphabeticalGroup(u16); static bool8 UnlockedECMonOrMove(u16, u8); -static bool32 EC_IsDeoxys(u16 species); +static bool32 EC_IsDeoxys(enum Species species); static bool8 IsWordUnlocked(u16 word); #include "data/easy_chat/easy_chat_groups.h" @@ -81,8 +81,11 @@ static const u16 sDefaultBattleStartWords[] = { EC_WORD_EXCL, }; -static const u16 sDeoxysValue[] = { +static const enum Species sDeoxysValue[] = { SPECIES_DEOXYS, + SPECIES_DEOXYS_ATTACK, + SPECIES_DEOXYS_DEFENSE, + SPECIES_DEOXYS_SPEED, }; static bool8 IsECGroupUnlocked(u8 groupId) @@ -623,7 +626,7 @@ static bool8 UnlockedECMonOrMove(u16 wordIndex, u8 groupId) } } -static bool32 EC_IsDeoxys(u16 species) +static bool32 EC_IsDeoxys(enum Species species) { u32 i; for (i = 0; i < ARRAY_COUNT(sDeoxysValue); i++) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 4fa99db82..5115e5777 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -115,7 +115,7 @@ static u8 MovementType_RaiseHandAndJump_Callback(struct ObjectEvent *, struct Sp static u8 MovementType_RaiseHandAndSwim_Callback(struct ObjectEvent *, struct Sprite *); static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *, struct Sprite *); static void VirtualObject_UpdateAnim(struct Sprite *sprite); -static u32 LoadDynamicFollowerPalette(u32 species, bool32 shiny, bool32 female); +static u32 LoadDynamicFollowerPalette(enum Species species, bool32 shiny, bool32 female); static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphicsId, u16 movementType, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); static u16 GetGraphicsIdForMon(u32 species, bool32 shiny, bool32 female); @@ -1960,7 +1960,7 @@ static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphics // also can write palette tag to the template static u32 LoadDynamicFollowerPaletteFromGraphicsId(u16 graphicsId, struct SpriteTemplate *template) { - u16 species = graphicsId & OBJ_EVENT_MON_SPECIES_MASK; + enum Species species = graphicsId & OBJ_EVENT_MON_SPECIES_MASK; bool32 shiny = graphicsId & OBJ_EVENT_MON_SHINY; bool32 female = graphicsId & OBJ_EVENT_MON_FEMALE; u8 paletteNum = LoadDynamicFollowerPalette(species, shiny, female); @@ -2137,7 +2137,7 @@ const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32 } // Find, or load, the palette for the specified pokemon info -static u32 LoadDynamicFollowerPalette(u32 species, bool32 shiny, bool32 female) +static u32 LoadDynamicFollowerPalette(enum Species species, bool32 shiny, bool32 female) { u32 paletteNum; // Use standalone palette, unless entry is OOB or NULL (fallback to front-sprite-based) @@ -2271,7 +2271,7 @@ static void RefreshFollowerGraphics(struct ObjectEvent *objEvent) } } -u16 GetOverworldWeatherSpecies(u16 species) +enum Species GetOverworldWeatherSpecies(enum Species species) { u32 i; u32 weather = GetCurrentWeather(); @@ -2400,7 +2400,7 @@ bool32 IsFollowerVisible(void) || MetatileBehavior_IsForcedMovementTile(gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior)); } -static bool8 SpeciesHasType(u16 species, u8 type) +static bool8 SpeciesHasType(enum Species species, enum Type type) { return gSpeciesInfo[species].types[0] == type || gSpeciesInfo[species].types[1] == type; } diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index d8180af24..2480b0cf3 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -386,7 +386,7 @@ static void EvoTask_PostEvoSparklesSet1Teardown(u8 taskId) DestroyTask(taskId); } -u8 EvolutionSparkles_SprayAndFlash(u16 species) +u8 EvolutionSparkles_SprayAndFlash(enum Species species) { u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2Init, 0); gTasks[taskId].data[2] = species; @@ -437,7 +437,7 @@ static void EvoTask_PostEvoSparklesSet2Teardown(u8 taskId) DestroyTask(taskId); } -u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species) +u8 EvolutionSparkles_SprayAndFlash_Trade(enum Species species) { u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2TradeInit, 0); gTasks[taskId].data[2] = species; diff --git a/src/evolution_scene.c b/src/evolution_scene.c index d89770d5a..ddf454fc6 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -1004,7 +1004,7 @@ static void Task_EvolutionScene(u8 taskId) else { // Selected move to forget - u16 move = GetMonData(mon, var + MON_DATA_MOVE1); + enum Move move = GetMonData(mon, var + MON_DATA_MOVE1); if (CannotForgetMove(move)) { // Can't forget HMs @@ -1403,7 +1403,7 @@ static void Task_TradeEvolutionScene(u8 taskId) else { // Selected move to forget - u16 move = GetMonData(mon, var + MON_DATA_MOVE1); + enum Move move = GetMonData(mon, var + MON_DATA_MOVE1); if (CannotForgetMove(move)) { // Can't forget HMs diff --git a/src/field_effect.c b/src/field_effect.c index f1e9d8a95..21b926d09 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -819,9 +819,10 @@ bool8 FieldEffectActiveListContains(enum FieldEffect fldeff) return FALSE; } -u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) +u8 CreateMonSprite_PicBox(enum Species species, s16 x, s16 y, u8 subpriority) { u16 spriteId = CreateMonFrontPicSprite(species, FALSE, 0x8000, x, y, 0, species); + PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10); if (spriteId == 0xFFFF) return MAX_SPRITES; @@ -829,7 +830,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) return spriteId; } -static u8 CreateMonSprite_FieldMove(u16 species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 subpriority) +static u8 CreateMonSprite_FieldMove(enum Species species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 subpriority) { u16 spriteId = CreateMonFrontPicSprite(species, isShiny, personality, x, y, 0, species); PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10); @@ -3030,7 +3031,7 @@ u32 FldEff_FieldMoveShowMonInit(void) if (gFieldEffectArguments[0] & SHOW_MON_NOT_IN_PARTY) { - u16 species = gFieldEffectArguments[0] & (~SHOW_MON_NOT_IN_PARTY); + u32 species = gFieldEffectArguments[0] & (~SHOW_MON_NOT_IN_PARTY); gFieldEffectArguments[0] = species; gFieldEffectArguments[1] = FALSE; diff --git a/src/field_move.c b/src/field_move.c index 5bafab74f..181dfa255 100644 --- a/src/field_move.c +++ b/src/field_move.c @@ -187,7 +187,7 @@ const struct FieldMoveInfo gFieldMovesInfo[FIELD_MOVE_COUNT] = }; -u16 FieldMove_GetDefaultSpecies(enum FieldMove fieldMove) +enum Species FieldMove_GetDefaultSpecies(enum FieldMove fieldMove) { if (fieldMove >= FIELD_MOVE_COUNT) return SPECIES_NONE; diff --git a/src/field_poison.c b/src/field_poison.c index 6a917e1ba..e594f51bf 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -18,10 +18,9 @@ static bool32 IsMonValidSpecies(struct Pokemon *pokemon) { - u16 species = GetMonData(pokemon, MON_DATA_SPECIES_OR_EGG); - if (species == SPECIES_NONE || species == SPECIES_EGG) - return FALSE; - return TRUE; + enum Species species = GetMonData(pokemon, MON_DATA_SPECIES_OR_EGG); + + return species != SPECIES_NONE && species != SPECIES_EGG; } static bool32 AllMonsFainted(void) diff --git a/src/field_specials.c b/src/field_specials.c index 684449d7c..0b4dfcad3 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -88,7 +88,7 @@ static void Task_AnimatePcTurnOn(u8 taskId); static void PcTurnOnUpdateMetatileId(bool16 flag); static void Task_ShakeScreen(u8 taskId); static void Task_EndScreenShake(u8 taskId); -static u16 SampleResortGorgeousMon(void); +static enum Species SampleResortGorgeousMon(void); static u16 SampleResortGorgeousReward(void); static void Task_ElevatorShake(u8 taskId); static void AnimateElevatorWindowView(u16 nfloors, bool8 direction); @@ -102,7 +102,7 @@ static void Task_SuspendListMenu(u8 taskId); static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId); static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId); static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId); -static u16 GetStarterSpeciesById(u16 starterIdx); +static enum Species GetStarterSpeciesById(u16 starterIdx); static void ChangeBoxPokemonNickname_CB(void); static void ChangePokemonNickname_CB(void); static void Task_RunPokemonLeagueLightingEffect(u8 taskId); @@ -387,16 +387,13 @@ bool8 PlayerHasGrassPokemonInParty(void) { u8 i; struct Pokemon * pokemon; - u16 species; for (i = 0; i < PARTY_SIZE; i++) { pokemon = &gPlayerParty[i]; - if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) - && !GetMonData(pokemon, MON_DATA_IS_EGG) - ) + if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(pokemon, MON_DATA_IS_EGG)) { - species = GetMonData(pokemon, MON_DATA_SPECIES); + enum Species species = GetMonData(pokemon, MON_DATA_SPECIES); if (gSpeciesInfo[species].types[0] == TYPE_GRASS || gSpeciesInfo[species].types[1] == TYPE_GRASS) return TRUE; } @@ -646,7 +643,7 @@ bool8 AreLeadMonEVsMaxedOut(void) bool8 IsStarterFirstStageInParty(void) { - u16 species = GetStarterSpeciesById(VarGet(VAR_STARTER_MON)); + enum Species species = GetStarterSpeciesById(VarGet(VAR_STARTER_MON)); u8 partyCount = CalculatePlayerPartyCount(); u8 i; for (i = 0; i < partyCount; i++) @@ -907,11 +904,11 @@ void SampleResortGorgeousMonAndReward(void) StringCopy(gStringVar1, gSpeciesInfo[VarGet(VAR_RESORT_GORGEOUS_REQUESTED_MON)].speciesName); } -static u16 SampleResortGorgeousMon(void) +static enum Species SampleResortGorgeousMon(void) { - u16 i; - u16 species; - for (i = 0; i < 100; i++) + enum Species species; + + for (u16 i = 0; i < 100; i++) { species = (Random() % (NUM_SPECIES - 1)) + 1; if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == TRUE) @@ -1730,20 +1727,20 @@ void ForcePlayerToStartSurfing(void) SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_SURFING); } -static const u16 sStarterSpecies[] = { +static const enum Species sStarterSpecies[] = { SPECIES_BULBASAUR, SPECIES_SQUIRTLE, SPECIES_CHARMANDER }; -static u16 GetStarterSpeciesById(u16 idx) +static enum Species GetStarterSpeciesById(u16 idx) { if (idx >= ARRAY_COUNT(sStarterSpecies)) idx = 0; return sStarterSpecies[idx]; } -u16 GetStarterSpecies(void) +enum Species GetStarterSpecies(void) { return GetStarterSpeciesById(VarGet(VAR_STARTER_MON)); } @@ -1866,16 +1863,15 @@ bool8 NameRaterWasNicknameChanged(void) void ChangeBoxPokemonNickname(void) { struct BoxPokemon * pokemon = GetBoxedMonPtr(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos); - u16 species; + enum Species species; u8 gender; u32 personality; - GetBoxMonData(pokemon, MON_DATA_NICKNAME, gStringVar3); GetBoxMonData(pokemon, MON_DATA_NICKNAME, gStringVar2); - species = GetBoxMonData(pokemon, MON_DATA_SPECIES, NULL); + species = GetBoxMonData(pokemon, MON_DATA_SPECIES); gender = GetBoxMonGender(pokemon); - personality = GetBoxMonData(pokemon, MON_DATA_PERSONALITY, NULL); + personality = GetBoxMonData(pokemon, MON_DATA_PERSONALITY); DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, species, gender, personality, ChangeBoxPokemonNickname_CB); } @@ -1887,15 +1883,15 @@ static void ChangeBoxPokemonNickname_CB(void) void ChangePokemonNickname(void) { - u16 species; + enum Species species; u8 gender; u32 personality; GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); - species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL); + species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES); gender = GetMonGender(&gPlayerParty[gSpecialVar_0x8004]); - personality = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL); + personality = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY); DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, species, gender, personality, ChangePokemonNickname_CB); } @@ -1946,18 +1942,21 @@ u8 GetUnlockedSeviiAreas(void) void UpdateTrainerCardPhotoIcons(void) { - u16 species[PARTY_SIZE]; + enum Species species[PARTY_SIZE]; u32 personality[PARTY_SIZE]; u8 i; u8 partyCount; + for (i = 0; i < PARTY_SIZE; i++) species[i] = SPECIES_NONE; + partyCount = CalculatePlayerPartyCount(); for (i = 0; i < partyCount; i++) { species[i] = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL); personality[i] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY, NULL); } + VarSet(VAR_TRAINER_CARD_MON_ICON_1, SpeciesToMailSpecies(species[0], personality[0])); VarSet(VAR_TRAINER_CARD_MON_ICON_2, SpeciesToMailSpecies(species[1], personality[1])); VarSet(VAR_TRAINER_CARD_MON_ICON_3, SpeciesToMailSpecies(species[2], personality[2])); @@ -2467,7 +2466,8 @@ bool8 CapeBrinkGetMoveToTeachLeadPokemon(void) // 8007 = Index of lead mon // to specialvar = whether a move can be taught in the first place u8 i, leadMonSlot, moveCount = 0; - u16 moveId, tutorFlag; + enum Move moveId; + u16 tutorFlag; struct Pokemon *leadMon; leadMonSlot = GetLeadMonIndex(); diff --git a/src/field_weather.c b/src/field_weather.c index fd45a514d..bea11c190 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -237,8 +237,8 @@ static void UpdateWeatherForms(void) for (i = 0; i < PARTY_SIZE; i++) { struct Pokemon *mon = &gPlayerParty[i]; - u16 species = GetMonData(mon, MON_DATA_SPECIES); - u16 targetSpecies = GetOverworldWeatherSpecies(species); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); + enum Species targetSpecies = GetOverworldWeatherSpecies(species); if (species != targetSpecies) { SetMonData(mon, MON_DATA_SPECIES, &targetSpecies); diff --git a/src/international_string_util.c b/src/international_string_util.c index 9c7d4f5b7..9a9bd06b8 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -82,7 +82,7 @@ int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu) return finalWidth; } -void CopyMonCategoryText(u16 species, u8 *dest) +void CopyMonCategoryText(enum Species species, u8 *dest) { u8 *str = StringCopy(dest, GetSpeciesCategory(species)); *str = CHAR_SPACE; diff --git a/src/item.c b/src/item.c index c83da364a..582a69841 100644 --- a/src/item.c +++ b/src/item.c @@ -32,8 +32,8 @@ EWRAM_DATA struct BagPocket gBagPockets[POCKETS_COUNT] = {}; static bool32 CheckPyramidBagHasItem(enum Item itemId, u16 count); static bool32 CheckPyramidBagHasSpace(enum Item itemId, u16 count); -static const u8 *ItemId_GetPluralName(u16); -static bool32 DoesItemHavePluralName(u16); +static const u8 *ItemId_GetPluralName(enum Item itemId); +static bool32 DoesItemHavePluralName(enum Item itemId); static void NONNULL BagPocket_CompactItems(struct BagPocket *pocket); // Item descriptions and data @@ -142,7 +142,7 @@ static inline u16 GetBagItemQuantityPocket(struct BagPocket *pocket, u32 pocketP return pocket->itemSlots[pocketPos].quantity; } -static inline void SetBagItemIdPocket(struct BagPocket *pocket, u32 pocketPos, u16 itemId) +static inline void SetBagItemIdPocket(struct BagPocket *pocket, u32 pocketPos, enum Item itemId) { pocket->itemSlots[pocketPos].itemId = itemId; } @@ -152,7 +152,7 @@ static inline void SetBagItemQuantityPocket(struct BagPocket *pocket, u32 pocket pocket->itemSlots[pocketPos].quantity = newValue; } -// static void SetBagItemId(enum Pocket pocketId, u32 pocketPos, u16 itemId) +// static void SetBagItemId(enum Pocket pocketId, u32 pocketPos, enum Item itemId) // { // SetBagItemIdPocket(&gBagPockets[pocketId], pocketPos, itemId); // } @@ -195,14 +195,14 @@ void SetBagItemsPointers(void) gBagPockets[POCKET_BERRIES].id = POCKET_BERRIES; } -u8 *CopyItemName(u16 itemId, u8 * dest) +u8 *CopyItemName(enum Item itemId, u8 * dest) { return StringCopy(dest, GetItemName(itemId)); } const u8 sText_s[] =_("s"); -u8 *CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity) +u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *dst, u32 quantity) { if (quantity == 1) { @@ -232,7 +232,7 @@ s8 BagPocketGetFirstEmptySlot(u8 pocketId) return -1; } -bool8 IsBagPocketNonEmpty(u8 pocketId) +bool32 IsBagPocketNonEmpty(u8 pocketId) { u8 i; @@ -245,7 +245,7 @@ bool8 IsBagPocketNonEmpty(u8 pocketId) return FALSE; } -bool8 CheckBagHasItem(u16 itemId, u16 count) +bool32 CheckBagHasItem(enum Item itemId, u16 count) { u8 i; enum Pocket pocket = GetItemPocket(itemId); @@ -278,7 +278,7 @@ bool8 CheckBagHasItem(u16 itemId, u16 count) bool32 HasAtLeastOneBerry(void) { - u16 itemId; + enum Item itemId; bool8 exists; exists = CheckBagHasItem(ITEM_BERRY_POUCH, 1); @@ -311,7 +311,7 @@ bool32 HasAtLeastOnePokeBall(void) return FALSE; } -bool8 CheckBagHasSpace(u16 itemId, u16 count) +bool32 CheckBagHasSpace(enum Item itemId, u16 count) { if (GetItemPocket(itemId) == POCKET_NONE) return FALSE; @@ -322,7 +322,7 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count) return GetFreeSpaceForItemInBag(itemId) >= count; } -static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, u16 itemId) +static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, enum Item itemId) { u32 spaceForItem = 0; struct ItemSlot tempItem; @@ -338,7 +338,7 @@ static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, u16 i return spaceForItem; } -u32 GetFreeSpaceForItemInBag(u16 itemId) +u32 GetFreeSpaceForItemInBag(enum Item itemId) { u8 pocket = GetItemPocket(itemId); @@ -348,7 +348,7 @@ u32 GetFreeSpaceForItemInBag(u16 itemId) return BagPocket_GetFreeSpaceForItem(&gBagPockets[GetItemPocket(itemId)], itemId); } -static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, u16 itemId, u32 pocketPos, u32 *nextPocketPos, u16 *count, u16 *tempPocketSlotQuantities) +static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, enum Item itemId, u32 pocketPos, u32 *nextPocketPos, u16 *count, u16 *tempPocketSlotQuantities) { struct ItemSlot tempItem = BagPocket_GetSlotData(pocket, pocketPos); if (tempItem.itemId == ITEM_NONE || tempItem.itemId == itemId) @@ -371,7 +371,7 @@ static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, u return FALSE; } -static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, u16 itemId, u16 count) +static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, enum Item itemId, u16 count) { u32 itemLookupIndex, itemAddIndex = 0; @@ -413,7 +413,7 @@ static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, u16 itemId, u1 return count == 0; } -bool8 AddBagItem(u16 itemId, u16 count) +bool32 AddBagItem(enum Item itemId, u16 count) { enum Pocket pocket = GetItemPocket(itemId); s8 idx; @@ -453,7 +453,7 @@ bool8 AddBagItem(u16 itemId, u16 count) return BagPocket_AddItem(&gBagPockets[GetItemPocket(itemId)], itemId, count); } -static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, u16 itemId, u16 count) +static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, enum Item itemId, u16 count) { u32 itemLookupIndex, itemRemoveIndex = 0, totalQuantity = 0; struct ItemSlot tempItem; @@ -491,7 +491,7 @@ static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, u16 itemId, return totalQuantity >= count; } -bool8 RemoveBagItem(u16 itemId, u16 count) +bool32 RemoveBagItem(enum Item itemId, u16 count) { enum Pocket pocket = GetItemPocket(itemId); @@ -516,7 +516,7 @@ void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count) BagPocket_SetSlotItemIdAndCount(pocket, slotId, itemSlot.itemId, itemSlot.quantity - count); } -u8 GetPocketByItemId(u16 itemId) +u8 GetPocketByItemId(enum Item itemId) { return GetItemPocket(itemId); // wow such important } @@ -604,7 +604,7 @@ u8 CountItemsInPC(void) return BagPocket_CountUsedItemSlots(&dummyPocket); } -static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket, u16 itemId, u16 count) +static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket, enum Item itemId, u16 count) { struct ItemSlot tempItem; @@ -617,13 +617,13 @@ static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket return FALSE; } -bool8 CheckPCHasItem(u16 itemId, u16 count) +bool32 CheckPCHasItem(enum Item itemId, u16 count) { struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET; return BagPocket_CheckPocketForItemCount(&dummyPocket, itemId, count); } -bool8 AddPCItem(u16 itemId, u16 count) +bool32 AddPCItem(enum Item itemId, u16 count) { struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET; return BagPocket_AddItem(&dummyPocket, itemId, count); @@ -683,7 +683,7 @@ void RegisteredItemHandleBikeSwap(void) } } -u16 CountTotalItemQuantityInBag(u16 itemId) +u16 CountTotalItemQuantityInBag(enum Item itemId) { u16 i; u16 ownedCount = 0; @@ -899,7 +899,7 @@ bool32 RemovePyramidBagItem(enum Item itemId, u16 count) } } -void TrySetObtainedItemQuestLogEvent(u16 itemId) +void TrySetObtainedItemQuestLogEvent(enum Item itemId) { // Only some key items trigger this event if (itemId == ITEM_OAKS_PARCEL @@ -934,7 +934,7 @@ void TrySetObtainedItemQuestLogEvent(u16 itemId) } } -u16 SanitizeItemId(u16 itemId) +u16 SanitizeItemId(enum Item itemId) { assertf(itemId < ITEMS_COUNT, "invalid item: %d", itemId) { @@ -944,70 +944,70 @@ u16 SanitizeItemId(u16 itemId) return itemId; } -const u8 * GetItemName(u16 itemId) +const u8 *GetItemName(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].name; } -u32 GetItemPrice(u16 itemId) +u32 GetItemPrice(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].price; } -static bool32 DoesItemHavePluralName(u16 itemId) +static bool32 DoesItemHavePluralName(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].pluralName != NULL; } -static const u8 *ItemId_GetPluralName(u16 itemId) +static const u8 *ItemId_GetPluralName(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].pluralName; } -u8 GetItemHoldEffect(u16 itemId) +u8 GetItemHoldEffect(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].holdEffect; } -u8 GetItemHoldEffectParam(u16 itemId) +u8 GetItemHoldEffectParam(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].holdEffectParam; } -const u8 * GetItemDescription(u16 itemId) +const u8 *GetItemDescription(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].description; } -u8 GetItemImportance(u16 itemId) +u8 GetItemImportance(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].importance; } -u8 GetItemConsumability(u16 itemId) +u8 GetItemConsumability(enum Item itemId) { return !gItemsInfo[SanitizeItemId(itemId)].notConsumed; } -enum Pocket GetItemPocket(u16 itemId) +enum Pocket GetItemPocket(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].pocket; } -u8 GetItemType(u16 itemId) +u8 GetItemType(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].type; } -ItemUseFunc GetItemFieldFunc(u16 itemId) +ItemUseFunc GetItemFieldFunc(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].fieldUseFunc; } // Returns an item's battle effect script ID. -u8 GetItemBattleUsage(u16 itemId) +u8 GetItemBattleUsage(enum Item itemId) { - u16 item = SanitizeItemId(itemId); + enum Item item = SanitizeItemId(itemId); // Handle E-Reader berries. if (item == ITEM_ENIGMA_BERRY_E_READER) { @@ -1036,17 +1036,17 @@ u8 GetItemBattleUsage(u16 itemId) return gItemsInfo[item].battleUsage; } -u16 GetItemSecondaryId(u16 itemId) +u16 GetItemSecondaryId(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].secondaryId; } -u32 GetItemFlingPower(u32 itemId) +u32 GetItemFlingPower(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].flingPower; } -const u8 *GetItemEffect(u32 itemId) +const u8 *GetItemEffect(enum Item itemId) { if (itemId == ITEM_ENIGMA_BERRY_E_READER) #if FREE_ENIGMA_BERRY == FALSE @@ -1059,7 +1059,7 @@ const u8 *GetItemEffect(u32 itemId) } -u32 GetItemStatus1Mask(u16 itemId) +u32 GetItemStatus1Mask(enum Item itemId) { const u8 *effect = GetItemEffect(itemId); switch (effect[3]) @@ -1080,7 +1080,7 @@ u32 GetItemStatus1Mask(u16 itemId) return 0; } -bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile _volatile) +bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile _volatile) { const u8 *effect = GetItemEffect(itemId); switch (_volatile) @@ -1094,7 +1094,7 @@ bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile _volatile) } } -u32 GetItemSellPrice(u32 itemId) +u32 GetItemSellPrice(enum Item itemId) { return GetItemPrice(itemId) / ITEM_SELL_FACTOR; } @@ -1106,24 +1106,24 @@ bool32 IsHoldEffectChoice(enum HoldEffect holdEffect) || holdEffect == HOLD_EFFECT_CHOICE_SPECS; } -bool32 IsItemTM(u16 itemId) +bool32 IsItemTM(enum Item itemId) { enum TMHMIndex index = GetItemTMHMIndex(SanitizeItemId(itemId)); return index > 0 && index <= NUM_TECHNICAL_MACHINES; } -bool32 IsItemHM(u16 itemId) +bool32 IsItemHM(enum Item itemId) { return GetItemTMHMIndex(SanitizeItemId(itemId)) > NUM_TECHNICAL_MACHINES; } -bool32 IsItemTMHM(u16 itemId) +bool32 IsItemTMHM(enum Item itemId) { enum TMHMIndex index = GetItemTMHMIndex(SanitizeItemId(itemId)); return index > 0 && index <= NUM_ALL_MACHINES; } -bool32 IsItemBall(u16 itemId) +bool32 IsItemBall(enum Item itemId) { return GetPocketByItemId(itemId) == POCKET_POKE_BALLS; } diff --git a/src/item_icon.c b/src/item_icon.c index 1c37d0a29..420305dc9 100644 --- a/src/item_icon.c +++ b/src/item_icon.c @@ -42,7 +42,7 @@ void CopyItemIconPicTo4x4Buffer(const void *src, void *dest) CpuCopy16(src + i * 96, dest + i * 128, 0x60); } -u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId) +u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item itemId) { struct SpriteTemplate *spriteTemplate; struct SpriteSheet spriteSheet; @@ -75,7 +75,7 @@ u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId) return spriteId; } -u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) +u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, enum Item itemId) { struct SpriteTemplate template; struct SpriteSheet spriteSheet; @@ -106,7 +106,7 @@ u8 AddCustomItemIconSprite(const struct SpriteTemplate * origTemplate, u16 tiles return spriteId; } -const void *GetItemIconPic(u16 itemId) +const void *GetItemIconPic(enum Item itemId) { if (itemId == ITEM_FIELD_ARROW) return gItemIcon_ReturnToFieldArrow; // Use last icon, the "return to field" arrow @@ -122,7 +122,7 @@ const void *GetItemIconPic(u16 itemId) return gItemsInfo[itemId].iconPic; } -const void *GetItemIconPalette(u16 itemId) +const void *GetItemIconPalette(enum Item itemId) { if (itemId == ITEM_FIELD_ARROW) return gItemIconPalette_ReturnToFieldArrow; diff --git a/src/item_menu.c b/src/item_menu.c index fb5c16c91..0907bd7cb 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -193,7 +193,7 @@ static void ConfirmSell(u8 taskId); static void CancelSell(u8 taskId); // pokefirered functions -static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId); +static void BagListMenuGetItemNameColored(u8 *dest, enum Item itemId); static void PrintPocketName(void); static void GoToTMCase_Give(void); static void GoToBerryPouch_Give(void); @@ -1018,7 +1018,7 @@ static void LoadBagItemListBuffers(u8 pocketId) gMultiuseListMenuTemplate.maxShowed = gBagMenu->numShownItems[pocketId]; } -static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId) +static void BagListMenuGetItemNameColored(u8 *dest, enum Item itemId) { u8* end; if (itemId == ITEM_TM_CASE || itemId == ITEM_BERRY_POUCH) @@ -1052,10 +1052,9 @@ static void BagMenu_MoveCursorCallback(s32 itemIndex, bool8 onInit, struct ListM static void BagMenu_ItemPrintCallback(u8 windowId, u32 itemIndex, u8 y) { - u16 itemId; + enum Item itemId; u16 itemQuantity; - if (itemIndex == LIST_CANCEL) return; diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 67df1d525..f8466ea1b 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -160,7 +160,7 @@ static void SpriteCB_ShakeBagSprite(struct Sprite *sprite) } } -void AddBagItemIconSprite(u16 itemId, u8 id) +void AddBagItemIconSprite(enum Item itemId, u8 id) { u8 *spriteIds = &gBagMenu->spriteIds[ITEMMENUSPRITE_ITEM]; diff --git a/src/item_pc.c b/src/item_pc.c index 47953f6f5..753f63fbe 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -74,7 +74,7 @@ static void ItemPc_PlaceTopMenuScrollIndicatorArrows(void); static void ItemPc_SetCursorPosition(void); static void ItemPc_FreeResources(void); static void Task_ItemPcTurnOff2(u8 taskId); -static u16 ItemPc_GetItemIdBySlotId(u16 itemIndex); +static enum Item ItemPc_GetItemIdBySlotId(u16 itemIndex); static u16 ItemPc_GetItemQuantityBySlotId(u16 itemIndex); static void ItemPc_CountPcItems(void); static void ItemPc_SetScrollPosition(void); @@ -516,7 +516,7 @@ static void ItemPc_BuildListMenuTemplate(void) gMultiuseListMenuTemplate.cursorKind = 0; } -static void AddPcItemIconSprite(u16 item, u8 iconSlot) +static void AddPcItemIconSprite(enum Item item, u8 iconSlot) { u8 *spriteIdPtr = &sStateDataPtr->itemSpriteIds[iconSlot]; @@ -537,7 +537,7 @@ static void AddPcItemIconSprite(u16 item, u8 iconSlot) } } -static void RemovePcItemIconSprite(u16 item, u8 iconSlot) +static void RemovePcItemIconSprite(enum Item item, u8 iconSlot) { u8 *spriteIdPtr = &sStateDataPtr->itemSpriteIds[iconSlot]; if (*spriteIdPtr == SPRITE_NONE) @@ -549,9 +549,9 @@ static void RemovePcItemIconSprite(u16 item, u8 iconSlot) *spriteIdPtr = SPRITE_NONE; } -static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list) +static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { - u16 itemId; + enum Item itemId; const u8 * desc; if (onInit != TRUE) PlaySE(SE_SELECT); @@ -705,7 +705,7 @@ static u8 ItemPc_GetCursorPosition(void) return sListMenuState.scroll + sListMenuState.row; } -static u16 ItemPc_GetItemIdBySlotId(u16 idx) +static enum Item ItemPc_GetItemIdBySlotId(u16 idx) { return gSaveBlock1Ptr->pcItems[idx].itemId; } @@ -937,7 +937,7 @@ static void Task_ItemPcWithdraw(u8 taskId) static void ItemPc_DoWithdraw(u8 taskId) { s16 * data = gTasks[taskId].data; - u16 itemId = ItemPc_GetItemIdBySlotId(data[1]); + enum Item itemId = ItemPc_GetItemIdBySlotId(data[1]); u8 windowId; if (AddBagItem(itemId, tItemCount) == TRUE) @@ -997,7 +997,7 @@ static void Task_ItemPcCleanUpWithdraw(u8 taskId) static void ItemPc_WithdrawMultipleInitWindow(u16 slotId) { - u16 itemId = ItemPc_GetItemIdBySlotId(slotId); + enum Item itemId = ItemPc_GetItemIdBySlotId(slotId); CopyItemName(itemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_WithdrawHowMany); diff --git a/src/item_use.c b/src/item_use.c index b9da1c0b7..d4c937b63 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -175,7 +175,7 @@ static void Task_ItemUse_CloseMessageBoxAndReturnToField(u8 taskId) UnlockPlayerFieldControls(); } -u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) +u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId) { if (GetItemPocket(itemId) == POCKET_TM_HM) return 1; @@ -1059,7 +1059,7 @@ static const u8 sText_CantThrowPokeBall_TwoMons[] = _("Cannot throw a ball!\nThe static const u8 sText_CantThrowPokeBall_SemiInvulnerable[] = _("Cannot throw a ball!\nThere's no Pokémon in sight!\p"); static const u8 sText_CantThrowPokeBall_Disabled[] = _("POKé BALLS cannot be used\nright now!\p"); -static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId) +static bool32 IteamHealsMonVolatile(u32 battler, enum Item itemId) { const u8 *effect = GetItemEffect(itemId); if (effect[3] & ITEM3_STATUS_ALL) @@ -1072,7 +1072,7 @@ static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId) return FALSE; } -static bool32 SelectedMonHasVolatile(u16 itemId) +static bool32 SelectedMonHasVolatile(enum Item itemId) { if (gPartyMenu.slotId == 0) return IteamHealsMonVolatile(0, itemId); @@ -1082,7 +1082,7 @@ static bool32 SelectedMonHasVolatile(u16 itemId) } // Returns whether an item can be used in battle and sets the fail text. -bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon) +bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon) { u16 battleUsage = GetItemBattleUsage(itemId); bool8 cannotUse = FALSE; @@ -1270,7 +1270,7 @@ void ItemUseOutOfBattle_CannotUse(u8 taskId) PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); } -void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, u16 itemId, u16 param) +void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, enum Item itemId, u16 param) { struct QuestLogEvent_Item *data = Alloc(sizeof(*data)); diff --git a/src/mail.c b/src/mail.c index b51d70996..023362890 100644 --- a/src/mail.c +++ b/src/mail.c @@ -440,7 +440,8 @@ static const struct MailAttrStruct sMessageLayouts_5x2[] = { void ReadMail(struct Mail * mail, void (*savedCallback)(void), bool8 messageExists) { u16 sp0; - u16 species; + enum Species species; + sMailViewResources = AllocZeroed(sizeof(struct MailViewResources)); sMailViewResources->unused = 2; sMailViewResources->mailArrangementType = 1; diff --git a/src/mail_data.c b/src/mail_data.c index 9f35ff7d6..49b3a0114 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -30,25 +30,25 @@ void ClearMailStruct(struct Mail *mail) bool8 MonHasMail(struct Pokemon *mon) { - u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM); - if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF) + enum Item heldItem = GetMonData(mon, MON_DATA_HELD_ITEM); + if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != MAIL_NONE) return TRUE; else return FALSE; } -u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) +u8 GiveMailToMon(struct Pokemon *mon, enum Item itemId) { u8 heldItem[2]; - u8 id, i; - u16 species; + u8 i; + enum Species species; u32 personality; heldItem[0] = itemId; heldItem[1] = itemId >> 8; - for (id = 0; id < PARTY_SIZE; id++) + for (u8 id = 0; id < PARTY_SIZE; id++) { - if (gSaveBlock1Ptr->mail[id].itemId == 0) + if (gSaveBlock1Ptr->mail[id].itemId == ITEM_NONE) { for (i = 0; i < MAIL_WORDS_COUNT; i++) gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF; @@ -71,18 +71,17 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) return 0xFF; } -u16 SpeciesToMailSpecies(u16 species, u32 personality) +u16 SpeciesToMailSpecies(enum Species species, u32 personality) { - if (species == SPECIES_UNOWN) { - u32 mailSpecies = GetUnownLetterByPersonality(personality) + UNOWN_OFFSET; - return mailSpecies; - } + if (species == SPECIES_UNOWN) + return GetUnownLetterByPersonality(personality) + UNOWN_OFFSET; + return species; } -u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer) +enum Species MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer) { - u16 result; + enum Species result; if (mailSpecies >= UNOWN_OFFSET && mailSpecies < UNOWN_OFFSET + NUM_UNOWN_FORMS) { @@ -100,7 +99,7 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer) u8 GiveMailToMon2(struct Pokemon *mon, struct Mail *mail) { u8 heldItem[2]; - u16 itemId = mail->itemId; + enum Item itemId = mail->itemId; u8 mailId = GiveMailToMon(mon, itemId); if (mailId == 0xFF) @@ -169,7 +168,7 @@ u8 TakeMailFromMonAndSave(struct Pokemon *mon) return newMailId; } -bool8 ItemIsMail(u16 itemId) +bool8 ItemIsMail(enum Item itemId) { switch (itemId) { diff --git a/src/menu.c b/src/menu.c index 3b3d19a79..228a2d8a2 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1558,12 +1558,12 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 * src, u16 x, u16 y) } } -void LoadMonIconPalAtOffset(u8 palOffset, u16 speciesId) +void LoadMonIconPalAtOffset(u8 palOffset, enum Species speciesId) { LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, PLTT_SIZE_4BPP); } -void DrawMonIconAtPos(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y) +void DrawMonIconAtPos(u8 windowId, enum Species speciesId, u32 personality, u16 x, u16 y) { BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality), x, y, 32, 32); } diff --git a/src/menu2.c b/src/menu2.c index e346ffc24..af9f15b2e 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -68,7 +68,7 @@ static void Task_SmoothBlendLayers(u8 taskId) } } -u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId) +u8 Menu2_GetMonPosAttribute(enum Species species, u32 personality, u8 attributeId) { // if (species == SPECIES_UNOWN) // { @@ -97,7 +97,7 @@ u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId) return 32; } -s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId) +s8 Menu2_GetStarSpritePosAttribute(enum Species species, u32 personality, u8 attributeId) { return Menu2_GetMonPosAttribute(species, personality, attributeId) - 32; } diff --git a/src/menu_helpers.c b/src/menu_helpers.c index fda96c4b2..1724a1e29 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -152,7 +152,7 @@ u8 GetLRKeysPressedAndHeld(void) return 0; } -bool8 IsHoldingItemAllowed(u16 itemId) +bool8 IsHoldingItemAllowed(enum Item itemId) { // Enigma Berry can't be held in link areas if (itemId == ITEM_ENIGMA_BERRY_E_READER @@ -164,7 +164,7 @@ bool8 IsHoldingItemAllowed(u16 itemId) return TRUE; } -bool8 IsWritingMailAllowed(u16 itemId) +bool8 IsWritingMailAllowed(enum Item itemId) { if ((IsOverworldLinkActive() == TRUE || InUnionRoom() == TRUE) && ItemIsMail(itemId) == TRUE) return FALSE; diff --git a/src/move_relearner.c b/src/move_relearner.c index eb5cfbf93..e0cb96ed8 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -851,7 +851,7 @@ const u8 *GetBufferedString(u8 *buffer, u16 value) return buffer; } -static void PrintMoveInfo(u16 move) +static void PrintMoveInfo(enum Move move) { const u8 *colors = sTextColors[GENERAL_TEXT_COLOR]; u8 buffer[50]; diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index db07ea832..b63db2660 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -237,8 +237,8 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) { struct Mail mail; struct Pokemon pokemon; - u16 species; - u16 heldItem; + enum Species species; + enum Item heldItem; u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]; void *pokemonPtr = (void *)data; void *mailPtr = (void *)(data + sizeof(struct Pokemon)); diff --git a/src/overworld.c b/src/overworld.c index 3d3dd0ce3..38390b8c4 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3767,7 +3767,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) #define ITEM_ICON_Y 24 #define ITEM_TAG 0x2722 //same as money label -bool8 GetSetItemObtained(u16 item, enum ItemObtainFlags caseId) +bool8 GetSetItemObtained(enum Item item, enum ItemObtainFlags caseId) { #if OW_SHOW_ITEM_DESCRIPTIONS == OW_ITEM_DESCRIPTIONS_FIRST_TIME u8 index = item / 8; @@ -3791,10 +3791,10 @@ EWRAM_DATA static u8 sHeaderBoxWindowId = 0; EWRAM_DATA u8 sItemIconSpriteId = 0; EWRAM_DATA u8 sItemIconSpriteId2 = 0; -static void ShowItemIconSprite(u16 item, bool8 firstTime, bool8 flash); +static void ShowItemIconSprite(enum Item item, bool8 firstTime, bool8 flash); static void DestroyItemIconSprite(void); -static u8 ReformatItemDescription(u16 item, u8 *dest) +static u8 ReformatItemDescription(enum Item item, u8 *dest) { u8 count = 0; u8 numLines = 1; @@ -3840,7 +3840,7 @@ void ScriptShowItemDescription(struct ScriptContext *ctx) { u8 headerType = ScriptReadByte(ctx); struct WindowTemplate template; - u16 item = gSpecialVar_0x8006; + enum Item item = gSpecialVar_0x8006; u8 textY; u8 *dst; bool8 handleFlash = FALSE; @@ -3890,7 +3890,7 @@ void ScriptHideItemDescription(struct ScriptContext *ctx) } } -static void ShowItemIconSprite(u16 item, bool8 firstTime, bool8 flash) +static void ShowItemIconSprite(enum Item item, bool8 firstTime, bool8 flash) { s16 x = 0, y = 0; u8 iconSpriteId; diff --git a/src/party_menu.c b/src/party_menu.c index 3574871d3..0f32534fe 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -228,18 +228,18 @@ static void DisplayPartyPokemonHPBarCheck(struct Pokemon *mon, struct PartyMenuB static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); static bool8 GetBattleEntryEligibility(struct Pokemon *mon); static bool8 IsMonAllowedInMinigame(u8 slot); -static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 move); +static void DisplayPartyPokemonDataToTeachMove(u8 slot, enum Move move); static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *dimensions); static void DisplayPartyPokemonBarDetailToFit(u8 windowId, const u8 *str, u8 color, const u8 *align, u32 width); static void DisplayPartyPokemonLevel(u8 level, struct PartyMenuBox *menuBox); -static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox); +static void DisplayPartyPokemonGender(u8 gender, enum Species species, u8 *nickname, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonHP(u16 hp, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonMaxHP(u16 maxhp, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *menuBox); -static void CreatePartyMonIconSpriteParameterized(u16 species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority); -static void CreatePartyMonHeldItemSpriteParameterized(u16 species, u16 item, struct PartyMenuBox *menuBox); -static void CreatePartyMonPokeballSpriteParameterized(u16 species, struct PartyMenuBox *menuBox); -static void CreatePartyMonStatusSpriteParameterized(u16 species, u8 status, struct PartyMenuBox *menuBox); +static void CreatePartyMonIconSpriteParameterized(enum Species species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority); +static void CreatePartyMonHeldItemSpriteParameterized(enum Species species, enum Item item, struct PartyMenuBox *menuBox); +static void CreatePartyMonPokeballSpriteParameterized(enum Species species, struct PartyMenuBox *menuBox); +static void CreatePartyMonStatusSpriteParameterized(enum Species species, u8 status, struct PartyMenuBox *menuBox); static void CreatePartyMonIconSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox, u32 slot); static void CreatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox); static void CreatePartyMonPokeballSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox); @@ -283,7 +283,7 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir); static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir); static void Task_PrintAndWaitForText(u8 taskId); static void PrintMessage(const u8 *text); -static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, u16 item, u16 item2); +static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, enum Item item, enum Item item2); static bool16 IsMonAllowedInPokemonJump(struct Pokemon *mon); static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *mon); static void Task_CancelParticipationYesNo(u8 taskId); @@ -296,7 +296,7 @@ static void SpriteCB_UpdatePartyMonIcon(struct Sprite *sprite); static void SpriteCB_BouncePartyMonIcon(struct Sprite *sprite); static void SpriteCB_HeldItem(struct Sprite *sprite); static void UpdatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox); -static void ShowOrHideHeldItemSprite(u16 item, struct PartyMenuBox *menuBox); +static void ShowOrHideHeldItemSprite(enum Item item, struct PartyMenuBox *menuBox); static void CreateHeldItemSpriteForTrade(u8 spriteId, bool8 isMail); static void SetPartyMonAilmentGfx(struct Pokemon *mon, struct PartyMenuBox *menuBox); static void UpdatePartyMonAilmentGfx(u8 status, struct PartyMenuBox *menuBox); @@ -368,7 +368,7 @@ static void DisplayLevelUpStatsPg2(u8 taskId); static void Task_TryLearnNewMoves(u8 taskId); static void PartyMenuTryEvolution(u8 taskId); static void DisplayMonNeedsToReplaceMove(u8 taskId); -static void DisplayMonLearnedMove(u8 taskId, u16 move); +static void DisplayMonLearnedMove(u8 taskId, enum Move move); static void Task_SacredAshDisplayHPRestored(u8 taskId); static void Task_SacredAshLoop(u8 taskId); static void UseSacredAsh(u8 taskId); @@ -381,7 +381,7 @@ static void GiveItemToSelectedMon(u8 taskId); static void Task_UpdateHeldItemSpriteAndClosePartyMenu(u8 taskId); static void Task_SwitchItemsFromBagYesNo(u8 taskId); static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void); -static bool8 ReturnGiveItemToBagOrPC(u16 item); +static bool32 ReturnGiveItemToBagOrPC(enum Item item); static void Task_DisplayGaveMailFromBagMessage(u8 taskId); static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId); static void Task_ValidateChosenMonsForBattle(u8 taskId); @@ -423,7 +423,7 @@ static void ItemUseCB_ReplaceMoveWithTMHM(u8 taskId, TaskFunc func); static void Task_ReplaceMoveWithTMHM(u8 taskId); static void CB2_UseEvolutionStone(void); static bool8 MonCanEvolve(void); -static u8 CanTeachMove(struct Pokemon *mon, u16 move); +static u8 CanTeachMove(struct Pokemon *mon, enum Move move); static void TryItemHoldFormChange(struct Pokemon *mon, s8 slotId); static void Task_TossHeldItemYesNo(u8 taskId); static void Task_HandleTossHeldItemYesNoInput(u8); @@ -1036,7 +1036,7 @@ static void DisplayPartyPokemonDataForBattlePyramidHeldItem(u8 slot) static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) { struct Pokemon *currentPokemon = &gPlayerParty[slot]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; if (gPartyMenu.action == PARTY_ACTION_MOVE_TUTOR) { @@ -1064,7 +1064,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) return TRUE; } -static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 move) +static void DisplayPartyPokemonDataToTeachMove(u8 slot, enum Move move) { switch (CanTeachMove(&gPlayerParty[slot], move)) { @@ -1476,7 +1476,7 @@ static bool8 DoesSelectedMonKnowHM(u8 *slotPtr) for (u32 i = 0; i < MAX_MON_MOVES; i++) { - u16 move = GetMonData(&gPlayerParty[*slotPtr], MON_DATA_MOVE1 + i); + enum Move move = GetMonData(&gPlayerParty[*slotPtr], MON_DATA_MOVE1 + i); if (IsMoveHM(move)) return TRUE; @@ -1840,7 +1840,7 @@ static void Task_ReturnToChooseMonAfterText(u8 taskId) } } -static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen, bool8 fromBagMenu) +static void DisplayGaveHeldItemMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen, bool8 fromBagMenu) { if (!fromBagMenu) // Used Give option from party menu ItemUse_SetQuestLogEvent(QL_EVENT_GAVE_HELD_ITEM, mon, item, 0xFFFF); @@ -1855,7 +1855,7 @@ static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep ScheduleBgCopyTilemapToVram(2); } -static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen) +static void DisplayTookHeldItemMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen) { ItemUse_SetQuestLogEvent(QL_EVENT_TOOK_HELD_ITEM, mon, item, 0xFFFF); GetMonNickname(mon, gStringVar1); @@ -1865,7 +1865,7 @@ static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep ScheduleBgCopyTilemapToVram(2); } -static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item, bool8 keepOpen) +static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen) { GetMonNickname(mon, gStringVar1); CopyItemName(item, gStringVar2); @@ -1874,7 +1874,7 @@ static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item ScheduleBgCopyTilemapToVram(2); } -static void DisplaySwitchedHeldItemMessage(u16 item, u16 item2, bool8 keepOpen) +static void DisplaySwitchedHeldItemMessage(enum Item item, enum Item item2, bool8 keepOpen) { SetSwappedHeldItemQuestLogEvent(&gPlayerParty[gPartyMenu.slotId], item2, item); CopyItemName(item, gStringVar1); @@ -1914,7 +1914,7 @@ static u8 TryTakeMonItem(struct Pokemon *mon) return 2; } -static void BufferBagFullCantTakeItemMessage(u16 itemId) +static void BufferBagFullCantTakeItemMessage(enum Item itemId) { const u8 *string; @@ -2136,16 +2136,20 @@ static void Task_HandleCancelParticipationYesNoInput(u8 taskId) } } -static u8 CanTeachMove(struct Pokemon *mon, u16 move) +static u8 CanTeachMove(struct Pokemon *mon, enum Move move) { if (GetMonData(mon, MON_DATA_IS_EGG)) return CANNOT_LEARN_MOVE_IS_EGG; - if (MonKnowsMove(mon, move) == TRUE) + + if (MonKnowsMove(mon, move)) return ALREADY_KNOWS_MOVE; + if (GetFirstPartnerMove(GetMonData(mon, MON_DATA_SPECIES_OR_EGG)) == move) return CAN_LEARN_MOVE; + if (!CanLearnTeachableMove(GetMonData(mon, MON_DATA_SPECIES_OR_EGG), move)) return CANNOT_LEARN_MOVE; + return CAN_LEARN_MOVE; } @@ -2577,7 +2581,7 @@ static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct Pa DisplayPartyPokemonGender(GetMonGender(mon), GetMonData(mon, MON_DATA_SPECIES), nickname, menuBox); } -static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox) +static void DisplayPartyPokemonGender(u8 gender, enum Species species, u8 *nickname, struct PartyMenuBox *menuBox) { u8 palOffset = BG_PLTT_ID(GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM)); @@ -2905,7 +2909,7 @@ static void CreatePartyMonIconSprite(struct Pokemon *mon, struct PartyMenuBox *m UpdatePartyMonHPBar(menuBox->monSpriteId, mon); } -static void CreatePartyMonIconSpriteParameterized(u16 species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority) +static void CreatePartyMonIconSpriteParameterized(enum Species species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority) { if (species != SPECIES_NONE) { @@ -2993,7 +2997,7 @@ static void CreatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo } } -static void CreatePartyMonHeldItemSpriteParameterized(u16 species, u16 item, struct PartyMenuBox *menuBox) +static void CreatePartyMonHeldItemSpriteParameterized(enum Species species, enum Item item, struct PartyMenuBox *menuBox) { if (species != SPECIES_NONE) { @@ -3008,7 +3012,7 @@ static void UpdatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo ShowOrHideHeldItemSprite(GetMonData(mon, MON_DATA_HELD_ITEM), menuBox); } -static void ShowOrHideHeldItemSprite(u16 item, struct PartyMenuBox *menuBox) +static void ShowOrHideHeldItemSprite(enum Item item, struct PartyMenuBox *menuBox) { if (item == ITEM_NONE) { @@ -3032,23 +3036,20 @@ void LoadHeldItemIcons(void) void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty) { - u16 i; - u16 item; - switch (whichParty) { case TRADE_PLAYER: - for (i = 0; i < partyCounts[TRADE_PLAYER]; ++i) + for (u32 i = 0; i < partyCounts[TRADE_PLAYER]; ++i) { - item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + enum Item item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); if (item != ITEM_NONE) CreateHeldItemSpriteForTrade(partySpriteIds[i], ItemIsMail(item)); } break; case TRADE_PARTNER: - for (i = 0; i < partyCounts[TRADE_PARTNER]; ++i) + for (u32 i = 0; i < partyCounts[TRADE_PARTNER]; ++i) { - item = GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM); + enum Item item = GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM); if (item != ITEM_NONE) CreateHeldItemSpriteForTrade(partySpriteIds[i + PARTY_SIZE], ItemIsMail(item)); } @@ -3091,7 +3092,7 @@ static void CreatePartyMonPokeballSprite(struct Pokemon *mon, struct PartyMenuBo menuBox->pokeballSpriteId = CreateSprite(&sSpriteTemplate_MenuPokeball, menuBox->spriteCoords[6], menuBox->spriteCoords[7], 8); } -static void CreatePartyMonPokeballSpriteParameterized(u16 species, struct PartyMenuBox *menuBox) +static void CreatePartyMonPokeballSpriteParameterized(enum Species species, struct PartyMenuBox *menuBox) { if (species != SPECIES_NONE) { @@ -3156,7 +3157,7 @@ static void CreatePartyMonStatusSprite(struct Pokemon *mon, struct PartyMenuBox } } -static void CreatePartyMonStatusSpriteParameterized(u16 species, u8 status, struct PartyMenuBox *menuBox) +static void CreatePartyMonStatusSpriteParameterized(enum Species species, u8 status, struct PartyMenuBox *menuBox) { if (species != SPECIES_NONE) { @@ -3230,7 +3231,7 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId) // Add field moves to action list for (i = 0; i < MAX_MON_MOVES; ++i) { - u16 moveId = GetMonData(&mons[slotId], i + MON_DATA_MOVE1); + enum Move moveId = GetMonData(&mons[slotId], i + MON_DATA_MOVE1); if (moveId == MOVE_NONE) continue; for (j = 0; j < FIELD_MOVE_COUNT; ++j) @@ -3777,16 +3778,16 @@ void CB2_GiveHoldItem(void) static void Task_GiveHoldItem(u8 taskId) { - u16 item; + enum Item item; - if (!gPaletteFade.active) - { - item = gSpecialVar_ItemId; - DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, FALSE); - GiveItemToMon(&gPlayerParty[gPartyMenu.slotId], item); - RemoveBagItem(item, 1); - gTasks[taskId].func = Task_UpdateHeldItemSprite; - } + if (gPaletteFade.active) + return; + + item = gSpecialVar_ItemId; + DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, FALSE); + GiveItemToMon(&gPlayerParty[gPartyMenu.slotId], item); + RemoveBagItem(item, 1); + gTasks[taskId].func = Task_UpdateHeldItemSprite; } static void Task_SwitchHoldItemsPrompt(u8 taskId) @@ -3865,12 +3866,12 @@ static void CB2_WriteMailToGiveMon(void) static void CB2_ReturnToPartyMenuFromWritingMail(void) { - struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); - // Canceled writing mail if (gSpecialVar_Result == FALSE) { + struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); + TakeMailFromMon(mon); SetMonData(mon, MON_DATA_HELD_ITEM, &sPartyMenuItemId); RemoveBagItem(sPartyMenuItemId, 1); @@ -3918,7 +3919,7 @@ static void Task_UpdateHeldItemSprite(u8 taskId) static void CursorCB_TakeItem(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); PlaySE(SE_SELECT); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); @@ -4096,7 +4097,7 @@ static void Task_LoseMailMessageYesNo(u8 taskId) static void Task_HandleLoseMailMessageYesNoInput(u8 taskId) { - u16 item; + enum Item item; switch (Menu_ProcessInputNoWrapClearOnChoose()) { @@ -4246,8 +4247,8 @@ static void CursorCB_Store(u8 taskId) // Register mon for the Trading Board in Union Room static void CursorCB_Register(u8 taskId) { - u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); - u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); + enum Species species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); u8 isModernFatefulEncounter = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MODERN_FATEFUL_ENCOUNTER); switch (CanRegisterMonForTradingBoard(*(struct RfuGameCompatibilityData *)GetHostRfuGameData(), species2, species, isModernFatefulEncounter)) @@ -4273,8 +4274,8 @@ static void CursorCB_Register(u8 taskId) static void CursorCB_Trade1(u8 taskId) { - u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); - u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); + enum Species species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); u8 isModernFatefulEncounter = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MODERN_FATEFUL_ENCOUNTER); u32 stringId = GetUnionRoomTradeMessageId(*(struct RfuGameCompatibilityData *)GetHostRfuGameData(), gRfuPartnerCompatibilityData, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isModernFatefulEncounter); @@ -4596,7 +4597,7 @@ bool32 SetUpFieldMove_RockClimb(void) return FALSE; } -static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, u16 item, u16 item2) +static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, enum Item item, enum Item item2) { struct QuestLogEvent_SwappedHeldItem *data = Alloc(sizeof(*data)); @@ -4776,7 +4777,7 @@ static void CB2_UseTMHMAfterForgettingMove(void) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; u8 moveIdx = GetMoveSlotToReplace(); - u16 move = GetMonData(mon, moveIdx + MON_DATA_MOVE1); + enum Move move = GetMonData(mon, moveIdx + MON_DATA_MOVE1); RemoveMonPPBonus(mon, moveIdx); SetMonMoveSlot(mon, ItemIdToBattleMoveId(gSpecialVar_ItemId), moveIdx); @@ -4800,7 +4801,7 @@ static void Task_SetSacredAshCB(u8 taskId) } } -static bool8 IsHPRecoveryItem(u16 item) +static bool8 IsHPRecoveryItem(enum Item item) { const u8 *effect = GetItemEffect(item); @@ -4813,7 +4814,7 @@ static bool8 IsHPRecoveryItem(u16 item) return FALSE; } -static void GetMedicineItemEffectMessage(u16 item, u32 statusCured) +static void GetMedicineItemEffectMessage(enum Item item, u32 statusCured) { switch (GetItemEffectType(item)) { @@ -4881,14 +4882,14 @@ static void GetMedicineItemEffectMessage(u16 item, u32 statusCured) } } -static bool8 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, u16 item) +static bool8 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, enum Item item) { if (GetItemEffectType(item) == ITEM_EFFECT_HP_EV && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA) return FALSE; return TRUE; } -static bool8 IsItemFlute(u16 item) +static bool8 IsItemFlute(enum Item item) { if (item == ITEM_BLUE_FLUTE || item == ITEM_RED_FLUTE || item == ITEM_YELLOW_FLUTE) return TRUE; @@ -5270,7 +5271,7 @@ void ItemUseCB_BattleChooseMove(u8 taskId, TaskFunc task) gTasks[taskId].func = Task_HandleRestoreWhichMoveInput; } -static bool8 ExecuteTableBasedItemEffect_(u8 partyMonIndex, u16 item, u8 monMoveIndex) +static bool8 ExecuteTableBasedItemEffect_(u8 partyMonIndex, enum Item item, u8 monMoveIndex) { if (gMain.inBattle) return ExecuteTableBasedItemEffect(&gPlayerParty[partyMonIndex], item, GetPartyIdFromBattleSlot(partyMonIndex), monMoveIndex); @@ -5282,7 +5283,7 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc func) { u16 hp = 0; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; bool8 canHeal, cannotUse; u32 oldStatus = GetMonData(mon, MON_DATA_STATUS); @@ -5438,7 +5439,7 @@ void ItemUseCB_ReduceEVStep(u8 taskId, TaskFunc task) void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; u8 effectType = GetItemEffectType(item); bool8 cannotUseEffect; @@ -5478,7 +5479,7 @@ void ItemUseCB_ResetEVsStep(u8 taskId, TaskFunc task) void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; bool8 cannotUseEffect = ExecuteTableBasedItemEffect(mon, item, gPartyMenu.slotId, 0); if (cannotUseEffect) @@ -5502,7 +5503,7 @@ static void ShowMoveSelectWindow(u8 slot) u8 moveCount = 0; u8 fontId = FONT_NORMAL; u8 windowId = DisplaySelectionWindow(SELECTWINDOW_MOVES); - u16 move; + enum Move move; for (i = 0; i < MAX_MON_MOVES; ++i) { @@ -5616,7 +5617,7 @@ static void ReturnToUseOnWhichMon(u8 taskId) static void ItemUseCB_RestorePP(u8 taskId, TaskFunc func) { - u16 move = MOVE_NONE; + enum Move move = MOVE_NONE; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; gPartyMenuUseExitCallback = TRUE; @@ -5646,7 +5647,7 @@ enum Move ItemIdToBattleMoveId(enum Item item) return (GetItemPocket(item) == POCKET_TM_HM) ? GetItemTMHMMoveId(item) : MOVE_NONE; } -bool8 MonKnowsMove(struct Pokemon *mon, u16 move) +bool32 MonKnowsMove(struct Pokemon *mon, enum Move move) { u8 i; @@ -5658,7 +5659,7 @@ bool8 MonKnowsMove(struct Pokemon *mon, u16 move) return FALSE; } -bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, u16 move) +bool32 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move) { u8 i; @@ -5690,7 +5691,7 @@ void ItemUseCB_TMHM(u8 taskId, TaskFunc func) { struct Pokemon *mon; s16 *data; - u16 item; + enum Item item; PlaySE(SE_SELECT); mon = &gPlayerParty[gPartyMenu.slotId]; @@ -5731,7 +5732,7 @@ static void Task_LearnedMove(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; s16 *data = gPartyMenu.data; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; if (learnMoveMethod == LEARN_VIA_TMHM) { @@ -5814,7 +5815,7 @@ static void CB2_ShowSummaryScreenToForgetMove(void) static void CB2_ReturnToPartyMenuWhileLearningMove(void) { u8 moveIdx = GetMoveSlotToReplace(); - u16 move; + enum Move move; s32 learnMethod = gPartyMenu.learnMoveMethod; if (learnMethod == LEARN_VIA_TMHM && moveIdx != MAX_MON_MOVES) @@ -5852,7 +5853,7 @@ static void Task_ReplaceMoveWithTMHM(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; u8 moveIdx = GetMoveSlotToReplace(); - u16 move = GetMonData(mon, moveIdx + MON_DATA_MOVE1); + enum Move move = GetMonData(mon, moveIdx + MON_DATA_MOVE1); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, move); GetMonNickname(mon, gStringVar1); @@ -5865,7 +5866,7 @@ static void Task_ReplaceMoveWithTMHM(u8 taskId) static void DisplayPartyMenuForgotMoveMessage(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 move = GetMonData(mon, MON_DATA_MOVE1 + GetMoveSlotToReplace()); + enum Move move = GetMonData(mon, MON_DATA_MOVE1 + GetMoveSlotToReplace()); GetMonNickname(mon, gStringVar1); StringCopy(gStringVar2, gMovesInfo[move].name); @@ -5876,16 +5877,16 @@ static void DisplayPartyMenuForgotMoveMessage(u8 taskId) static void Task_PartyMenuReplaceMove(u8 taskId) { struct Pokemon *mon; - u16 move; + enum Move move; - if (IsPartyMenuTextPrinterActive() != TRUE) - { - mon = &gPlayerParty[gPartyMenu.slotId]; - RemoveMonPPBonus(mon, GetMoveSlotToReplace()); - move = gPartyMenu.learnMoveId; - SetMonMoveSlot(mon, move, GetMoveSlotToReplace()); - Task_LearnedMove(taskId); - } + if (IsPartyMenuTextPrinterActive()) + return; + + mon = &gPlayerParty[gPartyMenu.slotId]; + RemoveMonPPBonus(mon, GetMoveSlotToReplace()); + move = gPartyMenu.learnMoveId; + SetMonMoveSlot(mon, move, GetMoveSlotToReplace()); + Task_LearnedMove(taskId); } static void StopLearningMovePrompt(u8 taskId) @@ -6210,7 +6211,7 @@ static void DisplayMonNeedsToReplaceMove(u8 taskId) gTasks[taskId].func = Task_ReplaceMoveYesNo; } -static void DisplayMonLearnedMove(u8 taskId, u16 move) +static void DisplayMonLearnedMove(u8 taskId, enum Move move) { GetMonNickname(&gPlayerParty[gPartyMenu.slotId], gStringVar1); StringCopy(gStringVar2, gMovesInfo[move].name); @@ -6394,7 +6395,7 @@ static bool8 MonCanEvolve(void) return GetEvolutionTargetSpecies(&gPlayerParty[gPartyMenu.slotId], EVO_MODE_ITEM_USE, gSpecialVar_ItemId, NULL, NULL, CHECK_EVO) != SPECIES_NONE; } -u8 GetItemEffectType(u16 item) +u8 GetItemEffectType(enum Item item) { u32 statusCure; const u8 *itemEffect = GetItemEffect(item); @@ -6561,7 +6562,7 @@ static void GiveItemOrMailToSelectedMon(u8 taskId) static void GiveItemToSelectedMon(u8 taskId) { - u16 item; + enum Item item; if (!gPaletteFade.active) { @@ -6595,12 +6596,12 @@ static void CB2_WriteMailToGiveMonFromBag(void) static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void) { - struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); - // Canceled writing mail if (gSpecialVar_Result == FALSE) { + struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); + TakeMailFromMon(mon); SetMonData(mon, MON_DATA_HELD_ITEM, &sPartyMenuItemId); RemoveBagItem(sPartyMenuItemId, 1); @@ -6637,7 +6638,7 @@ static void Task_SwitchItemsFromBagYesNo(u8 taskId) static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId) { - u16 item; + enum Item item; switch (Menu_ProcessInputNoWrapClearOnChoose()) { @@ -6681,7 +6682,7 @@ static void DisplayItemMustBeRemovedFirstMessage(u8 taskId) // Returns FALSE if there was no space to return the item // but there always should be, and the return is ignored in all uses -static bool8 ReturnGiveItemToBagOrPC(u16 item) +static bool32 ReturnGiveItemToBagOrPC(enum Item item) { if (gPartyMenu.action == PARTY_ACTION_GIVE_ITEM) return AddBagItem(item, 1); @@ -6790,7 +6791,7 @@ static u8 CheckBattleEntriesAndGetMessage(void) maxBattlers = GetMaxBattleEntries(); for (i = 0; i < maxBattlers - 1; i++) { - u16 species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES); + enum Species species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES); enum Item item = GetMonData(&party[order[i] - 1], MON_DATA_HELD_ITEM); for (j = i + 1; j < maxBattlers; j++) { @@ -7459,7 +7460,7 @@ static void Task_PartyMenuWaitForFade(u8 taskId) static void Task_TryItemUseFusionChange(u8 taskId); static void SpriteCB_FormChangeIconMosaic(struct Sprite *sprite); -u8 IsFusionMon(u16 species) +u8 IsFusionMon(enum Species species) { u16 i; const struct Fusion *itemFusion = gFusionTablePointers[species]; @@ -7798,9 +7799,8 @@ static void Task_TryItemUseFusionChange(u8 taskId) void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc) { - u16 i; struct Task *task = &gTasks[taskId]; - u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); + enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); const struct Fusion *itemFusion = gFusionTablePointers[species]; PlaySE(SE_SELECT); @@ -7819,7 +7819,7 @@ void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc) task->func = taskFunc; return; } - for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Loops through fusion table and checks if the mon can be unfused + for (u32 i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Loops through fusion table and checks if the mon can be unfused { if (gPokemonStoragePtr->fusions[itemFusion[i].fusionStorageIndex].level == 0) continue; @@ -7841,7 +7841,7 @@ void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc) case FUSE_MON: if (task->fusionType == FUSE_MON) // Cancel If Second Mon is Another First Fusion Mon break; - for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Run through the Fusion table for each species and check if the item matches one of the entries + for (u32 i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Run through the Fusion table for each species and check if the item matches one of the entries { if (itemFusion[i].itemId == gSpecialVar_ItemId) { @@ -7861,7 +7861,7 @@ void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc) case SECOND_FUSE_MON: if (task->fusionType != FUSE_MON) // Cancel if Secondary Fusion Mon Chosen First break; - for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // run through fusion table and check if the fusion works + for (u32 i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // run through fusion table and check if the fusion works { if (gPokemonStoragePtr->fusions[itemFusion[i].fusionStorageIndex].level != 0) continue; @@ -8164,11 +8164,9 @@ static void ShiftMoveSlot(struct Pokemon *mon, u8 slotTo, u8 slotFrom) SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses); } -u32 Party_FirstMonWithMove(u16 moveId) +u32 Party_FirstMonWithMove(enum Move moveId) { - u8 i; - - for (i = 0; i < PARTY_SIZE; i++) + for (u32 i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE) break; @@ -8244,7 +8242,7 @@ void GetNumMovesSelectedMonHas(void) void BufferMoveDeleterNicknameAndMove(void) { struct Pokemon *mon = &gPlayerParty[gSpecialVar_0x8004]; - u16 move = GetMonData(mon, MON_DATA_MOVE1 + gSpecialVar_0x8005); + enum Move move = GetMonData(mon, MON_DATA_MOVE1 + gSpecialVar_0x8005); GetMonNickname(mon, gStringVar1); StringCopy(gStringVar2, GetMoveName(move)); diff --git a/src/pokeball.c b/src/pokeball.c index de3bb97fe..c8d9f5e4a 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -732,7 +732,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) { u8 wantedCry = gTasks[taskId].tCryTaskWantedCry; s8 pan = gTasks[taskId].tCryTaskPan; - u16 species = gTasks[taskId].tCryTaskSpecies; + enum Species species = gTasks[taskId].tCryTaskSpecies; enum BattlerId battler = gTasks[taskId].tCryTaskBattler; u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId; struct Pokemon *mon = (void *)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 16) | (u16)(gTasks[taskId].tCryTaskMonPtr2)); @@ -1117,7 +1117,7 @@ static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 spritePalNum, u #define sTrigIdx data[7] // Poké Ball in Birch intro, and when receiving via trade -void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, u16 species) +void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, enum Species species) { u8 spriteId; diff --git a/src/pokedex_area_markers.c b/src/pokedex_area_markers.c index dbf0a05c3..ce88fed89 100644 --- a/src/pokedex_area_markers.c +++ b/src/pokedex_area_markers.c @@ -191,7 +191,7 @@ static void Task_ShowAreaMarkers(u8 taskId) gSprites[data->spriteId].invisible = FALSE; } -u8 CreatePokedexAreaMarkers(u16 species, u16 tilesTag, u8 palIdx, u8 y) +u8 CreatePokedexAreaMarkers(enum Species species, u16 tilesTag, u8 palIdx, u8 y) { struct SpriteTemplate spriteTemplate; struct CompressedSpriteSheet spriteSheet; diff --git a/src/pokedex_emerald.c b/src/pokedex_emerald.c index 6a9759495..2faad4f24 100644 --- a/src/pokedex_emerald.c +++ b/src/pokedex_emerald.c @@ -240,7 +240,7 @@ static u16 TryDoPokedexScroll(u16, u16); static void UpdateSelectedMonSpriteId(void); static bool8 TryDoInfoScreenScroll(void); static u8 ClearMonSprites(void); -static u16 GetPokemonSpriteToDisplay(u16); +static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum); static u32 CreatePokedexMonSprite(u16, s16, s16); static void CreateInterfaceSprites(u8); static void SpriteCB_MoveMonForInfoScreen(struct Sprite *sprite); @@ -283,9 +283,9 @@ static void PrintUnknownMonMeasurements(void); static u8* GetUnknownMonHeightString(void); static u8* GetUnknownMonWeightString(void); static u8* ReplaceDecimalSeparator(const u8* originalString); -static void PrintOwnedMonMeasurements(u16 species); -static void PrintOwnedMonHeight(u16 species); -static void PrintOwnedMonWeight(u16 species); +static void PrintOwnedMonMeasurements(enum Species species); +static void PrintOwnedMonHeight(enum Species species); +static void PrintOwnedMonWeight(enum Species species); // static u8* ConvertMonHeightToImperialString(u32 height); // static u8* ConvertMonHeightToMetricString(u32 height); // static u8* ConvertMonWeightToImperialString(u32 weight); @@ -298,7 +298,7 @@ static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum); static u16 GetPokemonOffsetFromNationalDexNumber(u16 nationalNum); static u16 GetTrainerScaleFromNationalDexNumber(u16 nationalNum); static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum); -static u16 CreateSizeScreenTrainerPic(u16, s16, s16, s8); +static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16 x, s16 y, s8 paletteSlot); static u16 GetNextPosition(u8, u16, u16, u16); static u8 LoadSearchMenu(void); static void Task_LoadSearchMenu(u8); @@ -2772,12 +2772,12 @@ static u8 ClearMonSprites(void) return FALSE; } -static u16 GetPokemonSpriteToDisplay(u16 species) +static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum) { - if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF) + if (natDexNum >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[natDexNum].dexNum == 0xFFFF) return 0xFFFF; - else if (sPokedexView->pokedexList[species].seen) - return sPokedexView->pokedexList[species].dexNum; + else if (sPokedexView->pokedexList[natDexNum].seen) + return sPokedexView->pokedexList[natDexNum].dexNum; else return 0; } @@ -4048,7 +4048,7 @@ u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y) void Task_DisplayCaughtMonDexPage(u8 taskId) { u8 spriteId; - u16 species = gTasks[taskId].tSpecies; + enum Species species = gTasks[taskId].tSpecies; enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(species); switch (gTasks[taskId].tState) @@ -4189,7 +4189,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) { u8 str[0x10]; u8 str2[0x30]; - u16 species; + enum Species species; const u8 *name; const u8 *category; const u8 *description; @@ -4229,7 +4229,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) PrintInfoScreenText(description, GetStringCenterAlignXOffset(FONT_NORMAL, description, DISPLAY_WIDTH), 95); } -void PrintMonMeasurements(u16 species, u32 owned) +void PrintMonMeasurements(enum Species species, u32 owned) { u32 x = GetMeasurementTextPositions(DEX_HEADER_X); u32 yTop = GetMeasurementTextPositions(DEX_Y_TOP); @@ -4316,13 +4316,13 @@ static u8* ReplaceDecimalSeparator(const u8* originalString) return modifiedString; } -static void PrintOwnedMonMeasurements(u16 species) +static void PrintOwnedMonMeasurements(enum Species species) { PrintOwnedMonHeight(species); PrintOwnedMonWeight(species); } -static void PrintOwnedMonHeight(u16 species) +static void PrintOwnedMonHeight(enum Species species) { u32 height = GetSpeciesHeight(species); u8* heightString; @@ -4344,7 +4344,7 @@ static void PrintOwnedMonHeight(u16 species) // return ConvertMonHeightToMetricString(height); // } -static void PrintOwnedMonWeight(u16 species) +static void PrintOwnedMonWeight(enum Species species) { u32 weight = GetSpeciesWeight(species); u8* weightString; @@ -4662,7 +4662,7 @@ static void UNUSED PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top) #define NUM_FOOTPRINT_TILES 4 -void DrawFootprint(u8 windowId, u16 species) +void DrawFootprint(u8 windowId, enum Species species) { u8 ALIGNED(4) footprint4bpp[TILE_SIZE_4BPP * NUM_FOOTPRINT_TILES]; const u8 *footprintGfx = NULL; @@ -4741,7 +4741,7 @@ static u16 GetNextPosition(u8 direction, u16 position, u16 min, u16 max) // Unown and Spinda use the personality of the first seen individual of that species // All others use personality 0 -static u32 GetPokedexMonPersonality(u16 species) +static u32 GetPokedexMonPersonality(enum Species species) { if (species == SPECIES_UNOWN || species == SPECIES_SPINDA) { @@ -4758,42 +4758,47 @@ static u32 GetPokedexMonPersonality(u16 species) u16 CreateMonSpriteFromNationalDexNumber(enum NationalDexOrder nationalNum, s16 x, s16 y, u16 paletteSlot) { - nationalNum = NationalPokedexNumToSpecies(nationalNum); - return CreateMonFrontPicSprite(nationalNum, FALSE, GetPokedexMonPersonality(nationalNum), x, y, paletteSlot, TAG_NONE); + enum Species species = NationalPokedexNumToSpecies(nationalNum); + + return CreateMonFrontPicSprite(species, FALSE, GetPokedexMonPersonality(species), x, y, paletteSlot, TAG_NONE); } static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum) { - nationalNum = NationalPokedexNumToSpecies(nationalNum); - return gSpeciesInfo[nationalNum].pokemonScale; + enum Species species = NationalPokedexNumToSpecies(nationalNum); + + return gSpeciesInfo[species].pokemonScale; } static u16 GetPokemonOffsetFromNationalDexNumber(u16 nationalNum) { - nationalNum = NationalPokedexNumToSpecies(nationalNum); - return gSpeciesInfo[nationalNum].pokemonOffset; + enum Species species = NationalPokedexNumToSpecies(nationalNum); + + return gSpeciesInfo[species].pokemonOffset; } static u16 GetTrainerScaleFromNationalDexNumber(u16 nationalNum) { - nationalNum = NationalPokedexNumToSpecies(nationalNum); - return gSpeciesInfo[nationalNum].trainerScale; + enum Species species = NationalPokedexNumToSpecies(nationalNum); + + return gSpeciesInfo[species].trainerScale; } static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum) { - nationalNum = NationalPokedexNumToSpecies(nationalNum); - return gSpeciesInfo[nationalNum].trainerOffset; + enum Species species = NationalPokedexNumToSpecies(nationalNum); + + return gSpeciesInfo[species].trainerOffset; } -static u16 CreateSizeScreenTrainerPic(u16 species, s16 x, s16 y, s8 paletteSlot) +static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16 x, s16 y, s8 paletteSlot) { - return CreateTrainerFrontPicSprite(species, x, y, paletteSlot); + return CreateTrainerFrontPicSprite(trainerPicId, x, y, paletteSlot); } static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, enum BodyColor bodyColor, enum Type type1, enum Type type2) { - u16 species; + enum Species species; u16 i; u16 resultsCount; enum Type types[2]; diff --git a/src/pokedex_emerald_area_screen.c b/src/pokedex_emerald_area_screen.c index 2af958751..da5e788fa 100644 --- a/src/pokedex_emerald_area_screen.c +++ b/src/pokedex_emerald_area_screen.c @@ -85,7 +85,7 @@ struct /*0x004*/ MainCallback prev; // unused /*0x008*/ MainCallback next; // unused /*0x00C*/ u16 state; // unused - /*0x00E*/ u16 species; + /*0x00E*/ enum Species species; /*0x010*/ struct OverworldArea overworldAreasWithMons[MAX_AREA_HIGHLIGHTS]; /*0x110*/ u16 numOverworldAreas; /*0x112*/ u16 numSpecialAreas; @@ -113,13 +113,13 @@ struct EWRAM_DATA u8 gAreaTimeOfDay = 0; -static void FindMapsWithMon(u16); +static void FindMapsWithMon(enum Species species); static void BuildAreaGlowTilemap(void); static void SetAreaHasMon(u16, u16); static void SetSpecialMapHasMon(u16, u16); static mapsec_u16_t GetRegionMapSectionId(u8, u8); -static bool8 MapHasSpecies(const struct WildEncounterTypes *, u16); -static bool8 MonListHasSpecies(const struct WildPokemonInfo *, u16, u16); +static bool8 MapHasSpecies(const struct WildEncounterTypes *info, enum Species species); +static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, enum Species species, u16 size); static void DoAreaGlow(void); static void Task_ShowPokedexAreaScreen(u8 taskId); static void Task_UpdatePokedexAreaScreen(u8 taskId); @@ -143,7 +143,7 @@ static const u32 sAreaGlow_Gfx[] = INCBIN_U32("graphics/pokedex/emerald/area_glo static const u32 sPokedexPlusHGSS_ScreenSelectBarSubmenu_Tilemap[] = INCBIN_U32("graphics/pokedex/hgss/SelectBar.bin.smolTM"); static void LoadHGSSScreenSelectBarSubmenu(void); -static const u16 sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT }; +static const enum Species sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT }; // static const mapsec_u16_t sMovingRegionMapSections[3] = // { @@ -154,7 +154,7 @@ static const u16 sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT }; static const u16 sFeebasData[][3] = { - {NUM_SPECIES} + {NUM_SPECIES, MAP_GROUP(MAP_UNDEFINED), MAP_GROUP(MAP_UNDEFINED)} }; #include "data/pokedex_emerald_area_glow.h" @@ -286,7 +286,7 @@ static bool8 DrawAreaGlow(void) return TRUE; } -static void FindMapsWithMon(u16 species) +static void FindMapsWithMon(enum Species species) { enum RegionMapType currentRegionMapType; u16 i; @@ -423,7 +423,7 @@ static mapsec_u16_t GetRegionMapSectionId(u8 mapGroup, u8 mapNum) return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId; } -static bool8 MapHasSpecies(const struct WildEncounterTypes *info, u16 species) +static bool8 MapHasSpecies(const struct WildEncounterTypes *info, enum Species species) { u32 headerId = GetCurrentMapWildMonHeaderId(); u8 currentMapGroup = gWildMonHeaders[headerId].mapGroup; @@ -453,7 +453,7 @@ static bool8 MapHasSpecies(const struct WildEncounterTypes *info, u16 species) return FALSE; } -static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, u16 species, u16 size) +static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, enum Species species, u16 size) { u16 i; if (info != NULL) @@ -705,7 +705,7 @@ bool32 ShouldShowAreaUnknownLabel(void) #define tState data[0] -void DisplayPokedexAreaScreen(u16 species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState) +void DisplayPokedexAreaScreen(enum Species species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState) { u8 taskId; diff --git a/src/pokedex_emerald_cry_screen.c b/src/pokedex_emerald_cry_screen.c index 05bd13644..35b81a9a1 100644 --- a/src/pokedex_emerald_cry_screen.c +++ b/src/pokedex_emerald_cry_screen.c @@ -44,12 +44,12 @@ struct PokedexCryScreen u8 waveformPreviousY; u16 unk; // Never read u8 playStartPos; - u16 species; + enum Species species; u8 cryOverrideCountdown; u8 cryRepeatDelay; }; -static void PlayCryScreenCry(u16); +static void PlayCryScreenCry(enum Species species); static void BufferCryWaveformSegment(void); static void DrawWaveformFlatline(void); static void AdvancePlayhead(u8); @@ -324,7 +324,7 @@ void UpdateCryWaveformWindow(u8 windowId) sDexCryScreen->cryState++; } -void CryScreenPlayButton(u16 species) +void CryScreenPlayButton(enum Species species) { if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE && !sDexCryScreen->cryOverrideCountdown) { @@ -345,7 +345,7 @@ void CryScreenPlayButton(u16 species) } } -static void PlayCryScreenCry(u16 species) +static void PlayCryScreenCry(enum Species species) { PlayCry_NormalNoDucking(species, 0, CRY_VOLUME_RS, CRY_PRIORITY_NORMAL); sDexCryScreen->cryState = 1; diff --git a/src/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index 1058167ee..319722f9b 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -293,8 +293,8 @@ static EWRAM_DATA u8 sPokeBallRotation = 0; static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL; //Pokedex Plus HGSS_Ui #define MOVES_COUNT_TOTAL (EGG_MOVES_ARRAY_COUNT + MAX_LEVEL_UP_MOVES + NUM_ALL_MACHINES) -EWRAM_DATA static u16 sStatsMoves[MOVES_COUNT_TOTAL] = {0}; -EWRAM_DATA static u16 sStatsMovesTMHM_ID[NUM_ALL_MACHINES] = {0}; +EWRAM_DATA static enum Move sStatsMoves[MOVES_COUNT_TOTAL] = {0}; +EWRAM_DATA static enum Item sStatsMovesTMHM_ID[NUM_ALL_MACHINES] = {0}; struct SearchOptionText @@ -332,7 +332,7 @@ struct SearchMenuItem struct PokedexListItem { - u16 dexNum; + enum NationalDexOrder dexNum; u16 seen:1; u16 owned:1; }; @@ -340,7 +340,7 @@ struct PokedexListItem struct PokemonStats { - u16 species; + enum Species species; u8 genderRatio; u8 baseHP; u8 baseSpeed; @@ -371,7 +371,7 @@ struct EvoScreenData { bool8 fromEvoPage; u8 numAllEvolutions; - u16 targetSpecies[10]; + enum Species targetSpecies[10]; u8 numSeen; bool8 seen[10]; u8 menuPos; @@ -417,7 +417,7 @@ struct PokedexView struct PokemonStats sPokemonStats; struct EvoScreenData sEvoScreenData; struct FromScreenData sFormScreenData; - u16 formSpecies; + enum Species formSpecies; u16 selectedMonSpriteId; u16 pokeBallRotationStep; u16 pokeBallRotationBackup; @@ -478,7 +478,7 @@ static u16 TryDoPokedexScroll(u16, u16); static void UpdateSelectedMonSpriteId(void); static bool8 TryDoInfoScreenScroll(void); static u8 ClearMonSprites(void); -static u16 GetPokemonSpriteToDisplay(u16); +static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum); static u32 CreatePokedexMonSprite(u16, s16, s16); static void CreateInterfaceSprites(u8); static void SpriteCB_MoveMonForInfoScreen(struct Sprite *sprite); @@ -518,7 +518,7 @@ static void ResetOtherVideoRegisters(u16); static u8 PrintCryScreenSpeciesName(u8, u16, u8, u8); static void PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top); static u16 CreateMonSpriteFromNationalDexNumberHGSS(u16 nationalNum, s16 x, s16 y, u16 paletteSlot); -static u16 CreateSizeScreenTrainerPic(u16, s16, s16, s8); +static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16, s16, s8); static u16 GetNextPosition(u8, u16, u16, u16); static u8 LoadSearchMenu(void); static void Task_LoadSearchMenu(u8); @@ -574,8 +574,8 @@ static void Task_LoadEvolutionScreen(u8 taskId); static void Task_HandleEvolutionScreenInput(u8 taskId); static void Task_SwitchScreensFromEvolutionScreen(u8 taskId); static void Task_ExitEvolutionScreen(u8 taskId); -static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines); -static u8 PrintPreEvolutions(u8 taskId, u16 species); +static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, enum Species species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines); +static u8 PrintPreEvolutions(u8 taskId, enum Species species); //Stat bars on scrolling screens static void TryDestroyStatBars(void); static void TryDestroyStatBarsBg(void); @@ -587,7 +587,7 @@ static void SpriteCB_StatBarsBg(struct Sprite *sprite); //Forms screen static void Task_LoadFormsScreen(u8 taskId); static void Task_HandleFormsScreenInput(u8 taskId); -static void PrintForms(u8 taskId, u16 species); +static void PrintForms(u8 taskId, enum Species species); static void Task_SwitchScreensFromFormsScreen(u8 taskId); static void Task_ExitFormsScreen(u8 taskId); @@ -595,7 +595,7 @@ static void Task_ExitFormsScreen(u8 taskId); static u8 ShowCategoryIcon(enum DamageCategory category); static void DestroyCategoryIcon(void); -static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum); +static enum Species NationalPokedexNumToSpeciesHGSS(enum NationalDexOrder nationalNum); //Evo screen u32 GetSpeciesNameFontId(u32 nameWidth); @@ -3057,12 +3057,12 @@ static u8 ClearMonSprites(void) return FALSE; } -static u16 GetPokemonSpriteToDisplay(u16 species) +static u16 GetPokemonSpriteToDisplay(enum NationalDexOrder natDexNum) { - if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF) + if (natDexNum >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[natDexNum].dexNum == 0xFFFF) return 0xFFFF; - else if (sPokedexView->pokedexList[species].seen) - return sPokedexView->pokedexList[species].dexNum; + else if (sPokedexView->pokedexList[natDexNum].seen) + return sPokedexView->pokedexList[natDexNum].dexNum; else return 0; } @@ -4093,7 +4093,7 @@ static void UNUSED HighlightScreenSelectBarItem(u8 selectedScreen, u16 unused) void Task_DisplayCaughtMonDexPageHGSS(u8 taskId) { u8 spriteId; - u16 species; + enum Species species; enum NationalDexOrder dexNum; if (!POKEDEX_PLUS_HGSS) return; // prevents the compiler from emitting static .rodata @@ -4215,7 +4215,7 @@ static void Task_ExitCaughtMonPage(u8 taskId) { if (!gPaletteFade.active) { - u16 species; + enum Species species; u32 otId; u32 personality; u8 paletteNum; @@ -4351,7 +4351,7 @@ static void SetTypeIconPosAndPal(u8 typeId, u8 x, u8 y, u8 spriteArrayId) sprite->y = y + 8; SetSpriteInvisibility(spriteArrayId, FALSE); } -static void PrintCurrentSpeciesTypeInfo(u8 newEntry, u16 species) +static void PrintCurrentSpeciesTypeInfo(u8 newEntry, enum Species species) { enum Type type1, type2; @@ -4402,7 +4402,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) { u8 str[16]; u8 str2[32]; - u16 species; + enum Species species; const u8 *name; const u8 *category; const u8 *description; @@ -4517,7 +4517,7 @@ static u8 PrintCryScreenSpeciesName(u8 windowId, u16 num, u8 left, u8 top) // Unown and Spinda use the personality of the first seen individual of that species // All others use personality 0 -static u32 GetPokedexMonPersonality(u16 species) +static u32 GetPokedexMonPersonality(enum Species species) { if (species == SPECIES_UNOWN || species == SPECIES_SPINDA) { @@ -4562,9 +4562,9 @@ static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum) return gSpeciesInfo[nationalNum].trainerOffset; } -static u16 CreateSizeScreenTrainerPic(u16 species, s16 x, s16 y, s8 paletteSlot) +static u16 CreateSizeScreenTrainerPic(enum TrainerPicID trainerPicId, s16 x, s16 y, s8 paletteSlot) { - return CreateTrainerFrontPicSprite(species, x, y, paletteSlot); + return CreateTrainerFrontPicSprite(trainerPicId, x, y, paletteSlot); } @@ -4667,12 +4667,12 @@ static u16 GetNextPosition(u8 direction, u16 position, u16 min, u16 max) //* HGSS * //* * //************************************ -static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum) +static enum Species NationalPokedexNumToSpeciesHGSS(enum NationalDexOrder nationalNum) { if (!nationalNum) - return 0; + return SPECIES_NONE; - if (sPokedexView->formSpecies != 0) + if (sPokedexView->formSpecies != SPECIES_NONE) return sPokedexView->formSpecies; else return NationalPokedexNumToSpecies(nationalNum); @@ -4764,7 +4764,7 @@ static void ResetStatsWindows(void) static void SaveMonDataInStruct(void) { - u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u8 evs[NUM_STATS] = { [STAT_HP] = gSpeciesInfo[species].evYield_HP, @@ -5054,16 +5054,16 @@ static void PrintStatsScreen_DestroyMoveItemIcon(u8 taskId) DestroySprite(&gSprites[gTasks[taskId].data[3]]); //Destroy item icon } -static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *numTutorMoves) +static u16 AddTMTutorMoves(enum Species species, u16 movesTotal, u8 *numTMHMMoves, u8 *numTutorMoves) { - u16 i, move; + enum Move move; bool8 isTMMove[MOVES_COUNT] = {0}; const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species); // TM Moves if (HGSS_SORT_TMS_BY_NUM) { - for (i = 0; i < NUM_ALL_MACHINES; i++) + for (u32 i = 0; i < NUM_ALL_MACHINES; i++) { move = GetTMHMMoveId(i + 1); if (move != MOVE_NONE && CanLearnTeachableMove(species, move)) @@ -5078,7 +5078,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu } else { - for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) + for (u32 i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) { move = teachableLearnset[i]; for (u16 j = 0; j < NUM_ALL_MACHINES; j++) @@ -5098,7 +5098,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu // Tutor Moves #if P_TUTOR_MOVES_ARRAY - for (i = 0; gTutorMoves[i] != MOVE_UNAVAILABLE; i++) + for (u32 i = 0; gTutorMoves[i] != MOVE_UNAVAILABLE; i++) { move = gTutorMoves[i]; if (!isTMMove[move] && CanLearnTeachableMove(species, move)) @@ -5109,7 +5109,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu } } #else - for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) + for (u32 i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) { move = teachableLearnset[i]; if (!isTMMove[move] && CanLearnTeachableMove(species, move)) @@ -5125,7 +5125,7 @@ static u16 AddTMTutorMoves(u16 species, u16 movesTotal, u8 *numTMHMMoves, u8 *nu static bool8 CalculateMoves(void) { - u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u16 statsMovesEgg[EGG_MOVES_ARRAY_COUNT] = {0}; u16 statsMovesLevelUp[MAX_LEVEL_UP_MOVES] = {0}; @@ -5193,10 +5193,9 @@ static void PrintStatsScreen_Moves_Top(u8 taskId) u8 level; u8 moves_x = 5; u8 moves_y = 3; - u16 move; - u16 item; - - u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Move move; + enum Item item; + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); //Move move = sStatsMoves[selected]; @@ -5266,7 +5265,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId) static void PrintStatsScreen_Moves_Description(u8 taskId) { u16 selected = sPokedexView->moveSelected; - u16 move; + enum Move move; u8 moves_x = 5; u8 moves_y = 5; @@ -5308,7 +5307,7 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId) u8 moves_x = 8; u8 moves_y = 3; u8 selected = sPokedexView->moveSelected; - u16 move; + enum Move move; //Contest u8 contest_effectValue; u8 contest_appeal = 0; @@ -5364,7 +5363,7 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId) static void PrintStatsScreen_NameGender(u8 taskId, u32 num, u32 value) { u8 str[16]; - u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u8 base_x = 38; u8 base_y = 0; @@ -6008,7 +6007,7 @@ static void ResetEvoScreenDataStruct(void) static void GetSeenFlagTargetSpecies(void) { u8 i; - u16 species; + enum Species species; for (i = 0; i < sPokedexView->sEvoScreenData.numAllEvolutions; i++) { species = sPokedexView->sEvoScreenData.targetSpecies[i]; @@ -6188,7 +6187,7 @@ static void Task_HandleEvolutionScreenInput(u8 taskId) if (JOY_NEW(A_BUTTON)) { - u16 targetSpecies = sPokedexView->sEvoScreenData.targetSpecies[sPokedexView->sEvoScreenData.menuPos]; + enum Species targetSpecies = sPokedexView->sEvoScreenData.targetSpecies[sPokedexView->sEvoScreenData.menuPos]; enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(targetSpecies); if (sPokedexView->isSearchResults && sPokedexView->originalSearchSelectionNum == 0) sPokedexView->originalSearchSelectionNum = sPokedexListItem->dexNum; @@ -6200,7 +6199,7 @@ static void Task_HandleEvolutionScreenInput(u8 taskId) if (GetSpeciesFormTable(targetSpecies) != NULL) sPokedexView->formSpecies = targetSpecies; else - sPokedexView->formSpecies = 0; + sPokedexView->formSpecies = SPECIES_NONE; sPokedexView->sEvoScreenData.fromEvoPage = TRUE; PlaySE(SE_PIN); @@ -6278,7 +6277,7 @@ static void CreateCaughtBallEvolutionScreen(u16 targetSpecies, u8 x, u8 y, u16 u } } -static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 species, u8 base_x, u8 base_y, u8 base_y_offset, u8 base_i) +static void HandlePreEvolutionSpeciesPrint(u8 taskId, enum Species preSpecies, enum Species species, u8 base_x, u8 base_y, u8 base_y_offset, u8 base_i) { bool8 seen = GetSetPokedexFlag(SpeciesToNationalPokedexNum(preSpecies), FLAG_GET_SEEN); @@ -6309,7 +6308,7 @@ static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 specie } } -static bool32 HasTwoPreEvolutions(u32 species) +static bool32 HasTwoPreEvolutions(enum Species species) { switch (species) { @@ -6320,9 +6319,8 @@ static bool32 HasTwoPreEvolutions(u32 species) } } -static u8 PrintPreEvolutions(u8 taskId, u16 species) +static u8 PrintPreEvolutions(u8 taskId, enum Species species) { - u16 i; u16 j; u8 base_x = 13+8; @@ -6333,7 +6331,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species) u16 preEvolutionTwo = 0; u8 numPreEvolutions = 0; - u16 baseFormSpecies; + enum Species baseFormSpecies; sPokedexView->sEvoScreenData.isMega = FALSE; //Check if it's a mega @@ -6341,7 +6339,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species) if (baseFormSpecies != species) { const struct FormChange *formChanges = GetSpeciesFormChanges(baseFormSpecies); - for (i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++) + for (u32 i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++) { if (formChanges[i].method == FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM && formChanges[i].targetSpecies == species) @@ -6361,7 +6359,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species) } //Calculate previous evolution - for (i = 0; i < NUM_SPECIES; i++) + for (enum Species i = 0; i < NUM_SPECIES; i++) { const struct Evolution *evolutions = GetSpeciesEvolutions(i); if (evolutions == NULL) @@ -6407,7 +6405,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species) //Calculate if previous evolution also has a previous evolution if (numPreEvolutions != 0) { - for (i = 0; i < NUM_SPECIES; i++) + for (enum Species i = 0; i < NUM_SPECIES; i++) { const struct Evolution *evolutions = GetSpeciesEvolutions(i); if (evolutions == NULL) @@ -6486,7 +6484,7 @@ bool32 IsItemSweet(u32 item) return item >= ITEM_STRAWBERRY_SWEET && item <= ITEM_RIBBON_SWEET; } -static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines) +static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, enum Species species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines) { int i; u32 depth_x = 4; @@ -7136,7 +7134,7 @@ static void Task_HandleFormsScreenInput(u8 taskId) #define FORM_SPECIES_END (0xffff) -static void PrintForms(u8 taskId, u16 species) +static void PrintForms(u8 taskId, enum Species species) { u8 i; u8 j = 1; @@ -7832,7 +7830,7 @@ static void Task_ClosePokedexFromSearchResultsStartMenu(u8 taskId) //************************************ static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, enum BodyColor bodyColor, enum Type type1, enum Type type2) { - u16 species; + enum Species species; u16 i; u16 resultsCount; enum Type types[2]; diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index 6a3ea529a..0378b41ad 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -74,7 +74,7 @@ struct PokedexScreenData u16 orderedDexCount; u8 windowIds[0x10]; u16 dexSpecies; - u16 * bgBufsMem; + u16 *bgBufsMem; u8 scrollArrowsTaskId; u8 categoryPageCursorTaskId; u16 modeSelectCursorPosBak; @@ -87,13 +87,13 @@ struct PokedexScreenData struct PokedexScreenWindowGfx { - const u32 * tiles; - const u16 * pal; + const u32 *tiles; + const u16 *pal; }; struct PokedexCategoryPage { - const u16 * species; + const enum Species *species; u8 count; }; @@ -118,7 +118,7 @@ static void DexScreen_RemoveWindow(u8 *windowId_p); static void DexScreen_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); static void DexScreen_PrintNum3RightAlign(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx); static void DexScreen_PrintNum4RightAlign(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx); -static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, u16 species, u8 x, u8 y, bool32 allowNationalDex); +static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, enum Species species, u8 x, u8 y, bool32 allowNationalDex); static u16 DexScreen_GetDexCount(u8 caseId, bool8 whichDex); static void DexScreen_PrintControlInfo(const u8 *src); static void DexScreen_DestroyCategoryPageMonIconAndInfoWindows(void); @@ -133,7 +133,7 @@ u8 DexScreen_DrawMonAreaPage(void); static bool8 DexScreen_IsPageUnlocked(u8 category, u8 pageNum); static bool8 DexScreen_IsCategoryUnlocked(u8 category); static u8 DexScreen_GetPageLimitsForCategory(u8 category); -static bool8 DexScreen_LookUpCategoryBySpecies(u16 species); +static bool8 DexScreen_LookUpCategoryBySpecies(enum Species species); u8 DexScreen_DestroyAreaScreenResources(void); void DexScreen_CreateCategoryPageSpeciesList(u8 category, u8 pageNum); static u8 DexScreen_PageNumberToRenderablePages(u16 page); @@ -1598,16 +1598,9 @@ static u8 DexScreen_CreateDexOrderScrollArrows(void) return AddScrollIndicatorArrowPair(&template, &sPokedexScreenData->modeSelectCursorPosBak); } -struct PokedexListItem -{ - u16 species; - bool8 seen:1; - bool8 caught:1; -}; - static void ItemPrintFunc_OrderedListMenu(u8 windowId, u32 itemId, u8 y) { - u16 species = itemId; + enum Species species = itemId; bool8 caught = (itemId >> 17) & 1; u8 type1; DexScreen_PrintMonDexNo(sPokedexScreenData->numericalOrderWindowId, FONT_SMALL, species, 12, y, sPokedexScreenData->dexOrderId != DEX_ORDER_NUMERICAL_KANTO); @@ -2294,12 +2287,12 @@ static u32 DexScreen_GetDefaultPersonality(int species) } } -static void DexScreen_LoadMonPicInWindow(u8 windowId, u16 species, u16 paletteOffset) +static void DexScreen_LoadMonPicInWindow(u8 windowId, enum Species species, u16 paletteOffset) { LoadMonFrontPicInWindow(species, FALSE, DexScreen_GetDefaultPersonality(species), paletteOffset >> 4, windowId); } -static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, u16 species, u8 x, u8 y, bool32 allowNationalDex) +static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, enum Species species, u8 x, u8 y, bool32 allowNationalDex) { u16 dexNum; u8 xNum; @@ -2383,7 +2376,7 @@ static void DexScreen_PrintControlInfo(const u8 *src) DexScreen_AddTextPrinterParameterized(1, FONT_SMALL, src, 236 - GetStringWidth(FONT_SMALL, src, 0), 2, 4); } -bool8 DexScreen_DrawMonPicInCategoryPage(u16 species, u8 slot, u8 numSlots) +bool8 DexScreen_DrawMonPicInCategoryPage(enum Species species, u8 slot, u8 numSlots) { struct WindowTemplate template; numSlots--; @@ -2750,7 +2743,7 @@ void DexScreen_DexPageZoomEffectFrame(u8 bg, u8 scale) FillBgTilemapBufferRect_Palette0(bg, 2, left + 1, divY + 1, width, top + height - divY); } -void DexScreen_PrintMonCategory(u8 windowId, u16 species, u8 x, u8 y) +void DexScreen_PrintMonCategory(u8 windowId, enum Species species, u8 x, u8 y) { u8 *categoryName; u8 index, categoryStr[12]; @@ -2782,7 +2775,7 @@ void DexScreen_PrintMonCategory(u8 windowId, u16 species, u8 x, u8 y) DexScreen_AddTextPrinterParameterized(windowId, FONT_SMALL, gText_PokedexPokemon, x, y, 0); } -void DexScreen_PrintMonHeight(u8 windowId, u16 species, u8 x, u8 y) +void DexScreen_PrintMonHeight(u8 windowId, enum Species species, u8 x, u8 y) { u8* heightString; @@ -2887,7 +2880,7 @@ static u8* ConvertMeasurementToMetricString(u32 num, u32* index) return string; } -void DexScreen_PrintMonWeight(u8 windowId, u16 species, u8 x, u8 y) +void DexScreen_PrintMonWeight(u8 windowId, enum Species species, u8 x, u8 y) { u8* weightString; @@ -3015,7 +3008,7 @@ static u8* ReplaceDecimalSeparator(const u8* originalString) return modifiedString; } -void DexScreen_PrintMonFlavorText(u8 windowId, u16 species, u8 x, u8 y) +void DexScreen_PrintMonFlavorText(u8 windowId, enum Species species, u8 x, u8 y) { struct TextPrinterTemplate printerTemplate; u16 length; @@ -3054,7 +3047,7 @@ void DexScreen_PrintMonFlavorText(u8 windowId, u16 species, u8 x, u8 y) #define NUM_FOOTPRINT_TILES 4 -void DexScreen_DrawMonFootprint(u8 windowId, u16 species, u8 x, u8 y) +void DexScreen_DrawMonFootprint(u8 windowId, enum Species species, u8 x, u8 y) { u16 i, j, tileIdx; u8 footprintPixel, footprintTile; @@ -3338,10 +3331,10 @@ u8 DexScreen_DestroyAreaScreenResources(void) return 0; } -static bool32 DexScreen_MonHasCategoryEntry(u16 species) +static bool32 DexScreen_MonHasCategoryEntry(enum Species species) { u16 i, j, k; - u16 natDexNum = SpeciesToNationalPokedexNum(species); + enum NationalDexOrder natDexNum = SpeciesToNationalPokedexNum(species); for (i = 0; i < ARRAY_COUNT(gDexCategories); i++) { @@ -3358,7 +3351,7 @@ static bool32 DexScreen_MonHasCategoryEntry(u16 species) return FALSE; } -static bool32 DexScreen_CanShowMonInDex(u16 species) +static bool32 DexScreen_CanShowMonInDex(enum Species species) { return (IsNationalPokedexEnabled() || IsSpeciesInKantoDex(species)) && DexScreen_MonHasCategoryEntry(species); } @@ -3366,7 +3359,7 @@ static bool32 DexScreen_CanShowMonInDex(u16 species) static u8 DexScreen_IsPageUnlocked(u8 categoryNum, u8 pageNum) { int i, count; - u16 species; + enum Species species; count = gDexCategories[categoryNum].page[pageNum].count; @@ -3399,7 +3392,7 @@ static bool8 DexScreen_IsCategoryUnlocked(u8 categoryNum) void DexScreen_CreateCategoryPageSpeciesList(u8 categoryNum, u8 pageNum) { int i, count; - u16 species; + enum Species species; count = gDexCategories[categoryNum].page[pageNum].count; sPokedexScreenData->numMonsOnPage = 0; @@ -3447,10 +3440,10 @@ static u8 DexScreen_GetPageLimitsForCategory(u8 category) } } -static u8 DexScreen_LookUpCategoryBySpecies(u16 species) +static u8 DexScreen_LookUpCategoryBySpecies(enum Species species) { int i, j, k, categoryCount, categoryPageCount, posInPage; - u16 dexSpecies; + enum Species dexSpecies; for (i = 0; i < ARRAY_COUNT(gDexCategories); i++) { @@ -3501,7 +3494,7 @@ void DexScreen_InputHandler_StartToCry(void) #define tPersonalityLo 14 #define tPersonalityHi 15 -u8 DexScreen_RegisterMonToPokedex(u16 species) +u8 DexScreen_RegisterMonToPokedex(enum Species species) { DexScreen_GetSetPokedexFlag(species, FLAG_SET_SEEN, TRUE); DexScreen_GetSetPokedexFlag(species, FLAG_SET_CAUGHT, TRUE); @@ -3516,7 +3509,7 @@ u8 DexScreen_RegisterMonToPokedex(u16 species) return sPokedexScreenData->taskId; } -u8 DisplayCaughtMonDexPage(u16 species, bool32 isShiny, u32 personality) +u8 DisplayCaughtMonDexPage(enum Species species, bool32 isShiny, u32 personality) { u8 taskId = 0; if (POKEDEX_PLUS_HGSS) diff --git a/src/pokemon.c b/src/pokemon.c index c67289540..d8d2844b8 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -79,7 +79,7 @@ extern u16 gSpecialVar_ItemId; struct SpeciesItem { - u16 species; + enum Species species; enum Item item; }; @@ -1289,18 +1289,18 @@ void ZeroEnemyPartyMons(void) ZeroMonData(&gEnemyParty[i]); } -void CreateRandomMon(struct Pokemon *mon, u16 species, u8 level) +void CreateRandomMon(struct Pokemon *mon, enum Species species, u8 level) { CreateRandomMonWithIVs(mon, species, level, USE_RANDOM_IVS); } -void CreateRandomMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u8 fixedIv) +void CreateRandomMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u8 fixedIv) { CreateMonWithIVs(mon, species, level, Random32(), OTID_STRUCT_PLAYER_ID, fixedIv); GiveMonInitialMoveset(mon); } -void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId) +void CreateMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId) { u32 mail; ZeroMonData(mon); @@ -1310,7 +1310,7 @@ void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, stru SetMonData(mon, MON_DATA_MAIL, &mail); } -void CreateMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV) +void CreateMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV) { CreateMon(mon, species, level, personality, trainerId); SetBoxMonIVs(&mon->box, fixedIV); @@ -1369,7 +1369,7 @@ void SetBoxMonIVs(struct BoxPokemon *mon, u8 fixedIV) } } -void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId) +void CreateBoxMon(struct BoxPokemon *boxMon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId) { u8 speciesName[POKEMON_NAME_LENGTH + 1]; u32 value; @@ -1473,7 +1473,7 @@ static bool32 IsValidGender(u32 gender) } } -u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter) +u32 GetMonPersonality(enum Species species, u8 gender, u8 nature, u8 unownLetter) { u32 personality, actualLetter; @@ -1505,14 +1505,14 @@ u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter) } // Used to create the Old Man's Weedle? -void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level) +void CreateMaleMon(struct Pokemon *mon, enum Species species, u8 level) { u32 personality = GetMonPersonality(species, MON_MALE, NATURE_RANDOM, RANDOM_UNOWN_LETTER); CreateMonWithIVs(mon, species, level, personality, OTID_STRUCT_PLAYER_ID, USE_RANDOM_IVS); GiveMonInitialMoveset(mon); } -void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality) +void CreateMonWithIVsPersonality(struct Pokemon *mon, enum Species species, u8 level, u32 ivs, u32 personality) { CreateMon(mon, species, level, personality, OTID_STRUCT_PLAYER_ID); SetMonData(mon, MON_DATA_IVS, &ivs); @@ -1702,7 +1702,7 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP GetMonData(mon, MON_DATA_NICKNAME10, dest->nickname); } -static void CreateEventMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId otId) +static void CreateEventMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId otId) { bool32 isModernFatefulEncounter = TRUE; @@ -1800,7 +1800,7 @@ void CalculateMonStats(struct Pokemon *mon) { s32 oldMaxHP = GetMonData(mon, MON_DATA_MAX_HP); s32 currentHP = GetMonData(mon, MON_DATA_HP); - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u8 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP); s32 level = GetLevelFromMonExp(mon); s32 newMaxHP; @@ -1892,7 +1892,7 @@ void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest) u8 GetLevelFromMonExp(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u32 exp = GetMonData(mon, MON_DATA_EXP); s32 level = 1; @@ -1904,7 +1904,7 @@ u8 GetLevelFromMonExp(struct Pokemon *mon) u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon) { - u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP); s32 level = 1; @@ -1991,7 +1991,7 @@ void GiveMonInitialMoveset(struct Pokemon *mon) void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) //Credit: AsparagusEduardo { - u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); s32 level = GetLevelFromBoxMonExp(boxMon); s32 i; enum Move moves[MAX_MON_MOVES] = {MOVE_NONE}; @@ -2081,7 +2081,7 @@ void GiveBoxMonDefaultMove(struct BoxPokemon *boxMon, u32 slot) enum Move MonTryLearningNewMoveAtLevel(struct Pokemon *mon, bool32 firstMove, u32 level) { enum Move retVal = MOVE_NONE; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); // since you can learn more than one move per level @@ -2254,7 +2254,7 @@ u8 GetMonGender(struct Pokemon *mon) u8 GetBoxMonGender(struct BoxPokemon *boxMon) { - u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); u32 personality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); switch (gSpeciesInfo[species].genderRatio) @@ -2271,7 +2271,7 @@ u8 GetBoxMonGender(struct BoxPokemon *boxMon) return MON_MALE; } -u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality) +u8 GetGenderFromSpeciesAndPersonality(enum Species species, u32 personality) { switch (gSpeciesInfo[species].genderRatio) { @@ -2287,12 +2287,12 @@ u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality) return MON_MALE; } -bool32 IsPersonalityFemale(u16 species, u32 personality) +bool32 IsPersonalityFemale(enum Species species, u32 personality) { return GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE; } -u32 GetUnownSpeciesId(u32 personality) +enum Species GetUnownSpeciesId(u32 personality) { u16 unownLetter = GetUnownLetterByPersonality(personality); @@ -3554,7 +3554,7 @@ u8 GetMonsStateToDoubles_2(void) return (aliveCount > 1) ? PLAYER_HAS_TWO_USABLE_MONS : PLAYER_HAS_ONE_USABLE_MON; } -enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum) +enum Ability GetAbilityBySpecies(enum Species species, u8 abilityNum) { int i; @@ -3581,7 +3581,7 @@ enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum) enum Ability GetMonAbility(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u8 abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM); return GetAbilityBySpecies(species, abilityNum); } @@ -3653,7 +3653,7 @@ bool8 IsPokemonStorageFull(void) return TRUE; } -const u8 *GetSpeciesName(u16 species) +const u8 *GetSpeciesName(enum Species species) { species = SanitizeSpeciesId(species); if (gSpeciesInfo[species].speciesName[0] == 0) @@ -3661,7 +3661,7 @@ const u8 *GetSpeciesName(u16 species) return gSpeciesInfo[species].speciesName; } -const u8 *GetSpeciesCategory(u16 species) +const u8 *GetSpeciesCategory(enum Species species) { species = SanitizeSpeciesId(species); if (gSpeciesInfo[species].categoryName[0] == 0) @@ -3669,7 +3669,7 @@ const u8 *GetSpeciesCategory(u16 species) return gSpeciesInfo[species].categoryName; } -const u8 *GetSpeciesPokedexDescription(u16 species) +const u8 *GetSpeciesPokedexDescription(enum Species species) { species = SanitizeSpeciesId(species); if (gSpeciesInfo[species].description == NULL) @@ -3677,57 +3677,57 @@ const u8 *GetSpeciesPokedexDescription(u16 species) return gSpeciesInfo[species].description; } -u32 GetSpeciesHeight(u16 species) +u32 GetSpeciesHeight(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].height; } -u32 GetSpeciesWeight(u16 species) +u32 GetSpeciesWeight(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].weight; } -enum Type GetSpeciesType(u16 species, u8 slot) +enum Type GetSpeciesType(enum Species species, u8 slot) { return gSpeciesInfo[SanitizeSpeciesId(species)].types[slot]; } -enum Ability GetSpeciesAbility(u16 species, u8 slot) +enum Ability GetSpeciesAbility(enum Species species, u8 slot) { return gSpeciesInfo[SanitizeSpeciesId(species)].abilities[slot]; } -u32 GetSpeciesBaseHP(u16 species) +u32 GetSpeciesBaseHP(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseHP; } -u32 GetSpeciesBaseAttack(u16 species) +u32 GetSpeciesBaseAttack(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseAttack; } -u32 GetSpeciesBaseDefense(u16 species) +u32 GetSpeciesBaseDefense(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseDefense; } -u32 GetSpeciesBaseSpAttack(u16 species) +u32 GetSpeciesBaseSpAttack(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpAttack; } -u32 GetSpeciesBaseSpDefense(u16 species) +u32 GetSpeciesBaseSpDefense(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpDefense; } -u32 GetSpeciesBaseSpeed(u16 species) +u32 GetSpeciesBaseSpeed(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpeed; } -u32 GetSpeciesBaseStat(u16 species, u32 statIndex) +u32 GetSpeciesBaseStat(enum Species species, u32 statIndex) { switch (statIndex) { @@ -3747,7 +3747,7 @@ u32 GetSpeciesBaseStat(u16 species, u32 statIndex) return 0; } -const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species) +const struct LevelUpMove *GetSpeciesLevelUpLearnset(enum Species species) { const struct LevelUpMove *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].levelUpLearnset; if (learnset == NULL) @@ -3755,7 +3755,7 @@ const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species) return learnset; } -const u16 *GetSpeciesTeachableLearnset(u16 species) +const u16 *GetSpeciesTeachableLearnset(enum Species species) { const u16 *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].teachableLearnset; if (learnset == NULL) @@ -3763,7 +3763,7 @@ const u16 *GetSpeciesTeachableLearnset(u16 species) return learnset; } -const u16 *GetSpeciesEggMoves(u16 species) +const u16 *GetSpeciesEggMoves(enum Species species) { const u16 *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].eggMoveLearnset; if (learnset == NULL) @@ -3771,7 +3771,7 @@ const u16 *GetSpeciesEggMoves(u16 species) return learnset; } -const struct Evolution *GetSpeciesEvolutions(u16 species) +const struct Evolution *GetSpeciesEvolutions(enum Species species) { const struct Evolution *evolutions = gSpeciesInfo[SanitizeSpeciesId(species)].evolutions; if (evolutions == NULL) @@ -3779,7 +3779,7 @@ const struct Evolution *GetSpeciesEvolutions(u16 species) return evolutions; } -const u16 *GetSpeciesFormTable(u16 species) +const u16 *GetSpeciesFormTable(enum Species species) { const u16 *formTable = gSpeciesInfo[SanitizeSpeciesId(species)].formSpeciesIdTable; if (formTable == NULL) @@ -3787,7 +3787,7 @@ const u16 *GetSpeciesFormTable(u16 species) return formTable; } -const struct FormChange *GetSpeciesFormChanges(u16 species) +const struct FormChange *GetSpeciesFormChanges(enum Species species) { const struct FormChange *formChanges = gSpeciesInfo[SanitizeSpeciesId(species)].formChangeTable; if (formChanges == NULL) @@ -3987,7 +3987,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex, } else if (param - 1 < ARRAY_COUNT(sExpCandyExperienceTable)) // EXP Candies { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); dataUnsigned = sExpCandyExperienceTable[param - 1] + GetMonData(mon, MON_DATA_EXP); if (B_RARE_CANDY_CAP && B_EXP_CAP_TYPE == EXP_CAP_HARD) @@ -5143,7 +5143,7 @@ u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 bool8 IsMonPastEvolutionLevel(struct Pokemon *mon) { int i; - u16 species = GetMonData(mon, MON_DATA_SPECIES, 0); + enum Species species = GetMonData(mon, MON_DATA_SPECIES, 0); u8 level = GetMonData(mon, MON_DATA_LEVEL, 0); const struct Evolution *evolutions = GetSpeciesEvolutions(species); @@ -5167,20 +5167,20 @@ bool8 IsMonPastEvolutionLevel(struct Pokemon *mon) return FALSE; } -u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum) +enum Species NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum) { - u16 species; + enum Species species; if (!nationalNum) return 0; - species = 1; + species = SPECIES_BULBASAUR; while (species < (NUM_SPECIES) && gSpeciesInfo[species].natDexNum != nationalNum) species++; if (species == NUM_SPECIES) - return NATIONAL_DEX_NONE; + return SPECIES_NONE; return GET_BASE_SPECIES_ID(species); } @@ -5203,7 +5203,7 @@ enum HoennDexOrder NationalToHoennOrder(enum NationalDexOrder nationalNum) return hoennNum + 1; } -enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species) +enum NationalDexOrder SpeciesToNationalPokedexNum(enum Species species) { species = SanitizeSpeciesId(species); if (!species) @@ -5212,7 +5212,7 @@ enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species) return gSpeciesInfo[species].natDexNum; } -enum HoennDexOrder SpeciesToHoennPokedexNum(u16 species) +enum HoennDexOrder SpeciesToHoennPokedexNum(enum Species species) { if (!species) return 0; @@ -5254,7 +5254,7 @@ enum KantoDexOrder NationalToKantoDexNum(enum NationalDexOrder natDexNum) return KANTO_DEX_NONE; } -enum KantoDexOrder SpeciesToKantoDexNum(u16 species) +enum KantoDexOrder SpeciesToKantoDexNum(enum Species species) { if (!species) return KANTO_DEX_NONE; @@ -5262,7 +5262,7 @@ enum KantoDexOrder SpeciesToKantoDexNum(u16 species) return NationalToKantoDexNum(SpeciesToNationalPokedexNum(species)); } -bool32 IsSpeciesInKantoDex(u16 species) +bool32 IsSpeciesInKantoDex(enum Species species) { return SpeciesToKantoDexNum(species) != KANTO_DEX_NONE; } @@ -5459,7 +5459,8 @@ u16 ModifyStatByNature(u8 nature, u16 stat, enum Stat statIndex) void AdjustFriendship(struct Pokemon *mon, u8 event) { - u16 species, heldItem; + enum Species species; + enum Item heldItem; enum HoldEffect holdEffect; s8 mod; @@ -5669,7 +5670,7 @@ u16 GetMonEVCount(struct Pokemon *mon) bool8 TryIncrementMonLevel(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES, 0); + enum Species species = GetMonData(mon, MON_DATA_SPECIES, 0); u8 nextLevel = GetMonData(mon, MON_DATA_LEVEL, 0) + 1; u32 expPoints = GetMonData(mon, MON_DATA_EXP, 0); if (expPoints > gExperienceTables[gSpeciesInfo[species].growthRate][MAX_LEVEL]) @@ -5688,7 +5689,7 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon) } } -u8 CanLearnTeachableMove(u16 species, enum Move move) +u8 CanLearnTeachableMove(enum Species species, enum Move move) { const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species); if (species == SPECIES_EGG) @@ -5701,7 +5702,7 @@ u8 CanLearnTeachableMove(u16 species, enum Move move) return FALSE; } -u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) +u8 GetLevelUpMovesBySpecies(enum Species species, u16 *moves) { u8 numMoves = 0; int i; @@ -5713,18 +5714,20 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) return numMoves; } -u16 SpeciesToPokedexNum(u16 species) +u16 SpeciesToPokedexNum(enum Species species) { + enum KantoDexOrder kantoDexNum; + if (IsNationalPokedexEnabled()) return SpeciesToNationalPokedexNum(species); - species = SpeciesToKantoDexNum(species); - if (species <= KANTO_DEX_COUNT) - return species; + kantoDexNum = SpeciesToKantoDexNum(species); + if (kantoDexNum <= KANTO_DEX_COUNT) + return kantoDexNum; return 0xFFFF; } -bool32 IsSpeciesInHoennDex(u16 species) +bool32 IsSpeciesInHoennDex(enum Species species) { if (SpeciesToHoennPokedexNum(species) > HOENN_DEX_COUNT) return FALSE; @@ -5857,29 +5860,29 @@ static void Task_PlayMapChosenOrBattleBGM(u8 taskId) const u16 *GetMonFrontSpritePal(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); bool32 isShiny = GetMonData(mon, MON_DATA_IS_SHINY); u32 personality = GetMonData(mon, MON_DATA_PERSONALITY); bool32 isEgg = GetMonData(mon, MON_DATA_IS_EGG); return GetMonSpritePalFromSpeciesAndPersonalityIsEgg(species, isShiny, personality, isEgg); } -const u16 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, bool32 isShiny, u32 personality) +const u16 *GetMonSpritePalFromSpeciesAndPersonality(enum Species species, bool32 isShiny, u32 personality) { return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, IsPersonalityFemale(species, personality), FALSE); } -const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(u16 species, bool32 isShiny, u32 personality, bool32 isEgg) +const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(enum Species species, bool32 isShiny, u32 personality, bool32 isEgg) { return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, IsPersonalityFemale(species, personality), isEgg); } -const u16 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFemale) +const u16 *GetMonSpritePalFromSpecies(enum Species species, bool32 isShiny, bool32 isFemale) { return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, isFemale, FALSE); } -const u16 *GetMonSpritePalFromSpeciesIsEgg(u16 species, bool32 isShiny, bool32 isFemale, bool32 isEgg) +const u16 *GetMonSpritePalFromSpeciesIsEgg(enum Species species, bool32 isShiny, bool32 isFemale, bool32 isEgg) { species = SanitizeSpeciesId(species); @@ -5933,7 +5936,7 @@ bool32 CannotForgetMove(enum Move move) return IsMoveHM(move); } -bool8 IsMonSpriteNotFlipped(u16 species) +bool8 IsMonSpriteNotFlipped(enum Species species) { return gSpeciesInfo[species].noFlip; } @@ -6013,7 +6016,7 @@ void SetMonPreventsSwitchingString(void) BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4, sizeof(gStringVar4)); } -static s32 GetWildMonTableIdInAlteringCave(u16 species) +static s32 GetWildMonTableIdInAlteringCave(enum Species species) { s32 i; for (i = 0; i < (s32) ARRAY_COUNT(sAlteringCaveWildMonHeldItems); i++) @@ -6041,7 +6044,7 @@ void SetWildMonHeldItem(void) if (!(gBattleTypeFlags & (BATTLE_TYPE_POKEDUDE | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE))) { u16 rnd; - u16 species; + enum Species species; u16 count = (WILD_DOUBLE_BATTLE) ? 2 : 1; u16 i; bool32 itemHeldBoost = CanFirstMonBoostHeldItemRarity(); @@ -6149,7 +6152,7 @@ static void Task_AnimateAfterDelay(u8 taskId) // } // } -void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u8 panMode) +void BattleAnimateFrontSprite(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panMode) { if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) DoMonFrontSpriteAnimation(sprite, species, noCry, panMode | SKIP_FRONT_ANIM); @@ -6157,7 +6160,7 @@ void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u DoMonFrontSpriteAnimation(sprite, species, noCry, panMode); } -void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, u8 panModeAnimFlag) +void DoMonFrontSpriteAnimation(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panModeAnimFlag) { s8 pan; switch (panModeAnimFlag & (u8)~SKIP_FRONT_ANIM) // Exclude anim flag to get pan mode @@ -6204,7 +6207,7 @@ void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, } } -// void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneFrame) +// void PokemonSummaryDoMonAnimation(struct Sprite *sprite, enum Species species, bool8 oneFrame) // { // if (!oneFrame && HasTwoFramesAnimation(species)) // StartSpriteAnim(sprite, 1); @@ -6232,7 +6235,7 @@ void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, // DestroyTask(delayTaskId); // } -void BattleAnimateBackSprite(struct Sprite *sprite, u16 species) +void BattleAnimateBackSprite(struct Sprite *sprite, enum Species species) { if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) { @@ -6328,7 +6331,7 @@ void HandleSetPokedexFlagFromMon(struct Pokemon *mon, u32 caseId) HandleSetPokedexFlag(nationalNum, caseId, personality); } -bool8 HasTwoFramesAnimation(u16 species) +bool8 HasTwoFramesAnimation(enum Species species) { return P_TWO_FRAME_FRONT_SPRITES && gSpeciesInfo[species].frontAnimFrames != sAnims_SingleFramePlaceHolder @@ -6527,7 +6530,7 @@ u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum) } } -u16 GetFormSpeciesId(u16 speciesId, u8 formId) +u16 GetFormSpeciesId(enum Species speciesId, u8 formId) { if (GetSpeciesFormTable(speciesId) != NULL) return GetSpeciesFormTable(speciesId)[formId]; @@ -6804,7 +6807,7 @@ u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx) void TrySetDayLimitToFormChange(struct Pokemon *mon) { u32 i; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); const struct FormChange *formChanges = GetSpeciesFormChanges(species); for (i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++) @@ -6817,7 +6820,7 @@ void TrySetDayLimitToFormChange(struct Pokemon *mon) } } -bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method) +bool32 DoesSpeciesHaveFormChangeMethod(enum Species species, enum FormChanges method) { u32 i; const struct FormChange *formChanges = GetSpeciesFormChanges(species); @@ -6833,7 +6836,7 @@ bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method) u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u8 level = GetMonData(mon, MON_DATA_LEVEL); const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); @@ -6943,7 +6946,7 @@ void TrySpecialOverworldEvo(void) SetMainCallback2(CB2_ReturnToField); } -bool32 SpeciesHasGenderDifferences(u16 species) +bool32 SpeciesHasGenderDifferences(enum Species species) { #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].frontPicFemale != NULL @@ -7034,7 +7037,7 @@ bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method) return FALSE; } -u16 SanitizeSpeciesId(u16 species) +u16 SanitizeSpeciesId(enum Species species) { assertf(species <= NUM_SPECIES && (species == SPECIES_NONE || IsSpeciesEnabled(species)), "invalid species: %d", species) { @@ -7044,7 +7047,7 @@ u16 SanitizeSpeciesId(u16 species) return species; } -bool32 IsSpeciesEnabled(u16 species) +bool32 IsSpeciesEnabled(enum Species species) { // This function should not use the GetSpeciesBaseHP function, as the included sanitation will result in an infinite loop return gSpeciesInfo[species].baseHP > 0 || species == SPECIES_EGG; @@ -7053,7 +7056,7 @@ bool32 IsSpeciesEnabled(u16 species) void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method) { int i, j; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); const struct FormChange *formChanges = GetSpeciesFormChanges(species); if (formChanges == NULL @@ -7181,7 +7184,7 @@ void HealBoxPokemon(struct BoxPokemon *boxMon) BoxMonRestorePP(boxMon); } -enum PokemonCry GetCryIdBySpecies(u16 species) +enum PokemonCry GetCryIdBySpecies(enum Species species) { species = SanitizeSpeciesId(species); if (P_CRIES_ENABLED == FALSE || gSpeciesInfo[species].cryId >= CRY_COUNT || gTestRunnerHeadless) @@ -7189,7 +7192,7 @@ enum PokemonCry GetCryIdBySpecies(u16 species) return gSpeciesInfo[species].cryId; } -u16 GetSpeciesPreEvolution(u16 species) +u16 GetSpeciesPreEvolution(enum Species species) { int i, j; @@ -7423,7 +7426,7 @@ u8 GetPlayerPartyHighestLevel(void) return level; } -bool8 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler) +bool32 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler) { u8 nickname[POKEMON_NAME_LENGTH + 1]; @@ -7437,7 +7440,7 @@ bool8 CheckBattleTypeGhost(struct Pokemon *mon, enum BattlerId battler) return FALSE; } -u16 GetFirstPartnerMove(u16 species) +enum Move GetFirstPartnerMove(enum Species species) { switch(species) { diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index a6d4b5e36..8bbdd05c4 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -468,7 +468,7 @@ static void SetPosForRotation(struct Sprite *sprite, u16 index, s16 amplitudeX, sprite->y2 = yAdder + amplitudeY; } -enum BackAnim GetSpeciesBackAnimSet(u16 species) +enum BackAnim GetSpeciesBackAnimSet(enum Species species) { if (gSpeciesInfo[species].backAnimId != BACK_ANIM_NONE) return gSpeciesInfo[species].backAnimId - 1; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 29d19a4b4..dd0d4b2f5 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -134,12 +134,12 @@ static const u16 sSpriteImageSizes[3][4] = }, }; -u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality) +u8 CreateMonIcon(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality) { return CreateMonIconIsEgg(species, callback, x, y, subpriority, personality, FALSE); } -u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg) +u8 CreateMonIconIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg) { u8 spriteId; struct MonIconSpriteTemplate iconTemplate = @@ -179,7 +179,7 @@ u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 } -u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) +u8 CreateMonIconNoPersonality(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) { u8 spriteId; struct MonIconSpriteTemplate iconTemplate = @@ -200,7 +200,7 @@ u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s1 return spriteId; } -u16 GetIconSpecies(u16 species, u32 personality) +enum Species GetIconSpecies(enum Species species, u32 personality) { species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) @@ -216,7 +216,7 @@ u16 GetUnownLetterByPersonality(u32 personality) return GET_UNOWN_LETTER(personality); } -u16 GetIconSpeciesNoPersonality(u16 species) +u16 GetIconSpeciesNoPersonality(enum Species species) { species = SanitizeSpeciesId(species); @@ -225,12 +225,12 @@ u16 GetIconSpeciesNoPersonality(u16 species) return GetIconSpecies(species, 0); } -const u8 *GetMonIconPtr(u16 species, u32 personality) +const u8 *GetMonIconPtr(enum Species species, u32 personality) { return GetMonIconPtrIsEgg(species, personality, FALSE); } -const u8 *GetMonIconPtrIsEgg(u16 species, u32 personality, bool32 isEgg) +const u8 *GetMonIconPtrIsEgg(enum Species species, u32 personality, bool32 isEgg) { return GetMonIconTilesIsEgg(GetIconSpecies(species, personality), personality, isEgg); } @@ -248,7 +248,7 @@ void LoadMonIconPalettes(void) } // unused -void SafeLoadMonIconPalette(u16 species) +void SafeLoadMonIconPalette(enum Species species) { u8 palIndex; palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; @@ -256,14 +256,14 @@ void SafeLoadMonIconPalette(u16 species) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); } -void LoadMonIconPalette(u16 species) +void LoadMonIconPalette(enum Species species) { u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); } -void LoadMonIconPalettePersonality(u16 species, u32 personality) +void LoadMonIconPalettePersonality(enum Species species, u32 personality) { u8 palIndex; species = SanitizeSpeciesId(species); @@ -285,17 +285,15 @@ void FreeMonIconPalettes(void) } // unused -void SafeFreeMonIconPalette(u16 species) +void SafeFreeMonIconPalette(enum Species species) { - u8 palIndex; - palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; + u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag); } -void FreeMonIconPalette(u16 species) +void FreeMonIconPalette(enum Species species) { - u8 palIndex; - palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; + u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag); } @@ -304,12 +302,12 @@ void SpriteCB_MonIcon(struct Sprite *sprite) UpdateMonIconFrame(sprite); } -const u8 *GetMonIconTiles(u16 species, u32 personality) +const u8 *GetMonIconTiles(enum Species species, u32 personality) { return GetMonIconTilesIsEgg(species, personality, FALSE); } -const u8 *GetMonIconTilesIsEgg(u16 species, u32 personality, bool32 isEgg) +const u8 *GetMonIconTilesIsEgg(enum Species species, u32 personality, bool32 isEgg) { const u8 *iconSprite; @@ -352,17 +350,17 @@ void TryLoadAllMonIconPalettesAtOffset(u16 offset) } } -u8 GetValidMonIconPalIndex(u16 species) +u8 GetValidMonIconPalIndex(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; } -u8 GetMonIconPaletteIndexFromSpecies(u16 species) +u8 GetMonIconPaletteIndexFromSpecies(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; } -const u16 *GetValidMonIconPalettePtr(u16 species) +const u16 *GetValidMonIconPalettePtr(enum Species species) { return gMonIconPaletteTable[gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex].data; } diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index d95d73eb5..9a8486a78 100644 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -269,7 +269,7 @@ static void InitGame(struct PokemonJump *); static void ResetForNewGame(struct PokemonJump *); static void InitPlayerAndJumpTypes(void); static void ResetPlayersForNewGame(void); -static s16 GetSpeciesPokemonJumpType(u16 species); +static s16 GetSpeciesPokemonJumpType(enum Species species); static void InitJumpMonInfo(struct PokemonJump_MonInfo *monInfo, struct Pokemon *mon); static void CB2_PokemonJump(void); static void Task_StartPokemonJump(u8 taskId); @@ -334,9 +334,9 @@ static void TryUpdateExcellentsRecord(u16); static bool32 HasEnoughScoreForPrize(void); static u16 GetPrizeData(void); static void UnpackPrizeData(u16, u16 *, u16 *); -static u16 GetPrizeItemId(void); +static enum Item GetPrizeItemId(void); static u16 GetPrizeQuantity(void); -static u16 GetQuantityLimitedByBag(u16 item, u16 quantity); +static u16 GetQuantityLimitedByBag(enum Item item, u16 quantity); static void SetUpPokeJumpGfxFunc(void (*func)(void)); static void Task_RunPokeJumpGfxFunc(u8 taskId); static void LoadPokeJumpGfx(void); @@ -376,9 +376,9 @@ static void SetUpPokeJumpGfxFuncById(int); static bool32 IsPokeJumpGfxFuncFinished(void); static void SetUpResetVineGfx(void); static bool32 ResetVineGfx(void); -static void PrintPrizeMessage(u16, u16); -static void PrintPrizeFilledBagMessage(u16); -static void PrintNoRoomForPrizeMessage(u16); +static void PrintPrizeMessage(enum Item itemId, u16 quantity); +static void PrintPrizeFilledBagMessage(enum Item itemId); +static void PrintNoRoomForPrizeMessage(enum Item itemId); static bool32 DoPrizeMessageAndFanfare(void); static void ClearMessageWindow(void); static void SetMonSpriteY(u32 , s16); @@ -814,7 +814,7 @@ static void ResetPlayersForNewGame(void) } } -static s16 GetSpeciesPokemonJumpType(u16 species) +static s16 GetSpeciesPokemonJumpType(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].pokemonJumpType; } @@ -2413,7 +2413,7 @@ static void TryUpdateExcellentsRecord(u16 excellentsInRow) sPokemonJump->excellentsInRowRecord = excellentsInRow; } -static const u16 sPrizeItems[] = { +static const enum Item sPrizeItems[] = { ITEM_LEPPA_BERRY, ITEM_LUM_BERRY, ITEM_SITRUS_BERRY, @@ -2446,7 +2446,7 @@ static bool32 HasEnoughScoreForPrize(void) static u16 GetPrizeData(void) { - u16 itemId = GetPrizeItemId(); + enum Item itemId = GetPrizeItemId(); u16 quantity = GetPrizeQuantity(); return (quantity << 12) | (itemId & 0xFFF); } @@ -2457,7 +2457,7 @@ static void UnpackPrizeData(u16 data, u16 *itemId, u16 *quantity) *itemId = data & 0xFFF; } -static u16 GetPrizeItemId(void) +static enum Item GetPrizeItemId(void) { u16 index = Random() % ARRAY_COUNT(sPrizeItems); return sPrizeItems[index]; @@ -2465,10 +2465,9 @@ static u16 GetPrizeItemId(void) static u16 GetPrizeQuantity(void) { - u32 quantity, i; + u32 quantity = 0; - quantity = 0; - for (i = 0; i < ARRAY_COUNT(sPrizeQuantityData); i++) + for (u32 i = 0; i < ARRAY_COUNT(sPrizeQuantityData); i++) { if (sPokemonJump->comm.jumpScore >= sPrizeQuantityData[i].score) quantity = sPrizeQuantityData[i].quantity; @@ -2479,7 +2478,7 @@ static u16 GetPrizeQuantity(void) return quantity; } -static u16 GetQuantityLimitedByBag(u16 item, u16 quantity) +static u16 GetQuantityLimitedByBag(enum Item item, u16 quantity) { while (quantity && !CheckBagHasSpace(item, quantity)) quantity--; @@ -2507,7 +2506,7 @@ static u8 *GetPokeJumpPlayerName(u8 multiplayerId) return sPokemonJump->players[multiplayerId].name; } -bool32 IsSpeciesAllowedInPokemonJump(u16 species) +bool32 IsSpeciesAllowedInPokemonJump(enum Species species) { return GetSpeciesPokemonJumpType(species) != PKMN_JUMP_TYPE_NONE; } @@ -2520,7 +2519,7 @@ void IsPokemonJumpSpeciesInParty(void) { if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES)) { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); if (IsSpeciesAllowedInPokemonJump(species)) { gSpecialVar_Result = TRUE; @@ -3150,7 +3149,7 @@ static bool32 ResetVineGfx(void) static const u8 sPluralTxt[] = _("IES"); -static void PrintPrizeMessage(u16 itemId, u16 quantity) +static void PrintPrizeMessage(enum Item itemId, u16 quantity) { CopyItemName(itemId, sPokemonJumpGfx->itemName); ConvertIntToDecimalStringN(sPokemonJumpGfx->itemQuantityStr, quantity, STR_CONV_MODE_LEFT_ALIGN, 1); @@ -3178,7 +3177,7 @@ static void PrintPrizeMessage(u16 itemId, u16 quantity) sPokemonJumpGfx->msgWindowState = 0; } -static void PrintPrizeFilledBagMessage(u16 itemId) +static void PrintPrizeFilledBagMessage(enum Item itemId) { CopyItemName(itemId, sPokemonJumpGfx->itemName); DynamicPlaceholderTextUtil_Reset(); @@ -3191,7 +3190,7 @@ static void PrintPrizeFilledBagMessage(u16 itemId) sPokemonJumpGfx->msgWindowState = 0; } -static void PrintNoRoomForPrizeMessage(u16 itemId) +static void PrintNoRoomForPrizeMessage(enum Item itemId) { CopyItemName(itemId, sPokemonJumpGfx->itemName); DynamicPlaceholderTextUtil_Reset(); diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index fdca201e9..66cde3e05 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -71,7 +71,7 @@ static u8 TranslateBigMonSizeTableIndex(u16 a) return i; } -static u32 GetMonSize(u16 species, u16 b) +static u32 GetMonSize(enum Species species, u16 b) { u64 unk2; u64 unk4; @@ -98,7 +98,7 @@ static void FormatMonSizeRecord(u8 *string, u32 size) ConvertIntToDecimalStringN(string, size % 10, STR_CONV_MODE_LEFT_ALIGN, 1); } -static u8 CompareMonSize(u16 species, u16 *sizeRecord) +static u8 CompareMonSize(enum Species species, u16 *sizeRecord) { if (gSpecialVar_Result >= PARTY_SIZE) { @@ -141,7 +141,7 @@ static u8 CompareMonSize(u16 species, u16 *sizeRecord) } // Stores species name in gStringVar1, trainer's name in gStringVar2, and size in gStringVar3 -static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord) +static void GetMonSizeRecordInfo(enum Species species, u16 *sizeRecord) { u32 size = GetMonSize(species, *sizeRecord); diff --git a/src/pokemon_special_anim.c b/src/pokemon_special_anim.c index fd2a9bd8f..a950dbbb6 100644 --- a/src/pokemon_special_anim.c +++ b/src/pokemon_special_anim.c @@ -22,7 +22,7 @@ static EWRAM_DATA bool32 sCancelDisabled = FALSE; static EWRAM_DATA u8 sPSATaskId = 0; static EWRAM_DATA struct PokemonSpecialAnim * sPSAWork = NULL; -static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback); +static struct PokemonSpecialAnim *AllocPSA(u8 slotId, enum Item itemId, MainCallback callback); static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr); static void SetUpUseItemAnim_ForgetMoveAndLearnTMorHM(struct PokemonSpecialAnim * ptr); static void SetUpUseItemAnim_CantEvolve(struct PokemonSpecialAnim * ptr); @@ -33,18 +33,18 @@ static void Task_UseTM_NoForget(u8 taskId); static void Task_MachineSet(u8 taskId); static void Task_CleanUp(u8 taskId); static u8 GetClosenessFromFriendship(u16 friendship); -static u16 GetAnimTypeByItemId(u16 itemId); +static u16 GetAnimTypeByItemId(enum Item itemId); -void StartUseItemAnim_Normal(u8 slotId, u16 itemId, MainCallback callback) +void StartUseItemAnim_Normal(u8 slotId, enum Item itemId, MainCallback callback) { - struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback); + struct PokemonSpecialAnim *ptr = AllocPSA(slotId, itemId, callback); if (ptr == NULL) SetMainCallback2(callback); else SetUpUseItemAnim_Normal(ptr); } -void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId, MainCallback callback) +void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, enum Item itemId, enum Move moveId, MainCallback callback) { struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback); if (ptr == NULL) @@ -56,7 +56,7 @@ void StartUseItemAnim_ForgetMoveAndLearnTMorHM(u8 slotId, u16 itemId, u16 moveId } } -void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback) +void StartUseItemAnim_CantEvolve(u8 slotId, enum Item itemId, MainCallback callback) { struct PokemonSpecialAnim * ptr = AllocPSA(slotId, itemId, callback); if (ptr == NULL) @@ -65,14 +65,14 @@ void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback) SetUpUseItemAnim_CantEvolve(ptr); } -static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback) +static struct PokemonSpecialAnim *AllocPSA(u8 slotId, enum Item itemId, MainCallback callback) { - struct PokemonSpecialAnim * ptr; - struct Pokemon * pokemon; - u16 moveId; + struct PokemonSpecialAnim *ptr; + struct Pokemon *pokemon; if (!gMain.inBattle) ResetTasks(); + ResetSpriteData(); FreeAllSpritePalettes(); ptr = Alloc(sizeof(struct PokemonSpecialAnim)); @@ -95,7 +95,7 @@ static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback GetMonData(pokemon, MON_DATA_NICKNAME, ptr->nickname); if (ptr->animType == PSA_ITEM_ANIM_TYPE_TMHM) { - moveId = ItemIdToBattleMoveId(itemId); + enum Move moveId = ItemIdToBattleMoveId(itemId); StringCopy(ptr->nameOfMoveToTeach, GetMoveName(moveId)); } return ptr; @@ -606,14 +606,14 @@ static void Task_CleanUp(u8 taskId) } static const struct { - u16 itemId; + enum Item itemId; u16 animType; } sItemAnimMap[2] = { {ITEM_RARE_CANDY, PSA_ITEM_ANIM_TYPE_DEFAULT}, {ITEM_POTION, PSA_ITEM_ANIM_TYPE_POTION} }; -static u16 GetAnimTypeByItemId(u16 itemId) +static u16 GetAnimTypeByItemId(enum Item itemId) { int i; @@ -659,7 +659,7 @@ struct PokemonSpecialAnimScene * PSA_GetSceneWork(void) return &GetPSAStruct()->sceneResources; } -u16 PSA_GetItemId(void) +enum Item PSA_GetItemId(void) { return GetPSAStruct()->itemId; } @@ -689,7 +689,7 @@ u8 PSA_GetAnimType(void) return GetPSAStruct()->animType; } -u16 PSA_GetMonSpecies(void) +enum Species PSA_GetMonSpecies(void) { return GetPSAStruct()->species; } diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index c682fa6ae..1b3f7cfb5 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -31,8 +31,7 @@ static void StartMonWiggleAnim(struct PokemonSpecialAnimScene * scene, u8 frameL static void StopMonWiggleAnim(struct PokemonSpecialAnimScene * scene); static void SpriteCallback_MonSpriteWiggle(struct Sprite *sprite); static void LoadMonSpriteGraphics(u16 *tilees, const u16 *palette); -static struct Sprite *PSA_CreateItemIconObject(u16 itemId); -static u16 GetBlendColorByItemId(u16 itemId); +static struct Sprite *PSA_CreateItemIconObject(enum Item itemId); static void Task_ItemUseOnMonAnim(u8 taskId); static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct Sprite *sprite); static void SpriteCB_OutwardSpiralDots(struct Sprite *sprite); @@ -391,7 +390,7 @@ void PSA_HideMessageWindow(void) void PSA_PrintMessage(u8 messageId) { struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork(); - u16 itemId = PSA_GetItemId(); + enum Item itemId = PSA_GetItemId(); u16 strWidth = 0; u8 textSpeed = GetPlayerTextSpeedDelay(); struct Pokemon * pokemon = PSA_GetPokemon(); @@ -652,7 +651,7 @@ void PSA_CreateMonSpriteAtCloseness(u8 closeness) { struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork(); struct Pokemon * pokemon = PSA_GetPokemon(); - u16 species = GetMonData(pokemon, MON_DATA_SPECIES); + enum Species species = GetMonData(pokemon, MON_DATA_SPECIES); u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY); u8 yOffset = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_Y_OFFSET); void *monPicBuffer; @@ -872,7 +871,7 @@ static void LoadMonSpriteGraphics(u16 *tiles, const u16 *palette) #define tTimerReset data[10] #define tSuppressDots data[11] -void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2) +void PSA_SetUpItemUseOnMonAnim(enum Item itemId, u8 closeness, bool32 a2) { struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork(); u8 taskId; @@ -887,18 +886,13 @@ void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2) gTasks[taskId].tCloseness = closeness; gTasks[taskId].tYpos = GetYPosByScale(sAffineScales[closeness]); gTasks[taskId].tData6 = a2; - gTasks[taskId].tBlendColor = GetBlendColorByItemId(itemId); + gTasks[taskId].tBlendColor = RGB_WHITE; } } -static u16 GetBlendColorByItemId(u16 itemId) +void CreateItemIconSpriteAtMaxCloseness(enum Item itemId) { - return RGB_WHITE; -} - -void CreateItemIconSpriteAtMaxCloseness(u16 itemId) -{ - struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork(); + struct PokemonSpecialAnimScene *scene = PSA_GetSceneWork(); scene->itemIconSprite = PSA_CreateItemIconObject(itemId); if (scene->itemIconSprite != NULL) { @@ -907,7 +901,7 @@ void CreateItemIconSpriteAtMaxCloseness(u16 itemId) } } -static struct Sprite *PSA_CreateItemIconObject(u16 itemId) +static struct Sprite *PSA_CreateItemIconObject(enum Item itemId) { u8 spriteId; spriteId = AddItemIconSprite(1, 1, itemId); @@ -1043,8 +1037,10 @@ void PSA_UseItem_CleanUpForCancel(void) static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite *sprite, u8 closeness) { - u16 species, x, y; + enum Species species; + u16 x, y; u32 personality; + if (closeness == 3) { sprite->x = 120; @@ -1185,8 +1181,9 @@ static void CreateStarSprites(struct PokemonSpecialAnimScene * scene) { int i; u8 spriteId; - u16 species; + enum Species species; u32 personality; + LoadCompressedSpriteSheet(&sSpriteSheet_Star); LoadSpritePalette(&sSpritePalette_Star); scene->field_0002 = 0; diff --git a/src/pokemon_sprite_visualizer.c b/src/pokemon_sprite_visualizer.c index eff2ad163..7df1305dc 100644 --- a/src/pokemon_sprite_visualizer.c +++ b/src/pokemon_sprite_visualizer.c @@ -520,7 +520,7 @@ static void PrintInstructionsOnWindow(struct PokemonSpriteVisualizer *data) { u8 fontId = FONT_SMALL; u8 x = 2; - u16 species = data->modifyArrows.currValue; + enum Species species = data->modifyArrows.currValue; u8 textBottom[] = _("BACK:\nFRONT:\nBG:$"); u8 textBottomForms[] = _("BACK:\nFRONT:\nBG:\nFORMS:$"); @@ -576,7 +576,7 @@ static void SetStructPtr(u8 taskId, void *ptr) static void PrintDigitChars(struct PokemonSpriteVisualizer *data) { s32 i; - u16 species = data->modifyArrows.currValue; + enum Species species = data->modifyArrows.currValue; u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 8]; for (i = 0; i < data->modifyArrows.maxDigits; i++) @@ -783,7 +783,7 @@ static void UpdateBattlerValue(struct PokemonSpriteVisualizer *data) } } -static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isShiny, enum BattlerId battler) +static void BattleLoadOpponentMonSpriteGfxCustom(enum Species species, bool8 isFemale, bool8 isShiny, enum BattlerId battler) { const u16 *palette = GetMonSpritePalFromSpecies(species, isShiny, isFemale); u16 paletteOffset = OBJ_PLTT_ID(battler); @@ -794,7 +794,7 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo static void SetConstSpriteValues(struct PokemonSpriteVisualizer *data) { - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); data->constSpriteValues.frontPicCoords = gSpeciesInfo[species].frontPicYOffset; data->constSpriteValues.frontElevation = gSpeciesInfo[species].enemyMonElevation; data->constSpriteValues.backPicCoords = gSpeciesInfo[species].backPicYOffset; @@ -811,7 +811,8 @@ static void ResetShadowSettings(struct PokemonSpriteVisualizer *data) { if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE) return; - u16 species = SanitizeSpeciesId(data->currentmonId); + + enum Species species = SanitizeSpeciesId(data->currentmonId); data->shadowSettings.definedX = gSpeciesInfo[species].enemyShadowXOffset; data->shadowSettings.definedY = gSpeciesInfo[species].enemyShadowYOffset; data->shadowSettings.definedSize = gSpeciesInfo[species].enemyShadowSize; @@ -821,7 +822,7 @@ static void ResetShadowSettings(struct PokemonSpriteVisualizer *data) data->shadowSettings.overrideSize = data->shadowSettings.definedSize; } -static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 offset_elevation) +static u8 GetBattlerSpriteFinal_YCustom(enum Species species, s8 offset_picCoords, s8 offset_elevation) { u16 offset; u8 y; @@ -911,7 +912,7 @@ static void SpriteCB_Follower(struct Sprite *sprite) static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer *data) { bool8 invisible = FALSE; - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { @@ -1041,7 +1042,7 @@ static void DrawFollowerSprite(struct PokemonSpriteVisualizer *data) if (!OW_POKEMON_OBJECT_EVENTS) return; - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); u16 graphicsId = species + OBJ_EVENT_MON; if (data->isShiny) graphicsId += OBJ_EVENT_MON_SHINY; @@ -1212,7 +1213,7 @@ void CB2_Pokemon_Sprite_Visualizer(void) u8 taskId; const u16 *palette; struct PokemonSpriteVisualizer *data; - u16 species; + enum Species species; s16 offset_y; u8 front_x = sBattlerCoords[0][1].x; u8 front_y; @@ -1387,7 +1388,7 @@ static void ResetBGs_PokemonSpriteVisualizer(u16 a) static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data) { - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); //Back gSprites[data->backspriteId].y = VISUALIZER_MON_BACK_Y + gSpeciesInfo[species].backPicYOffset + data->offsetsSpriteValues.offset_back_picCoords; //Front @@ -1400,7 +1401,7 @@ static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data) static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) { struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); u8 option = data->submenuYpos[1]; switch (option) @@ -1485,7 +1486,7 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) { struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); u8 option = data->submenuYpos[2]; s8 offset; u8 y; @@ -1705,7 +1706,7 @@ static void OpenSubmenu(u32 submenu, u8 taskId) static void HandleInput_PokemonSpriteVisualizer(u8 taskId) { struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); struct Sprite *Frontsprite = &gSprites[data->frontspriteId]; struct Sprite *Backsprite = &gSprites[data->backspriteId]; @@ -1989,7 +1990,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId) static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data) { const u16 *palette; - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); s16 offset_y; u8 front_x = sBattlerCoords[0][1].x; u8 front_y; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 34f00069d..1c695d9fb 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -498,7 +498,7 @@ struct PokemonStorageSystemData const u16 *displayMonPalette; u32 displayMonPersonality; u16 displayMonSpecies; - u16 displayMonItemId; + enum Item displayMonItemId; u16 displayUnusedVar; bool8 setMosaic; u8 displayMonMarkings; @@ -544,7 +544,7 @@ struct PokemonStorageSystemData u8 inBoxMovingMode; u16 multiMoveWindowId; struct PokeStorageItemIcon itemIcons[MAX_ITEM_ICONS]; - u16 movingItemId; + enum Item movingItemId; u16 itemInfoWindowOffset; struct QuestLogEvent_MovedBoxMon questLogData; u16 unusedField2; @@ -636,7 +636,7 @@ static void StartDisplayMonMosaic(void); static void SpriteCB_DisplayMonMosaic(struct Sprite *sprite); static bool8 IsDisplayMonMosaicActive(void); static void CreateDisplayMonSprite(void); -static void LoadDisplayMonGfx(u16 species, u32 personality); +static void LoadDisplayMonGfx(enum Species species, u32 personality); static void PrintDisplayMonInfo(void); static void UpdateWaveformAnimation(void); static void InitSupplementalTilemaps(void); @@ -703,7 +703,7 @@ static void DestroyAllPartyMonIcons(void); static void DoReleaseMonComeBackAnim(void); static bool8 ResetReleaseMonSpritePtr(void); static void SetMovingMonPriority(u8 priority); -static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority); +static struct Sprite *CreateMonIconSprite(enum Species species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority); // Pokémon data static bool8 TryStorePartyMonInBox(u8 boxId); @@ -776,7 +776,7 @@ static bool8 UpdateItemInfoWindowSlideIn(void); static bool8 UpdateItemInfoWindowSlideOut(void); static void InitItemInfoWindow(void); static void PrintItemDescription(void); -static u16 GetMovingItem(void); +static enum Item GetMovingItem(void); static bool8 IsActiveItemMoving(void); static bool8 IsItemIconAnimActive(void); static void MoveHeldItemWithPartyMenu(void); @@ -785,7 +785,7 @@ static void MoveItemFromCursorToBag(void); static void Item_TakeMons(u8 cursorArea, u8 cursorPos); static void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos); static void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos); -static void InitItemIconInCursor(u16 item); +static void InitItemIconInCursor(enum Item item); static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos); static void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos); static void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos); @@ -2382,7 +2382,7 @@ static void Task_OnSelectedMon(u8 taskId) PlaySE(SE_SELECT); if (gStorage->boxOption != OPTION_MOVE_ITEMS) PrintStorageMessage(MSG_IS_SELECTED); - else if (IsActiveItemMoving() || gStorage->displayMonItemId != 0) + else if (IsActiveItemMoving() || gStorage->displayMonItemId != ITEM_NONE) PrintStorageMessage(MSG_IS_SELECTED2); else PrintStorageMessage(MSG_GIVE_TO_MON); @@ -3571,7 +3571,7 @@ static void Task_ChangeScreen(u8 taskId) static void GiveChosenBagItem(void) { - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; if (item != ITEM_NONE) { @@ -3751,7 +3751,7 @@ static void CreateDisplayMonSprite(void) } } -static void LoadDisplayMonGfx(u16 species, u32 personality) +static void LoadDisplayMonGfx(enum Species species, u32 personality) { if (gStorage->displayMonSprite == NULL) return; @@ -4277,7 +4277,7 @@ static u8 GetMonIconPriorityByCursorArea(void) void CreateMovingMonIcon(void) { u32 personality = GetMonData(&gStorage->movingMon, MON_DATA_PERSONALITY); - u16 species = GetMonData(&gStorage->movingMon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gStorage->movingMon, MON_DATA_SPECIES_OR_EGG); u8 priority = GetMonIconPriorityByCursorArea(); gStorage->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7); @@ -4299,7 +4299,7 @@ static void InitBoxMonSprites(u8 boxId) { u8 boxPosition; u16 i, j, count; - u16 species; + enum Species species; u32 personality; count = 0; @@ -4337,7 +4337,7 @@ static void InitBoxMonSprites(u8 boxId) void CreateBoxMonIconAtPos(u8 boxPosition) { - u16 species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES_OR_EGG); if (species != SPECIES_NONE) { @@ -4590,7 +4590,7 @@ void SetBoxMonIconObjMode(u8 boxPosition, u8 objMode) static void CreatePartyMonsSprites(bool8 visible) { u16 i, count; - u16 species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES_OR_EGG); u32 personality = GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY); gStorage->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); @@ -4940,7 +4940,7 @@ static void SpriteCB_HeldMon(struct Sprite *sprite) sprite->y = gStorage->cursorSprite->y + gStorage->cursorSprite->y2 + 4; } -static u16 TryLoadMonIconTiles(u16 species, u32 personality) +static u16 TryLoadMonIconTiles(enum Species species, u32 personality) { u16 i, offset; @@ -4978,7 +4978,7 @@ static u16 TryLoadMonIconTiles(u16 species, u32 personality) return offset; } -static void RemoveSpeciesFromIconList(u16 species) +static void RemoveSpeciesFromIconList(enum Species species) { u16 i; bool8 hasFemale = FALSE; @@ -5003,7 +5003,7 @@ static void RemoveSpeciesFromIconList(u16 species) } } -static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority) +static struct Sprite *CreateMonIconSprite(enum Species species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority) { u16 tileNum; u8 spriteId; @@ -5654,7 +5654,7 @@ static void GetCursorCoordsByPos(u8 cursorArea, u8 cursorPosition, u16 *x, u16 * } } -static u16 GetSpeciesAtCursorPosition(void) +static enum Species GetSpeciesAtCursorPosition(void) { switch (sCursorArea) { @@ -6245,7 +6245,7 @@ static bool8 TryHideReleaseMon(void) static void ReleaseMon(void) { u8 boxId; - u16 item = ITEM_NONE; + enum Item item = ITEM_NONE; DestroyReleaseMonIcon(); if (sIsMonBeingMoved) @@ -6448,7 +6448,7 @@ s16 CompactPartySlots(void) for (i = 0, last = 0; i < PARTY_SIZE; i++) { - u16 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); + enum Species species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); if (species != SPECIES_NONE) { if (i != last) @@ -7301,7 +7301,7 @@ static bool8 SetSelectionMenuTexts(void) static bool8 SetMenuTextsForMon(void) { - u16 species = GetSpeciesAtCursorPosition(); + enum Species species = GetSpeciesAtCursorPosition(); switch (gStorage->boxOption) { @@ -8105,7 +8105,7 @@ static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn) static void MultiMove_SetIconToBg(u8 x, u8 y) { u8 position = x + (IN_BOX_COLUMNS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG); u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); if (species != SPECIES_NONE) @@ -8119,7 +8119,7 @@ static void MultiMove_SetIconToBg(u8 x, u8 y) static void MultiMove_ClearIconFromBg(u8 x, u8 y) { u8 position = x + (IN_BOX_COLUMNS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG); if (species != SPECIES_NONE) FillWindowPixelRect8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0), 24 * x, 24 * y, 32, 32); @@ -8450,7 +8450,7 @@ static void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos) static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) { u8 id; - u16 item; + enum Item item; if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; @@ -8474,7 +8474,7 @@ static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) gStorage->movingItemId = gStorage->displayMonItemId; } -static void InitItemIconInCursor(u16 item) +static void InitItemIconInCursor(enum Item item) { const u32 *tiles = GetItemIconPic(item); const u16 *pal = GetItemIconPalette(item); @@ -8491,7 +8491,7 @@ static void InitItemIconInCursor(u16 item) static void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos) { u8 id; - u16 item; + enum Item item; if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; @@ -8542,7 +8542,7 @@ static void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos) static void Item_TakeMons(u8 cursorArea, u8 cursorPos) { u8 id; - u16 item; + enum Item item; if (gStorage->boxOption != OPTION_MOVE_ITEMS) return; @@ -8629,7 +8629,7 @@ static const u8 *GetMovingItemName(void) return GetItemName(gStorage->movingItemId); } -static u16 GetMovingItem(void) +static enum Item GetMovingItem(void) { return gStorage->movingItemId; } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 1f6e2588e..c1e0266b8 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -103,8 +103,8 @@ static void BufferMonSkills(void); static void BufferMonMoves(void); static u8 StatusToAilment(u32 status); static void BufferMonMoveI(u8); -static u16 GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot); -static u16 GetMonPpByMoveSlot(struct Pokemon * mon, u8 moveSlot); +static enum Move GetMonMoveBySlotId(struct Pokemon *mon, u8 moveSlot); +static u16 GetMonPpByMoveSlot(struct Pokemon *mon, u8 moveSlot); static void CreateShinyStarObj(u16, u16); static void CreatePokerusIconObj(u16, u16); static void PokeSum_CreateMonMarkingsSprite(void); @@ -223,8 +223,8 @@ struct PokemonSummaryScreenData u8 ALIGNED(4) unk3248; /* 0x3248 */ s16 ALIGNED(4) flipPagesBgHofs; /* 0x324C */ - u16 moveTypes[MAX_MON_MOVES + 1]; /* 0x3250 */ - u16 moveIds[MAX_MON_MOVES + 1]; /* 0x325A */ + enum Type moveTypes[MAX_MON_MOVES + 1]; /* 0x3250 */ + enum Move moveIds[MAX_MON_MOVES + 1]; /* 0x325A */ u8 ALIGNED(4) numMoves; /* 0x3264 */ u8 ALIGNED(4) isSwappingMoves; /* 0x3268 */ @@ -1301,10 +1301,10 @@ void ShowPokemonSummaryScreen(void *party, u8 cursorPos, u8 lastIdx, MainCallbac SetMainCallback2(CB2_SetUpPSS); } -void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 cursorPos, MainCallback savedCallback, u16 move) +void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 cursorPos, MainCallback savedCallback, enum Move move) { ShowPokemonSummaryScreen(party, cursorPos, gPlayerPartyCount - 1, savedCallback, PSS_MODE_SELECT_MOVE); - sMonSummaryScreen->moveIds[4] = move; + sMonSummaryScreen->moveIds[MAX_MON_MOVES] = move; } static u8 PageFlipInputIsDisabled(u8 direction) @@ -2606,8 +2606,8 @@ static void BufferStat(u8 stat) static void BufferMonSkills(void) { u8 level; - u16 type; - u16 species; + enum Ability ability; + enum Species species; u32 exp; u32 expToNextLevel; @@ -2633,9 +2633,9 @@ static void BufferMonSkills(void) ConvertIntToDecimalStringN(sMonSummaryScreen->summary.expToNextLevelStrBuf, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7); sMonSkillsPrinterXpos->toNextLevel = GetNumberRightAlign63(sMonSummaryScreen->summary.expToNextLevelStrBuf); - type = GetAbilityBySpecies(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM)); - StringCopy(sMonSummaryScreen->summary.abilityNameStrBuf, gAbilitiesInfo[type].name); - StringCopy(sMonSummaryScreen->summary.abilityDescStrBuf, gAbilitiesInfo[type].description); + ability = GetAbilityBySpecies(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM)); + StringCopy(sMonSummaryScreen->summary.abilityNameStrBuf, gAbilitiesInfo[ability].name); + StringCopy(sMonSummaryScreen->summary.abilityDescStrBuf, gAbilitiesInfo[ability].description); sMonSummaryScreen->curMonStatusAilment = StatusToAilment(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS)); if (sMonSummaryScreen->curMonStatusAilment == AILMENT_NONE) @@ -2661,7 +2661,7 @@ static void BufferMonMoveI(u8 i) if (i < MAX_MON_MOVES) sMonSummaryScreen->moveIds[i] = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, i); - if (sMonSummaryScreen->moveIds[i] == 0) + if (sMonSummaryScreen->moveIds[i] == MOVE_NONE) { StringCopy(sMonSummaryScreen->summary.moveNameStrBufs[i], gText_PokeSum_OneHyphen); StringCopy(sMonSummaryScreen->summary.moveCurPpStrBufs[i], gText_PokeSum_TwoHyphens); @@ -2676,7 +2676,7 @@ static void BufferMonMoveI(u8 i) sMonSummaryScreen->moveTypes[i] = gMovesInfo[sMonSummaryScreen->moveIds[i]].type; StringCopy(sMonSummaryScreen->summary.moveNameStrBufs[i], gMovesInfo[sMonSummaryScreen->moveIds[i]].name); - if (i >= 4 && sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (i >= MAX_MON_MOVES && sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { ConvertIntToDecimalStringN(sMonSummaryScreen->summary.moveCurPpStrBufs[i], gMovesInfo[sMonSummaryScreen->moveIds[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -2981,7 +2981,7 @@ static void PokeSum_PrintMoveName(u8 i) { u8 colorIdx = 0; u8 curPP = GetMonPpByMoveSlot(&sMonSummaryScreen->currentMon, i); - u16 move = sMonSummaryScreen->moveIds[i]; + enum Move move = sMonSummaryScreen->moveIds[i]; u8 ppBonuses = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES); u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); @@ -3899,9 +3899,9 @@ static void BufferSelectedMonData(struct Pokemon * mon) } } -static u16 GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot) +static enum Move GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot) { - u16 move; + enum Move move; switch (moveSlot) { @@ -4244,9 +4244,7 @@ static void UpdateCurrentMonBufferFromPartyOrBox(struct Pokemon * mon) static u8 PokeSum_CanForgetSelectedMove(void) { - u16 move; - - move = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, sMoveSelectionCursorPos); + enum Move move = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, sMoveSelectionCursorPos); if (CannotForgetMove(move) == TRUE && sMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE) return FALSE; @@ -4487,7 +4485,7 @@ static void SpriteCB_MonPicDummy(struct Sprite *sprite) static void PokeSum_CreateMonPicSprite(void) { u16 spriteId; - u16 species; + enum Species species; u32 personality; bool32 isShiny; @@ -4595,7 +4593,7 @@ static void DestroyBallIconObj(void) static void PokeSum_CreateMonIconSprite(void) { - u16 species; + enum Species species; u32 personality; species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES_OR_EGG); @@ -4620,8 +4618,7 @@ static void PokeSum_ShowOrHideMonIconSprite(bool8 invisible) static void PokeSum_DestroyMonIconSprite(void) { - u16 species; - species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES_OR_EGG); SafeFreeMonIconPalette(species); FreeAndDestroyMonIconSprite(&gSprites[sMonSummaryScreen->monIconSpriteId]); } @@ -5050,7 +5047,7 @@ static void UpdateExpBarObjs(void) u32 exp; u32 totalExpToNextLevel; u32 curExpToNextLevel; - u16 species; + enum Species species; s64 pointsPerTile; s64 totalPoints; u8 animNum; diff --git a/src/quest_log_events.c b/src/quest_log_events.c index bc9e2e38a..79b0411ed 100644 --- a/src/quest_log_events.c +++ b/src/quest_log_events.c @@ -128,7 +128,7 @@ static const u16 *LoadEvent_BoughtItem(const u16 *); static const u16 *LoadEvent_SoldItem(const u16 *); static const u16 *LoadEvent_ObtainedStoryItem(const u16 *); static const u16 *LoadEvent_ArrivedInLocation(const u16 *); -static bool8 IsSpeciesFromSpecialEncounter(u16); +static bool8 IsSpeciesFromSpecialEncounter(enum Species species); static bool8 ShouldRegisterEvent_HandleDeparted(u16, const u16 *); static bool8 ShouldRegisterEvent_DepartedGameCorner(u16, const u16 *); static void TranslateLinkPartnersName(u8 *); @@ -998,7 +998,7 @@ static const u16 *LoadEvent(u16 eventId, const u16 *eventData) return eventData; } -static void QuestLog_GetSpeciesName(u16 species, u8 *dest, u8 stringVarId) +static void QuestLog_GetSpeciesName(enum Species species, u8 *dest, u8 stringVarId) { if (dest != NULL) { @@ -1824,7 +1824,7 @@ static const u16 *LoadEvent_DefeatedWildMon(const u16 *a0) return (const u16 *)(data + 4); } -static bool8 IsSpeciesFromSpecialEncounter(u16 species) +static bool8 IsSpeciesFromSpecialEncounter(enum Species species) { switch (species) { @@ -1837,8 +1837,9 @@ static bool8 IsSpeciesFromSpecialEncounter(u16 species) case SPECIES_HO_OH: case SPECIES_DEOXYS: return TRUE; + default: + return FALSE; } - return FALSE; } static u16 *RecordEvent_DefeatedEliteFourMember(u16 *dest, const struct QuestLogEvent_TrainerBattle * data) diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 844ef2466..b2dda0cf1 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -55,7 +55,7 @@ void ReshowBattleScreenAfterMenu(void) static void CB2_ReshowBattleScreenAfterMenu(void) { u8 opponentBattler; - u16 species; + enum Species species; switch (gBattleScripting.reshowMainState) { diff --git a/src/scrcmd.c b/src/scrcmd.c index 7eb50231c..844eae6ed 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -608,7 +608,7 @@ bool8 ScrCmd_random(struct ScriptContext * ctx) bool8 ScrCmd_additem(struct ScriptContext * ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -620,7 +620,7 @@ bool8 ScrCmd_additem(struct ScriptContext * ctx) bool8 ScrCmd_removeitem(struct ScriptContext * ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -631,7 +631,7 @@ bool8 ScrCmd_removeitem(struct ScriptContext * ctx) bool8 ScrCmd_checkitemspace(struct ScriptContext * ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -642,7 +642,7 @@ bool8 ScrCmd_checkitemspace(struct ScriptContext * ctx) bool8 ScrCmd_checkitem(struct ScriptContext * ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -653,7 +653,7 @@ bool8 ScrCmd_checkitem(struct ScriptContext * ctx) bool8 ScrCmd_checkitemtype(struct ScriptContext * ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -663,7 +663,7 @@ bool8 ScrCmd_checkitemtype(struct ScriptContext * ctx) bool8 ScrCmd_addpcitem(struct ScriptContext * ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -674,7 +674,7 @@ bool8 ScrCmd_addpcitem(struct ScriptContext * ctx) bool8 ScrCmd_checkpcitem(struct ScriptContext * ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2039,7 +2039,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext * ctx) bool8 ScrCmd_showmonpic(struct ScriptContext * ctx) { - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); u8 x = ScriptReadByte(ctx); u8 y = ScriptReadByte(ctx); @@ -2121,7 +2121,7 @@ u8 *const sScriptStringVars[] = bool8 ScrCmd_bufferspeciesname(struct ScriptContext * ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2167,7 +2167,7 @@ bool8 ScrCmd_bufferpartymonnick(struct ScriptContext * ctx) bool8 ScrCmd_bufferitemname(struct ScriptContext * ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2181,7 +2181,7 @@ static const u8 sText_IES[] = _("IES"); bool8 ScrCmd_bufferitemnameplural(struct ScriptContext * ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2216,7 +2216,7 @@ bool8 ScrCmd_bufferdecorationname(struct ScriptContext * ctx) bool8 ScrCmd_buffermovename(struct ScriptContext * ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 moveId = VarGet(ScriptReadHalfword(ctx)); + enum Move moveId = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2294,7 +2294,7 @@ bool8 ScrCmd_bufferboxname(struct ScriptContext * ctx) bool8 ScrCmd_giveegg(struct ScriptContext * ctx) { - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -2306,7 +2306,7 @@ bool8 ScrCmd_setmonmove(struct ScriptContext * ctx) { u8 partyIndex = ScriptReadByte(ctx); u8 slot = ScriptReadByte(ctx); - u16 move = ScriptReadHalfword(ctx); + enum Move move = ScriptReadHalfword(ctx); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -2316,18 +2316,17 @@ bool8 ScrCmd_setmonmove(struct ScriptContext * ctx) bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx) { - u8 i; - u16 moveId = ScriptReadHalfword(ctx); + enum Move moveId = ScriptReadHalfword(ctx); Script_RequestEffects(SCREFF_V1); gSpecialVar_Result = PARTY_SIZE; - for (i = 0; i < PARTY_SIZE; i++) + for (u32 i = 0; i < PARTY_SIZE; i++) { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL); + enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); if (!species) break; - if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId) == TRUE) + if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId)) { gSpecialVar_Result = i; gSpecialVar_0x8004 = species; @@ -2341,7 +2340,7 @@ bool8 ScrCmd_checkfieldmoveusable(struct ScriptContext* ctx) { u32 partyIndex; enum FieldMove fieldMove = ScriptReadHalfword(ctx); - u16 moveId = gFieldMovesInfo[fieldMove].moveId; + enum Move moveId = gFieldMovesInfo[fieldMove].moveId; gSpecialVar_Result = FALSE; Script_RequestEffects(SCREFF_V1); @@ -2361,7 +2360,8 @@ bool8 ScrCmd_checkfieldmoveusable(struct ScriptContext* ctx) } else if (OW_FIELD_MOVES_WITHOUT_HMS) { - u16 species = FieldMove_GetDefaultSpecies(fieldMove); + enum Species species = FieldMove_GetDefaultSpecies(fieldMove); + gFieldEffectArguments[0] = species | SHOW_MON_NOT_IN_PARTY; gSpecialVar_0x8004 = species; gSpecialVar_Result = TRUE; @@ -2550,12 +2550,12 @@ bool8 ScrCmd_cleartrainerflag(struct ScriptContext * ctx) bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx) { - u16 species = ScriptReadHalfword(ctx); + enum Species species = ScriptReadHalfword(ctx); u8 level = ScriptReadByte(ctx); - u16 item = ScriptReadHalfword(ctx); - u16 species2 = ScriptReadHalfword(ctx); + enum Item item = ScriptReadHalfword(ctx); + enum Species species2 = ScriptReadHalfword(ctx); u8 level2 = ScriptReadByte(ctx); - u16 item2 = ScriptReadHalfword(ctx); + enum Item item2 = ScriptReadHalfword(ctx); Script_RequestEffects(SCREFF_V1); @@ -2757,7 +2757,7 @@ bool8 ScrCmd_checkplayergender(struct ScriptContext * ctx) bool8 ScrCmd_playmoncry(struct ScriptContext * ctx) { - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); u16 mode = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_HARDWARE); diff --git a/src/script_menu.c b/src/script_menu.c index 4ab8483e9..fe96d9406 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1488,7 +1488,7 @@ static void Task_PokemonPicWindow(u8 taskId) } } -bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y) +bool8 ScriptMenu_ShowPokemonPic(enum Species species, u8 x, u8 y) { u8 spriteId; u8 taskId; diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index f02c8356c..62c411f57 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -151,7 +151,7 @@ void SetTeraType(struct ScriptContext *ctx) * if side/slot are assigned, it will create the mon at the assigned party location * if slot == PARTY_SIZE, it will give the mon to first available party or storage slot */ -static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, enum Item item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u16 *evs, u16 *ivs, enum Move *moves, enum ShinyMode shinyMode, bool8 gmaxFactor, enum Type teraType, u8 dmaxLevel) +static u32 ScriptGiveMonParameterized(u8 side, u8 slot, enum Species species, u8 level, enum Item item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u16 *evs, u16 *ivs, enum Move *moves, enum ShinyMode shinyMode, bool8 gmaxFactor, enum Type teraType, u8 dmaxLevel) { struct Pokemon mon; u32 i; @@ -266,7 +266,7 @@ static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, e return MON_GIVEN_TO_PARTY; } -u32 ScriptGiveMon(u16 species, u8 level, enum Item item) +u32 ScriptGiveMon(enum Species species, u8 level, enum Item item) { struct Pokemon mon; u8 heldItem[2]; @@ -306,7 +306,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx) { u8 side = ScriptReadByte(ctx); u8 slot = ScriptReadByte(ctx); - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); u8 level = VarGet(ScriptReadHalfword(ctx)); u32 flags = ScriptReadWord(ctx); @@ -408,7 +408,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx) #undef PARSE_FLAG -u8 ScriptGiveEgg(u16 species) +u8 ScriptGiveEgg(enum Species species) { struct Pokemon mon; u8 isEgg; @@ -436,13 +436,13 @@ void HasEnoughMonsForDoubleBattle(void) } } -static bool8 CheckPartyMonHasHeldItem(u16 item) +static bool8 CheckPartyMonHasHeldItem(enum Item item) { int i; for(i = 0; i < PARTY_SIZE; i++) { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); if (species != SPECIES_NONE && species != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == item) return TRUE; } @@ -458,7 +458,7 @@ bool8 DoesPartyHaveEnigmaBerry(void) return hasItem; } -void CreateScriptedWildMon(u16 species, u8 level, u16 item) +void CreateScriptedWildMon(enum Species species, u8 level, enum Item item) { u8 heldItem[2]; @@ -477,7 +477,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) } } -void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 species2, u8 level2, enum Item item2) +void CreateScriptedDoubleWildMon(enum Species species1, u8 level1, enum Item item1, enum Species species2, u8 level2, enum Item item2) { u8 heldItem1[2]; u8 heldItem2[2]; @@ -510,7 +510,7 @@ void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 s } } -void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) +void ScriptSetMonMoveSlot(u8 monIndex, enum Move move, u8 slot) { if (monIndex > PARTY_SIZE) monIndex = gPlayerPartyCount - 1; @@ -621,7 +621,7 @@ void Script_SetStatus1(struct ScriptContext *ctx) if (slot >= PARTY_SIZE) { - u16 species; + enum Species species; for (slot = 0; slot < PARTY_SIZE; slot++) { diff --git a/src/shop.c b/src/shop.c index f3b6e4624..6366d1019 100644 --- a/src/shop.c +++ b/src/shop.c @@ -761,7 +761,7 @@ static void PokeMartWriteNameAndIdAt(struct ListMenuItem *list, u16 index, u8 *d list->id = index; } -static void BuyMenuAddItemIcon(u16 item, u8 iconSlot) +static void BuyMenuAddItemIcon(enum Item item, u8 iconSlot) { u8 *spriteIdPtr = &sShopData.itemSpriteIds[iconSlot]; @@ -1310,7 +1310,7 @@ static void DebugFunc_PrintShopMenuHistoryBeforeClearMaybe(void) // Records a transaction during a single shopping session. // This is for the Quest Log to save information about the player's purchases/sales when they finish. -void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId) +void RecordItemTransaction(enum Item itemId, u16 quantity, u8 logEventId) { struct QuestLogEvent_Shop *history; diff --git a/src/sound.c b/src/sound.c index 7b76ad92d..1f0a8f31b 100644 --- a/src/sound.c +++ b/src/sound.c @@ -314,7 +314,7 @@ bool8 IsBGMStopped(void) return FALSE; } -void PlayCry_Normal(u16 species, s8 pan) +void PlayCry_Normal(enum Species species, s8 pan) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85); PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, CRY_MODE_NORMAL); @@ -322,13 +322,13 @@ void PlayCry_Normal(u16 species, s8 pan) RestoreBGMVolumeAfterPokemonCry(); } -void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority) +void PlayCry_NormalNoDucking(enum Species species, s8 pan, s8 volume, u8 priority) { PlayCryInternal(species, pan, volume, priority, CRY_MODE_NORMAL); } // Assuming it's not CRY_MODE_DOUBLES, this is equivalent to PlayCry_Normal except it allows other modes. -void PlayCry_ByMode(u16 species, s8 pan, u8 mode) +void PlayCry_ByMode(enum Species species, s8 pan, u8 mode) { if (mode == CRY_MODE_DOUBLES) { @@ -344,7 +344,7 @@ void PlayCry_ByMode(u16 species, s8 pan, u8 mode) } // Used when releasing multiple Pokémon at once in battle. -void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode) +void PlayCry_ReleaseDouble(enum Species species, s8 pan, u8 mode) { if (mode == CRY_MODE_DOUBLES) { @@ -359,7 +359,7 @@ void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode) } // Duck the BGM but don't restore it. Not present in R/S -void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode) +void PlayCry_DuckNoRestore(enum Species species, s8 pan, u8 mode) { if (mode == CRY_MODE_DOUBLES) { @@ -373,7 +373,7 @@ void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode) } } -void PlayCry_Script(u16 species, u8 mode) +void PlayCry_Script(enum Species species, u8 mode) { if (!QL_IS_PLAYBACK_STATE) // This check is exclusive to FR/LG { @@ -385,7 +385,7 @@ void PlayCry_Script(u16 species, u8 mode) } -void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode) +void PlayCryInternal(enum Species species, s8 pan, s8 volume, u8 priority, u8 mode) { bool32 reverse; u32 release; diff --git a/src/tm_case.c b/src/tm_case.c index 37fa0ed33..c750a8885 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -126,11 +126,11 @@ static void LoadBGTemplates(void); static bool8 HandleLoadTMCaseGraphicsAndPalettes(void); static void CreateTMCaseListMenuBuffers(void); static void InitTMCaseListMenuItems(void); -static void GetTMNumberAndMoveString(u8 * dest, u16 itemId); +static void GetTMNumberAndMoveString(u8 *dest, enum Item itemId); static void List_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void List_ItemPrintFunc(u8 windowId, u32 itemId, u8 y); static void PrintDescription(s32 itemIndex); -static void PrintMoveInfo(u16 itemId); +static void PrintMoveInfo(enum Item itemId); static void PrintListCursorAtRow(u8 y, u8 colorIdx); static void CreateListScrollArrows(void); static void TMCaseSetup_GetTMCount(void); @@ -173,11 +173,11 @@ static void PrintPlayersMoney(void); static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable * ptrs); static u8 AddContextMenu(u8 * windowId, u8 windowIndex); static void RemoveContextMenu(u8 * windowId); -static u8 CreateDiscSprite(u16 itemId); +static u8 CreateDiscSprite(enum Item itemId); static void SetDiscSpriteAnim(struct Sprite *sprite, u8 tmIdx); static void TintDiscpriteByType(u8 type); static void SetDiscSpritePosition(struct Sprite *sprite, u8 tmIdx); -static void SwapDisc(u8 spriteId, u16 itemId); +static void SwapDisc(u8 spriteId, enum Item itemId); static void SpriteCB_SwapDisc(struct Sprite *sprite); static const struct BgTemplate sBGTemplates[] = { @@ -675,7 +675,7 @@ static void InitTMCaseListMenuItems(void) gMultiuseListMenuTemplate.scrollMultiple = 0; } -static void GetTMNumberAndMoveString(u8 *dest, u16 itemId) +static void GetTMNumberAndMoveString(u8 *dest, enum Item itemId) { StringCopy(gStringVar4, gText_FontSmall); if (IsItemHM(itemId)) @@ -699,7 +699,7 @@ static void GetTMNumberAndMoveString(u8 *dest, u16 itemId) static void List_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { - u16 itemId; + enum Item itemId; if (itemIndex == LIST_CANCEL) itemId = ITEM_NONE; @@ -719,7 +719,7 @@ static void List_ItemPrintFunc(u8 windowId, u32 itemIndex, u8 y) { if (itemIndex != LIST_CANCEL) { - u16 itemId = GetBagItemId(POCKET_TM_HM, itemIndex); + enum Item itemId = GetBagItemId(POCKET_TM_HM, itemIndex); if (!IsItemHM(itemId)) { if (!GetItemImportance(itemId)) @@ -743,10 +743,12 @@ static void List_ItemPrintFunc(u8 windowId, u32 itemIndex, u8 y) static void PrintDescription(s32 itemIndex) { const u8 * str; + if (itemIndex != LIST_CANCEL) str = GetItemDescription(GetBagItemId(POCKET_TM_HM, itemIndex)); else str = gText_TMCaseWillBePutAway; + FillWindowPixelBuffer(WIN_DESCRIPTION, 0); TMCase_Print(WIN_DESCRIPTION, FONT_NORMAL, str, 2, 3, 1, 0, 0, COLOR_LIGHT); } @@ -1045,8 +1047,9 @@ static void Action_Use(u8 taskId) static void Action_Give(u8 taskId) { - s16 * data = gTasks[taskId].data; - u16 itemId = GetBagItemId(POCKET_TM_HM, tListPos); + s16 *data = gTasks[taskId].data; + enum Item itemId = GetBagItemId(POCKET_TM_HM, tListPos); + RemoveContextMenu(&sTMCaseDynamicResources->contextMenuWindowId); ClearStdWindowAndFrameToTransparent(WIN_SELECTED_MSG, FALSE); ClearWindowTilemap(WIN_SELECTED_MSG); @@ -1548,23 +1551,21 @@ static void DrawMoveInfoLabels(void) CopyWindowToVram(WIN_MOVE_INFO_LABELS, COPYWIN_GFX); } -static void PrintMoveInfo(u16 itemId) +static void PrintMoveInfo(enum Item itemId) { - u8 i; - u16 move; - const u8 * str; FillWindowPixelRect(WIN_MOVE_INFO, 0, 0, 0, 40, 48); if (itemId == ITEM_NONE) { - for (i = 0; i < 4; i++) + for (u32 i = 0; i < 4; i++) TMCase_Print(WIN_MOVE_INFO, FONT_NORMAL_COPY_2, gText_ThreeHyphens, 7, 12 * i, 0, 0, TEXT_SKIP_DRAW, COLOR_MOVE_INFO); CopyWindowToVram(WIN_MOVE_INFO, COPYWIN_GFX); } else { + const u8 *str; + enum Move move = ItemIdToBattleMoveId(itemId); // Draw type icon - move = ItemIdToBattleMoveId(itemId); BlitMenuInfoIcon(WIN_MOVE_INFO, gMovesInfo[move].type + 1, 0, 0); // Print power @@ -1630,7 +1631,7 @@ static void RemoveContextMenu(u8 * windowId) *windowId = WINDOW_NONE; } -static u8 CreateDiscSprite(u16 itemId) +static u8 CreateDiscSprite(enum Item itemId) { u8 spriteId = CreateSprite(&sSpriteTemplate_Disc, DISC_BASE_X, DISC_BASE_Y, 0); u8 tmIdx; @@ -1696,7 +1697,7 @@ static void SetDiscSpritePosition(struct Sprite *sprite, u8 tmIdx) #define sItemId data[0] #define sState data[1] -static void SwapDisc(u8 spriteId, u16 itemId) +static void SwapDisc(u8 spriteId, enum Item itemId) { gSprites[spriteId].sItemId = itemId; gSprites[spriteId].sState = 0; diff --git a/src/trade.c b/src/trade.c index cfa4ed149..6407b306b 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1538,7 +1538,7 @@ static bool8 BufferTradeParties(void) for (i = 0, mon = gEnemyParty; i < PARTY_SIZE; mon++, i++) { u8 name[POKEMON_NAME_LENGTH + 1]; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); if (species != SPECIES_NONE) { @@ -2815,7 +2815,7 @@ s32 GetGameProgressForLinkTrade(void) return TRADE_PARTNER_NOT_READY; } -static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isModernFatefulEncounter) +static bool32 IsDeoxysOrMewUntradable(enum Species species, bool8 isModernFatefulEncounter) { if (species == SPECIES_DEOXYS || species == SPECIES_MEW) { @@ -2825,7 +2825,7 @@ static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isModernFatefulEncounte return FALSE; } -int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct RfuGameCompatibilityData partner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, bool8 isModernFatefulEncounter) +int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct RfuGameCompatibilityData partner, enum Species playerSpecies2, enum Species partnerSpecies, u8 requestedType, enum Species playerSpecies, bool8 isModernFatefulEncounter) { bool8 playerHasNationalDex = player.hasNationalDex; bool8 playerCanLinkNationally = player.canLinkNationally; @@ -2887,7 +2887,7 @@ int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct Rf return UR_TRADE_MSG_NONE; } -int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, u16 species2, u16 species, bool8 isModernFatefulEncounter) +int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, enum Species species2, enum Species species, bool8 isModernFatefulEncounter) { bool8 hasNationalDex = player.hasNationalDex; diff --git a/src/trade_scene.c b/src/trade_scene.c index 0977373f9..1ee306b96 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -58,7 +58,7 @@ enum { struct InGameTrade { /*0x00*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x0C*/ u16 species; + /*0x0C*/ enum Species species; /*0x0E*/ u8 ivs[NUM_STATS]; /*0x14*/ u8 abilityNum; /*0x18*/ u32 otId; @@ -69,7 +69,7 @@ struct InGameTrade { /*0x2B*/ u8 otName[11]; /*0x36*/ u8 otGender; /*0x37*/ u8 sheen; - /*0x38*/ u16 requestedSpecies; + /*0x38*/ enum Species requestedSpecies; }; struct { @@ -107,7 +107,7 @@ struct { /*0xEA*/ u16 bg2Zoom; /*0xEC*/ u16 bg2alpha; /*0xEE*/ bool8 isLinkTrade; - /*0xF0*/ u16 monSpecies[2]; + /*0xF0*/ enum Species monSpecies[2]; /*0xF4*/ u16 cachedMapMusic; /*0xF6*/ u8 unk_F6; /*0xF8*/ struct QuestLogEvent_Traded questLogData; @@ -118,7 +118,7 @@ struct { /*0x10A*/ u8 win0top; /*0x10B*/ u8 win0right; /*0x10C*/ u8 win0bottom; -} static EWRAM_DATA * sTradeAnim = NULL; +} static EWRAM_DATA *sTradeAnim = NULL; static void SpriteCB_LinkMonGlow(struct Sprite *sprite); static void SpriteCB_LinkMonGlowWireless(struct Sprite *sprite); @@ -735,7 +735,8 @@ static u32 TradeGetMultiplayerId(void) static void LoadTradeMonPic(struct Pokemon *mon, u8 state) { - u32 species, personality; + enum Species species; + u32 personality; u32 whichParty = state / 2; species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); @@ -1026,20 +1027,23 @@ static void CB2_InitInGameTrade(void) static void UpdatePokedexForReceivedMon(u8 partyIdx) { struct Pokemon *mon; + enum Species species; + enum NationalDexOrder natDex; + u32 personality; if (partyIdx == PC_MON_CHOSEN) mon = &gEnemyParty[TRADEMON_FROM_PC]; else mon = &gPlayerParty[partyIdx]; - if (!GetMonData(mon, MON_DATA_IS_EGG)) - { - u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); - u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); - species = SpeciesToNationalPokedexNum(species); - GetSetPokedexFlag(species, FLAG_SET_SEEN); - HandleSetPokedexFlag(species, FLAG_SET_CAUGHT, personality); - } + if (GetMonData(mon, MON_DATA_IS_EGG)) + return; + + species = GetMonData(mon, MON_DATA_SPECIES, NULL); + personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + natDex = SpeciesToNationalPokedexNum(species); + GetSetPokedexFlag(natDex, FLAG_SET_SEEN); + HandleSetPokedexFlag(natDex, FLAG_SET_CAUGHT, personality); } static void TryEnableNationalDexFromLinkPartner(void) @@ -1725,9 +1729,9 @@ static bool8 DoTradeAnim_Cable(void) if (gSprites[sTradeAnim->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) { HandleLoadSpecialPokePic(TRUE, - gMonSpritesGfxPtr->spritesGfx[B_POSITION_OPPONENT_RIGHT], - sTradeAnim->monSpecies[TRADE_PARTNER], - sTradeAnim->monPersonalities[TRADE_PARTNER]); + gMonSpritesGfxPtr->spritesGfx[B_POSITION_OPPONENT_RIGHT], + sTradeAnim->monSpecies[TRADE_PARTNER], + sTradeAnim->monPersonalities[TRADE_PARTNER]); sTradeAnim->state++; } break; diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 0fca4090b..0d91b5819 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -59,7 +59,7 @@ void ResetAllPicSprites(void) sSpritePics[i] = sDummyPicData; } -static void LoadMonPicPaletteByTagOrSlot(u16 species, bool32 isShiny, u32 personality, u8 paletteSlot, u16 paletteTag) +static void LoadMonPicPaletteByTagOrSlot(enum Species species, bool32 isShiny, u32 personality, u8 paletteSlot, u16 paletteTag) { if (paletteTag == TAG_NONE) { @@ -73,7 +73,7 @@ static void LoadMonPicPaletteByTagOrSlot(u16 species, bool32 isShiny, u32 person } } -void LoadMonFrontPicInWindow(u16 species, bool32 isShiny, u32 personality, u8 paletteSlot, u8 windowId) +void LoadMonFrontPicInWindow(enum Species species, bool32 isShiny, u32 personality, u8 paletteSlot, u8 windowId) { u8 *framePics = Alloc(MON_PIC_SIZE * MAX_MON_PIC_FRAMES); @@ -99,7 +99,7 @@ void LoadTrainerFrontPicInWindow(enum TrainerPicID trainerPicId, u16 destX, u16 Free(framePics); } -u16 CreateMonFrontPicSprite(u16 species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +u16 CreateMonFrontPicSprite(enum Species species, bool32 isShiny, u32 personality, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) { u8 i; u8 *framePics; @@ -153,7 +153,7 @@ u16 CreateMonFrontPicSprite(u16 species, bool32 isShiny, u32 personality, s16 x, return spriteId; } -u16 CreateMonPicSprite_Affine(u16 species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +u16 CreateMonPicSprite_Affine(enum Species species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) { u8 *framePics; struct SpriteFrameImage *images; @@ -228,6 +228,7 @@ u16 CreateMonPicSprite_Affine(u16 species, bool8 isShiny, u32 personality, u8 fl sSpritePics[i].paletteTag = paletteTag; sSpritePics[i].spriteId = spriteId; sSpritePics[i].active = TRUE; + return spriteId; } diff --git a/src/trainer_tower.c b/src/trainer_tower.c index da4ace28a..88a286c39 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -366,7 +366,7 @@ static const u16 sFloorLayouts[MAX_TRAINER_TOWER_FLOORS][NUM_TOWER_CHALLENGE_TYP {LAYOUT_TRAINER_TOWER_8F, LAYOUT_TRAINER_TOWER_8F_DOUBLES, LAYOUT_TRAINER_TOWER_8F_KNOCKOUT} }; -static const u16 sPrizeList[] = { +static const enum Item sPrizeList[] = { ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, @@ -822,7 +822,7 @@ static void GetOwnerState(void) static void GiveChallengePrize(void) { #if FREE_TRAINER_HILL == FALSE - u16 itemId = sPrizeList[sTrainerTowerState->data.floors->prize]; + enum Item itemId = sPrizeList[sTrainerTowerState->data.floors->prize]; if (TRAINER_TOWER.receivedPrize) { diff --git a/src/union_room.c b/src/union_room.c index be88328c2..e65d010a4 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -3981,7 +3981,7 @@ static void ItemPrintFunc_Unused(u8 windowId, u32 itemId, u8 y) static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct RfuGameData * data, const u8 * playerName, u8 colorIdx) { u8 levelStr[4]; - u16 species = data->tradeSpecies; + enum Species species = data->tradeSpecies; u8 type = data->tradeType; u8 level = data->tradeLevel; @@ -4119,7 +4119,7 @@ static void GetURoomActivityStartMsg(u8 *dst, u8 activity) static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activityData, struct WirelessLink_URoom * uroom) { s32 result = 0; - u16 species = SPECIES_NONE; + enum Species species = SPECIES_NONE; s32 i; switch (activityData[0]) @@ -4251,10 +4251,10 @@ static void RegisterTradeMon(u32 monId, struct UnionRoomTrade * trade) static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 multiplayerId) { u16 response = 0; - u16 species; + enum Species species; u32 personality; u32 cur_personality; - u16 cur_species; + enum Species cur_species; s32 i; // player diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 77a6be8c5..ca0d87b46 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -54,7 +54,7 @@ static bool8 UnlockedTanobyOrAreNotInTanoby(void); static void UpdateChainFishingStreak(); static bool8 IsWildLevelAllowedByRepel(u8 level); static void ApplyFluteEncounterRateMod(u32 *rate); -static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, u16 species, u8 area); +static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, enum Species species, u8 area); static u8 GetFluteEncounterRateModType(void); static void ApplyCleanseTagEncounterRateMod(u32 *rate); static bool8 IsLeadMonHoldingCleanseTag(void); @@ -365,7 +365,7 @@ static u8 PickWildMonNature(u32 species) return GetSynchronizedNature(WILDMON_ORIGIN, species); } -void CreateWildMon(u16 species, u8 level, u8 unownSlot) +void CreateWildMon(enum Species species, u8 level, u8 unownSlot) { u8 unownLetter = RANDOM_UNOWN_LETTER; @@ -975,7 +975,7 @@ static bool8 TryGetRandomWildMonIndexByType(const struct WildPokemon *wildMon, u return TRUE; } -static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, u16 species, u8 area) +static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, enum Species species, u8 area) { u8 i, maxLevel = 0, numMon = 0; diff --git a/src/wild_pokemon_area.c b/src/wild_pokemon_area.c index 93446e42f..06ec16322 100644 --- a/src/wild_pokemon_area.c +++ b/src/wild_pokemon_area.c @@ -12,16 +12,16 @@ struct RoamerPair { - u16 roamer; - u16 starter; + enum Species roamer; + enum Species starter; }; -static u32 GetRoamerIndex(u32 species); -static s32 GetRoamerPokedexAreaMarkers(u16 species, struct Subsprite * subsprites); -static bool32 IsSpeciesOnMap(const struct WildPokemonHeader * data, u32 headerId, s32 species); -static bool32 IsSpeciesInEncounterTable(const struct WildPokemonInfo * pokemon, s32 species, s32 count); -static u16 GetMapSecIdFromWildMonHeader(const struct WildPokemonHeader * header); -static bool32 FindDexAreaByMapSec(u16 mapSecId, const u16 (*lut)[2], s32 count, s32 * lutIdx_p, u16 * tableIdx_p); +static u32 GetRoamerIndex(enum Species species); +static s32 GetRoamerPokedexAreaMarkers(enum Species species, struct Subsprite * subsprites); +static bool32 IsSpeciesOnMap(const struct WildPokemonHeader *data, u32 headerId, enum Species species); +static bool32 IsSpeciesInEncounterTable(const struct WildPokemonInfo *pokemon, enum Species species, s32 count); +static u16 GetMapSecIdFromWildMonHeader(const struct WildPokemonHeader *header); +static bool32 FindDexAreaByMapSec(u16 mapSecId, const u16 (*lut)[2], s32 count, s32 *lutIdx_p, u16 *tableIdx_p); const u16 sDexAreas_Kanto[55][2] = { { MAPSEC_PALLET_TOWN, DEX_AREA_PALLET_TOWN }, @@ -85,12 +85,12 @@ static const u16 sDexAreas_Sevii1[][2] = { { MAPSEC_KINDLE_ROAD, DEX_AREA_KINDLE_ROAD }, { MAPSEC_TREASURE_BEACH, DEX_AREA_TREASURE_BEACH }, { MAPSEC_ONE_ISLAND, DEX_AREA_ONE_ISLAND }, - { MAPSEC_MT_EMBER, DEX_AREA_MT_EMBER } + { MAPSEC_MT_EMBER, DEX_AREA_MT_EMBER } }; static const u16 sDexAreas_Sevii2[][2] = { { MAPSEC_CAPE_BRINK, DEX_AREA_CAPE_BRINK }, - { MAPSEC_TWO_ISLAND, DEX_AREA_TWO_ISLAND } + { MAPSEC_TWO_ISLAND, DEX_AREA_TWO_ISLAND } }; static const u16 sDexAreas_Sevii3[][2] = { @@ -98,12 +98,12 @@ static const u16 sDexAreas_Sevii3[][2] = { { MAPSEC_THREE_ISLE_PORT, DEX_AREA_THREE_ISLE_PATH }, { MAPSEC_THREE_ISLAND, DEX_AREA_THREE_ISLAND }, { MAPSEC_BERRY_FOREST, DEX_AREA_BERRY_FOREST }, - { MAPSEC_THREE_ISLE_PATH, DEX_AREA_THREE_ISLE_PATH } + { MAPSEC_THREE_ISLE_PATH, DEX_AREA_THREE_ISLE_PATH } }; static const u16 sDexAreas_Sevii4[][2] = { { MAPSEC_FOUR_ISLAND, DEX_AREA_FOUR_ISLAND }, - { MAPSEC_ICEFALL_CAVE, DEX_AREA_ICEFALL_CAVE } + { MAPSEC_ICEFALL_CAVE, DEX_AREA_ICEFALL_CAVE } }; static const u16 sDexAreas_Sevii5[][2] = { @@ -113,7 +113,7 @@ static const u16 sDexAreas_Sevii5[][2] = { { MAPSEC_MEMORIAL_PILLAR, DEX_AREA_MEMORIAL_PILLAR }, { MAPSEC_FIVE_ISLAND, DEX_AREA_FIVE_ISLAND }, { MAPSEC_ROCKET_WAREHOUSE, DEX_AREA_FIVE_ISLE_MEADOW }, - { MAPSEC_LOST_CAVE, DEX_AREA_LOST_CAVE } + { MAPSEC_LOST_CAVE, DEX_AREA_LOST_CAVE } }; static const u16 sDexAreas_Sevii6[][2] = { @@ -123,7 +123,7 @@ static const u16 sDexAreas_Sevii6[][2] = { { MAPSEC_RUIN_VALLEY, DEX_AREA_RUIN_VALLEY }, { MAPSEC_DOTTED_HOLE, DEX_AREA_DOTTED_HOLE }, { MAPSEC_PATTERN_BUSH, DEX_AREA_PATTERN_BUSH }, - { MAPSEC_ALTERING_CAVE_FRLG, DEX_AREA_ALTERING_CAVE } + { MAPSEC_ALTERING_CAVE_FRLG, DEX_AREA_ALTERING_CAVE } }; static const u16 sDexAreas_Sevii7[][2] = { @@ -137,7 +137,7 @@ static const u16 sDexAreas_Sevii7[][2] = { { MAPSEC_DILFORD_CHAMBER, DEX_AREA_TANOBY_CHAMBER }, { MAPSEC_SCUFIB_CHAMBER, DEX_AREA_TANOBY_CHAMBER }, { MAPSEC_RIXY_CHAMBER, DEX_AREA_TANOBY_CHAMBER }, - { MAPSEC_VIAPOIS_CHAMBER, DEX_AREA_TANOBY_CHAMBER } + { MAPSEC_VIAPOIS_CHAMBER, DEX_AREA_TANOBY_CHAMBER } }; static const struct @@ -162,7 +162,7 @@ static const struct RoamerPair sRoamerPairs[] = { // Scans for the given species and populates 'subsprites' with the area markers. // Returns the number of areas where the species was found. -s32 GetSpeciesPokedexAreaMarkers(u16 species, struct Subsprite * subsprites) +s32 GetSpeciesPokedexAreaMarkers(enum Species species, struct Subsprite *subsprites) { s32 areaCount; s32 j; @@ -221,7 +221,7 @@ s32 GetSpeciesPokedexAreaMarkers(u16 species, struct Subsprite * subsprites) return areaCount; } -static u32 GetRoamerIndex(u32 species) +static u32 GetRoamerIndex(enum Species species) { u32 i; for (i = 0; i < ROAMER_COUNT; i++) @@ -233,7 +233,7 @@ static u32 GetRoamerIndex(u32 species) return ROAMER_COUNT; } -static s32 GetRoamerPokedexAreaMarkers(u16 species, struct Subsprite * subsprites) +static s32 GetRoamerPokedexAreaMarkers(enum Species species, struct Subsprite *subsprites) { u32 roamerIndex; s32 tableIndex; @@ -258,7 +258,7 @@ static s32 GetRoamerPokedexAreaMarkers(u16 species, struct Subsprite * subsprite return 0; } -static bool32 IsSpeciesOnMap(const struct WildPokemonHeader * data, u32 headerId, s32 species) +static bool32 IsSpeciesOnMap(const struct WildPokemonHeader *data, u32 headerId, enum Species species) { enum Season season; enum TimeOfDay timeOfDay; @@ -281,7 +281,7 @@ static bool32 IsSpeciesOnMap(const struct WildPokemonHeader * data, u32 headerId return FALSE; } -static bool32 IsSpeciesInEncounterTable(const struct WildPokemonInfo * info, s32 species, s32 count) +static bool32 IsSpeciesInEncounterTable(const struct WildPokemonInfo *info, enum Species species, s32 count) { s32 i; if (info != NULL) @@ -295,7 +295,7 @@ static bool32 IsSpeciesInEncounterTable(const struct WildPokemonInfo * info, s32 return FALSE; } -static u16 GetMapSecIdFromWildMonHeader(const struct WildPokemonHeader * header) +static u16 GetMapSecIdFromWildMonHeader(const struct WildPokemonHeader *header) { return Overworld_GetMapHeaderByGroupAndId(header->mapGroup, header->mapNum)->regionMapSectionId; }