summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-03-22 14:26:44 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2020-03-22 14:26:44 -0400
commit77a6b8a820fe89af57585255e1c80ed9a3913be8 (patch)
treeaec29cfa9c837e12d8c5e91354394cec82456461 /src
parentfaab53204c9d583f5180fb48a0594f66cf85f30e (diff)
Address review comments; doc round 2
Diffstat (limited to 'src')
-rw-r--r--src/battle_controller_player.c4
-rw-r--r--src/menu2.c836
-rw-r--r--src/party_menu.c4
-rw-r--r--src/pokemon_special_anim.c114
-rw-r--r--src/pokemon_special_anim_scene.c796
5 files changed, 945 insertions, 809 deletions
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index a751c0eea..b28249a97 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -1226,7 +1226,7 @@ static void sub_80303A8(u8 taskId)
case 2:
PlaySE(SE_REGI);
if (IsMonGettingExpSentOut())
- sub_811E5B8(sprite->pos1.x + sprite->pos2.x,
+ CreateLevelUpVerticalSpritesTask(sprite->pos1.x + sprite->pos2.x,
sprite->pos1.y + sprite->pos2.y,
10000,
10000,
@@ -1235,7 +1235,7 @@ static void sub_80303A8(u8 taskId)
++data[15];
break;
case 3:
- if (!sub_811E680())
+ if (!LevelUpVerticalSpritesTaskIsRunning())
{
sprite->invisible = FALSE;
++data[15];
diff --git a/src/menu2.c b/src/menu2.c
index 1957715b2..116bf7b52 100644
--- a/src/menu2.c
+++ b/src/menu2.c
@@ -9,422 +9,422 @@
static void Task_SmoothBlendLayers(u8 taskId);
-static const u8 gUnknown_845FD54[][5] = {
- [SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29},
- [SPECIES_IVYSAUR - 1] = {0x14, 0x1b, 0x30, 0x15, 0x2a},
- [SPECIES_VENUSAUR - 1] = {0x1b, 0x20, 0x20, 0x1b, 0x33},
- [SPECIES_CHARMANDER - 1] = {0x14, 0x0f, 0x38, 0x13, 0x1e},
- [SPECIES_CHARMELEON - 1] = {0x0d, 0x11, 0x30, 0x0f, 0x22},
- [SPECIES_CHARIZARD - 1] = {0x1b, 0x07, 0x28, 0x1a, 0x19},
- [SPECIES_SQUIRTLE - 1] = {0x19, 0x13, 0x30, 0x1a, 0x22},
- [SPECIES_WARTORTLE - 1] = {0x16, 0x13, 0x30, 0x17, 0x21},
- [SPECIES_BLASTOISE - 1] = {0x12, 0x08, 0x28, 0x15, 0x19},
- [SPECIES_CATERPIE - 1] = {0x15, 0x14, 0x30, 0x13, 0x24},
- [SPECIES_METAPOD - 1] = {0x13, 0x1d, 0x30, 0x18, 0x2a},
- [SPECIES_BUTTERFREE - 1] = {0x12, 0x1b, 0x08, 0x12, 0x2a},
- [SPECIES_WEEDLE - 1] = {0x16, 0x1c, 0x30, 0x15, 0x2b},
- [SPECIES_KAKUNA - 1] = {0x19, 0x13, 0x30, 0x1a, 0x24},
- [SPECIES_BEEDRILL - 1] = {0x19, 0x16, 0x08, 0x19, 0x25},
- [SPECIES_PIDGEY - 1] = {0x15, 0x12, 0x30, 0x12, 0x1e},
- [SPECIES_PIDGEOTTO - 1] = {0x24, 0x0e, 0x30, 0x1f, 0x1e},
- [SPECIES_PIDGEOT - 1] = {0x0c, 0x13, 0x08, 0x0a, 0x23},
- [SPECIES_RATTATA - 1] = {0x17, 0x1e, 0x30, 0x18, 0x2d},
- [SPECIES_RATICATE - 1] = {0x12, 0x14, 0x30, 0x10, 0x26},
- [SPECIES_SPEAROW - 1] = {0x15, 0x14, 0x30, 0x15, 0x1f},
- [SPECIES_FEAROW - 1] = {0x0c, 0x27, 0x00, 0x0b, 0x3f},
- [SPECIES_EKANS - 1] = {0x11, 0x0f, 0x30, 0x14, 0x1d},
- [SPECIES_ARBOK - 1] = {0x1b, 0x01, 0x28, 0x1d, 0x10},
- [SPECIES_PIKACHU - 1] = {0x19, 0x13, 0x30, 0x1a, 0x1f},
- [SPECIES_RAICHU - 1] = {0x19, 0x14, 0x28, 0x1c, 0x22},
- [SPECIES_SANDSHREW - 1] = {0x17, 0x16, 0x30, 0x18, 0x25},
- [SPECIES_SANDSLASH - 1] = {0x11, 0x13, 0x28, 0x13, 0x22},
- [SPECIES_NIDORAN_F - 1] = {0x16, 0x15, 0x30, 0x18, 0x21},
- [SPECIES_NIDORINA - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x28},
- [SPECIES_NIDOQUEEN - 1] = {0x10, 0x0b, 0x28, 0x13, 0x1c},
- [SPECIES_NIDORAN_M - 1] = {0x15, 0x22, 0x28, 0x15, 0x31},
- [SPECIES_NIDORINO - 1] = {0x13, 0x1e, 0x28, 0x1b, 0x2d},
- [SPECIES_NIDOKING - 1] = {0x12, 0x15, 0x28, 0x13, 0x27},
- [SPECIES_CLEFAIRY - 1] = {0x19, 0x14, 0x30, 0x1b, 0x24},
- [SPECIES_CLEFABLE - 1] = {0x1c, 0x12, 0x30, 0x1d, 0x21},
- [SPECIES_VULPIX - 1] = {0x10, 0x16, 0x30, 0x0e, 0x25},
- [SPECIES_NINETALES - 1] = {0x28, 0x10, 0x28, 0x27, 0x1e},
- [SPECIES_JIGGLYPUFF - 1] = {0x1d, 0x15, 0x30, 0x1e, 0x25},
- [SPECIES_WIGGLYTUFF - 1] = {0x1a, 0x12, 0x30, 0x1c, 0x22},
- [SPECIES_ZUBAT - 1] = {0x14, 0x1d, 0x08, 0x14, 0x29},
- [SPECIES_GOLBAT - 1] = {0x23, 0x1a, 0x00, 0x21, 0x2e},
- [SPECIES_ODDISH - 1] = {0x1d, 0x20, 0x28, 0x1d, 0x2b},
- [SPECIES_GLOOM - 1] = {0x1c, 0x18, 0x28, 0x1c, 0x27},
- [SPECIES_VILEPLUME - 1] = {0x1c, 0x1e, 0x28, 0x1d, 0x2a},
- [SPECIES_PARAS - 1] = {0x1d, 0x1a, 0x30, 0x1c, 0x27},
- [SPECIES_PARASECT - 1] = {0x1e, 0x1c, 0x28, 0x20, 0x2e},
- [SPECIES_VENONAT - 1] = {0x1b, 0x16, 0x10, 0x1a, 0x29},
- [SPECIES_VENOMOTH - 1] = {0x12, 0x19, 0x08, 0x16, 0x27},
- [SPECIES_DIGLETT - 1] = {0x1e, 0x16, 0x30, 0x1c, 0x23},
- [SPECIES_DUGTRIO - 1] = {0x1a, 0x11, 0x30, 0x1a, 0x1f},
- [SPECIES_MEOWTH - 1] = {0x1c, 0x16, 0x30, 0x1c, 0x23},
- [SPECIES_PERSIAN - 1] = {0x13, 0x13, 0x30, 0x13, 0x21},
- [SPECIES_PSYDUCK - 1] = {0x1c, 0x13, 0x30, 0x17, 0x29},
- [SPECIES_GOLDUCK - 1] = {0x17, 0x12, 0x28, 0x17, 0x22},
- [SPECIES_MANKEY - 1] = {0x1c, 0x15, 0x30, 0x1b, 0x23},
- [SPECIES_PRIMEAPE - 1] = {0x1e, 0x16, 0x30, 0x1a, 0x27},
- [SPECIES_GROWLITHE - 1] = {0x14, 0x17, 0x30, 0x14, 0x24},
- [SPECIES_ARCANINE - 1] = {0x0f, 0x09, 0x28, 0x0c, 0x19},
- [SPECIES_POLIWAG - 1] = {0x15, 0x14, 0x30, 0x13, 0x1f},
- [SPECIES_POLIWHIRL - 1] = {0x1f, 0x10, 0x30, 0x1e, 0x17},
- [SPECIES_POLIWRATH - 1] = {0x22, 0x0c, 0x30, 0x21, 0x18},
- [SPECIES_ABRA - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x21},
- [SPECIES_KADABRA - 1] = {0x1b, 0x12, 0x30, 0x1c, 0x25},
- [SPECIES_ALAKAZAM - 1] = {0x1c, 0x11, 0x28, 0x1d, 0x26},
- [SPECIES_MACHOP - 1] = {0x1b, 0x11, 0x30, 0x1b, 0x1e},
- [SPECIES_MACHOKE - 1] = {0x1d, 0x11, 0x30, 0x1d, 0x1f},
- [SPECIES_MACHAMP - 1] = {0x1a, 0x0d, 0x28, 0x1c, 0x1b},
- [SPECIES_BELLSPROUT - 1] = {0x15, 0x0e, 0x30, 0x0e, 0x1c},
- [SPECIES_WEEPINBELL - 1] = {0x1a, 0x1c, 0x10, 0x15, 0x32},
- [SPECIES_VICTREEBEL - 1] = {0x1e, 0x0f, 0x30, 0x1c, 0x1b},
- [SPECIES_TENTACOOL - 1] = {0x1a, 0x15, 0x30, 0x1e, 0x26},
- [SPECIES_TENTACRUEL - 1] = {0x1b, 0x10, 0x28, 0x1c, 0x26},
- [SPECIES_GEODUDE - 1] = {0x1c, 0x20, 0x28, 0x1d, 0x2d},
- [SPECIES_GRAVELER - 1] = {0x1d, 0x19, 0x28, 0x1e, 0x26},
- [SPECIES_GOLEM - 1] = {0x19, 0x1b, 0x28, 0x1c, 0x27},
- [SPECIES_PONYTA - 1] = {0x0f, 0x11, 0x30, 0x0e, 0x23},
- [SPECIES_RAPIDASH - 1] = {0x2f, 0x0f, 0x28, 0x2b, 0x1e},
- [SPECIES_SLOWPOKE - 1] = {0x14, 0x1f, 0x28, 0x15, 0x2f},
- [SPECIES_SLOWBRO - 1] = {0x0e, 0x0d, 0x28, 0x0c, 0x1f},
- [SPECIES_MAGNEMITE - 1] = {0x20, 0x1b, 0x10, 0x1f, 0x29},
- [SPECIES_MAGNETON - 1] = {0x1f, 0x14, 0x08, 0x1f, 0x22},
- [SPECIES_FARFETCHD - 1] = {0x16, 0x14, 0x30, 0x16, 0x29},
- [SPECIES_DODUO - 1] = {0x11, 0x16, 0x30, 0x0d, 0x2c},
- [SPECIES_DODRIO - 1] = {0x1d, 0x04, 0x28, 0x0e, 0x07},
- [SPECIES_SEEL - 1] = {0x1b, 0x24, 0x20, 0x17, 0x35},
- [SPECIES_DEWGONG - 1] = {0x12, 0x0a, 0x30, 0x0e, 0x1a},
- [SPECIES_GRIMER - 1] = {0x1f, 0x10, 0x30, 0x1d, 0x25},
- [SPECIES_MUK - 1] = {0x17, 0x0f, 0x30, 0x19, 0x22},
- [SPECIES_SHELLDER - 1] = {0x1a, 0x18, 0x30, 0x17, 0x29},
- [SPECIES_CLOYSTER - 1] = {0x19, 0x1e, 0x28, 0x1d, 0x2c},
- [SPECIES_GASTLY - 1] = {0x1a, 0x1f, 0x08, 0x19, 0x30},
- [SPECIES_HAUNTER - 1] = {0x20, 0x14, 0x08, 0x1d, 0x26},
- [SPECIES_GENGAR - 1] = {0x1a, 0x16, 0x30, 0x19, 0x28},
- [SPECIES_ONIX - 1] = {0x1f, 0x24, 0x20, 0x28, 0x36},
- [SPECIES_DROWZEE - 1] = {0x1a, 0x0e, 0x30, 0x1a, 0x1e},
- [SPECIES_HYPNO - 1] = {0x1c, 0x12, 0x30, 0x19, 0x24},
- [SPECIES_KRABBY - 1] = {0x1d, 0x1d, 0x30, 0x1a, 0x2b},
- [SPECIES_KINGLER - 1] = {0x1e, 0x1f, 0x28, 0x1c, 0x30},
- [SPECIES_VOLTORB - 1] = {0x1c, 0x1b, 0x30, 0x1b, 0x2b},
- [SPECIES_ELECTRODE - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x2e},
- [SPECIES_EXEGGCUTE - 1] = {0x21, 0x17, 0x30, 0x20, 0x24},
- [SPECIES_EXEGGUTOR - 1] = {0x1c, 0x17, 0x28, 0x1b, 0x25},
- [SPECIES_CUBONE - 1] = {0x1b, 0x12, 0x30, 0x1b, 0x22},
- [SPECIES_MAROWAK - 1] = {0x14, 0x0f, 0x30, 0x11, 0x23},
- [SPECIES_HITMONLEE - 1] = {0x2e, 0x11, 0x30, 0x28, 0x22},
- [SPECIES_HITMONCHAN - 1] = {0x22, 0x0e, 0x30, 0x1e, 0x1d},
- [SPECIES_LICKITUNG - 1] = {0x14, 0x11, 0x30, 0x14, 0x24},
- [SPECIES_KOFFING - 1] = {0x1e, 0x14, 0x10, 0x1d, 0x20},
- [SPECIES_WEEZING - 1] = {0x11, 0x0d, 0x10, 0x0f, 0x1c},
- [SPECIES_RHYHORN - 1] = {0x0e, 0x23, 0x20, 0x14, 0x33},
- [SPECIES_RHYDON - 1] = {0x0d, 0x12, 0x28, 0x17, 0x22},
- [SPECIES_CHANSEY - 1] = {0x1a, 0x0d, 0x30, 0x1a, 0x1a},
- [SPECIES_TANGELA - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x29},
- [SPECIES_KANGASKHAN - 1] = {0x1b, 0x06, 0x28, 0x1c, 0x14},
- [SPECIES_HORSEA - 1] = {0x1c, 0x14, 0x30, 0x16, 0x23},
- [SPECIES_SEADRA - 1] = {0x10, 0x17, 0x30, 0x09, 0x2a},
- [SPECIES_GOLDEEN - 1] = {0x16, 0x23, 0x20, 0x15, 0x34},
- [SPECIES_SEAKING - 1] = {0x16, 0x0f, 0x30, 0x10, 0x18},
- [SPECIES_STARYU - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x26},
- [SPECIES_STARMIE - 1] = {0x1d, 0x13, 0x30, 0x1b, 0x20},
- [SPECIES_MR_MIME - 1] = {0x24, 0x11, 0x30, 0x25, 0x1e},
- [SPECIES_SCYTHER - 1] = {0x10, 0x19, 0x28, 0x12, 0x27},
- [SPECIES_JYNX - 1] = {0x1b, 0x0f, 0x30, 0x19, 0x1c},
- [SPECIES_ELECTABUZZ - 1] = {0x14, 0x11, 0x30, 0x17, 0x20},
- [SPECIES_MAGMAR - 1] = {0x10, 0x0e, 0x30, 0x0b, 0x19},
- [SPECIES_PINSIR - 1] = {0x1d, 0x1c, 0x28, 0x20, 0x2b},
- [SPECIES_TAUROS - 1] = {0x11, 0x1d, 0x28, 0x13, 0x2e},
- [SPECIES_MAGIKARP - 1] = {0x16, 0x15, 0x30, 0x13, 0x23},
- [SPECIES_GYARADOS - 1] = {0x0b, 0x18, 0x28, 0x16, 0x29},
- [SPECIES_LAPRAS - 1] = {0x16, 0x08, 0x28, 0x15, 0x16},
- [SPECIES_DITTO - 1] = {0x24, 0x12, 0x30, 0x1f, 0x20},
- [SPECIES_EEVEE - 1] = {0x16, 0x16, 0x30, 0x16, 0x23},
- [SPECIES_VAPOREON - 1] = {0x18, 0x23, 0x28, 0x18, 0x30},
- [SPECIES_JOLTEON - 1] = {0x14, 0x1b, 0x30, 0x16, 0x28},
- [SPECIES_FLAREON - 1] = {0x16, 0x17, 0x30, 0x14, 0x25},
- [SPECIES_PORYGON - 1] = {0x18, 0x12, 0x30, 0x10, 0x23},
- [SPECIES_OMANYTE - 1] = {0x1d, 0x1d, 0x30, 0x1c, 0x2b},
- [SPECIES_OMASTAR - 1] = {0x16, 0x1a, 0x30, 0x19, 0x2d},
- [SPECIES_KABUTO - 1] = {0x1b, 0x16, 0x30, 0x1a, 0x27},
- [SPECIES_KABUTOPS - 1] = {0x15, 0x11, 0x30, 0x15, 0x1f},
- [SPECIES_AERODACTYL - 1] = {0x13, 0x1d, 0x00, 0x14, 0x30},
- [SPECIES_SNORLAX - 1] = {0x35, 0x09, 0x30, 0x2e, 0x14},
- [SPECIES_ARTICUNO - 1] = {0x18, 0x0b, 0x18, 0x17, 0x17},
- [SPECIES_ZAPDOS - 1] = {0x0e, 0x0e, 0x10, 0x04, 0x28},
- [SPECIES_MOLTRES - 1] = {0x0b, 0x2a, 0x08, 0x0b, 0x38},
- [SPECIES_DRATINI - 1] = {0x0d, 0x12, 0x30, 0x0b, 0x21},
- [SPECIES_DRAGONAIR - 1] = {0x18, 0x0e, 0x30, 0x13, 0x1c},
- [SPECIES_DRAGONITE - 1] = {0x1b, 0x07, 0x18, 0x19, 0x17},
- [SPECIES_MEWTWO - 1] = {0x2b, 0x09, 0x28, 0x2c, 0x18},
- [SPECIES_MEW - 1] = {0x19, 0x14, 0x10, 0x1f, 0x21},
- [SPECIES_CHIKORITA - 1] = {0x1b, 0x17, 0x30, 0x1b, 0x24},
- [SPECIES_BAYLEEF - 1] = {0x1d, 0x10, 0x30, 0x20, 0x1d},
- [SPECIES_MEGANIUM - 1] = {0x05, 0x0d, 0x28, 0x0d, 0x1b},
- [SPECIES_CYNDAQUIL - 1] = {0x11, 0x1b, 0x30, 0x14, 0x27},
- [SPECIES_QUILAVA - 1] = {0x25, 0x18, 0x30, 0x27, 0x26},
- [SPECIES_TYPHLOSION - 1] = {0x09, 0x10, 0x28, 0x10, 0x1c},
- [SPECIES_TOTODILE - 1] = {0x16, 0x10, 0x30, 0x19, 0x20},
- [SPECIES_CROCONAW - 1] = {0x16, 0x10, 0x30, 0x18, 0x21},
- [SPECIES_FERALIGATR - 1] = {0x0e, 0x0a, 0x28, 0x08, 0x1a},
- [SPECIES_SENTRET - 1] = {0x1e, 0x0a, 0x30, 0x1d, 0x15},
- [SPECIES_FURRET - 1] = {0x21, 0x0e, 0x30, 0x21, 0x19},
- [SPECIES_HOOTHOOT - 1] = {0x1d, 0x15, 0x30, 0x1c, 0x24},
- [SPECIES_NOCTOWL - 1] = {0x19, 0x0e, 0x30, 0x18, 0x1c},
- [SPECIES_LEDYBA - 1] = {0x1b, 0x15, 0x30, 0x1c, 0x24},
- [SPECIES_LEDIAN - 1] = {0x18, 0x12, 0x10, 0x1c, 0x21},
- [SPECIES_SPINARAK - 1] = {0x20, 0x20, 0x28, 0x20, 0x2d},
- [SPECIES_ARIADOS - 1] = {0x17, 0x23, 0x28, 0x15, 0x30},
- [SPECIES_CROBAT - 1] = {0x22, 0x1e, 0x08, 0x23, 0x2b},
- [SPECIES_CHINCHOU - 1] = {0x1f, 0x1d, 0x30, 0x1f, 0x29},
- [SPECIES_LANTURN - 1] = {0x10, 0x23, 0x28, 0x19, 0x33},
- [SPECIES_PICHU - 1] = {0x1e, 0x17, 0x30, 0x1e, 0x24},
- [SPECIES_CLEFFA - 1] = {0x1c, 0x18, 0x30, 0x1e, 0x26},
- [SPECIES_IGGLYBUFF - 1] = {0x1f, 0x19, 0x30, 0x1f, 0x24},
- [SPECIES_TOGEPI - 1] = {0x21, 0x15, 0x30, 0x1f, 0x20},
- [SPECIES_TOGETIC - 1] = {0x1b, 0x10, 0x30, 0x1c, 0x1c},
- [SPECIES_NATU - 1] = {0x1c, 0x17, 0x30, 0x15, 0x21},
- [SPECIES_XATU - 1] = {0x1b, 0x08, 0x30, 0x19, 0x14},
- [SPECIES_MAREEP - 1] = {0x16, 0x15, 0x30, 0x15, 0x24},
- [SPECIES_FLAAFFY - 1] = {0x19, 0x12, 0x30, 0x18, 0x21},
- [SPECIES_AMPHAROS - 1] = {0x0f, 0x0a, 0x30, 0x10, 0x1b},
- [SPECIES_BELLOSSOM - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x20},
- [SPECIES_MARILL - 1] = {0x1d, 0x15, 0x30, 0x1d, 0x22},
- [SPECIES_AZUMARILL - 1] = {0x1a, 0x12, 0x30, 0x17, 0x1f},
- [SPECIES_SUDOWOODO - 1] = {0x20, 0x10, 0x30, 0x20, 0x1f},
- [SPECIES_POLITOED - 1] = {0x1d, 0x0f, 0x30, 0x1e, 0x20},
- [SPECIES_HOPPIP - 1] = {0x23, 0x25, 0x08, 0x25, 0x33},
- [SPECIES_SKIPLOOM - 1] = {0x1e, 0x18, 0x08, 0x1c, 0x27},
- [SPECIES_JUMPLUFF - 1] = {0x1d, 0x21, 0x08, 0x20, 0x2f},
- [SPECIES_AIPOM - 1] = {0x1e, 0x29, 0x18, 0x1e, 0x35},
- [SPECIES_SUNKERN - 1] = {0x1f, 0x20, 0x08, 0x24, 0x2e},
- [SPECIES_SUNFLORA - 1] = {0x1c, 0x0c, 0x30, 0x1b, 0x19},
- [SPECIES_YANMA - 1] = {0x1b, 0x28, 0x08, 0x16, 0x35},
- [SPECIES_WOOPER - 1] = {0x1d, 0x13, 0x30, 0x1f, 0x21},
- [SPECIES_QUAGSIRE - 1] = {0x15, 0x09, 0x30, 0x12, 0x18},
- [SPECIES_ESPEON - 1] = {0x11, 0x1b, 0x30, 0x11, 0x29},
- [SPECIES_UMBREON - 1] = {0x23, 0x15, 0x30, 0x23, 0x22},
- [SPECIES_MURKROW - 1] = {0x24, 0x13, 0x30, 0x20, 0x22},
- [SPECIES_SLOWKING - 1] = {0x1e, 0x13, 0x28, 0x1d, 0x25},
- [SPECIES_MISDREAVUS - 1] = {0x28, 0x21, 0x08, 0x26, 0x2e},
- [SPECIES_UNOWN - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
- [SPECIES_WOBBUFFET - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x1a},
- [SPECIES_GIRAFARIG - 1] = {0x0b, 0x0d, 0x28, 0x11, 0x1d},
- [SPECIES_PINECO - 1] = {0x1d, 0x12, 0x10, 0x19, 0x25},
- [SPECIES_FORRETRESS - 1] = {0x19, 0x17, 0x08, 0x1e, 0x26},
- [SPECIES_DUNSPARCE - 1] = {0x10, 0x1b, 0x30, 0x0c, 0x2d},
- [SPECIES_GLIGAR - 1] = {0x1e, 0x13, 0x08, 0x1d, 0x23},
- [SPECIES_STEELIX - 1] = {0x0c, 0x0d, 0x28, 0x0d, 0x1c},
- [SPECIES_SNUBBULL - 1] = {0x1b, 0x15, 0x30, 0x1a, 0x23},
- [SPECIES_GRANBULL - 1] = {0x1c, 0x09, 0x30, 0x19, 0x18},
- [SPECIES_QWILFISH - 1] = {0x1f, 0x26, 0x20, 0x1d, 0x33},
- [SPECIES_SCIZOR - 1] = {0x15, 0x0f, 0x10, 0x1a, 0x1a},
- [SPECIES_SHUCKLE - 1] = {0x25, 0x0a, 0x30, 0x24, 0x18},
- [SPECIES_HERACROSS - 1] = {0x18, 0x19, 0x28, 0x1a, 0x26},
- [SPECIES_SNEASEL - 1] = {0x1c, 0x13, 0x30, 0x1d, 0x24},
- [SPECIES_TEDDIURSA - 1] = {0x1e, 0x12, 0x30, 0x1b, 0x23},
- [SPECIES_URSARING - 1] = {0x1e, 0x04, 0x28, 0x1d, 0x14},
- [SPECIES_SLUGMA - 1] = {0x20, 0x18, 0x30, 0x20, 0x28},
- [SPECIES_MAGCARGO - 1] = {0x16, 0x11, 0x30, 0x17, 0x23},
- [SPECIES_SWINUB - 1] = {0x1c, 0x18, 0x30, 0x1b, 0x25},
- [SPECIES_PILOSWINE - 1] = {0x18, 0x23, 0x20, 0x18, 0x36},
- [SPECIES_CORSOLA - 1] = {0x19, 0x1d, 0x28, 0x19, 0x2b},
- [SPECIES_REMORAID - 1] = {0x15, 0x1f, 0x28, 0x13, 0x2b},
- [SPECIES_OCTILLERY - 1] = {0x1c, 0x11, 0x30, 0x1a, 0x20},
- [SPECIES_DELIBIRD - 1] = {0x1d, 0x11, 0x30, 0x1b, 0x1f},
- [SPECIES_MANTINE - 1] = {0x16, 0x1e, 0x28, 0x1f, 0x27},
- [SPECIES_SKARMORY - 1] = {0x1e, 0x00, 0x28, 0x13, 0x07},
- [SPECIES_HOUNDOUR - 1] = {0x25, 0x11, 0x30, 0x25, 0x1f},
- [SPECIES_HOUNDOOM - 1] = {0x0d, 0x13, 0x30, 0x0d, 0x24},
- [SPECIES_KINGDRA - 1] = {0x0e, 0x13, 0x28, 0x0a, 0x2c},
- [SPECIES_PHANPY - 1] = {0x1b, 0x11, 0x30, 0x19, 0x24},
- [SPECIES_DONPHAN - 1] = {0x11, 0x15, 0x30, 0x19, 0x2c},
- [SPECIES_PORYGON2 - 1] = {0x18, 0x11, 0x30, 0x11, 0x20},
- [SPECIES_STANTLER - 1] = {0x15, 0x15, 0x28, 0x17, 0x28},
- [SPECIES_SMEARGLE - 1] = {0x18, 0x10, 0x30, 0x1b, 0x25},
- [SPECIES_TYROGUE - 1] = {0x1e, 0x12, 0x30, 0x1f, 0x1f},
- [SPECIES_HITMONTOP - 1] = {0x1a, 0x39, 0x10, 0x1a, 0x2b},
- [SPECIES_SMOOCHUM - 1] = {0x20, 0x18, 0x30, 0x21, 0x26},
- [SPECIES_ELEKID - 1] = {0x1d, 0x14, 0x30, 0x1d, 0x23},
- [SPECIES_MAGBY - 1] = {0x1c, 0x15, 0x30, 0x1a, 0x24},
- [SPECIES_MILTANK - 1] = {0x18, 0x0e, 0x30, 0x18, 0x1e},
- [SPECIES_BLISSEY - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x19},
- [SPECIES_RAIKOU - 1] = {0x29, 0x0c, 0x28, 0x27, 0x1e},
- [SPECIES_ENTEI - 1] = {0x08, 0x09, 0x28, 0x0b, 0x18},
- [SPECIES_SUICUNE - 1] = {0x23, 0x1d, 0x28, 0x26, 0x2c},
- [SPECIES_LARVITAR - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x24},
- [SPECIES_PUPITAR - 1] = {0x1b, 0x19, 0x30, 0x1b, 0x28},
- [SPECIES_TYRANITAR - 1] = {0x06, 0x0b, 0x28, 0x0d, 0x19},
- [SPECIES_LUGIA - 1] = {0x08, 0x2a, 0x08, 0x14, 0x34},
- [SPECIES_HO_OH - 1] = {0x0d, 0x25, 0x08, 0x0e, 0x34},
- [SPECIES_CELEBI - 1] = {0x15, 0x21, 0x08, 0x1a, 0x2b},
- [SPECIES_OLD_UNOWN_B - 1] = {0x1f, 0x12, 0x08, 0x1e, 0x1c},
- [SPECIES_OLD_UNOWN_C - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
- [SPECIES_OLD_UNOWN_D - 1] = {0x1c, 0x19, 0x08, 0x1b, 0x23},
- [SPECIES_OLD_UNOWN_E - 1] = {0x21, 0x19, 0x08, 0x20, 0x23},
- [SPECIES_OLD_UNOWN_F - 1] = {0x1b, 0x13, 0x08, 0x1a, 0x1d},
- [SPECIES_OLD_UNOWN_G - 1] = {0x20, 0x16, 0x08, 0x1f, 0x21},
- [SPECIES_OLD_UNOWN_H - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
- [SPECIES_OLD_UNOWN_I - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
- [SPECIES_OLD_UNOWN_J - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20},
- [SPECIES_OLD_UNOWN_K - 1] = {0x1d, 0x1a, 0x08, 0x1c, 0x24},
- [SPECIES_OLD_UNOWN_L - 1] = {0x20, 0x16, 0x08, 0x1f, 0x1f},
- [SPECIES_OLD_UNOWN_M - 1] = {0x20, 0x1c, 0x08, 0x1f, 0x26},
- [SPECIES_OLD_UNOWN_N - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23},
- [SPECIES_OLD_UNOWN_O - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23},
- [SPECIES_OLD_UNOWN_P - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20},
- [SPECIES_OLD_UNOWN_Q - 1] = {0x1d, 0x16, 0x08, 0x1c, 0x20},
- [SPECIES_OLD_UNOWN_R - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f},
- [SPECIES_OLD_UNOWN_S - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
- [SPECIES_OLD_UNOWN_T - 1] = {0x20, 0x1e, 0x08, 0x1f, 0x28},
- [SPECIES_OLD_UNOWN_U - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
- [SPECIES_OLD_UNOWN_V - 1] = {0x1e, 0x1e, 0x08, 0x1d, 0x28},
- [SPECIES_OLD_UNOWN_W - 1] = {0x20, 0x1d, 0x08, 0x1f, 0x27},
- [SPECIES_OLD_UNOWN_X - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
- [SPECIES_OLD_UNOWN_Y - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f},
- [SPECIES_OLD_UNOWN_Z - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
- [SPECIES_TREECKO - 1] = {0x1a, 0x0f, 0x30, 0x19, 0x20},
- [SPECIES_GROVYLE - 1] = {0x0d, 0x05, 0x10, 0x05, 0x13},
- [SPECIES_SCEPTILE - 1] = {0x10, 0x04, 0x28, 0x0c, 0x12},
- [SPECIES_TORCHIC - 1] = {0x17, 0x18, 0x30, 0x15, 0x25},
- [SPECIES_COMBUSKEN - 1] = {0x20, 0x12, 0x28, 0x1e, 0x20},
- [SPECIES_BLAZIKEN - 1] = {0x1a, 0x07, 0x28, 0x1d, 0x13},
- [SPECIES_MUDKIP - 1] = {0x1b, 0x1d, 0x28, 0x19, 0x2c},
- [SPECIES_MARSHTOMP - 1] = {0x1d, 0x11, 0x30, 0x1c, 0x20},
- [SPECIES_SWAMPERT - 1] = {0x1b, 0x11, 0x28, 0x1b, 0x23},
- [SPECIES_POOCHYENA - 1] = {0x14, 0x12, 0x30, 0x0f, 0x20},
- [SPECIES_MIGHTYENA - 1] = {0x09, 0x0d, 0x28, 0x09, 0x1c},
- [SPECIES_ZIGZAGOON - 1] = {0x0b, 0x1a, 0x30, 0x09, 0x2b},
- [SPECIES_LINOONE - 1] = {0x0d, 0x28, 0x18, 0x0b, 0x37},
- [SPECIES_WURMPLE - 1] = {0x21, 0x17, 0x30, 0x1f, 0x26},
- [SPECIES_SILCOON - 1] = {0x13, 0x1c, 0x30, 0x11, 0x2a},
- [SPECIES_BEAUTIFLY - 1] = {0x0f, 0x1b, 0x08, 0x0e, 0x28},
- [SPECIES_CASCOON - 1] = {0x14, 0x1d, 0x30, 0x11, 0x2c},
- [SPECIES_DUSTOX - 1] = {0x14, 0x19, 0x08, 0x16, 0x26},
- [SPECIES_LOTAD - 1] = {0x19, 0x25, 0x28, 0x17, 0x32},
- [SPECIES_LOMBRE - 1] = {0x22, 0x10, 0x30, 0x29, 0x1d},
- [SPECIES_LUDICOLO - 1] = {0x1c, 0x0f, 0x28, 0x1b, 0x24},
- [SPECIES_SEEDOT - 1] = {0x1b, 0x17, 0x30, 0x18, 0x28},
- [SPECIES_NUZLEAF - 1] = {0x20, 0x0d, 0x30, 0x1a, 0x1d},
- [SPECIES_SHIFTRY - 1] = {0x32, 0x11, 0x28, 0x2e, 0x23},
- [SPECIES_NINCADA - 1] = {0x18, 0x1a, 0x30, 0x17, 0x28},
- [SPECIES_NINJASK - 1] = {0x17, 0x21, 0x00, 0x17, 0x2f},
- [SPECIES_SHEDINJA - 1] = {0x16, 0x19, 0x08, 0x18, 0x2a},
- [SPECIES_TAILLOW - 1] = {0x17, 0x10, 0x30, 0x14, 0x1e},
- [SPECIES_SWELLOW - 1] = {0x0c, 0x0a, 0x28, 0x05, 0x16},
- [SPECIES_SHROOMISH - 1] = {0x1f, 0x16, 0x30, 0x1d, 0x23},
- [SPECIES_BRELOOM - 1] = {0x25, 0x0c, 0x30, 0x23, 0x19},
- [SPECIES_SPINDA - 1] = {0x21, 0x16, 0x30, 0x1f, 0x27},
- [SPECIES_WINGULL - 1] = {0x1a, 0x16, 0x10, 0x15, 0x26},
- [SPECIES_PELIPPER - 1] = {0x1d, 0x0a, 0x10, 0x09, 0x1b},
- [SPECIES_SURSKIT - 1] = {0x1d, 0x16, 0x30, 0x1c, 0x25},
- [SPECIES_MASQUERAIN - 1] = {0x1a, 0x21, 0x08, 0x14, 0x30},
- [SPECIES_WAILMER - 1] = {0x17, 0x17, 0x30, 0x16, 0x28},
- [SPECIES_WAILORD - 1] = {0x17, 0x03, 0x30, 0x09, 0x13},
- [SPECIES_SKITTY - 1] = {0x24, 0x1a, 0x30, 0x22, 0x2a},
- [SPECIES_DELCATTY - 1] = {0x1e, 0x12, 0x30, 0x1c, 0x21},
- [SPECIES_KECLEON - 1] = {0x19, 0x10, 0x30, 0x13, 0x1e},
- [SPECIES_BALTOY - 1] = {0x1d, 0x15, 0x30, 0x1b, 0x22},
- [SPECIES_CLAYDOL - 1] = {0x1e, 0x0d, 0x28, 0x1d, 0x24},
- [SPECIES_NOSEPASS - 1] = {0x1f, 0x10, 0x30, 0x15, 0x23},
- [SPECIES_TORKOAL - 1] = {0x0e, 0x19, 0x28, 0x0a, 0x27},
- [SPECIES_SABLEYE - 1] = {0x1e, 0x16, 0x30, 0x1d, 0x27},
- [SPECIES_BARBOACH - 1] = {0x17, 0x12, 0x30, 0x15, 0x1e},
- [SPECIES_WHISCASH - 1] = {0x18, 0x20, 0x28, 0x17, 0x31},
- [SPECIES_LUVDISC - 1] = {0x19, 0x0f, 0x30, 0x13, 0x1c},
- [SPECIES_CORPHISH - 1] = {0x1f, 0x14, 0x30, 0x1d, 0x23},
- [SPECIES_CRAWDAUNT - 1] = {0x14, 0x0c, 0x28, 0x18, 0x23},
- [SPECIES_FEEBAS - 1] = {0x18, 0x1e, 0x28, 0x16, 0x2f},
- [SPECIES_MILOTIC - 1] = {0x20, 0x0c, 0x28, 0x1f, 0x1d},
- [SPECIES_CARVANHA - 1] = {0x16, 0x19, 0x30, 0x13, 0x22},
- [SPECIES_SHARPEDO - 1] = {0x19, 0x0c, 0x28, 0x17, 0x27},
- [SPECIES_TRAPINCH - 1] = {0x29, 0x13, 0x30, 0x17, 0x18},
- [SPECIES_VIBRAVA - 1] = {0x10, 0x27, 0x20, 0x0e, 0x34},
- [SPECIES_FLYGON - 1] = {0x22, 0x07, 0x10, 0x21, 0x13},
- [SPECIES_MAKUHITA - 1] = {0x22, 0x13, 0x30, 0x1c, 0x23},
- [SPECIES_HARIYAMA - 1] = {0x24, 0x0f, 0x28, 0x26, 0x1c},
- [SPECIES_ELECTRIKE - 1] = {0x11, 0x18, 0x30, 0x14, 0x27},
- [SPECIES_MANECTRIC - 1] = {0x2f, 0x18, 0x28, 0x2e, 0x29},
- [SPECIES_NUMEL - 1] = {0x10, 0x1a, 0x30, 0x0d, 0x2a},
- [SPECIES_CAMERUPT - 1] = {0x0d, 0x22, 0x28, 0x0e, 0x36},
- [SPECIES_SPHEAL - 1] = {0x1e, 0x0f, 0x30, 0x18, 0x1f},
- [SPECIES_SEALEO - 1] = {0x1c, 0x09, 0x30, 0x1a, 0x18},
- [SPECIES_WALREIN - 1] = {0x19, 0x01, 0x28, 0x10, 0x16},
- [SPECIES_CACNEA - 1] = {0x1f, 0x17, 0x30, 0x1d, 0x29},
- [SPECIES_CACTURNE - 1] = {0x1d, 0x0e, 0x28, 0x1d, 0x1b},
- [SPECIES_SNORUNT - 1] = {0x1e, 0x16, 0x30, 0x1e, 0x26},
- [SPECIES_GLALIE - 1] = {0x1a, 0x1c, 0x08, 0x1a, 0x31},
- [SPECIES_LUNATONE - 1] = {0x1c, 0x16, 0x08, 0x19, 0x2c},
- [SPECIES_SOLROCK - 1] = {0x18, 0x18, 0x10, 0x17, 0x31},
- [SPECIES_AZURILL - 1] = {0x1b, 0x10, 0x30, 0x18, 0x1f},
- [SPECIES_SPOINK - 1] = {0x21, 0x14, 0x30, 0x1b, 0x28},
- [SPECIES_GRUMPIG - 1] = {0x14, 0x10, 0x30, 0x15, 0x20},
- [SPECIES_PLUSLE - 1] = {0x1c, 0x16, 0x08, 0x1d, 0x25},
- [SPECIES_MINUN - 1] = {0x21, 0x16, 0x08, 0x1f, 0x26},
- [SPECIES_MAWILE - 1] = {0x2d, 0x14, 0x30, 0x2f, 0x24},
- [SPECIES_MEDITITE - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x25},
- [SPECIES_MEDICHAM - 1] = {0x21, 0x0f, 0x28, 0x1e, 0x1d},
- [SPECIES_SWABLU - 1] = {0x1b, 0x16, 0x10, 0x17, 0x23},
- [SPECIES_ALTARIA - 1] = {0x1d, 0x0b, 0x10, 0x1a, 0x1a},
- [SPECIES_WYNAUT - 1] = {0x1a, 0x15, 0x30, 0x1b, 0x26},
- [SPECIES_DUSKULL - 1] = {0x10, 0x18, 0x08, 0x14, 0x2e},
- [SPECIES_DUSCLOPS - 1] = {0x1c, 0x0f, 0x30, 0x1a, 0x28},
- [SPECIES_ROSELIA - 1] = {0x1e, 0x11, 0x30, 0x1d, 0x20},
- [SPECIES_SLAKOTH - 1] = {0x19, 0x1e, 0x30, 0x18, 0x2f},
- [SPECIES_VIGOROTH - 1] = {0x10, 0x12, 0x28, 0x14, 0x24},
- [SPECIES_SLAKING - 1] = {0x37, 0x0f, 0x30, 0x29, 0x21},
- [SPECIES_GULPIN - 1] = {0x1b, 0x18, 0x30, 0x17, 0x26},
- [SPECIES_SWALOT - 1] = {0x1f, 0x06, 0x30, 0x15, 0x13},
- [SPECIES_TROPIUS - 1] = {0x18, 0x0a, 0x28, 0x20, 0x18},
- [SPECIES_WHISMUR - 1] = {0x1f, 0x19, 0x30, 0x1d, 0x29},
- [SPECIES_LOUDRED - 1] = {0x1c, 0x12, 0x28, 0x22, 0x27},
- [SPECIES_EXPLOUD - 1] = {0x10, 0x10, 0x28, 0x1a, 0x2a},
- [SPECIES_CLAMPERL - 1] = {0x20, 0x1a, 0x30, 0x1e, 0x26},
- [SPECIES_HUNTAIL - 1] = {0x13, 0x1e, 0x28, 0x15, 0x33},
- [SPECIES_GOREBYSS - 1] = {0x0d, 0x1f, 0x28, 0x03, 0x32},
- [SPECIES_ABSOL - 1] = {0x2a, 0x11, 0x28, 0x2a, 0x22},
- [SPECIES_SHUPPET - 1] = {0x16, 0x19, 0x08, 0x17, 0x27},
- [SPECIES_BANETTE - 1] = {0x1c, 0x14, 0x08, 0x1b, 0x23},
- [SPECIES_SEVIPER - 1] = {0x0e, 0x0d, 0x30, 0x0b, 0x1e},
- [SPECIES_ZANGOOSE - 1] = {0x18, 0x0c, 0x28, 0x15, 0x1a},
- [SPECIES_RELICANTH - 1] = {0x0c, 0x1f, 0x30, 0x09, 0x2d},
- [SPECIES_ARON - 1] = {0x18, 0x1c, 0x30, 0x1a, 0x2c},
- [SPECIES_LAIRON - 1] = {0x0b, 0x21, 0x30, 0x12, 0x2f},
- [SPECIES_AGGRON - 1] = {0x10, 0x0b, 0x28, 0x16, 0x1b},
- [SPECIES_CASTFORM - 1] = {0x1d, 0x18, 0x08, 0x1b, 0x26},
- [SPECIES_VOLBEAT - 1] = {0x25, 0x15, 0x08, 0x21, 0x25},
- [SPECIES_ILLUMISE - 1] = {0x20, 0x12, 0x08, 0x1f, 0x20},
- [SPECIES_LILEEP - 1] = {0x1e, 0x11, 0x30, 0x1f, 0x1e},
- [SPECIES_CRADILY - 1] = {0x12, 0x16, 0x28, 0x15, 0x28},
- [SPECIES_ANORITH - 1] = {0x1c, 0x1e, 0x30, 0x1b, 0x2b},
- [SPECIES_ARMALDO - 1] = {0x15, 0x05, 0x28, 0x14, 0x13},
- [SPECIES_RALTS - 1] = {0x1f, 0x17, 0x30, 0x20, 0x23},
- [SPECIES_KIRLIA - 1] = {0x1c, 0x12, 0x30, 0x1f, 0x1e},
- [SPECIES_GARDEVOIR - 1] = {0x35, 0x07, 0x28, 0x32, 0x14},
- [SPECIES_BAGON - 1] = {0x17, 0x13, 0x30, 0x16, 0x26},
- [SPECIES_SHELGON - 1] = {0x19, 0x1b, 0x30, 0x19, 0x2c},
- [SPECIES_SALAMENCE - 1] = {0x09, 0x11, 0x30, 0x0a, 0x21},
- [SPECIES_BELDUM - 1] = {0x16, 0x19, 0x08, 0x18, 0x23},
- [SPECIES_METANG - 1] = {0x22, 0x0f, 0x10, 0x1f, 0x21},
- [SPECIES_METAGROSS - 1] = {0x24, 0x1b, 0x28, 0x22, 0x2b},
- [SPECIES_REGIROCK - 1] = {0x16, 0x07, 0x28, 0x14, 0x12},
- [SPECIES_REGICE - 1] = {0x19, 0x0c, 0x28, 0x17, 0x19},
- [SPECIES_REGISTEEL - 1] = {0x19, 0x0d, 0x28, 0x19, 0x19},
- [SPECIES_KYOGRE - 1] = {0x0e, 0x19, 0x28, 0x0b, 0x26},
- [SPECIES_GROUDON - 1] = {0x04, 0x0b, 0x28, 0x0a, 0x19},
- [SPECIES_RAYQUAZA - 1] = {0x0c, 0x0e, 0x10, 0x0e, 0x1f},
- [SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19},
- [SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d},
- [SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22},
+static const u8 sMonSpriteAnchorCoords[][5] = {
+ [SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29},
+ [SPECIES_IVYSAUR - 1] = {0x14, 0x1b, 0x30, 0x15, 0x2a},
+ [SPECIES_VENUSAUR - 1] = {0x1b, 0x20, 0x20, 0x1b, 0x33},
+ [SPECIES_CHARMANDER - 1] = {0x14, 0x0f, 0x38, 0x13, 0x1e},
+ [SPECIES_CHARMELEON - 1] = {0x0d, 0x11, 0x30, 0x0f, 0x22},
+ [SPECIES_CHARIZARD - 1] = {0x1b, 0x07, 0x28, 0x1a, 0x19},
+ [SPECIES_SQUIRTLE - 1] = {0x19, 0x13, 0x30, 0x1a, 0x22},
+ [SPECIES_WARTORTLE - 1] = {0x16, 0x13, 0x30, 0x17, 0x21},
+ [SPECIES_BLASTOISE - 1] = {0x12, 0x08, 0x28, 0x15, 0x19},
+ [SPECIES_CATERPIE - 1] = {0x15, 0x14, 0x30, 0x13, 0x24},
+ [SPECIES_METAPOD - 1] = {0x13, 0x1d, 0x30, 0x18, 0x2a},
+ [SPECIES_BUTTERFREE - 1] = {0x12, 0x1b, 0x08, 0x12, 0x2a},
+ [SPECIES_WEEDLE - 1] = {0x16, 0x1c, 0x30, 0x15, 0x2b},
+ [SPECIES_KAKUNA - 1] = {0x19, 0x13, 0x30, 0x1a, 0x24},
+ [SPECIES_BEEDRILL - 1] = {0x19, 0x16, 0x08, 0x19, 0x25},
+ [SPECIES_PIDGEY - 1] = {0x15, 0x12, 0x30, 0x12, 0x1e},
+ [SPECIES_PIDGEOTTO - 1] = {0x24, 0x0e, 0x30, 0x1f, 0x1e},
+ [SPECIES_PIDGEOT - 1] = {0x0c, 0x13, 0x08, 0x0a, 0x23},
+ [SPECIES_RATTATA - 1] = {0x17, 0x1e, 0x30, 0x18, 0x2d},
+ [SPECIES_RATICATE - 1] = {0x12, 0x14, 0x30, 0x10, 0x26},
+ [SPECIES_SPEAROW - 1] = {0x15, 0x14, 0x30, 0x15, 0x1f},
+ [SPECIES_FEAROW - 1] = {0x0c, 0x27, 0x00, 0x0b, 0x3f},
+ [SPECIES_EKANS - 1] = {0x11, 0x0f, 0x30, 0x14, 0x1d},
+ [SPECIES_ARBOK - 1] = {0x1b, 0x01, 0x28, 0x1d, 0x10},
+ [SPECIES_PIKACHU - 1] = {0x19, 0x13, 0x30, 0x1a, 0x1f},
+ [SPECIES_RAICHU - 1] = {0x19, 0x14, 0x28, 0x1c, 0x22},
+ [SPECIES_SANDSHREW - 1] = {0x17, 0x16, 0x30, 0x18, 0x25},
+ [SPECIES_SANDSLASH - 1] = {0x11, 0x13, 0x28, 0x13, 0x22},
+ [SPECIES_NIDORAN_F - 1] = {0x16, 0x15, 0x30, 0x18, 0x21},
+ [SPECIES_NIDORINA - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x28},
+ [SPECIES_NIDOQUEEN - 1] = {0x10, 0x0b, 0x28, 0x13, 0x1c},
+ [SPECIES_NIDORAN_M - 1] = {0x15, 0x22, 0x28, 0x15, 0x31},
+ [SPECIES_NIDORINO - 1] = {0x13, 0x1e, 0x28, 0x1b, 0x2d},
+ [SPECIES_NIDOKING - 1] = {0x12, 0x15, 0x28, 0x13, 0x27},
+ [SPECIES_CLEFAIRY - 1] = {0x19, 0x14, 0x30, 0x1b, 0x24},
+ [SPECIES_CLEFABLE - 1] = {0x1c, 0x12, 0x30, 0x1d, 0x21},
+ [SPECIES_VULPIX - 1] = {0x10, 0x16, 0x30, 0x0e, 0x25},
+ [SPECIES_NINETALES - 1] = {0x28, 0x10, 0x28, 0x27, 0x1e},
+ [SPECIES_JIGGLYPUFF - 1] = {0x1d, 0x15, 0x30, 0x1e, 0x25},
+ [SPECIES_WIGGLYTUFF - 1] = {0x1a, 0x12, 0x30, 0x1c, 0x22},
+ [SPECIES_ZUBAT - 1] = {0x14, 0x1d, 0x08, 0x14, 0x29},
+ [SPECIES_GOLBAT - 1] = {0x23, 0x1a, 0x00, 0x21, 0x2e},
+ [SPECIES_ODDISH - 1] = {0x1d, 0x20, 0x28, 0x1d, 0x2b},
+ [SPECIES_GLOOM - 1] = {0x1c, 0x18, 0x28, 0x1c, 0x27},
+ [SPECIES_VILEPLUME - 1] = {0x1c, 0x1e, 0x28, 0x1d, 0x2a},
+ [SPECIES_PARAS - 1] = {0x1d, 0x1a, 0x30, 0x1c, 0x27},
+ [SPECIES_PARASECT - 1] = {0x1e, 0x1c, 0x28, 0x20, 0x2e},
+ [SPECIES_VENONAT - 1] = {0x1b, 0x16, 0x10, 0x1a, 0x29},
+ [SPECIES_VENOMOTH - 1] = {0x12, 0x19, 0x08, 0x16, 0x27},
+ [SPECIES_DIGLETT - 1] = {0x1e, 0x16, 0x30, 0x1c, 0x23},
+ [SPECIES_DUGTRIO - 1] = {0x1a, 0x11, 0x30, 0x1a, 0x1f},
+ [SPECIES_MEOWTH - 1] = {0x1c, 0x16, 0x30, 0x1c, 0x23},
+ [SPECIES_PERSIAN - 1] = {0x13, 0x13, 0x30, 0x13, 0x21},
+ [SPECIES_PSYDUCK - 1] = {0x1c, 0x13, 0x30, 0x17, 0x29},
+ [SPECIES_GOLDUCK - 1] = {0x17, 0x12, 0x28, 0x17, 0x22},
+ [SPECIES_MANKEY - 1] = {0x1c, 0x15, 0x30, 0x1b, 0x23},
+ [SPECIES_PRIMEAPE - 1] = {0x1e, 0x16, 0x30, 0x1a, 0x27},
+ [SPECIES_GROWLITHE - 1] = {0x14, 0x17, 0x30, 0x14, 0x24},
+ [SPECIES_ARCANINE - 1] = {0x0f, 0x09, 0x28, 0x0c, 0x19},
+ [SPECIES_POLIWAG - 1] = {0x15, 0x14, 0x30, 0x13, 0x1f},
+ [SPECIES_POLIWHIRL - 1] = {0x1f, 0x10, 0x30, 0x1e, 0x17},
+ [SPECIES_POLIWRATH - 1] = {0x22, 0x0c, 0x30, 0x21, 0x18},
+ [SPECIES_ABRA - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x21},
+ [SPECIES_KADABRA - 1] = {0x1b, 0x12, 0x30, 0x1c, 0x25},
+ [SPECIES_ALAKAZAM - 1] = {0x1c, 0x11, 0x28, 0x1d, 0x26},
+ [SPECIES_MACHOP - 1] = {0x1b, 0x11, 0x30, 0x1b, 0x1e},
+ [SPECIES_MACHOKE - 1] = {0x1d, 0x11, 0x30, 0x1d, 0x1f},
+ [SPECIES_MACHAMP - 1] = {0x1a, 0x0d, 0x28, 0x1c, 0x1b},
+ [SPECIES_BELLSPROUT - 1] = {0x15, 0x0e, 0x30, 0x0e, 0x1c},
+ [SPECIES_WEEPINBELL - 1] = {0x1a, 0x1c, 0x10, 0x15, 0x32},
+ [SPECIES_VICTREEBEL - 1] = {0x1e, 0x0f, 0x30, 0x1c, 0x1b},
+ [SPECIES_TENTACOOL - 1] = {0x1a, 0x15, 0x30, 0x1e, 0x26},
+ [SPECIES_TENTACRUEL - 1] = {0x1b, 0x10, 0x28, 0x1c, 0x26},
+ [SPECIES_GEODUDE - 1] = {0x1c, 0x20, 0x28, 0x1d, 0x2d},
+ [SPECIES_GRAVELER - 1] = {0x1d, 0x19, 0x28, 0x1e, 0x26},
+ [SPECIES_GOLEM - 1] = {0x19, 0x1b, 0x28, 0x1c, 0x27},
+ [SPECIES_PONYTA - 1] = {0x0f, 0x11, 0x30, 0x0e, 0x23},
+ [SPECIES_RAPIDASH - 1] = {0x2f, 0x0f, 0x28, 0x2b, 0x1e},
+ [SPECIES_SLOWPOKE - 1] = {0x14, 0x1f, 0x28, 0x15, 0x2f},
+ [SPECIES_SLOWBRO - 1] = {0x0e, 0x0d, 0x28, 0x0c, 0x1f},
+ [SPECIES_MAGNEMITE - 1] = {0x20, 0x1b, 0x10, 0x1f, 0x29},
+ [SPECIES_MAGNETON - 1] = {0x1f, 0x14, 0x08, 0x1f, 0x22},
+ [SPECIES_FARFETCHD - 1] = {0x16, 0x14, 0x30, 0x16, 0x29},
+ [SPECIES_DODUO - 1] = {0x11, 0x16, 0x30, 0x0d, 0x2c},
+ [SPECIES_DODRIO - 1] = {0x1d, 0x04, 0x28, 0x0e, 0x07},
+ [SPECIES_SEEL - 1] = {0x1b, 0x24, 0x20, 0x17, 0x35},
+ [SPECIES_DEWGONG - 1] = {0x12, 0x0a, 0x30, 0x0e, 0x1a},
+ [SPECIES_GRIMER - 1] = {0x1f, 0x10, 0x30, 0x1d, 0x25},
+ [SPECIES_MUK - 1] = {0x17, 0x0f, 0x30, 0x19, 0x22},
+ [SPECIES_SHELLDER - 1] = {0x1a, 0x18, 0x30, 0x17, 0x29},
+ [SPECIES_CLOYSTER - 1] = {0x19, 0x1e, 0x28, 0x1d, 0x2c},
+ [SPECIES_GASTLY - 1] = {0x1a, 0x1f, 0x08, 0x19, 0x30},
+ [SPECIES_HAUNTER - 1] = {0x20, 0x14, 0x08, 0x1d, 0x26},
+ [SPECIES_GENGAR - 1] = {0x1a, 0x16, 0x30, 0x19, 0x28},
+ [SPECIES_ONIX - 1] = {0x1f, 0x24, 0x20, 0x28, 0x36},
+ [SPECIES_DROWZEE - 1] = {0x1a, 0x0e, 0x30, 0x1a, 0x1e},
+ [SPECIES_HYPNO - 1] = {0x1c, 0x12, 0x30, 0x19, 0x24},
+ [SPECIES_KRABBY - 1] = {0x1d, 0x1d, 0x30, 0x1a, 0x2b},
+ [SPECIES_KINGLER - 1] = {0x1e, 0x1f, 0x28, 0x1c, 0x30},
+ [SPECIES_VOLTORB - 1] = {0x1c, 0x1b, 0x30, 0x1b, 0x2b},
+ [SPECIES_ELECTRODE - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x2e},
+ [SPECIES_EXEGGCUTE - 1] = {0x21, 0x17, 0x30, 0x20, 0x24},
+ [SPECIES_EXEGGUTOR - 1] = {0x1c, 0x17, 0x28, 0x1b, 0x25},
+ [SPECIES_CUBONE - 1] = {0x1b, 0x12, 0x30, 0x1b, 0x22},
+ [SPECIES_MAROWAK - 1] = {0x14, 0x0f, 0x30, 0x11, 0x23},
+ [SPECIES_HITMONLEE - 1] = {0x2e, 0x11, 0x30, 0x28, 0x22},
+ [SPECIES_HITMONCHAN - 1] = {0x22, 0x0e, 0x30, 0x1e, 0x1d},
+ [SPECIES_LICKITUNG - 1] = {0x14, 0x11, 0x30, 0x14, 0x24},
+ [SPECIES_KOFFING - 1] = {0x1e, 0x14, 0x10, 0x1d, 0x20},
+ [SPECIES_WEEZING - 1] = {0x11, 0x0d, 0x10, 0x0f, 0x1c},
+ [SPECIES_RHYHORN - 1] = {0x0e, 0x23, 0x20, 0x14, 0x33},
+ [SPECIES_RHYDON - 1] = {0x0d, 0x12, 0x28, 0x17, 0x22},
+ [SPECIES_CHANSEY - 1] = {0x1a, 0x0d, 0x30, 0x1a, 0x1a},
+ [SPECIES_TANGELA - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x29},
+ [SPECIES_KANGASKHAN - 1] = {0x1b, 0x06, 0x28, 0x1c, 0x14},
+ [SPECIES_HORSEA - 1] = {0x1c, 0x14, 0x30, 0x16, 0x23},
+ [SPECIES_SEADRA - 1] = {0x10, 0x17, 0x30, 0x09, 0x2a},
+ [SPECIES_GOLDEEN - 1] = {0x16, 0x23, 0x20, 0x15, 0x34},
+ [SPECIES_SEAKING - 1] = {0x16, 0x0f, 0x30, 0x10, 0x18},
+ [SPECIES_STARYU - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x26},
+ [SPECIES_STARMIE - 1] = {0x1d, 0x13, 0x30, 0x1b, 0x20},
+ [SPECIES_MR_MIME - 1] = {0x24, 0x11, 0x30, 0x25, 0x1e},
+ [SPECIES_SCYTHER - 1] = {0x10, 0x19, 0x28, 0x12, 0x27},
+ [SPECIES_JYNX - 1] = {0x1b, 0x0f, 0x30, 0x19, 0x1c},
+ [SPECIES_ELECTABUZZ - 1] = {0x14, 0x11, 0x30, 0x17, 0x20},
+ [SPECIES_MAGMAR - 1] = {0x10, 0x0e, 0x30, 0x0b, 0x19},
+ [SPECIES_PINSIR - 1] = {0x1d, 0x1c, 0x28, 0x20, 0x2b},
+ [SPECIES_TAUROS - 1] = {0x11, 0x1d, 0x28, 0x13, 0x2e},
+ [SPECIES_MAGIKARP - 1] = {0x16, 0x15, 0x30, 0x13, 0x23},
+ [SPECIES_GYARADOS - 1] = {0x0b, 0x18, 0x28, 0x16, 0x29},
+ [SPECIES_LAPRAS - 1] = {0x16, 0x08, 0x28, 0x15, 0x16},
+ [SPECIES_DITTO - 1] = {0x24, 0x12, 0x30, 0x1f, 0x20},
+ [SPECIES_EEVEE - 1] = {0x16, 0x16, 0x30, 0x16, 0x23},
+ [SPECIES_VAPOREON - 1] = {0x18, 0x23, 0x28, 0x18, 0x30},
+ [SPECIES_JOLTEON - 1] = {0x14, 0x1b, 0x30, 0x16, 0x28},
+ [SPECIES_FLAREON - 1] = {0x16, 0x17, 0x30, 0x14, 0x25},
+ [SPECIES_PORYGON - 1] = {0x18, 0x12, 0x30, 0x10, 0x23},
+ [SPECIES_OMANYTE - 1] = {0x1d, 0x1d, 0x30, 0x1c, 0x2b},
+ [SPECIES_OMASTAR - 1] = {0x16, 0x1a, 0x30, 0x19, 0x2d},
+ [SPECIES_KABUTO - 1] = {0x1b, 0x16, 0x30, 0x1a, 0x27},
+ [SPECIES_KABUTOPS - 1] = {0x15, 0x11, 0x30, 0x15, 0x1f},
+ [SPECIES_AERODACTYL - 1] = {0x13, 0x1d, 0x00, 0x14, 0x30},
+ [SPECIES_SNORLAX - 1] = {0x35, 0x09, 0x30, 0x2e, 0x14},
+ [SPECIES_ARTICUNO - 1] = {0x18, 0x0b, 0x18, 0x17, 0x17},
+ [SPECIES_ZAPDOS - 1] = {0x0e, 0x0e, 0x10, 0x04, 0x28},
+ [SPECIES_MOLTRES - 1] = {0x0b, 0x2a, 0x08, 0x0b, 0x38},
+ [SPECIES_DRATINI - 1] = {0x0d, 0x12, 0x30, 0x0b, 0x21},
+ [SPECIES_DRAGONAIR - 1] = {0x18, 0x0e, 0x30, 0x13, 0x1c},
+ [SPECIES_DRAGONITE - 1] = {0x1b, 0x07, 0x18, 0x19, 0x17},
+ [SPECIES_MEWTWO - 1] = {0x2b, 0x09, 0x28, 0x2c, 0x18},
+ [SPECIES_MEW - 1] = {0x19, 0x14, 0x10, 0x1f, 0x21},
+ [SPECIES_CHIKORITA - 1] = {0x1b, 0x17, 0x30, 0x1b, 0x24},
+ [SPECIES_BAYLEEF - 1] = {0x1d, 0x10, 0x30, 0x20, 0x1d},
+ [SPECIES_MEGANIUM - 1] = {0x05, 0x0d, 0x28, 0x0d, 0x1b},
+ [SPECIES_CYNDAQUIL - 1] = {0x11, 0x1b, 0x30, 0x14, 0x27},
+ [SPECIES_QUILAVA - 1] = {0x25, 0x18, 0x30, 0x27, 0x26},
+ [SPECIES_TYPHLOSION - 1] = {0x09, 0x10, 0x28, 0x10, 0x1c},
+ [SPECIES_TOTODILE - 1] = {0x16, 0x10, 0x30, 0x19, 0x20},
+ [SPECIES_CROCONAW - 1] = {0x16, 0x10, 0x30, 0x18, 0x21},
+ [SPECIES_FERALIGATR - 1] = {0x0e, 0x0a, 0x28, 0x08, 0x1a},
+ [SPECIES_SENTRET - 1] = {0x1e, 0x0a, 0x30, 0x1d, 0x15},
+ [SPECIES_FURRET - 1] = {0x21, 0x0e, 0x30, 0x21, 0x19},
+ [SPECIES_HOOTHOOT - 1] = {0x1d, 0x15, 0x30, 0x1c, 0x24},
+ [SPECIES_NOCTOWL - 1] = {0x19, 0x0e, 0x30, 0x18, 0x1c},
+ [SPECIES_LEDYBA - 1] = {0x1b, 0x15, 0x30, 0x1c, 0x24},
+ [SPECIES_LEDIAN - 1] = {0x18, 0x12, 0x10, 0x1c, 0x21},
+ [SPECIES_SPINARAK - 1] = {0x20, 0x20, 0x28, 0x20, 0x2d},
+ [SPECIES_ARIADOS - 1] = {0x17, 0x23, 0x28, 0x15, 0x30},
+ [SPECIES_CROBAT - 1] = {0x22, 0x1e, 0x08, 0x23, 0x2b},
+ [SPECIES_CHINCHOU - 1] = {0x1f, 0x1d, 0x30, 0x1f, 0x29},
+ [SPECIES_LANTURN - 1] = {0x10, 0x23, 0x28, 0x19, 0x33},
+ [SPECIES_PICHU - 1] = {0x1e, 0x17, 0x30, 0x1e, 0x24},
+ [SPECIES_CLEFFA - 1] = {0x1c, 0x18, 0x30, 0x1e, 0x26},
+ [SPECIES_IGGLYBUFF - 1] = {0x1f, 0x19, 0x30, 0x1f, 0x24},
+ [SPECIES_TOGEPI - 1] = {0x21, 0x15, 0x30, 0x1f, 0x20},
+ [SPECIES_TOGETIC - 1] = {0x1b, 0x10, 0x30, 0x1c, 0x1c},
+ [SPECIES_NATU - 1] = {0x1c, 0x17, 0x30, 0x15, 0x21},
+ [SPECIES_XATU - 1] = {0x1b, 0x08, 0x30, 0x19, 0x14},
+ [SPECIES_MAREEP - 1] = {0x16, 0x15, 0x30, 0x15, 0x24},
+ [SPECIES_FLAAFFY - 1] = {0x19, 0x12, 0x30, 0x18, 0x21},
+ [SPECIES_AMPHAROS - 1] = {0x0f, 0x0a, 0x30, 0x10, 0x1b},
+ [SPECIES_BELLOSSOM - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x20},
+ [SPECIES_MARILL - 1] = {0x1d, 0x15, 0x30, 0x1d, 0x22},
+ [SPECIES_AZUMARILL - 1] = {0x1a, 0x12, 0x30, 0x17, 0x1f},
+ [SPECIES_SUDOWOODO - 1] = {0x20, 0x10, 0x30, 0x20, 0x1f},
+ [SPECIES_POLITOED - 1] = {0x1d, 0x0f, 0x30, 0x1e, 0x20},
+ [SPECIES_HOPPIP - 1] = {0x23, 0x25, 0x08, 0x25, 0x33},
+ [SPECIES_SKIPLOOM - 1] = {0x1e, 0x18, 0x08, 0x1c, 0x27},
+ [SPECIES_JUMPLUFF - 1] = {0x1d, 0x21, 0x08, 0x20, 0x2f},
+ [SPECIES_AIPOM - 1] = {0x1e, 0x29, 0x18, 0x1e, 0x35},
+ [SPECIES_SUNKERN - 1] = {0x1f, 0x20, 0x08, 0x24, 0x2e},
+ [SPECIES_SUNFLORA - 1] = {0x1c, 0x0c, 0x30, 0x1b, 0x19},
+ [SPECIES_YANMA - 1] = {0x1b, 0x28, 0x08, 0x16, 0x35},
+ [SPECIES_WOOPER - 1] = {0x1d, 0x13, 0x30, 0x1f, 0x21},
+ [SPECIES_QUAGSIRE - 1] = {0x15, 0x09, 0x30, 0x12, 0x18},
+ [SPECIES_ESPEON - 1] = {0x11, 0x1b, 0x30, 0x11, 0x29},
+ [SPECIES_UMBREON - 1] = {0x23, 0x15, 0x30, 0x23, 0x22},
+ [SPECIES_MURKROW - 1] = {0x24, 0x13, 0x30, 0x20, 0x22},
+ [SPECIES_SLOWKING - 1] = {0x1e, 0x13, 0x28, 0x1d, 0x25},
+ [SPECIES_MISDREAVUS - 1] = {0x28, 0x21, 0x08, 0x26, 0x2e},
+ [SPECIES_UNOWN - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
+ [SPECIES_WOBBUFFET - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x1a},
+ [SPECIES_GIRAFARIG - 1] = {0x0b, 0x0d, 0x28, 0x11, 0x1d},
+ [SPECIES_PINECO - 1] = {0x1d, 0x12, 0x10, 0x19, 0x25},
+ [SPECIES_FORRETRESS - 1] = {0x19, 0x17, 0x08, 0x1e, 0x26},
+ [SPECIES_DUNSPARCE - 1] = {0x10, 0x1b, 0x30, 0x0c, 0x2d},
+ [SPECIES_GLIGAR - 1] = {0x1e, 0x13, 0x08, 0x1d, 0x23},
+ [SPECIES_STEELIX - 1] = {0x0c, 0x0d, 0x28, 0x0d, 0x1c},
+ [SPECIES_SNUBBULL - 1] = {0x1b, 0x15, 0x30, 0x1a, 0x23},
+ [SPECIES_GRANBULL - 1] = {0x1c, 0x09, 0x30, 0x19, 0x18},
+ [SPECIES_QWILFISH - 1] = {0x1f, 0x26, 0x20, 0x1d, 0x33},
+ [SPECIES_SCIZOR - 1] = {0x15, 0x0f, 0x10, 0x1a, 0x1a},
+ [SPECIES_SHUCKLE - 1] = {0x25, 0x0a, 0x30, 0x24, 0x18},
+ [SPECIES_HERACROSS - 1] = {0x18, 0x19, 0x28, 0x1a, 0x26},
+ [SPECIES_SNEASEL - 1] = {0x1c, 0x13, 0x30, 0x1d, 0x24},
+ [SPECIES_TEDDIURSA - 1] = {0x1e, 0x12, 0x30, 0x1b, 0x23},
+ [SPECIES_URSARING - 1] = {0x1e, 0x04, 0x28, 0x1d, 0x14},
+ [SPECIES_SLUGMA - 1] = {0x20, 0x18, 0x30, 0x20, 0x28},
+ [SPECIES_MAGCARGO - 1] = {0x16, 0x11, 0x30, 0x17, 0x23},
+ [SPECIES_SWINUB - 1] = {0x1c, 0x18, 0x30, 0x1b, 0x25},
+ [SPECIES_PILOSWINE - 1] = {0x18, 0x23, 0x20, 0x18, 0x36},
+ [SPECIES_CORSOLA - 1] = {0x19, 0x1d, 0x28, 0x19, 0x2b},
+ [SPECIES_REMORAID - 1] = {0x15, 0x1f, 0x28, 0x13, 0x2b},
+ [SPECIES_OCTILLERY - 1] = {0x1c, 0x11, 0x30, 0x1a, 0x20},
+ [SPECIES_DELIBIRD - 1] = {0x1d, 0x11, 0x30, 0x1b, 0x1f},
+ [SPECIES_MANTINE - 1] = {0x16, 0x1e, 0x28, 0x1f, 0x27},
+ [SPECIES_SKARMORY - 1] = {0x1e, 0x00, 0x28, 0x13, 0x07},
+ [SPECIES_HOUNDOUR - 1] = {0x25, 0x11, 0x30, 0x25, 0x1f},
+ [SPECIES_HOUNDOOM - 1] = {0x0d, 0x13, 0x30, 0x0d, 0x24},
+ [SPECIES_KINGDRA - 1] = {0x0e, 0x13, 0x28, 0x0a, 0x2c},
+ [SPECIES_PHANPY - 1] = {0x1b, 0x11, 0x30, 0x19, 0x24},
+ [SPECIES_DONPHAN - 1] = {0x11, 0x15, 0x30, 0x19, 0x2c},
+ [SPECIES_PORYGON2 - 1] = {0x18, 0x11, 0x30, 0x11, 0x20},
+ [SPECIES_STANTLER - 1] = {0x15, 0x15, 0x28, 0x17, 0x28},
+ [SPECIES_SMEARGLE - 1] = {0x18, 0x10, 0x30, 0x1b, 0x25},
+ [SPECIES_TYROGUE - 1] = {0x1e, 0x12, 0x30, 0x1f, 0x1f},
+ [SPECIES_HITMONTOP - 1] = {0x1a, 0x39, 0x10, 0x1a, 0x2b},
+ [SPECIES_SMOOCHUM - 1] = {0x20, 0x18, 0x30, 0x21, 0x26},
+ [SPECIES_ELEKID - 1] = {0x1d, 0x14, 0x30, 0x1d, 0x23},
+ [SPECIES_MAGBY - 1] = {0x1c, 0x15, 0x30, 0x1a, 0x24},
+ [SPECIES_MILTANK - 1] = {0x18, 0x0e, 0x30, 0x18, 0x1e},
+ [SPECIES_BLISSEY - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x19},
+ [SPECIES_RAIKOU - 1] = {0x29, 0x0c, 0x28, 0x27, 0x1e},
+ [SPECIES_ENTEI - 1] = {0x08, 0x09, 0x28, 0x0b, 0x18},
+ [SPECIES_SUICUNE - 1] = {0x23, 0x1d, 0x28, 0x26, 0x2c},
+ [SPECIES_LARVITAR - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x24},
+ [SPECIES_PUPITAR - 1] = {0x1b, 0x19, 0x30, 0x1b, 0x28},
+ [SPECIES_TYRANITAR - 1] = {0x06, 0x0b, 0x28, 0x0d, 0x19},
+ [SPECIES_LUGIA - 1] = {0x08, 0x2a, 0x08, 0x14, 0x34},
+ [SPECIES_HO_OH - 1] = {0x0d, 0x25, 0x08, 0x0e, 0x34},
+ [SPECIES_CELEBI - 1] = {0x15, 0x21, 0x08, 0x1a, 0x2b},
+ [SPECIES_OLD_UNOWN_B - 1] = {0x1f, 0x12, 0x08, 0x1e, 0x1c},
+ [SPECIES_OLD_UNOWN_C - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
+ [SPECIES_OLD_UNOWN_D - 1] = {0x1c, 0x19, 0x08, 0x1b, 0x23},
+ [SPECIES_OLD_UNOWN_E - 1] = {0x21, 0x19, 0x08, 0x20, 0x23},
+ [SPECIES_OLD_UNOWN_F - 1] = {0x1b, 0x13, 0x08, 0x1a, 0x1d},
+ [SPECIES_OLD_UNOWN_G - 1] = {0x20, 0x16, 0x08, 0x1f, 0x21},
+ [SPECIES_OLD_UNOWN_H - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_I - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_J - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20},
+ [SPECIES_OLD_UNOWN_K - 1] = {0x1d, 0x1a, 0x08, 0x1c, 0x24},
+ [SPECIES_OLD_UNOWN_L - 1] = {0x20, 0x16, 0x08, 0x1f, 0x1f},
+ [SPECIES_OLD_UNOWN_M - 1] = {0x20, 0x1c, 0x08, 0x1f, 0x26},
+ [SPECIES_OLD_UNOWN_N - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_O - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_P - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20},
+ [SPECIES_OLD_UNOWN_Q - 1] = {0x1d, 0x16, 0x08, 0x1c, 0x20},
+ [SPECIES_OLD_UNOWN_R - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f},
+ [SPECIES_OLD_UNOWN_S - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_T - 1] = {0x20, 0x1e, 0x08, 0x1f, 0x28},
+ [SPECIES_OLD_UNOWN_U - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
+ [SPECIES_OLD_UNOWN_V - 1] = {0x1e, 0x1e, 0x08, 0x1d, 0x28},
+ [SPECIES_OLD_UNOWN_W - 1] = {0x20, 0x1d, 0x08, 0x1f, 0x27},
+ [SPECIES_OLD_UNOWN_X - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_Y - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f},
+ [SPECIES_OLD_UNOWN_Z - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_TREECKO - 1] = {0x1a, 0x0f, 0x30, 0x19, 0x20},
+ [SPECIES_GROVYLE - 1] = {0x0d, 0x05, 0x10, 0x05, 0x13},
+ [SPECIES_SCEPTILE - 1] = {0x10, 0x04, 0x28, 0x0c, 0x12},
+ [SPECIES_TORCHIC - 1] = {0x17, 0x18, 0x30, 0x15, 0x25},
+ [SPECIES_COMBUSKEN - 1] = {0x20, 0x12, 0x28, 0x1e, 0x20},
+ [SPECIES_BLAZIKEN - 1] = {0x1a, 0x07, 0x28, 0x1d, 0x13},
+ [SPECIES_MUDKIP - 1] = {0x1b, 0x1d, 0x28, 0x19, 0x2c},
+ [SPECIES_MARSHTOMP - 1] = {0x1d, 0x11, 0x30, 0x1c, 0x20},
+ [SPECIES_SWAMPERT - 1] = {0x1b, 0x11, 0x28, 0x1b, 0x23},
+ [SPECIES_POOCHYENA - 1] = {0x14, 0x12, 0x30, 0x0f, 0x20},
+ [SPECIES_MIGHTYENA - 1] = {0x09, 0x0d, 0x28, 0x09, 0x1c},
+ [SPECIES_ZIGZAGOON - 1] = {0x0b, 0x1a, 0x30, 0x09, 0x2b},
+ [SPECIES_LINOONE - 1] = {0x0d, 0x28, 0x18, 0x0b, 0x37},
+ [SPECIES_WURMPLE - 1] = {0x21, 0x17, 0x30, 0x1f, 0x26},
+ [SPECIES_SILCOON - 1] = {0x13, 0x1c, 0x30, 0x11, 0x2a},
+ [SPECIES_BEAUTIFLY - 1] = {0x0f, 0x1b, 0x08, 0x0e, 0x28},
+ [SPECIES_CASCOON - 1] = {0x14, 0x1d, 0x30, 0x11, 0x2c},
+ [SPECIES_DUSTOX - 1] = {0x14, 0x19, 0x08, 0x16, 0x26},
+ [SPECIES_LOTAD - 1] = {0x19, 0x25, 0x28, 0x17, 0x32},
+ [SPECIES_LOMBRE - 1] = {0x22, 0x10, 0x30, 0x29, 0x1d},
+ [SPECIES_LUDICOLO - 1] = {0x1c, 0x0f, 0x28, 0x1b, 0x24},
+ [SPECIES_SEEDOT - 1] = {0x1b, 0x17, 0x30, 0x18, 0x28},
+ [SPECIES_NUZLEAF - 1] = {0x20, 0x0d, 0x30, 0x1a, 0x1d},
+ [SPECIES_SHIFTRY - 1] = {0x32, 0x11, 0x28, 0x2e, 0x23},
+ [SPECIES_NINCADA - 1] = {0x18, 0x1a, 0x30, 0x17, 0x28},
+ [SPECIES_NINJASK - 1] = {0x17, 0x21, 0x00, 0x17, 0x2f},
+ [SPECIES_SHEDINJA - 1] = {0x16, 0x19, 0x08, 0x18, 0x2a},
+ [SPECIES_TAILLOW - 1] = {0x17, 0x10, 0x30, 0x14, 0x1e},
+ [SPECIES_SWELLOW - 1] = {0x0c, 0x0a, 0x28, 0x05, 0x16},
+ [SPECIES_SHROOMISH - 1] = {0x1f, 0x16, 0x30, 0x1d, 0x23},
+ [SPECIES_BRELOOM - 1] = {0x25, 0x0c, 0x30, 0x23, 0x19},
+ [SPECIES_SPINDA - 1] = {0x21, 0x16, 0x30, 0x1f, 0x27},
+ [SPECIES_WINGULL - 1] = {0x1a, 0x16, 0x10, 0x15, 0x26},
+ [SPECIES_PELIPPER - 1] = {0x1d, 0x0a, 0x10, 0x09, 0x1b},
+ [SPECIES_SURSKIT - 1] = {0x1d, 0x16, 0x30, 0x1c, 0x25},
+ [SPECIES_MASQUERAIN - 1] = {0x1a, 0x21, 0x08, 0x14, 0x30},
+ [SPECIES_WAILMER - 1] = {0x17, 0x17, 0x30, 0x16, 0x28},
+ [SPECIES_WAILORD - 1] = {0x17, 0x03, 0x30, 0x09, 0x13},
+ [SPECIES_SKITTY - 1] = {0x24, 0x1a, 0x30, 0x22, 0x2a},
+ [SPECIES_DELCATTY - 1] = {0x1e, 0x12, 0x30, 0x1c, 0x21},
+ [SPECIES_KECLEON - 1] = {0x19, 0x10, 0x30, 0x13, 0x1e},
+ [SPECIES_BALTOY - 1] = {0x1d, 0x15, 0x30, 0x1b, 0x22},
+ [SPECIES_CLAYDOL - 1] = {0x1e, 0x0d, 0x28, 0x1d, 0x24},
+ [SPECIES_NOSEPASS - 1] = {0x1f, 0x10, 0x30, 0x15, 0x23},
+ [SPECIES_TORKOAL - 1] = {0x0e, 0x19, 0x28, 0x0a, 0x27},
+ [SPECIES_SABLEYE - 1] = {0x1e, 0x16, 0x30, 0x1d, 0x27},
+ [SPECIES_BARBOACH - 1] = {0x17, 0x12, 0x30, 0x15, 0x1e},
+ [SPECIES_WHISCASH - 1] = {0x18, 0x20, 0x28, 0x17, 0x31},
+ [SPECIES_LUVDISC - 1] = {0x19, 0x0f, 0x30, 0x13, 0x1c},
+ [SPECIES_CORPHISH - 1] = {0x1f, 0x14, 0x30, 0x1d, 0x23},
+ [SPECIES_CRAWDAUNT - 1] = {0x14, 0x0c, 0x28, 0x18, 0x23},
+ [SPECIES_FEEBAS - 1] = {0x18, 0x1e, 0x28, 0x16, 0x2f},
+ [SPECIES_MILOTIC - 1] = {0x20, 0x0c, 0x28, 0x1f, 0x1d},
+ [SPECIES_CARVANHA - 1] = {0x16, 0x19, 0x30, 0x13, 0x22},
+ [SPECIES_SHARPEDO - 1] = {0x19, 0x0c, 0x28, 0x17, 0x27},
+ [SPECIES_TRAPINCH - 1] = {0x29, 0x13, 0x30, 0x17, 0x18},
+ [SPECIES_VIBRAVA - 1] = {0x10, 0x27, 0x20, 0x0e, 0x34},
+ [SPECIES_FLYGON - 1] = {0x22, 0x07, 0x10, 0x21, 0x13},
+ [SPECIES_MAKUHITA - 1] = {0x22, 0x13, 0x30, 0x1c, 0x23},
+ [SPECIES_HARIYAMA - 1] = {0x24, 0x0f, 0x28, 0x26, 0x1c},
+ [SPECIES_ELECTRIKE - 1] = {0x11, 0x18, 0x30, 0x14, 0x27},
+ [SPECIES_MANECTRIC - 1] = {0x2f, 0x18, 0x28, 0x2e, 0x29},
+ [SPECIES_NUMEL - 1] = {0x10, 0x1a, 0x30, 0x0d, 0x2a},
+ [SPECIES_CAMERUPT - 1] = {0x0d, 0x22, 0x28, 0x0e, 0x36},
+ [SPECIES_SPHEAL - 1] = {0x1e, 0x0f, 0x30, 0x18, 0x1f},
+ [SPECIES_SEALEO - 1] = {0x1c, 0x09, 0x30, 0x1a, 0x18},
+ [SPECIES_WALREIN - 1] = {0x19, 0x01, 0x28, 0x10, 0x16},
+ [SPECIES_CACNEA - 1] = {0x1f, 0x17, 0x30, 0x1d, 0x29},
+ [SPECIES_CACTURNE - 1] = {0x1d, 0x0e, 0x28, 0x1d, 0x1b},
+ [SPECIES_SNORUNT - 1] = {0x1e, 0x16, 0x30, 0x1e, 0x26},
+ [SPECIES_GLALIE - 1] = {0x1a, 0x1c, 0x08, 0x1a, 0x31},
+ [SPECIES_LUNATONE - 1] = {0x1c, 0x16, 0x08, 0x19, 0x2c},
+ [SPECIES_SOLROCK - 1] = {0x18, 0x18, 0x10, 0x17, 0x31},
+ [SPECIES_AZURILL - 1] = {0x1b, 0x10, 0x30, 0x18, 0x1f},
+ [SPECIES_SPOINK - 1] = {0x21, 0x14, 0x30, 0x1b, 0x28},
+ [SPECIES_GRUMPIG - 1] = {0x14, 0x10, 0x30, 0x15, 0x20},
+ [SPECIES_PLUSLE - 1] = {0x1c, 0x16, 0x08, 0x1d, 0x25},
+ [SPECIES_MINUN - 1] = {0x21, 0x16, 0x08, 0x1f, 0x26},
+ [SPECIES_MAWILE - 1] = {0x2d, 0x14, 0x30, 0x2f, 0x24},
+ [SPECIES_MEDITITE - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x25},
+ [SPECIES_MEDICHAM - 1] = {0x21, 0x0f, 0x28, 0x1e, 0x1d},
+ [SPECIES_SWABLU - 1] = {0x1b, 0x16, 0x10, 0x17, 0x23},
+ [SPECIES_ALTARIA - 1] = {0x1d, 0x0b, 0x10, 0x1a, 0x1a},
+ [SPECIES_WYNAUT - 1] = {0x1a, 0x15, 0x30, 0x1b, 0x26},
+ [SPECIES_DUSKULL - 1] = {0x10, 0x18, 0x08, 0x14, 0x2e},
+ [SPECIES_DUSCLOPS - 1] = {0x1c, 0x0f, 0x30, 0x1a, 0x28},
+ [SPECIES_ROSELIA - 1] = {0x1e, 0x11, 0x30, 0x1d, 0x20},
+ [SPECIES_SLAKOTH - 1] = {0x19, 0x1e, 0x30, 0x18, 0x2f},
+ [SPECIES_VIGOROTH - 1] = {0x10, 0x12, 0x28, 0x14, 0x24},
+ [SPECIES_SLAKING - 1] = {0x37, 0x0f, 0x30, 0x29, 0x21},
+ [SPECIES_GULPIN - 1] = {0x1b, 0x18, 0x30, 0x17, 0x26},
+ [SPECIES_SWALOT - 1] = {0x1f, 0x06, 0x30, 0x15, 0x13},
+ [SPECIES_TROPIUS - 1] = {0x18, 0x0a, 0x28, 0x20, 0x18},
+ [SPECIES_WHISMUR - 1] = {0x1f, 0x19, 0x30, 0x1d, 0x29},
+ [SPECIES_LOUDRED - 1] = {0x1c, 0x12, 0x28, 0x22, 0x27},
+ [SPECIES_EXPLOUD - 1] = {0x10, 0x10, 0x28, 0x1a, 0x2a},
+ [SPECIES_CLAMPERL - 1] = {0x20, 0x1a, 0x30, 0x1e, 0x26},
+ [SPECIES_HUNTAIL - 1] = {0x13, 0x1e, 0x28, 0x15, 0x33},
+ [SPECIES_GOREBYSS - 1] = {0x0d, 0x1f, 0x28, 0x03, 0x32},
+ [SPECIES_ABSOL - 1] = {0x2a, 0x11, 0x28, 0x2a, 0x22},
+ [SPECIES_SHUPPET - 1] = {0x16, 0x19, 0x08, 0x17, 0x27},
+ [SPECIES_BANETTE - 1] = {0x1c, 0x14, 0x08, 0x1b, 0x23},
+ [SPECIES_SEVIPER - 1] = {0x0e, 0x0d, 0x30, 0x0b, 0x1e},
+ [SPECIES_ZANGOOSE - 1] = {0x18, 0x0c, 0x28, 0x15, 0x1a},
+ [SPECIES_RELICANTH - 1] = {0x0c, 0x1f, 0x30, 0x09, 0x2d},
+ [SPECIES_ARON - 1] = {0x18, 0x1c, 0x30, 0x1a, 0x2c},
+ [SPECIES_LAIRON - 1] = {0x0b, 0x21, 0x30, 0x12, 0x2f},
+ [SPECIES_AGGRON - 1] = {0x10, 0x0b, 0x28, 0x16, 0x1b},
+ [SPECIES_CASTFORM - 1] = {0x1d, 0x18, 0x08, 0x1b, 0x26},
+ [SPECIES_VOLBEAT - 1] = {0x25, 0x15, 0x08, 0x21, 0x25},
+ [SPECIES_ILLUMISE - 1] = {0x20, 0x12, 0x08, 0x1f, 0x20},
+ [SPECIES_LILEEP - 1] = {0x1e, 0x11, 0x30, 0x1f, 0x1e},
+ [SPECIES_CRADILY - 1] = {0x12, 0x16, 0x28, 0x15, 0x28},
+ [SPECIES_ANORITH - 1] = {0x1c, 0x1e, 0x30, 0x1b, 0x2b},
+ [SPECIES_ARMALDO - 1] = {0x15, 0x05, 0x28, 0x14, 0x13},
+ [SPECIES_RALTS - 1] = {0x1f, 0x17, 0x30, 0x20, 0x23},
+ [SPECIES_KIRLIA - 1] = {0x1c, 0x12, 0x30, 0x1f, 0x1e},
+ [SPECIES_GARDEVOIR - 1] = {0x35, 0x07, 0x28, 0x32, 0x14},
+ [SPECIES_BAGON - 1] = {0x17, 0x13, 0x30, 0x16, 0x26},
+ [SPECIES_SHELGON - 1] = {0x19, 0x1b, 0x30, 0x19, 0x2c},
+ [SPECIES_SALAMENCE - 1] = {0x09, 0x11, 0x30, 0x0a, 0x21},
+ [SPECIES_BELDUM - 1] = {0x16, 0x19, 0x08, 0x18, 0x23},
+ [SPECIES_METANG - 1] = {0x22, 0x0f, 0x10, 0x1f, 0x21},
+ [SPECIES_METAGROSS - 1] = {0x24, 0x1b, 0x28, 0x22, 0x2b},
+ [SPECIES_REGIROCK - 1] = {0x16, 0x07, 0x28, 0x14, 0x12},
+ [SPECIES_REGICE - 1] = {0x19, 0x0c, 0x28, 0x17, 0x19},
+ [SPECIES_REGISTEEL - 1] = {0x19, 0x0d, 0x28, 0x19, 0x19},
+ [SPECIES_KYOGRE - 1] = {0x0e, 0x19, 0x28, 0x0b, 0x26},
+ [SPECIES_GROUDON - 1] = {0x04, 0x0b, 0x28, 0x0a, 0x19},
+ [SPECIES_RAYQUAZA - 1] = {0x0c, 0x0e, 0x10, 0x0e, 0x1f},
+ [SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19},
+ [SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d},
+ [SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22},
#if defined(FIRERED)
- [SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16},
+ [SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16},
#elif defined(LEAFGREEN)
- [SPECIES_DEOXYS - 1] = {0x1a, 0x09, 0x28, 0x1a, 0x17},
+ [SPECIES_DEOXYS - 1] = {0x1a, 0x09, 0x28, 0x1a, 0x17},
#endif
- [SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a},
+ [SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a},
[SPECIES_OLD_UNOWN_EMARK - 1] = {0x20, 0x21, 0x08, 0x20, 0x2b},
[SPECIES_OLD_UNOWN_QMARK - 1] = {0x20, 0x23, 0x08, 0x20, 0x2d}
};
@@ -635,7 +635,7 @@ static void Task_SmoothBlendLayers(u8 taskId)
}
}
-u8 sub_812EA78(u16 species, u32 personality, u8 a2)
+u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2)
{
if (species == SPECIES_UNOWN)
{
@@ -658,13 +658,13 @@ u8 sub_812EA78(u16 species, u32 personality, u8 a2)
if (species != SPECIES_NONE && a2 < 5)
{
species--;
- if (gUnknown_845FD54[species][a2] != 0xFF)
- return gUnknown_845FD54[species][a2];
+ if (sMonSpriteAnchorCoords[species][a2] != 0xFF)
+ return sMonSpriteAnchorCoords[species][a2];
}
return 32;
}
-s8 sub_812EAE4(u16 species, u32 personality, u8 a2)
+s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2)
{
- return sub_812EA78(species, personality, a2) - 32;
+ return Menu2_GetMonSpriteAnchorCoord(species, personality, a2) - 32;
}
diff --git a/src/party_menu.c b/src/party_menu.c
index 5d7026807..5ceeb2c3b 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -4309,7 +4309,7 @@ static void sub_8124DE0(void)
static void sub_8124E48(void)
{
if (ItemId_GetPocket(gSpecialVar_ItemId) == POCKET_TM_CASE
- && PSA_IsCancelDisabled() == 1)
+ && PSA_IsCancelDisabled() == TRUE)
{
GiveMoveToMon(&gPlayerParty[gPartyMenu.slotId], ItemIdToBattleMoveId(gSpecialVar_ItemId));
AdjustFriendship(&gPlayerParty[gPartyMenu.slotId], 4);
@@ -4325,7 +4325,7 @@ static void sub_8124E48(void)
static void sub_8124EFC(void)
{
- if (PSA_IsCancelDisabled() == 1)
+ if (PSA_IsCancelDisabled() == TRUE)
{
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u8 moveIdx = GetMoveSlotToReplace();
diff --git a/src/pokemon_special_anim.c b/src/pokemon_special_anim.c
index 5cc13b9c5..f05b93c54 100644
--- a/src/pokemon_special_anim.c
+++ b/src/pokemon_special_anim.c
@@ -15,14 +15,14 @@ static EWRAM_DATA bool32 sCancelDisabled = FALSE;
static EWRAM_DATA u8 sPSATaskId = 0;
static EWRAM_DATA struct PokemonSpecialAnim * sPSAWork = NULL;
-struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback);
+static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback);
static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr);
static void SetUpUseItemAnim_ForgetMoveAndLearnTMorHM(struct PokemonSpecialAnim * ptr);
static void SetUpUseItemAnim_CantEvolve(struct PokemonSpecialAnim * ptr);
-static void sub_811C834(u8 taskId);
+static void Task_UseItem_Normal(u8 taskId);
static void Task_ForgetMove(u8 taskId);
-static void sub_811CBE4(u8 taskId);
-static void sub_811CD68(u8 taskId);
+static void Task_EvoStone_CantEvolve(u8 taskId);
+static void Task_UseTM_NoForget(u8 taskId);
static void Task_MachineSet(u8 taskId);
static void Task_CleanUp(u8 taskId);
static u8 GetClosenessFromFriendship(u16 friendship);
@@ -58,7 +58,7 @@ void StartUseItemAnim_CantEvolve(u8 slotId, u16 itemId, MainCallback callback)
SetUpUseItemAnim_CantEvolve(ptr);
}
-struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback)
+static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback callback)
{
struct PokemonSpecialAnim * ptr;
struct Pokemon * pokemon;
@@ -125,10 +125,10 @@ static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr)
case 0:
case 1:
case 3:
- taskId = CreateTask(sub_811C834, 0);
+ taskId = CreateTask(Task_UseItem_Normal, 0);
break;
case 4:
- taskId = CreateTask(sub_811CD68, 0);
+ taskId = CreateTask(Task_UseTM_NoForget, 0);
break;
default:
SetMainCallback2(ptr->savedCallback);
@@ -152,28 +152,28 @@ static void SetUpUseItemAnim_ForgetMoveAndLearnTMorHM(struct PokemonSpecialAnim
static void SetUpUseItemAnim_CantEvolve(struct PokemonSpecialAnim * ptr)
{
- u8 taskId = CreateTask(sub_811CBE4, 0);
+ u8 taskId = CreateTask(Task_EvoStone_CantEvolve, 0);
SetWordTaskArg(taskId, 0, (uintptr_t)ptr);
SetMainCallback2(CB2_PSA);
sPSATaskId = taskId;
}
-static void sub_811C834(u8 taskId)
+static void Task_UseItem_Normal(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
if (!ptr->cancelDisabled && JOY_HELD(A_BUTTON | B_BUTTON))
{
- sub_811E040();
+ PSA_UseItem_CleanUpForCancel();
SetUseItemAnimCallback(taskId, Task_CleanUp);
return;
}
-
+
switch (ptr->state)
{
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
- sub_811D830(0);
+ PSA_CreateMonSpriteAtCloseness(0);
ptr->state++;
break;
case 1:
@@ -195,31 +195,31 @@ static void sub_811C834(u8 taskId)
ptr->state++;
break;
case 4:
- if (!sub_811D9A8())
+ if (!PSA_IsZoomTaskActive())
{
- ptr->field_009e = 0;
+ ptr->delayTimer = 0;
ptr->state++;
}
break;
case 5:
- if (!sub_811D754())
+ if (!PSA_LevelUpVerticalSpritesTaskIsRunning())
{
ptr->state++;
}
break;
case 6:
- PSA_SetUpZoomOutMonTask(ptr->itemId, ptr->closeness, TRUE);
+ PSA_SetUpItemUseOnMonAnim(ptr->itemId, ptr->closeness, TRUE);
ptr->state++;
break;
case 7:
- if (!PSA_IsZoomOutMonTaskRunning())
+ if (!PSA_IsItemUseOnMonAnimActive())
{
ptr->cancelDisabled = TRUE;
if (ptr->closeness == 3)
{
PlayCry1(ptr->species, 0);
}
- sub_811D2A8();
+ PSA_ShowMessageWindow();
ptr->state++;
}
break;
@@ -238,7 +238,7 @@ static void sub_811C834(u8 taskId)
ptr->state++;
break;
case 11:
- if (!sub_811D9A8())
+ if (!PSA_IsZoomTaskActive())
{
ptr->cancelDisabled = TRUE;
ptr->state++;
@@ -283,7 +283,7 @@ static void Task_ForgetMove(u8 taskId)
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
- sub_811D830(3);
+ PSA_CreateMonSpriteAtCloseness(3);
ptr->state++;
break;
case 1:
@@ -297,15 +297,15 @@ static void Task_ForgetMove(u8 taskId)
case 2:
if (!gPaletteFade.active)
{
- ptr->field_009e = 0;
+ ptr->delayTimer = 0;
ptr->state++;
}
break;
case 3:
- ptr->field_009e++;
- if (ptr->field_009e > 30)
+ ptr->delayTimer++;
+ if (ptr->delayTimer > 30)
{
- sub_811D2A8();
+ PSA_ShowMessageWindow();
ptr->state++;
}
break;
@@ -316,13 +316,13 @@ static void Task_ForgetMove(u8 taskId)
case 5:
if (!PSA_IsMessagePrintTaskActive())
{
- ptr->field_009e = 0;
+ ptr->delayTimer = 0;
ptr->state++;
}
break;
case 6:
- ptr->field_009e++;
- if (ptr->field_009e > 30)
+ ptr->delayTimer++;
+ if (ptr->delayTimer > 30)
{
PSA_PrintMessage(PSA_TEXT_FORGET_2_AND);
ptr->state++;
@@ -331,25 +331,25 @@ static void Task_ForgetMove(u8 taskId)
case 7:
if (!PSA_IsMessagePrintTaskActive())
{
- ptr->field_009e = 0;
+ ptr->delayTimer = 0;
ptr->state++;
}
break;
case 8:
- ptr->field_009e++;
- if (ptr->field_009e > 30)
+ ptr->delayTimer++;
+ if (ptr->delayTimer > 30)
{
PlaySE(SE_W255);
PSA_PrintMessage(PSA_TEXT_FORGET_POOF);
- sub_811D4FC();
+ PSA_DarkenMonSprite();
ptr->state++;
}
break;
case 9:
- r4 = sub_811D530();
+ r4 = PSA_RunPoofAnim();
if (!(r4 | PSA_IsMessagePrintTaskActive()))
{
- sub_811D4D4();
+ PSA_AfterPoof_ClearMessageWindow();
ptr->state++;
}
break;
@@ -367,7 +367,7 @@ static void Task_ForgetMove(u8 taskId)
case 12:
if (!PSA_IsMessagePrintTaskActive())
{
- sub_811D2D0();
+ PSA_HideMessageWindow();
ptr->state++;
}
break;
@@ -377,7 +377,7 @@ static void Task_ForgetMove(u8 taskId)
}
}
-static void sub_811CBE4(u8 taskId)
+static void Task_EvoStone_CantEvolve(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
@@ -392,7 +392,7 @@ static void sub_811CBE4(u8 taskId)
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
- sub_811D830(0);
+ PSA_CreateMonSpriteAtCloseness(0);
ptr->state++;
break;
case 1:
@@ -414,13 +414,13 @@ static void sub_811CBE4(u8 taskId)
ptr->state++;
break;
case 4:
- PSA_SetUpZoomOutMonTask(ptr->itemId, ptr->closeness, FALSE);
+ PSA_SetUpItemUseOnMonAnim(ptr->itemId, ptr->closeness, FALSE);
ptr->state++;
break;
case 5:
- if (!PSA_IsZoomOutMonTaskRunning())
+ if (!PSA_IsItemUseOnMonAnimActive())
{
- sub_811D2A8();
+ PSA_ShowMessageWindow();
ptr->state++;
}
break;
@@ -454,7 +454,7 @@ static void sub_811CBE4(u8 taskId)
}
}
-static void sub_811CD68(u8 taskId)
+static void Task_UseTM_NoForget(u8 taskId)
{
struct PokemonSpecialAnim * ptr = (void *)GetWordTaskArg(taskId, 0);
@@ -469,7 +469,7 @@ static void sub_811CD68(u8 taskId)
case 0:
SetVBlankCallback(NULL);
InitPokemonSpecialAnimScene(&ptr->sceneResources, ptr->animType);
- sub_811D830(3);
+ PSA_CreateMonSpriteAtCloseness(3);
ptr->state++;
break;
case 1:
@@ -483,13 +483,13 @@ static void sub_811CD68(u8 taskId)
case 2:
if (!gPaletteFade.active)
{
- ptr->field_009e = 0;
+ ptr->delayTimer = 0;
ptr->state++;
}
break;
case 3:
- ptr->field_009e++;
- if (ptr->field_009e > 20)
+ ptr->delayTimer++;
+ if (ptr->delayTimer > 20)
{
SetUseItemAnimCallback(taskId, Task_MachineSet);
}
@@ -503,7 +503,7 @@ static void Task_MachineSet(u8 taskId)
if (!ptr->cancelDisabled && JOY_NEW(B_BUTTON))
{
- sub_811D5B0();
+ PSA_UseTM_CleanUpForCancel();
SetUseItemAnimCallback(taskId, Task_CleanUp);
return;
}
@@ -511,48 +511,48 @@ static void Task_MachineSet(u8 taskId)
switch (ptr->state)
{
case 0:
- sub_811DCF0(ptr->itemId);
- ptr->field_009e = 0;
+ CreateItemIconSpriteAtMaxCloseness(ptr->itemId);
+ ptr->delayTimer = 0;
ptr->state++;
break;
case 1:
- sub_811D2A8();
+ PSA_ShowMessageWindow();
PSA_PrintMessage(PSA_TEXT_MACHINE_SET);
ptr->state++;
break;
case 2:
if (!PSA_IsMessagePrintTaskActive())
{
- sub_811D2D0();
+ PSA_HideMessageWindow();
ptr->state++;
}
break;
case 3:
- sub_811D6EC();
+ PSA_UseTM_SetUpMachineSetWobble();
ptr->state++;
break;
case 4:
- if (!sub_811D6FC())
+ if (!PSA_UseTM_RunMachineSetWobble())
{
ptr->state++;
}
break;
case 5:
- sub_811D5A0();
+ PSA_UseTM_SetUpZoomOutAnim();
ptr->state++;
break;
case 6:
- if (!sub_811D5C0())
+ if (!PSA_UseTM_RunZoomOutAnim())
{
- ptr->field_009e = 0;
+ ptr->delayTimer = 0;
ptr->state++;
}
break;
case 7:
- ptr->field_009e++;
- if (ptr->field_009e > 30)
+ ptr->delayTimer++;
+ if (ptr->delayTimer > 30)
{
- sub_811D2A8();
+ PSA_ShowMessageWindow();
PSA_PrintMessage(PSA_TEXT_LEARNED_MOVE);
ptr->state++;
}
diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c
index 5a0bb8607..2d65c24a7 100644
--- a/src/pokemon_special_anim_scene.c
+++ b/src/pokemon_special_anim_scene.c
@@ -13,49 +13,49 @@
#include "trig.h"
#include "constants/songs.h"
-static void sub_811D7D4(u16 animType);
-static void sub_811D9BC(u8 taskId);
-static void sub_811DA9C(struct Sprite * sprite, u8 closeness);
-static bool8 sub_811DAAC(struct Sprite * sprite);
-static void sub_811DB14(struct Sprite * sprite, u8 closeness);
-static void sub_811DB48(struct Sprite * sprite, u8 closeness);
+static void LoadBgGfxByAnimType(u16 animType);
+static void Task_ZoomAnim(u8 taskId);
+static void SetSpriteWithCloseness(struct Sprite * sprite, u8 closeness);
+static bool8 IsZoomSpriteCBActive(struct Sprite * sprite);
+static void MonSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness);
+static void ItemSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness);
static void StartMonWiggleAnim(struct PokemonSpecialAnimScene * scene, u8 frameLen, u8 niter, u8 amplitude);
static void StopMonWiggleAnim(struct PokemonSpecialAnimScene * scene);
static void SpriteCallback_MonSpriteWiggle(struct Sprite * sprite);
static void LoadMonSpriteGraphics(u16 *tilees, u16 *palette);
-struct Sprite * PSA_CreateItemIconObject(u16 itemId);
+static struct Sprite * PSA_CreateItemIconObject(u16 itemId);
static u16 GetBlendColorByItemId(u16 itemId);
-static void Task_ZoomOutMon(u8 taskId);
+static void Task_ItemUseOnMonAnim(u8 taskId);
static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct Sprite * sprite);
-static void sub_811DFC0(struct Sprite * sprite);
-static void sub_811E06C(struct PokemonSpecialAnimScene * scene, struct Sprite * sprite, u8 closeness);
-static void sub_811E10C(void);
-static void sub_811E128(struct Sprite * sprite);
-static bool8 sub_811E138(void);
-static void sub_811E154(struct Sprite * sprite);
-static void sub_811E194(u8 a0);
-static void sub_811E204(struct PokemonSpecialAnimScene * scene);
-static bool8 sub_811E2F4(void);
-static void sub_811E300(struct Sprite * sprite);
-static void sub_811E348(struct PokemonSpecialAnimScene * scene);
-static void sub_811E388(void);
-static void sub_811E3B4(u8 taskId);
-static u16 sub_811E4EC(u8 taskId);
+static void SpriteCB_OutwardSpiralDots(struct Sprite * sprite);
+static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite * sprite, u8 closeness);
+static void MachineSetWobbleInit(void);
+static void MachineSetWobble_SetCB(struct Sprite * sprite);
+static bool8 MachineSetWobbleCBIsRunning(void);
+static void SpriteCB_MachineSetWobble(struct Sprite * sprite);
+static void StartZoomOutAnimForUseTM(u8 closeness);
+static void CreateStarSprites(struct PokemonSpecialAnimScene * scene);
+static bool8 AnyStarSpritesActive(void);
+static void SpriteCB_Star(struct Sprite * sprite);
+static void PSAScene_SeedRandomInTask(struct PokemonSpecialAnimScene * scene);
+static void StopMakingOutwardSpiralDots(void);
+static void Task_UseItem_OutwardSpiralDots(u8 taskId);
+static u16 PSAScene_RandomFromTask(u8 taskId);
static void SpriteCallback_UseItem_OutwardSpiralDots(struct Sprite * sprite);
-static void sub_811E588(void);
-static bool32 sub_811E5A4(void);
-static void sub_811E694(u8 taskId);
-static void sub_811E710(u8 taskId, s16 *data);
-static void sub_811E7B4(struct Sprite * sprite);
-
-static const u16 gUnknown_845963C[] = INCBIN_U16("graphics/pokemon_special_anim/unk_845963C.gbapal");
-static const u16 gUnknown_845965C[] = INCBIN_U16("graphics/pokemon_special_anim/unk_845965C.gbapal");
-static const u32 gUnknown_845967C[] = INCBIN_U32("graphics/pokemon_special_anim/unk_845967C.4bpp.lz");
-static const u32 gUnknown_845973C[] = INCBIN_U32("graphics/pokemon_special_anim/unk_845973C.bin.lz");
-static const u16 gUnknown_8459868[] = INCBIN_U16("graphics/pokemon_special_anim/unk_8459868.gbapal");
-static const u32 gUnknown_8459888[] = INCBIN_U32("graphics/pokemon_special_anim/unk_8459888.4bpp.lz");
-static const u16 gUnknown_84598A4[] = INCBIN_U16("graphics/pokemon_special_anim/unk_84598A4.gbapal");
-static const u32 gUnknown_84598C4[] = INCBIN_U32("graphics/pokemon_special_anim/unk_84598C4.4bpp.lz");
+static void LoadOutwardSpiralDotsGfx(void);
+static bool32 IsOutwardSpiralDotsTaskRunning(void);
+static void Task_LevelUpVerticalSprites(u8 taskId);
+static void CreateLevelUpVerticalSprite(u8 taskId, s16 *data);
+static void SpriteCB_LevelUpVertical(struct Sprite * sprite);
+
+static const u16 sBgPals_PSA_Any[] = INCBIN_U16("graphics/pokemon_special_anim/unk_845963C.gbapal");
+static const u16 sBgPals_PSA_Anim4[] = INCBIN_U16("graphics/pokemon_special_anim/unk_845965C.gbapal");
+static const u32 sBg3Tiles_PSA[] = INCBIN_U32("graphics/pokemon_special_anim/unk_845967C.4bpp.lz");
+static const u32 sBg3Map_PSA[] = INCBIN_U32("graphics/pokemon_special_anim/unk_845973C.bin.lz");
+static const u16 sSpritePals_LevelUpVertical[] = INCBIN_U16("graphics/pokemon_special_anim/unk_8459868.gbapal");
+static const u32 sSpriteTiles_LevelUpVertical[] = INCBIN_U32("graphics/pokemon_special_anim/unk_8459888.4bpp.lz");
+static const u16 sSpritePals_Star[] = INCBIN_U16("graphics/pokemon_special_anim/unk_84598A4.gbapal");
+static const u32 sSpriteTiles_Star[] = INCBIN_U32("graphics/pokemon_special_anim/unk_84598C4.4bpp.lz");
static const u16 sSpritePals_UseItem_OutwardSpiralDots[] = INCBIN_U16("graphics/pokemon_special_anim/unk_8459940.gbapal");
static const u32 sSpriteTiles_UseItem_OutwardSpiralDots[] = INCBIN_U32("graphics/pokemon_special_anim/unk_8459960.4bpp.lz");
@@ -108,20 +108,20 @@ static const u16 sAffineScales[] = {
0x200
};
-static const s8 gUnknown_84599B2[][2] = {
+static const s8 sStarCoordOffsets[][2] = {
{-8, -8},
{ 6, -13},
{ 8, -8}
};
-static const struct CompressedSpriteSheet gUnknown_84599B8 = {
- gUnknown_84598C4,
+static const struct CompressedSpriteSheet sSpriteSheet_Star = {
+ sSpriteTiles_Star,
0x80,
2
};
-static const struct SpritePalette gUnknown_84599C0 = {
- gUnknown_84598A4,
+static const struct SpritePalette sSpritePalette_Star = {
+ sSpritePals_Star,
2
};
@@ -189,38 +189,38 @@ static const struct SpriteTemplate sSpriteTemplate_MonSprite = {
.callback = SpriteCallbackDummy
};
-static const union AffineAnimCmd gUnknown_8459A48[] = {
+static const union AffineAnimCmd sAffineAnim_ItemZoom_0[] = {
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(-28, -28, 0, 8),
AFFINEANIMCMD_END
};
-static const union AffineAnimCmd gUnknown_8459A60[] = {
+static const union AffineAnimCmd sAffineAnim_ItemZoom_1[] = {
AFFINEANIMCMD_FRAME(0x155, 0x155, 0, 0),
AFFINEANIMCMD_FRAME(-37, -37, 0, 8),
AFFINEANIMCMD_END
};
-static const union AffineAnimCmd gUnknown_8459A78[] = {
+static const union AffineAnimCmd sAffineAnim_ItemZoom_2[] = {
AFFINEANIMCMD_FRAME(0x1AA, 0x1AA, 0, 0),
AFFINEANIMCMD_FRAME(-47, -47, 0, 8),
AFFINEANIMCMD_END
};
-static const union AffineAnimCmd gUnknown_8459A90[] = {
+static const union AffineAnimCmd sAffineAnim_ItemZoom_3[] = {
AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
AFFINEANIMCMD_FRAME(-56, -56, 0, 8),
AFFINEANIMCMD_END
};
-static const union AffineAnimCmd *const gUnknown_8459AA8[] = {
- gUnknown_8459A48,
- gUnknown_8459A60,
- gUnknown_8459A78,
- gUnknown_8459A90
+static const union AffineAnimCmd *const sAffineAnimTable_ItemZoom[] = {
+ sAffineAnim_ItemZoom_0,
+ sAffineAnim_ItemZoom_1,
+ sAffineAnim_ItemZoom_2,
+ sAffineAnim_ItemZoom_3
};
-static const struct OamData gUnknown_8459AB8 = {
+static const struct OamData sOamData_LevelUpVertical = {
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_BLEND,
@@ -240,21 +240,21 @@ static const union AnimCmd gUnknown_8459AC0[] = {
ANIMCMD_END
};
-static const union AnimCmd *const gUnknown_8459AC8[] = {
+static const union AnimCmd *const sAnimTable_LevelUpVertical[] = {
gUnknown_8459AC0
};
-static const struct SpriteTemplate gUnknown_8459ACC = {
+static const struct SpriteTemplate sSpriteTemplate_LevelUpVertical = {
.tileTag = 0,
.paletteTag = 0,
- .oam = &gUnknown_8459AB8,
- .anims = gUnknown_8459AC8,
+ .oam = &sOamData_LevelUpVertical,
+ .anims = sAnimTable_LevelUpVertical,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_811E7B4
+ .callback = SpriteCB_LevelUpVertical
};
-static const struct OamData gUnknown_8459AE4 = {
+static const struct OamData sOamData_Star = {
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
@@ -269,14 +269,14 @@ static const struct OamData gUnknown_8459AE4 = {
.paletteNum = 0
};
-static const struct SpriteTemplate gUnknown_8459AEC = {
+static const struct SpriteTemplate sSpriteTemplate_Star = {
.tileTag = 2,
.paletteTag = 2,
- .oam = &gUnknown_8459AE4,
+ .oam = &sOamData_Star,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_811E300
+ .callback = SpriteCB_Star
};
static const struct OamData sOamData_UseItem_OutwardSpiralDots = {
@@ -338,7 +338,7 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an
SetBgTilemapBuffer(3, buffer->field_1914);
RequestDma3Fill(0, (void *)BG_VRAM, 0x20, TRUE);
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32);
- sub_811D7D4(animType);
+ LoadBgGfxByAnimType(animType);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
TextWindow_SetUserSelectedFrame(0, 0x000, 0xe0);
CopyWindowToVram(0, 3);
@@ -365,7 +365,7 @@ void PSA_FreeWindowBuffers(void)
FreeAllWindowBuffers();
}
-void sub_811D2A8(void)
+void PSA_ShowMessageWindow(void)
{
PutWindowTilemap(0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
@@ -373,7 +373,7 @@ void sub_811D2A8(void)
CopyWindowToVram(0, 3);
}
-void sub_811D2D0(void)
+void PSA_HideMessageWindow(void)
{
ClearWindowTilemap(0);
ClearStdWindowAndFrameToTransparent(0, FALSE);
@@ -445,7 +445,7 @@ void PSA_PrintMessage(u8 messageId)
AddTextPrinterParameterized5(0, 2, scene->textBuf, strWidth, 0, textSpeed, NULL, 0, 4);
}
-void sub_811D4D4(void)
+void PSA_AfterPoof_ClearMessageWindow(void)
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
CopyWindowToVram(0, 2);
@@ -456,22 +456,22 @@ bool8 PSA_IsMessagePrintTaskActive(void)
return IsTextPrinterActive(0);
}
-void sub_811D4FC(void)
+void PSA_DarkenMonSprite(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
scene->state = 0;
BlendPalettes((0x10000 << IndexOfSpritePaletteTag(0)) | 4, 16, RGB_BLACK);
- sub_811E204(scene);
+ CreateStarSprites(scene);
}
-bool8 sub_811D530(void)
+bool8 PSA_RunPoofAnim(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
switch (scene->state)
{
case 0:
- if (!sub_811E2F4())
+ if (!AnyStarSpritesActive())
{
BeginNormalPaletteFade((0x10000 << IndexOfSpritePaletteTag(0)) | 4, -1, 16, 0, RGB_BLACK);
scene->state++;
@@ -485,29 +485,29 @@ bool8 sub_811D530(void)
return TRUE;
}
-void sub_811D5A0(void)
+void PSA_UseTM_SetUpZoomOutAnim(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
scene->state = 0;
}
-void sub_811D5B0(void)
+void PSA_UseTM_CleanUpForCancel(void)
{
- sub_811E388();
+ StopMakingOutwardSpiralDots();
ResetPaletteFadeControl();
}
-bool8 sub_811D5C0(void)
+bool8 PSA_UseTM_RunZoomOutAnim(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
switch (scene->state)
{
case 0:
- sub_811E194(0);
+ StartZoomOutAnimForUseTM(0);
scene->state++;
break;
case 1:
- if (!sub_811D9A8())
+ if (!PSA_IsZoomTaskActive())
{
scene->field_0004 = 0;
scene->state++;
@@ -530,7 +530,7 @@ bool8 sub_811D5C0(void)
scene->field_0004 = 0;
PlaySE(SE_W025);
BeginNormalPaletteFade(0x00000001, 2, 0, 12, RGB(8, 13, 31));
- sub_811E348(scene);
+ PSAScene_SeedRandomInTask(scene);
scene->state++;
}
break;
@@ -546,7 +546,7 @@ bool8 sub_811D5C0(void)
break;
case 6:
scene->field_0004++;
- if (!sub_811E5A4() && scene->field_0004 > 40)
+ if (!IsOutwardSpiralDotsTaskRunning() && scene->field_0004 > 40)
{
scene->field_0004 = 0;
scene->state++;
@@ -570,74 +570,78 @@ bool8 sub_811D5C0(void)
return TRUE;
}
-void sub_811D6EC(void)
+void PSA_UseTM_SetUpMachineSetWobble(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
scene->state = 0;
}
-bool8 sub_811D6FC(void)
+bool8 PSA_UseTM_RunMachineSetWobble(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
switch (scene->state)
{
case 0:
- sub_811E10C();
+ MachineSetWobbleInit();
PlaySE(SE_MU_PACHI);
scene->state++;
break;
case 1:
- return sub_811E138();
+ return MachineSetWobbleCBIsRunning();
}
return TRUE;
}
-static void sub_811D734(void)
+// There may once have been plans to put the battle level up
+// anim in with using Rare Candy, but they were scrapped
+// at a later stage of development
+
+UNUSED void PSA_CreateLevelUpVerticalSpritesTask(void)
{
- sub_811E5B8(120, 56, 4, 4, 2, 0);
+ CreateLevelUpVerticalSpritesTask(120, 56, 4, 4, 2, 0);
}
-bool8 sub_811D754(void)
+bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void)
{
- return sub_811E680();
+ return LevelUpVerticalSpritesTaskIsRunning();
}
-static void sub_811D764(u16 *statsBefore, u16 *statsAfter)
+UNUSED void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter)
{
DrawTextBorderOuter(1, 0x001, 0xE);
DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
PutWindowTilemap(1);
CopyWindowToVram(1, 3);
}
-static void sub_811D7A0(u16 *currStats)
+UNUSED void PSA_DrawLevelUpWindowPg2(u16 *currStats)
{
DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(1, 2);
}
-static bool8 sub_811D7C4(void)
+UNUSED bool8 PSA_IsCopyingLevelUpWindowToVram(void)
{
return IsDma3ManagerBusyWithBgCopy();
}
-static void sub_811D7D4(u16 animType)
+static void LoadBgGfxByAnimType(u16 animType)
{
- CopyToBgTilemapBuffer(3, gUnknown_845973C, 0, 0x000);
- DecompressAndCopyTileDataToVram(3, gUnknown_845967C, 0, 0x000, 0);
+ CopyToBgTilemapBuffer(3, sBg3Map_PSA, 0, 0x000);
+ DecompressAndCopyTileDataToVram(3, sBg3Tiles_PSA, 0, 0x000, 0);
if (animType != 4)
- LoadPalette(gUnknown_845963C, 0x00, 0x20);
+ LoadPalette(sBgPals_PSA_Any, 0x00, 0x20);
else
- LoadPalette(gUnknown_845965C, 0x00, 0x20);
+ LoadPalette(sBgPals_PSA_Anim4, 0x00, 0x20);
}
-void sub_811D830(u8 closeness)
+void PSA_CreateMonSpriteAtCloseness(u8 closeness)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
struct Pokemon * pokemon = PSA_GetPokemon();
u16 species = GetMonData(pokemon, MON_DATA_SPECIES);
u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
- u8 r1 = sub_812EA78(species, personality, 2);
+ u8 r1 = Menu2_GetMonSpriteAnchorCoord(species, personality, 2);
void * r6;
void * r9;
void * r4;
@@ -645,13 +649,13 @@ void sub_811D830(u8 closeness)
if (r1 != 0xFF)
{
- scene->field_0006 = 0x48;
- scene->field_0008 = r1 + 0x30;
+ scene->monSpriteY1 = 0x48;
+ scene->monSpriteY2 = r1 + 0x30;
}
else
{
- scene->field_0006 = 0x48;
- scene->field_0008 = 0x60;
+ scene->monSpriteY1 = 0x48;
+ scene->monSpriteY2 = 0x60;
}
r6 = Alloc(0x2000);
@@ -662,123 +666,133 @@ void sub_811D830(u8 closeness)
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], r6, species, personality);
LZ77UnCompWram(GetMonFrontSpritePal(pokemon), r4);
LoadMonSpriteGraphics(r6, r4);
- spriteId = CreateSprite(&sSpriteTemplate_MonSprite, 120, scene->field_0006, 4);
+ spriteId = CreateSprite(&sSpriteTemplate_MonSprite, 120, scene->monSpriteY1, 4);
if (spriteId != MAX_SPRITES)
{
scene->monSprite = &gSprites[spriteId];
- sub_811DB14(scene->monSprite, closeness);
+ MonSpriteZoom_UpdateYPos(scene->monSprite, closeness);
}
else
scene->monSprite = NULL;
- scene->field_000a = closeness;
+ scene->lastCloseness = closeness;
}
if (r6 != NULL) Free(r6);
if (r9 != NULL) Free(r9);
if (r4 != NULL) Free(r4);
}
+#define tState data[0]
+#define tCurrCloseness data[1]
+#define tFinalCloseness data[2]
+#define tDeltaCloseness data[3]
+#define tTimer data[4]
+#define tDelay data[5]
+#define tOff_MonSprite 6
+#define tHasItemSprite data[8]
+#define tOff_ItemSprite 9
+
void PSA_SetUpZoomAnim(u8 closeness)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
u8 taskId;
- if (closeness != scene->field_000a)
+ if (closeness != scene->lastCloseness)
{
- taskId = CreateTask(sub_811D9BC, 4);
- SetWordTaskArg(taskId, 6, (uintptr_t)scene->monSprite);
- gTasks[taskId].data[1] = scene->field_000a;
- gTasks[taskId].data[2] = closeness;
- gTasks[taskId].data[5] = 6;
- if (closeness > scene->field_000a)
- gTasks[taskId].data[3] = 1;
+ taskId = CreateTask(Task_ZoomAnim, 4);
+ SetWordTaskArg(taskId, tOff_MonSprite, (uintptr_t)scene->monSprite);
+ gTasks[taskId].tCurrCloseness = scene->lastCloseness;
+ gTasks[taskId].tFinalCloseness = closeness;
+ gTasks[taskId].tDelay = 6;
+ if (closeness > scene->lastCloseness)
+ gTasks[taskId].tDeltaCloseness = 1;
else
- gTasks[taskId].data[3] = -1;
+ gTasks[taskId].tDeltaCloseness = -1;
}
}
-bool8 sub_811D9A8(void)
+bool8 PSA_IsZoomTaskActive(void)
{
- return FuncIsActiveTask(sub_811D9BC);
+ return FuncIsActiveTask(Task_ZoomAnim);
}
-static void sub_811D9BC(u8 taskId)
+static void Task_ZoomAnim(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- struct Sprite * sprite = (void *)GetWordTaskArg(taskId, 6);
- switch (data[0])
+ struct Sprite * sprite = (void *)GetWordTaskArg(taskId, tOff_MonSprite);
+ switch (tState)
{
case 0:
- sub_811DA9C(sprite, data[1]);
- if (data[8])
- sub_811DA9C((void *)GetWordTaskArg(taskId, 9), data[1]);
- data[1] += data[3];
- data[0]++;
+ SetSpriteWithCloseness(sprite, tCurrCloseness);
+ if (tHasItemSprite)
+ SetSpriteWithCloseness((void *)GetWordTaskArg(taskId, tOff_ItemSprite), tCurrCloseness);
+ tCurrCloseness += tDeltaCloseness;
+ tState++;
break;
case 1:
- if (!sub_811DAAC(sprite))
+ if (!IsZoomSpriteCBActive(sprite))
{
PlaySE(SE_TB_KARA);
- sub_811DB14(sprite, data[1]);
- if (data[8])
- sub_811DB48((void *)GetWordTaskArg(taskId, 9), data[1]);
- if (data[1] == data[2])
+ MonSpriteZoom_UpdateYPos(sprite, tCurrCloseness);
+ if (tHasItemSprite)
+ ItemSpriteZoom_UpdateYPos((void *)GetWordTaskArg(taskId, tOff_ItemSprite), tCurrCloseness);
+ if (tCurrCloseness == tFinalCloseness)
{
- PSA_GetSceneWork()->field_000a = data[2];
+ PSA_GetSceneWork()->lastCloseness = tFinalCloseness;
DestroyTask(taskId);
}
else
{
- data[4] = 0;
- data[0] = 2;
+ tTimer = 0;
+ tState = 2;
}
}
break;
case 2:
- data[4]++;
- if (data[4] > data[5])
- data[0] = 0;
+ tTimer++;
+ if (tTimer > tDelay)
+ tState = 0;
break;
}
}
-static void sub_811DA9C(struct Sprite * sprite, u8 closeness)
+static void SetSpriteWithCloseness(struct Sprite * sprite, u8 closeness)
{
sprite->data[0] = 0;
sprite->data[1] = 0;
sprite->data[2] = closeness;
}
-static bool8 sub_811DAAC(struct Sprite * sprite)
+static bool8 IsZoomSpriteCBActive(struct Sprite * sprite)
{
return sprite->callback != SpriteCallbackDummy;
}
-static s16 sub_811DAC0(s16 pos, u8 closeness)
+static s16 GetSpriteOffsetByScale(s16 pos, u8 closeness)
{
return (pos * sAffineScales[closeness]) >> 8;
}
// FIXME: better math
-static u16 sub_811DADC(u16 pos)
+static u16 GetYPosByScale(u16 pos)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
- s32 v = ((((((scene->field_0008 - scene->field_0006) << 16) >> 8) / 256 * (pos - 256)) << 8) >> 16);
- return v += scene->field_0006;
+ s32 v = ((((((scene->monSpriteY2 - scene->monSpriteY1) << 16) >> 8) / 256 * (pos - 256)) << 8) >> 16);
+ return v += scene->monSpriteY1;
}
-static void sub_811DB14(struct Sprite * sprite, u8 closeness)
+static void MonSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness)
{
if (closeness > 3)
closeness = 3;
PSA_GetSceneWork(); // return value not used
StartSpriteAffineAnim(sprite, closeness);
- sprite->pos1.y = sub_811DADC(sAffineScales[closeness]);
+ sprite->pos1.y = GetYPosByScale(sAffineScales[closeness]);
}
-static void sub_811DB48(struct Sprite * sprite, u8 closeness)
+static void ItemSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness)
{
- sub_811DB14(sprite, closeness);
- sprite->pos2.x = sub_811DAC0(sprite->data[6] - 32, closeness);
- sprite->pos2.y = sub_811DAC0(sprite->data[7] - 32, closeness);
+ MonSpriteZoom_UpdateYPos(sprite, closeness);
+ sprite->pos2.x = GetSpriteOffsetByScale(sprite->data[6] - 32, closeness);
+ sprite->pos2.y = GetSpriteOffsetByScale(sprite->data[7] - 32, closeness);
}
static void StartMonWiggleAnim(struct PokemonSpecialAnimScene * scene, u8 frameLen, u8 niter, u8 amplitude)
@@ -830,22 +844,44 @@ static void LoadMonSpriteGraphics(u16 *tiles, u16 *palette)
LoadSpritePalette(&spritePalette);
}
-void PSA_SetUpZoomOutMonTask(u16 itemId, u8 closeness, bool32 a2)
+#undef tOff_ItemSprite
+#undef tHasItemSprite
+#undef tOff_MonSprite
+#undef tDelay
+#undef tTimer
+#undef tDeltaCloseness
+#undef tFinalCloseness
+#undef tCurrCloseness
+#undef tState
+
+#define tState data[0]
+#define tTimer data[1]
+#define tCloseness data[2]
+#define tYpos data[3]
+#define tOff_ItemSprite 4
+#define tData6 data[6]
+#define tData7 data[7]
+#define tActiveSprCt data[8]
+#define tBlendColor data[9]
+#define tTimerReset data[10]
+#define tSuppressDots data[11]
+
+void PSA_SetUpItemUseOnMonAnim(u16 itemId, u8 closeness, bool32 a2)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
u8 taskId;
scene->itemIconSprite = PSA_CreateItemIconObject(itemId);
if (scene->itemIconSprite != NULL)
{
- sub_811E06C(scene, scene->itemIconSprite, closeness);
+ InitItemIconSpriteState(scene, scene->itemIconSprite, closeness);
StartSpriteAffineAnim(scene->itemIconSprite, closeness);
scene->itemIconSprite->invisible = TRUE;
- taskId = CreateTask(Task_ZoomOutMon, 2);
- SetWordTaskArg(taskId, 4, (uintptr_t)scene->itemIconSprite);
- gTasks[taskId].data[2] = closeness;
- gTasks[taskId].data[3] = sub_811DADC(sAffineScales[closeness]);
- gTasks[taskId].data[6] = a2;
- gTasks[taskId].data[9] = GetBlendColorByItemId(itemId);
+ taskId = CreateTask(Task_ItemUseOnMonAnim, 2);
+ SetWordTaskArg(taskId, tOff_ItemSprite, (uintptr_t)scene->itemIconSprite);
+ gTasks[taskId].tCloseness = closeness;
+ gTasks[taskId].tYpos = GetYPosByScale(sAffineScales[closeness]);
+ gTasks[taskId].tData6 = a2;
+ gTasks[taskId].tBlendColor = GetBlendColorByItemId(itemId);
}
}
@@ -854,18 +890,18 @@ static u16 GetBlendColorByItemId(u16 itemId)
return RGB_WHITE;
}
-void sub_811DCF0(u16 itemId)
+void CreateItemIconSpriteAtMaxCloseness(u16 itemId)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
scene->itemIconSprite = PSA_CreateItemIconObject(itemId);
if (scene->itemIconSprite != NULL)
{
StartSpriteAffineAnim(scene->itemIconSprite, 3);
- sub_811E06C(scene, scene->itemIconSprite, 3);
+ InitItemIconSpriteState(scene, scene->itemIconSprite, 3);
}
}
-struct Sprite * PSA_CreateItemIconObject(u16 itemId)
+static struct Sprite * PSA_CreateItemIconObject(u16 itemId)
{
u8 spriteId;
struct Sprite * sprite;
@@ -881,38 +917,38 @@ struct Sprite * PSA_CreateItemIconObject(u16 itemId)
return &gSprites[spriteId];
}
-bool8 PSA_IsZoomOutMonTaskRunning(void)
+bool8 PSA_IsItemUseOnMonAnimActive(void)
{
- return FuncIsActiveTask(Task_ZoomOutMon);
+ return FuncIsActiveTask(Task_ItemUseOnMonAnim);
}
-static void Task_ZoomOutMon(u8 taskId)
+static void Task_ItemUseOnMonAnim(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- struct Sprite * sprite = (void *)GetWordTaskArg(taskId, 4);
- switch (data[0])
+ struct Sprite * sprite = (void *)GetWordTaskArg(taskId, tOff_ItemSprite);
+ switch (tState)
{
case 0:
- data[1]++;
- if (data[1] > 20)
+ tTimer++;
+ if (tTimer > 20)
{
- data[1] = 0;
+ tTimer = 0;
PlaySE(SE_W207B);
sprite->invisible = FALSE;
- if (!data[11])
- sub_811E588();
- data[0] = 1;
+ if (!tSuppressDots)
+ LoadOutwardSpiralDotsGfx();
+ tState = 1;
}
break;
case 1:
- data[1]++;
- if (data[1] > 30)
+ tTimer++;
+ if (tTimer > 30)
{
- data[1] = 0;
- sprite->affineAnims = gUnknown_8459AA8;
- StartSpriteAffineAnim(sprite, data[2]);
- BeginNormalPaletteFade(0x10000 << IndexOfSpritePaletteTag(1), -2, 0, 12, data[9]);
- data[0] = 2;
+ tTimer = 0;
+ sprite->affineAnims = sAffineAnimTable_ItemZoom;
+ StartSpriteAffineAnim(sprite, tCloseness);
+ BeginNormalPaletteFade(0x10000 << IndexOfSpritePaletteTag(1), -2, 0, 12, tBlendColor);
+ tState = 2;
PlaySE(SE_W208);
}
break;
@@ -920,30 +956,30 @@ static void Task_ZoomOutMon(u8 taskId)
if (sprite->affineAnimEnded)
{
sprite->invisible = TRUE;
- data[10] = 20;
- data[0] = 3;
+ tTimerReset = 20;
+ tState = 3;
}
break;
case 3:
- data[1]++;
- if (data[1] > data[10])
+ tTimer++;
+ if (tTimer > tTimerReset)
{
- data[1] = 0;
- if (!data[11])
+ tTimer = 0;
+ if (!tSuppressDots)
CreateSprites_UseItem_OutwardSpiralDots(taskId, data, sprite);
- if (data[7] == 0)
+ if (tData7 == 0)
PlaySE(SE_W179);
- data[7]++;
- if (data[7] > 2)
- data[0] = 4;
+ tData7++;
+ if (tData7 > 2)
+ tState = 4;
else
- data[10] = 8;
+ tTimerReset = 8;
}
break;
case 4:
- if (data[8] == 0)
+ if (tActiveSprCt == 0)
{
- if (data[6] != 0)
+ if (tData6)
DestroySprite(sprite);
DestroyTask(taskId);
}
@@ -957,7 +993,7 @@ static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct
int y = sprite->pos1.y + sprite->pos2.y - 4;
u8 spriteId;
int i;
- BlendPalettes(0x10000 << IndexOfSpritePaletteTag(5), 16, data[9]);
+ BlendPalettes(0x10000 << IndexOfSpritePaletteTag(5), 16, tBlendColor);
for (i = 0; i < 15; i++)
{
spriteId = CreateSprite(&sSpriteTemplate_UseItem_OutwardSpiralDots, x, y, 0);
@@ -965,14 +1001,14 @@ static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct
{
gSprites[spriteId].data[1] = i << 4;
gSprites[spriteId].data[7] = taskId;
- gSprites[spriteId].callback = sub_811DFC0;
+ gSprites[spriteId].callback = SpriteCB_OutwardSpiralDots;
StartSpriteAnim(&gSprites[spriteId], 1);
- data[8]++;
+ tActiveSprCt++;
}
}
}
-static void sub_811DFC0(struct Sprite * sprite)
+static void SpriteCB_OutwardSpiralDots(struct Sprite * sprite)
{
s16 *data = sprite->data;
if (data[0] < 16)
@@ -986,35 +1022,35 @@ static void sub_811DFC0(struct Sprite * sprite)
}
else
{
- gTasks[data[7]].data[8]--;
+ gTasks[data[7]].tActiveSprCt--;
DestroySprite(sprite);
}
}
-void sub_811E040(void)
+void PSA_UseItem_CleanUpForCancel(void)
{
- u8 taskId = FindTaskIdByFunc(Task_ZoomOutMon);
+ u8 taskId = FindTaskIdByFunc(Task_ItemUseOnMonAnim);
if (taskId != 0xFF)
{
- gTasks[taskId].data[11] = TRUE;
+ gTasks[taskId].tSuppressDots = TRUE;
}
}
-static void sub_811E06C(struct PokemonSpecialAnimScene * scene, struct Sprite * sprite, u8 closeness)
+static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite * sprite, u8 closeness)
{
u16 species;
u32 personality;
- register int r4 asm("r4"); // FIXME
- u8 r0;
+ register int x asm("r4"); // FIXME
+ u8 y;
if (closeness == 3)
{
sprite->pos1.x = 120;
- sprite->pos1.y = scene->field_0008;
+ sprite->pos1.y = scene->monSpriteY2;
}
else
{
sprite->pos1.x = 120;
- sprite->pos1.y = scene->field_0006;
+ sprite->pos1.y = scene->monSpriteY1;
}
sprite->pos1.x += 4;
sprite->pos1.y += 4;
@@ -1022,44 +1058,56 @@ static void sub_811E06C(struct PokemonSpecialAnimScene * scene, struct Sprite *
personality = PSA_GetMonPersonality();
if (PSA_GetAnimType() == 4)
{
- r4 = sub_812EA78(species, personality, 0);
- r0 = sub_812EA78(species, personality, 1);
+ x = Menu2_GetMonSpriteAnchorCoord(species, personality, 0);
+ y = Menu2_GetMonSpriteAnchorCoord(species, personality, 1);
}
else
{
- r4 = sub_812EA78(species, personality, 3);
- r0 = sub_812EA78(species, personality, 4);
+ x = Menu2_GetMonSpriteAnchorCoord(species, personality, 3);
+ y = Menu2_GetMonSpriteAnchorCoord(species, personality, 4);
}
- if (r4 == 0xFF)
- r4 = 0;
- if (r0 == 0xFF)
- r0 = 0;
- sprite->data[6] = r4;
- sprite->data[7] = r0;
- sub_811DB48(sprite, closeness);
-}
-
-static void sub_811E10C(void)
+ if (x == 0xFF)
+ x = 0;
+ if (y == 0xFF)
+ y = 0;
+ sprite->data[6] = x;
+ sprite->data[7] = y;
+ ItemSpriteZoom_UpdateYPos(sprite, closeness);
+}
+
+#undef tSuppressDots
+#undef tTimerReset
+#undef tBlendColor
+#undef tActiveSprCt
+#undef tData7
+#undef tData6
+#undef tOff_ItemSprite
+#undef tYpos
+#undef tCloseness
+#undef tTimer
+#undef tState
+
+static void MachineSetWobbleInit(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
- sub_811E128(scene->monSprite);
- sub_811E128(scene->itemIconSprite);
+ MachineSetWobble_SetCB(scene->monSprite);
+ MachineSetWobble_SetCB(scene->itemIconSprite);
}
-static void sub_811E128(struct Sprite * sprite)
+static void MachineSetWobble_SetCB(struct Sprite * sprite)
{
sprite->data[0] = 0;
sprite->data[1] = 0;
- sprite->callback = sub_811E154;
+ sprite->callback = SpriteCB_MachineSetWobble;
}
-static bool8 sub_811E138(void)
+static bool8 MachineSetWobbleCBIsRunning(void)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
return scene->monSprite->callback != SpriteCallbackDummy;
}
-static void sub_811E154(struct Sprite * sprite)
+static void SpriteCB_MachineSetWobble(struct Sprite * sprite)
{
switch (sprite->data[0])
{
@@ -1078,57 +1126,78 @@ static void sub_811E154(struct Sprite * sprite)
}
}
-static void sub_811E194(u8 a0)
+// Redefined from above
+#define tState data[0]
+#define tCurrCloseness data[1]
+#define tFinalCloseness data[2]
+#define tDeltaCloseness data[3]
+#define tTimer data[4]
+#define tDelay data[5]
+#define tOff_MonSprite 6
+#define tHasItemSprite data[8]
+#define tOff_ItemSprite 9
+
+static void StartZoomOutAnimForUseTM(u8 closeness)
{
struct PokemonSpecialAnimScene * scene = PSA_GetSceneWork();
u8 taskId;
- if (a0 != scene->field_000a)
+ if (closeness != scene->lastCloseness)
{
- taskId = CreateTask(sub_811D9BC, 1);
- SetWordTaskArg(taskId, 6, (uintptr_t)scene->monSprite);
- SetWordTaskArg(taskId, 9, (uintptr_t)scene->itemIconSprite);
- gTasks[taskId].data[1] = scene->field_000a;
- gTasks[taskId].data[2] = a0;
- gTasks[taskId].data[8] = 1;
- gTasks[taskId].data[5] = 6;
- if (a0 > scene->field_000a)
- gTasks[taskId].data[3] = 1;
+ taskId = CreateTask(Task_ZoomAnim, 1);
+ SetWordTaskArg(taskId, tOff_MonSprite, (uintptr_t)scene->monSprite);
+ SetWordTaskArg(taskId, tOff_ItemSprite, (uintptr_t)scene->itemIconSprite);
+ gTasks[taskId].tCurrCloseness = scene->lastCloseness;
+ gTasks[taskId].tFinalCloseness = closeness;
+ gTasks[taskId].tHasItemSprite = 1;
+ gTasks[taskId].tDelay = 6;
+ if (closeness > scene->lastCloseness)
+ gTasks[taskId].tDeltaCloseness = 1;
else
- gTasks[taskId].data[3] = -1;
+ gTasks[taskId].tDeltaCloseness = -1;
}
}
-static void sub_811E204(struct PokemonSpecialAnimScene * scene)
+#undef tOff_ItemSprite
+#undef tHasItemSprite
+#undef tOff_MonSprite
+#undef tDelay
+#undef tTimer
+#undef tDeltaCloseness
+#undef tFinalCloseness
+#undef tCurrCloseness
+#undef tState
+
+static void CreateStarSprites(struct PokemonSpecialAnimScene * scene)
{
int i;
u8 spriteId;
u16 species;
u32 personality;
- LoadCompressedSpriteSheet(&gUnknown_84599B8);
- LoadSpritePalette(&gUnknown_84599C0);
+ LoadCompressedSpriteSheet(&sSpriteSheet_Star);
+ LoadSpritePalette(&sSpritePalette_Star);
scene->field_0002 = 0;
for (i = 0; i < 3; i++)
{
- spriteId = CreateSprite(&gUnknown_8459AEC, 120 + gUnknown_84599B2[i][0], scene->field_0008 + gUnknown_84599B2[i][1], 2);
+ spriteId = CreateSprite(&sSpriteTemplate_Star, 120 + sStarCoordOffsets[i][0], scene->monSpriteY2 + sStarCoordOffsets[i][1], 2);
if (spriteId != MAX_SPRITES)
{
species = PSA_GetMonSpecies();
personality = PSA_GetMonPersonality();
- gSprites[spriteId].data[3] = gUnknown_84599B2[i][0] * 8;
- gSprites[spriteId].data[4] = gUnknown_84599B2[i][1] * 8;
- gSprites[spriteId].pos1.x += sub_811DAC0(sub_812EAE4(species, personality, 0), 3);
- gSprites[spriteId].pos1.y += sub_811DAC0(sub_812EAE4(species, personality, 1), 3);
+ gSprites[spriteId].data[3] = sStarCoordOffsets[i][0] * 8;
+ gSprites[spriteId].data[4] = sStarCoordOffsets[i][1] * 8;
+ gSprites[spriteId].pos1.x += GetSpriteOffsetByScale(Menu2_GetMonSpriteAnchorCoordMinusx20(species, personality, 0), 3);
+ gSprites[spriteId].pos1.y += GetSpriteOffsetByScale(Menu2_GetMonSpriteAnchorCoordMinusx20(species, personality, 1), 3);
scene->field_0002++;
}
}
}
-static u8 sub_811E2F4(void)
+static u8 AnyStarSpritesActive(void)
{
return PSA_GetSceneWork()->field_0002;
}
-static void sub_811E300(struct Sprite * sprite)
+static void SpriteCB_Star(struct Sprite * sprite)
{
sprite->data[0]++;
if (sprite->data[0] < 10)
@@ -1145,23 +1214,40 @@ static void sub_811E300(struct Sprite * sprite)
}
}
-static void sub_811E348(struct PokemonSpecialAnimScene * scene)
+// ========================================================
+
+#define tState data[0]
+#define tTimer data[1]
+#define tActiveSprCt data[2]
+#define tOff_RngState 3
+#define tAngle data[5]
+#define tMadeSprCt data[6]
+
+#define tsRadius data[0]
+#define tsSpeed data[1]
+#define tsXinit data[2]
+#define tsYinit data[3]
+#define tsXorig data[4]
+#define tsYorig data[5]
+#define tsTaskId data[6]
+
+static void PSAScene_SeedRandomInTask(struct PokemonSpecialAnimScene * scene)
{
u8 taskId;
- sub_811E588();
- taskId = CreateTask(sub_811E3B4, 1);
- SetWordTaskArg(taskId, 3, 2022069025);
- gTasks[taskId].data[5] = 224;
+ LoadOutwardSpiralDotsGfx();
+ taskId = CreateTask(Task_UseItem_OutwardSpiralDots, 1);
+ SetWordTaskArg(taskId, tOff_RngState, 2022069025);
+ gTasks[taskId].tAngle = 0xE0;
}
-static void sub_811E388(void)
+static void StopMakingOutwardSpiralDots(void)
{
- u8 taskId = FindTaskIdByFunc(sub_811E3B4);
+ u8 taskId = FindTaskIdByFunc(Task_UseItem_OutwardSpiralDots);
if (taskId != 0xFF)
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tState = 1;
}
-static void sub_811E3B4(u8 taskId)
+static void Task_UseItem_OutwardSpiralDots(u8 taskId)
{
s16 *data = gTasks[taskId].data;
struct Sprite * sprite;
@@ -1169,52 +1255,52 @@ static void sub_811E3B4(u8 taskId)
register int y asm("r10"); // FIXME
int x2;
int y2;
- int r0;
+ int ampl;
u8 spriteId;
- switch (data[0])
+ switch (tState)
{
case 0:
- if (data[1] == 0)
+ if (tTimer == 0)
{
sprite = PSA_GetSceneWork()->itemIconSprite;
x = sprite->pos1.x + sprite->pos2.x;
y = sprite->pos1.y + sprite->pos2.y;
- r0 = (sub_811E4EC(taskId) % 21) + 70;
- x2 = x + ((u32)(gSineTable[data[5] + 0x40] * r0) >> 8);
- y2 = y + ((u32)(gSineTable[data[5] ] * r0) >> 8);
- data[5] += 76;
- data[5] &= 0xFF;
+ ampl = (PSAScene_RandomFromTask(taskId) % 21) + 70;
+ x2 = x + ((u32)(gSineTable[tAngle + 0x40] * ampl) >> 8);
+ y2 = y + ((u32)(gSineTable[tAngle ] * ampl) >> 8);
+ tAngle += 0x4C;
+ tAngle &= 0xFF;
spriteId = CreateSprite(&sSpriteTemplate_UseItem_OutwardSpiralDots, x2, y2, 0);
if (spriteId != MAX_SPRITES)
{
- gSprites[spriteId].data[0] = 0;
- gSprites[spriteId].data[1] = (sub_811E4EC(taskId) & 1) + 6;
- gSprites[spriteId].data[2] = x2;
- gSprites[spriteId].data[3] = y2;
- gSprites[spriteId].data[4] = x;
- gSprites[spriteId].data[5] = y;
- gSprites[spriteId].data[6] = taskId;
- data[2]++;
+ gSprites[spriteId].tsRadius = 0;
+ gSprites[spriteId].tsSpeed = (PSAScene_RandomFromTask(taskId) & 1) + 6;
+ gSprites[spriteId].tsXinit = x2;
+ gSprites[spriteId].tsYinit = y2;
+ gSprites[spriteId].tsXorig = x;
+ gSprites[spriteId].tsYorig = y;
+ gSprites[spriteId].tsTaskId = taskId;
+ tActiveSprCt++;
}
- data[6]++;
- if (data[6] > 47)
- data[0]++;
+ tMadeSprCt++;
+ if (tMadeSprCt > 47)
+ tState++;
}
else
- data[1]--;
+ tTimer--;
break;
case 1:
- if (data[2] == 0)
+ if (tActiveSprCt == 0)
DestroyTask(taskId);
break;
}
}
-static u16 sub_811E4EC(u8 taskId)
+static u16 PSAScene_RandomFromTask(u8 taskId)
{
- u32 state = GetWordTaskArg(taskId, 3);
+ u32 state = GetWordTaskArg(taskId, tOff_RngState);
state = state * 1103515245 + 24691;
- SetWordTaskArg(taskId, 3, state);
+ SetWordTaskArg(taskId, tOff_RngState, state);
return state >> 16;
}
@@ -1222,120 +1308,170 @@ static void SpriteCallback_UseItem_OutwardSpiralDots(struct Sprite * sprite)
{
int x;
int y;
- sprite->data[0] += sprite->data[1];
- if (sprite->data[0] > 255)
+ sprite->tsRadius += sprite->tsSpeed;
+ if (sprite->tsRadius > 255)
{
- gTasks[sprite->data[6]].data[2]--;
+ gTasks[sprite->tsTaskId].tActiveSprCt--;
DestroySprite(sprite);
}
else
{
- x = (sprite->data[4] - sprite->data[2]) * sprite->data[0];
- y = (sprite->data[5] - sprite->data[3]) * sprite->data[0];
- sprite->pos1.x = (x >> 8) + sprite->data[2];
- sprite->pos1.y = (y >> 8) + sprite->data[3];
+ x = (sprite->tsXorig - sprite->tsXinit) * sprite->tsRadius;
+ y = (sprite->tsYorig - sprite->tsYinit) * sprite->tsRadius;
+ sprite->pos1.x = (x >> 8) + sprite->tsXinit;
+ sprite->pos1.y = (y >> 8) + sprite->tsYinit;
}
}
-static void sub_811E588(void)
+static void LoadOutwardSpiralDotsGfx(void)
{
LoadCompressedSpriteSheet(&sSpriteSheet_UseItem_OutwardSpiralDots);
LoadSpritePalette(&sSpritePalette_UseItem_OutwardSpiralDots);
}
-static bool32 sub_811E5A4(void)
+static bool32 IsOutwardSpiralDotsTaskRunning(void)
{
- return FuncIsActiveTask(sub_811E3B4);
+ return FuncIsActiveTask(Task_UseItem_OutwardSpiralDots);
}
-void sub_811E5B8(u16 a0, u16 a1, u16 a2, u16 a3, u16 a4, u16 a5)
+#undef tsTaskId
+#undef tsYorig
+#undef tsXorig
+#undef tsYinit
+#undef tsXinit
+#undef tsSpeed
+#undef tsRadius
+
+#undef tMadeSprCt
+#undef tAngle
+#undef tOff_RngState
+#undef tActiveSprCt
+#undef tTimer
+#undef tState
+
+// ========================================================
+
+#define tState data[0]
+#define tActiveSprCt data[1]
+#define tMadeSprCt data[2]
+#define tTimer data[3]
+#define tXpos data[4]
+#define tYpos data[5]
+#define tTileTag data[6]
+#define tPaletteTag data[7]
+#define tPriority data[8]
+#define tSubpriority data[9]
+
+#define tsYsubpixel data[1]
+#define tsSpeed data[2]
+#define tsTaskId data[7]
+
+void CreateLevelUpVerticalSpritesTask(u16 x, u16 y, u16 tileTag, u16 paletteTag, u16 priority, u16 subpriority)
{
- static struct CompressedSpriteSheet gUnknown_3002030;
- static struct SpritePalette gUnknown_3002038;
+ static struct CompressedSpriteSheet spriteSheet;
+ static struct SpritePalette spritePalette;
u8 taskId;
- gUnknown_3002030.tag = a2;
- gUnknown_3002030.data = gUnknown_8459888;
- gUnknown_3002030.size = gUnknown_8459888[0] >> 8;
- gUnknown_3002038.data = gUnknown_8459868;
- gUnknown_3002038.tag = a3;
- LoadCompressedSpriteSheet(&gUnknown_3002030);
- LoadSpritePalette(&gUnknown_3002038);
- taskId = CreateTask(sub_811E694, 0);
- gTasks[taskId].data[4] = a0 - 32;
- gTasks[taskId].data[5] = a1 + 32;
- gTasks[taskId].data[6] = a2;
- gTasks[taskId].data[7] = a3;
- gTasks[taskId].data[8] = a4;
- gTasks[taskId].data[9] = a5;
+ spriteSheet.tag = tileTag;
+ spriteSheet.data = sSpriteTiles_LevelUpVertical;
+ spriteSheet.size = sSpriteTiles_LevelUpVertical[0] >> 8;
+ spritePalette.data = sSpritePals_LevelUpVertical;
+ spritePalette.tag = paletteTag;
+ LoadCompressedSpriteSheet(&spriteSheet);
+ LoadSpritePalette(&spritePalette);
+ taskId = CreateTask(Task_LevelUpVerticalSprites, 0);
+ gTasks[taskId].tXpos = x - 32;
+ gTasks[taskId].tYpos = y + 32;
+ gTasks[taskId].tTileTag = tileTag;
+ gTasks[taskId].tPaletteTag = paletteTag;
+ gTasks[taskId].tPriority = priority;
+ gTasks[taskId].tSubpriority = subpriority;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_NONE | BLDCNT_TGT2_ALL);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 6));
}
-bool8 sub_811E680(void)
+bool8 LevelUpVerticalSpritesTaskIsRunning(void)
{
- return FuncIsActiveTask(sub_811E694);
+ return FuncIsActiveTask(Task_LevelUpVerticalSprites);
}
-static void sub_811E694(u8 taskId)
+static void Task_LevelUpVerticalSprites(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- switch (data[0])
+ switch (tState)
{
case 0:
- if (data[3] == 0)
+ if (tTimer == 0)
{
- data[3]++;
- sub_811E710(taskId, data);
- if (data[2] > 17)
- data[0]++;
+ tTimer++;
+ CreateLevelUpVerticalSprite(taskId, data);
+ if (tMadeSprCt > 17)
+ tState++;
}
else
{
- data[3]++;
- if (data[3] == 2)
- data[3] = 0;
+ tTimer++;
+ if (tTimer == 2)
+ tTimer = 0;
}
break;
case 1:
- if (data[1] == 0)
+ if (tActiveSprCt == 0)
{
- FreeSpriteTilesByTag(data[6]);
- FreeSpritePaletteByTag(data[7]);
+ FreeSpriteTilesByTag(tTileTag);
+ FreeSpritePaletteByTag(tPaletteTag);
DestroyTask(taskId);
}
break;
}
}
-static void sub_811E710(u8 taskId, s16 *data)
+static void CreateLevelUpVerticalSprite(u8 taskId, s16 *data)
{
u8 spriteId;
- struct SpriteTemplate template = gUnknown_8459ACC;
- template.tileTag = data[6];
- template.paletteTag = data[7];
- data[2]++;
- spriteId = CreateSprite(&template, ((data[2] * 219) & 0x3F) + data[4], data[5], data[9]);
+ struct SpriteTemplate template = sSpriteTemplate_LevelUpVertical;
+ template.tileTag = tTileTag;
+ template.paletteTag = tPaletteTag;
+ tMadeSprCt++;
+ spriteId = CreateSprite(&template, ((tMadeSprCt * 219) & 0x3F) + tXpos, tYpos, tSubpriority);
if (spriteId != MAX_SPRITES)
{
- gSprites[spriteId].oam.priority = data[8];
- gSprites[spriteId].data[1] = 0;
- gSprites[spriteId].data[2] = ((data[2] * 1103515245 + 24691) & 0x3F) + 0x20;
- gSprites[spriteId].data[7] = taskId;
- data[1]++;
+ gSprites[spriteId].oam.priority = tPriority;
+ gSprites[spriteId].tsYsubpixel = 0;
+ // similar to the LCRNG in random.c, but seeding from data[2]
+ gSprites[spriteId].tsSpeed = ((tMadeSprCt * 1103515245 + 24691) & 0x3F) + 0x20;
+ gSprites[spriteId].tsTaskId = taskId;
+ tActiveSprCt++;
}
}
-static void sub_811E7B4(struct Sprite * sprite)
+static void SpriteCB_LevelUpVertical(struct Sprite * sprite)
{
- sprite->data[1] -= sprite->data[2];
- sprite->pos2.y = sprite->data[1] >> 4;
+ sprite->tsYsubpixel -= sprite->tsSpeed;
+ sprite->pos2.y = sprite->tsYsubpixel >> 4;
if (sprite->pos2.y < -0x40)
{
- gTasks[sprite->data[7]].data[1]--;
+ gTasks[sprite->tsTaskId].tActiveSprCt--;
DestroySprite(sprite);
}
}
+#undef tsTaskId
+#undef tsSpeed
+#undef tsYsubpixel
+
+#undef tSubpriority
+#undef tPriority
+#undef tPaletteTag
+#undef tTileTag
+#undef tYpos
+#undef tXpos
+#undef tTimer
+#undef tMadeSprCt
+#undef tActiveSprCt
+#undef tState
+
+// ========================================================
+
static const u8 *const sLevelUpWindowStatNames[] = {
gUnknown_841B2A9,
gUnknown_841B2B7,