diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/agb_flash.c | 7 | ||||
-rw-r--r-- | src/battle_anim_water.c | 85 | ||||
-rw-r--r-- | src/data/pokemon_graphics/back_pic_coordinates.h | 880 | ||||
-rw-r--r-- | src/data/pokemon_graphics/front_pic_coordinates.h | 880 | ||||
-rw-r--r-- | src/event_object_movement.c | 2 | ||||
-rwxr-xr-x | src/faraway_island.c | 191 |
6 files changed, 997 insertions, 1048 deletions
diff --git a/src/agb_flash.c b/src/agb_flash.c index a9cf13d5f..1ad9e47ec 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -127,7 +127,8 @@ void SetReadFlash1(u16 *dest) } } -void ReadFlash_Core(u8 *src, u8 *dest, u32 size) +// Using volatile here to make sure the flash memory will ONLY be read as bytes, to prevent any compiler optimizations. +void ReadFlash_Core(vu8 *src, u8 *dest, u32 size) { while (size-- != 0) { @@ -142,7 +143,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) u16 readFlash_Core_Buffer[0x40]; u16 *funcSrc; u16 *funcDest; - void (*readFlash_Core)(u8 *, u8 *, u32); + void (*readFlash_Core)(vu8 *, u8 *, u32); REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; @@ -164,7 +165,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) i--; } - readFlash_Core = (void (*)(u8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); + readFlash_Core = (void (*)(vu8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 5810b6bdc..88af2cdec 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -624,98 +624,24 @@ void AnimTask_RotateAuroraRingColors(u8 taskId) gTasks[taskId].func = AnimTask_RotateAuroraRingColors_Step; } -#ifdef NONMATCHING static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) { int i; u16 palIndex; - u16 *palPtr1; - u16 *palPtr2; - u16 rgbBuffer; if (++gTasks[taskId].data[10] == 3) { + u16 tempPlt; gTasks[taskId].data[10] = 0; palIndex = gTasks[taskId].data[2] + 1; - palPtr1 = &gPlttBufferFaded[palIndex]; - rgbBuffer = *palPtr1; - palPtr2 = &palPtr1[1]; - for (i = 0; i < 7; i++) - palPtr1[i] = palPtr2[i]; - gPlttBufferFaded[palIndex + 7] = rgbBuffer; + tempPlt = gPlttBufferFaded[palIndex]; + for (i = 1; i < 8; i++) + gPlttBufferFaded[palIndex + i - 1] = gPlttBufferFaded[palIndex + i]; + gPlttBufferFaded[palIndex + 7] = tempPlt; } if (++gTasks[taskId].data[11] == gTasks[taskId].data[0]) DestroyAnimVisualTask(taskId); } -#else -NAKED -static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) -{ - asm_unified("push {r4-r7,lr}\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - ldr r1, =gTasks\n\ - lsls r0, r4, 2\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - adds r2, r0, r1\n\ - ldrh r0, [r2, 0x1C]\n\ - adds r0, 0x1\n\ - strh r0, [r2, 0x1C]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - mov r12, r1\n\ - cmp r0, 0x3\n\ - bne _081075BE\n\ - movs r0, 0\n\ - strh r0, [r2, 0x1C]\n\ - ldrh r0, [r2, 0xC]\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - ldr r1, =gPlttBufferFaded\n\ - lsls r0, r5, 1\n\ - adds r0, r1\n\ - ldrh r6, [r0]\n\ - adds r7, r1, 0\n\ - adds r3, r0, 0x2\n\ - movs r1, 0x6\n\ - adds r2, r0, 0\n\ -_081075A8:\n\ - ldrh r0, [r3]\n\ - strh r0, [r2]\n\ - adds r3, 0x2\n\ - adds r2, 0x2\n\ - subs r1, 0x1\n\ - cmp r1, 0\n\ - bge _081075A8\n\ - adds r0, r5, 0x7\n\ - lsls r0, 1\n\ - adds r0, r7\n\ - strh r6, [r0]\n\ -_081075BE:\n\ - lsls r0, r4, 2\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - add r0, r12\n\ - ldrh r1, [r0, 0x1E]\n\ - adds r1, 0x1\n\ - strh r1, [r0, 0x1E]\n\ - lsls r1, 16\n\ - asrs r1, 16\n\ - movs r2, 0x8\n\ - ldrsh r0, [r0, r2]\n\ - cmp r1, r0\n\ - bne _081075DE\n\ - adds r0, r4, 0\n\ - bl DestroyAnimVisualTask\n\ -_081075DE:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n"); -} -#endif // For animating undulating beam attacks (e.g. Flamethrower, Hydro Pump, Signal Beam) static void AnimToTargetInSinWave(struct Sprite *sprite) @@ -822,6 +748,7 @@ static void AnimHydroCannonBeam(struct Sprite *sprite) if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT) gBattleAnimArgs[0] *= -1; } + if ((gBattleAnimArgs[5] & 0xFF00) == 0) animType = TRUE; else diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index 0a89f20c8..131ac13d9 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -3,2202 +3,2202 @@ const struct MonCoords gMonBackPicCoords[] = [SPECIES_NONE] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_BULBASAUR] = { .size = 0x64, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_IVYSAUR] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_VENUSAUR] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_CHARMANDER] = { .size = 0x65, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_CHARMELEON] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_CHARIZARD] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SQUIRTLE] = { .size = 0x65, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_WARTORTLE] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_BLASTOISE] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_CATERPIE] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_METAPOD] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_BUTTERFREE] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_WEEDLE] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_KAKUNA] = { .size = 0x46, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_BEEDRILL] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_PIDGEY] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_PIDGEOTTO] = { .size = 0x85, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_PIDGEOT] = { .size = 0x78, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_RATTATA] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_RATICATE] = { .size = 0x75, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_SPEAROW] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_FEAROW] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_EKANS] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_ARBOK] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_PIKACHU] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_RAICHU] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SANDSHREW] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_SANDSLASH] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_NIDORAN_F] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_NIDORINA] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_NIDOQUEEN] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_NIDORAN_M] = { .size = 0x56, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_NIDORINO] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_NIDOKING] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_CLEFAIRY] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_CLEFABLE] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_VULPIX] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_NINETALES] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_JIGGLYPUFF] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_WIGGLYTUFF] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ZUBAT] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_GOLBAT] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_ODDISH] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_GLOOM] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_VILEPLUME] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_PARAS] = { .size = 0x63, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_PARASECT] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_VENONAT] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_VENOMOTH] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_DIGLETT] = { .size = 0x54, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_DUGTRIO] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_MEOWTH] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_PERSIAN] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_PSYDUCK] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_GOLDUCK] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_MANKEY] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_PRIMEAPE] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_GROWLITHE] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ARCANINE] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_POLIWAG] = { .size = 0x74, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_POLIWHIRL] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_POLIWRATH] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_ABRA] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_KADABRA] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ALAKAZAM] = { .size = 0x67, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_MACHOP] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_MACHOKE] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_MACHAMP] = { .size = 0x67, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_BELLSPROUT] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_WEEPINBELL] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_VICTREEBEL] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_TENTACOOL] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_TENTACRUEL] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_GEODUDE] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_GRAVELER] = { .size = 0x75, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_GOLEM] = { .size = 0x84, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_PONYTA] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_RAPIDASH] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_SLOWPOKE] = { .size = 0x85, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_SLOWBRO] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_MAGNEMITE] = { .size = 0x43, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_MAGNETON] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_FARFETCHD] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_DODUO] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_DODRIO] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SEEL] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_DEWGONG] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_GRIMER] = { .size = 0x75, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_MUK] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_SHELLDER] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_CLOYSTER] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_GASTLY] = { .size = 0x85, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_HAUNTER] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_GENGAR] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_ONIX] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_DROWZEE] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_HYPNO] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_KRABBY] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_KINGLER] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_VOLTORB] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_ELECTRODE] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_EXEGGCUTE] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_EXEGGUTOR] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_CUBONE] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_MAROWAK] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_HITMONLEE] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_HITMONCHAN] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_LICKITUNG] = { .size = 0x65, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_KOFFING] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_WEEZING] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_RHYHORN] = { .size = 0x85, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_RHYDON] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_CHANSEY] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_TANGELA] = { .size = 0x85, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_KANGASKHAN] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_HORSEA] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SEADRA] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_GOLDEEN] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SEAKING] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_STARYU] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_STARMIE] = { .size = 0x85, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_MR_MIME] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_SCYTHER] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_JYNX] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_ELECTABUZZ] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MAGMAR] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_PINSIR] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_TAUROS] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_MAGIKARP] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_GYARADOS] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_LAPRAS] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_DITTO] = { .size = 0x54, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_EEVEE] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_VAPOREON] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_JOLTEON] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_FLAREON] = { .size = 0x67, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_PORYGON] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_OMANYTE] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_OMASTAR] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_KABUTO] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_KABUTOPS] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_AERODACTYL] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SNORLAX] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_ARTICUNO] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_ZAPDOS] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_MOLTRES] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_DRATINI] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_DRAGONAIR] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_DRAGONITE] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_MEWTWO] = { .size = 0x78, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_MEW] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_CHIKORITA] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_BAYLEEF] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MEGANIUM] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CYNDAQUIL] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_QUILAVA] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_TYPHLOSION] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_TOTODILE] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_CROCONAW] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_FERALIGATR] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SENTRET] = { .size = 0x67, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_FURRET] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_HOOTHOOT] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_NOCTOWL] = { .size = 0x68, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_LEDYBA] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_LEDIAN] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_SPINARAK] = { .size = 0x73, - .y_offset = 0x15, + .y_offset = 21, }, [SPECIES_ARIADOS] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_CROBAT] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_CHINCHOU] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_LANTURN] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_PICHU] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_CLEFFA] = { .size = 0x65, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_IGGLYBUFF] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_TOGEPI] = { .size = 0x54, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_TOGETIC] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_NATU] = { .size = 0x54, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_XATU] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MAREEP] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_FLAAFFY] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_AMPHAROS] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_BELLOSSOM] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_MARILL] = { .size = 0x75, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_AZUMARILL] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SUDOWOODO] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_POLITOED] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_HOPPIP] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_SKIPLOOM] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_JUMPLUFF] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_AIPOM] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SUNKERN] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SUNFLORA] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_YANMA] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_WOOPER] = { .size = 0x85, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_QUAGSIRE] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ESPEON] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_UMBREON] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_MURKROW] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SLOWKING] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MISDREAVUS] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN] = { .size = 0x36, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_WOBBUFFET] = { .size = 0x75, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_GIRAFARIG] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_PINECO] = { .size = 0x65, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_FORRETRESS] = { .size = 0x84, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_DUNSPARCE] = { .size = 0x85, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_GLIGAR] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_STEELIX] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SNUBBULL] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_GRANBULL] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_QWILFISH] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_SCIZOR] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SHUCKLE] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_HERACROSS] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SNEASEL] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_TEDDIURSA] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_URSARING] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_SLUGMA] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MAGCARGO] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SWINUB] = { .size = 0x63, - .y_offset = 0x15, + .y_offset = 21, }, [SPECIES_PILOSWINE] = { .size = 0x75, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_CORSOLA] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_REMORAID] = { .size = 0x75, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_OCTILLERY] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_DELIBIRD] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_MANTINE] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_SKARMORY] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_HOUNDOUR] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_HOUNDOOM] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_KINGDRA] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_PHANPY] = { .size = 0x65, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_DONPHAN] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_PORYGON2] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_STANTLER] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_SMEARGLE] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_TYROGUE] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_HITMONTOP] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_SMOOCHUM] = { .size = 0x56, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_ELEKID] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MAGBY] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_MILTANK] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_BLISSEY] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_RAIKOU] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_ENTEI] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_SUICUNE] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_LARVITAR] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_PUPITAR] = { .size = 0x67, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_TYRANITAR] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_LUGIA] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_HO_OH] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_CELEBI] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_OLD_UNOWN_B] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_C] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_D] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_E] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_F] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_G] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_H] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_I] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_J] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_K] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_L] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_M] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_N] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_O] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_P] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_Q] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_R] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_S] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_T] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_U] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_V] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_W] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_X] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_Y] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_OLD_UNOWN_Z] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_TREECKO] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_GROVYLE] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SCEPTILE] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_TORCHIC] = { .size = 0x67, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_COMBUSKEN] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_BLAZIKEN] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_MUDKIP] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_MARSHTOMP] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SWAMPERT] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_POOCHYENA] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_MIGHTYENA] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_ZIGZAGOON] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_LINOONE] = { .size = 0x85, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_WURMPLE] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_SILCOON] = { .size = 0x83, - .y_offset = 0x15, + .y_offset = 21, }, [SPECIES_BEAUTIFLY] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CASCOON] = { .size = 0x73, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_DUSTOX] = { .size = 0x83, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_LOTAD] = { .size = 0x75, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_LOMBRE] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_LUDICOLO] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SEEDOT] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_NUZLEAF] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SHIFTRY] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_NINCADA] = { .size = 0x83, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_NINJASK] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SHEDINJA] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_TAILLOW] = { .size = 0x64, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_SWELLOW] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SHROOMISH] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_BRELOOM] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SPINDA] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_WINGULL] = { .size = 0x85, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_PELIPPER] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_SURSKIT] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_MASQUERAIN] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_WAILMER] = { .size = 0x83, - .y_offset = 0x15, + .y_offset = 21, }, [SPECIES_WAILORD] = { .size = 0x83, - .y_offset = 0x16, + .y_offset = 22, }, [SPECIES_SKITTY] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_DELCATTY] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_KECLEON] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_BALTOY] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_CLAYDOL] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_NOSEPASS] = { .size = 0x85, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_TORKOAL] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SABLEYE] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_BARBOACH] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_WHISCASH] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_LUVDISC] = { .size = 0x46, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_CORPHISH] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_CRAWDAUNT] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_FEEBAS] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_MILOTIC] = { .size = 0x68, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_CARVANHA] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_SHARPEDO] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_TRAPINCH] = { .size = 0x75, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_VIBRAVA] = { .size = 0x74, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_FLYGON] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_MAKUHITA] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_HARIYAMA] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_ELECTRIKE] = { .size = 0x84, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_MANECTRIC] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_NUMEL] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_CAMERUPT] = { .size = 0x84, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_SPHEAL] = { .size = 0x64, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_SEALEO] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_WALREIN] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_CACNEA] = { .size = 0x85, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_CACTURNE] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_SNORUNT] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_GLALIE] = { .size = 0x85, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_LUNATONE] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_SOLROCK] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_AZURILL] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SPOINK] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_GRUMPIG] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_PLUSLE] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MINUN] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MAWILE] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_MEDITITE] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_MEDICHAM] = { .size = 0x68, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_SWABLU] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_ALTARIA] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_WYNAUT] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_DUSKULL] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_DUSCLOPS] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ROSELIA] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SLAKOTH] = { .size = 0x85, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_VIGOROTH] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SLAKING] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_GULPIN] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_SWALOT] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_TROPIUS] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_WHISMUR] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_LOUDRED] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_EXPLOUD] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_CLAMPERL] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_HUNTAIL] = { .size = 0x68, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_GOREBYSS] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_ABSOL] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_SHUPPET] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_BANETTE] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_SEVIPER] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_ZANGOOSE] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_RELICANTH] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_ARON] = { .size = 0x54, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_LAIRON] = { .size = 0x84, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_AGGRON] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_CASTFORM] = { .size = 0x45, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_VOLBEAT] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ILLUMISE] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_LILEEP] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_CRADILY] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_ANORITH] = { .size = 0x83, - .y_offset = 0x17, + .y_offset = 23, }, [SPECIES_ARMALDO] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_RALTS] = { .size = 0x45, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_KIRLIA] = { .size = 0x57, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_GARDEVOIR] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_BAGON] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SHELGON] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_SALAMENCE] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_BELDUM] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_METANG] = { .size = 0x84, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_METAGROSS] = { .size = 0x83, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_REGIROCK] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_REGICE] = { .size = 0x85, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_REGISTEEL] = { .size = 0x85, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_KYOGRE] = { .size = 0x84, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_GROUDON] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_RAYQUAZA] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_LATIAS] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_LATIOS] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_JIRACHI] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_DEOXYS] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_CHIMECHO] = { .size = 0x47, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_EGG] = { .size = 0x36, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN_B] = { .size = 0x56, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_UNOWN_C] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_UNOWN_D] = { .size = 0x56, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_UNOWN_E] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN_F] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN_G] = { .size = 0x57, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_UNOWN_H] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_UNOWN_I] = { .size = 0x37, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_UNOWN_J] = { .size = 0x46, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_UNOWN_K] = { .size = 0x57, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_UNOWN_L] = { .size = 0x46, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN_M] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_UNOWN_N] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_UNOWN_O] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_UNOWN_P] = { .size = 0x46, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN_Q] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_UNOWN_R] = { .size = 0x45, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_UNOWN_S] = { .size = 0x57, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_UNOWN_T] = { .size = 0x45, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_UNOWN_U] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_UNOWN_V] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_UNOWN_W] = { .size = 0x55, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_UNOWN_X] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_UNOWN_Y] = { .size = 0x46, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN_Z] = { .size = 0x46, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_UNOWN_EMARK] = { .size = 0x37, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_UNOWN_QMARK] = { .size = 0x47, - .y_offset = 0x06, + .y_offset = 6, }, }; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 19de9a7dd..b787877b9 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -3,2201 +3,2201 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_NONE] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_BULBASAUR] = { .size = 0x45, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_IVYSAUR] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_VENUSAUR] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_CHARMANDER] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_CHARMELEON] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_CHARIZARD] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SQUIRTLE] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_WARTORTLE] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_BLASTOISE] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CATERPIE] = { .size = 0x45, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_METAPOD] = { .size = 0x54, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_BUTTERFREE] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_WEEDLE] = { .size = 0x54, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_KAKUNA] = { .size = 0x45, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_BEEDRILL] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_PIDGEY] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_PIDGEOTTO] = { .size = 0x67, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_PIDGEOT] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_RATTATA] = { .size = 0x44, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_RATICATE] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_SPEAROW] = { .size = 0x45, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_FEAROW] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_EKANS] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_ARBOK] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_PIKACHU] = { .size = 0x67, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_RAICHU] = { .size = 0x67, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SANDSHREW] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_SANDSLASH] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_NIDORAN_F] = { .size = 0x45, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_NIDORINA] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_NIDOQUEEN] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_NIDORAN_M] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_NIDORINO] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_NIDOKING] = { .size = 0x78, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_CLEFAIRY] = { .size = 0x55, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_CLEFABLE] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_VULPIX] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_NINETALES] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_JIGGLYPUFF] = { .size = 0x45, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_WIGGLYTUFF] = { .size = 0x67, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ZUBAT] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_GOLBAT] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_ODDISH] = { .size = 0x45, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_GLOOM] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_VILEPLUME] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_PARAS] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_PARASECT] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_VENONAT] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_VENOMOTH] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_DIGLETT] = { .size = 0x54, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_DUGTRIO] = { .size = 0x75, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_MEOWTH] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_PERSIAN] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_PSYDUCK] = { .size = 0x56, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_GOLDUCK] = { .size = 0x78, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_MANKEY] = { .size = 0x65, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_PRIMEAPE] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_GROWLITHE] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_ARCANINE] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_POLIWAG] = { .size = 0x74, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_POLIWHIRL] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_POLIWRATH] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ABRA] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_KADABRA] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_ALAKAZAM] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_MACHOP] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_MACHOKE] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_MACHAMP] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_BELLSPROUT] = { .size = 0x65, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_WEEPINBELL] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_VICTREEBEL] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_TENTACOOL] = { .size = 0x46, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_TENTACRUEL] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_GEODUDE] = { .size = 0x54, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_GRAVELER] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_GOLEM] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_PONYTA] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_RAPIDASH] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SLOWPOKE] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_SLOWBRO] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MAGNEMITE] = { .size = 0x43, - .y_offset = 0x15, + .y_offset = 21, }, [SPECIES_MAGNETON] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_FARFETCHD] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_DODUO] = { .size = 0x57, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_DODRIO] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SEEL] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_DEWGONG] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_GRIMER] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_MUK] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SHELLDER] = { .size = 0x55, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_CLOYSTER] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_GASTLY] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_HAUNTER] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_GENGAR] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_ONIX] = { .size = 0x78, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_DROWZEE] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_HYPNO] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_KRABBY] = { .size = 0x65, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_KINGLER] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_VOLTORB] = { .size = 0x44, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_ELECTRODE] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_EXEGGCUTE] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_EXEGGUTOR] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CUBONE] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_MAROWAK] = { .size = 0x76, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_HITMONLEE] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_HITMONCHAN] = { .size = 0x67, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_LICKITUNG] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_KOFFING] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_WEEZING] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_RHYHORN] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_RHYDON] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_CHANSEY] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_TANGELA] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_KANGASKHAN] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_HORSEA] = { .size = 0x45, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_SEADRA] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_GOLDEEN] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SEAKING] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_STARYU] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_STARMIE] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_MR_MIME] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SCYTHER] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_JYNX] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_ELECTABUZZ] = { .size = 0x78, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_MAGMAR] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_PINSIR] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_TAUROS] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_MAGIKARP] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_GYARADOS] = { .size = 0x88, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_LAPRAS] = { .size = 0x85, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_DITTO] = { .size = 0x54, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_EEVEE] = { .size = 0x56, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_VAPOREON] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_JOLTEON] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_FLAREON] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_PORYGON] = { .size = 0x55, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_OMANYTE] = { .size = 0x45, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_OMASTAR] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_KABUTO] = { .size = 0x54, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_KABUTOPS] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_AERODACTYL] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SNORLAX] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_ARTICUNO] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_ZAPDOS] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_MOLTRES] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_DRATINI] = { .size = 0x75, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_DRAGONAIR] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_DRAGONITE] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_MEWTWO] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_MEW] = { .size = 0x55, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_CHIKORITA] = { .size = 0x75, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_BAYLEEF] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_MEGANIUM] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CYNDAQUIL] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_QUILAVA] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_TYPHLOSION] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_TOTODILE] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_CROCONAW] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_FERALIGATR] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SENTRET] = { .size = 0x47, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_FURRET] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_HOOTHOOT] = { .size = 0x55, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_NOCTOWL] = { .size = 0x58, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_LEDYBA] = { .size = 0x56, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_LEDIAN] = { .size = 0x67, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SPINARAK] = { .size = 0x54, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_ARIADOS] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_CROBAT] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CHINCHOU] = { .size = 0x75, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_LANTURN] = { .size = 0x87, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_PICHU] = { .size = 0x45, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_CLEFFA] = { .size = 0x44, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_IGGLYBUFF] = { .size = 0x44, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_TOGEPI] = { .size = 0x34, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_TOGETIC] = { .size = 0x46, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_NATU] = { .size = 0x44, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_XATU] = { .size = 0x47, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_MAREEP] = { .size = 0x55, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_FLAAFFY] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_AMPHAROS] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_BELLOSSOM] = { .size = 0x45, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_MARILL] = { .size = 0x65, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_AZUMARILL] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SUDOWOODO] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_POLITOED] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_HOPPIP] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SKIPLOOM] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_JUMPLUFF] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_AIPOM] = { .size = 0x58, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_SUNKERN] = { .size = 0x44, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_SUNFLORA] = { .size = 0x56, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_YANMA] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_WOOPER] = { .size = 0x54, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_QUAGSIRE] = { .size = 0x77, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_ESPEON] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_UMBREON] = { .size = 0x67, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MURKROW] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_SLOWKING] = { .size = 0x58, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_MISDREAVUS] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_UNOWN] = { .size = 0x35, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_WOBBUFFET] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_GIRAFARIG] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_PINECO] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_FORRETRESS] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_DUNSPARCE] = { .size = 0x74, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_GLIGAR] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_STEELIX] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SNUBBULL] = { .size = 0x55, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_GRANBULL] = { .size = 0x57, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_QWILFISH] = { .size = 0x56, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SCIZOR] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SHUCKLE] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_HERACROSS] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_SNEASEL] = { .size = 0x67, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_TEDDIURSA] = { .size = 0x45, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_URSARING] = { .size = 0x78, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SLUGMA] = { .size = 0x45, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_MAGCARGO] = { .size = 0x57, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_SWINUB] = { .size = 0x43, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_PILOSWINE] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_CORSOLA] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_REMORAID] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_OCTILLERY] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_DELIBIRD] = { .size = 0x56, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MANTINE] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SKARMORY] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_HOUNDOUR] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_HOUNDOOM] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_KINGDRA] = { .size = 0x78, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_PHANPY] = { .size = 0x54, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_DONPHAN] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_PORYGON2] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_STANTLER] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SMEARGLE] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_TYROGUE] = { .size = 0x46, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_HITMONTOP] = { .size = 0x67, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_SMOOCHUM] = { .size = 0x35, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_ELEKID] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_MAGBY] = { .size = 0x45, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_MILTANK] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_BLISSEY] = { .size = 0x77, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_RAIKOU] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_ENTEI] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SUICUNE] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_LARVITAR] = { .size = 0x46, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_PUPITAR] = { .size = 0x56, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_TYRANITAR] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_LUGIA] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_HO_OH] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CELEBI] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_OLD_UNOWN_B] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_C] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_D] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_E] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_F] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_G] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_H] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_I] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_J] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_K] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_L] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_M] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_N] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_O] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_P] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_Q] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_R] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_S] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_T] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_U] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_V] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_W] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_X] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_Y] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_OLD_UNOWN_Z] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_TREECKO] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_GROVYLE] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SCEPTILE] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_TORCHIC] = { .size = 0x56, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_COMBUSKEN] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_BLAZIKEN] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_MUDKIP] = { .size = 0x56, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_MARSHTOMP] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_SWAMPERT] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_POOCHYENA] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_MIGHTYENA] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_ZIGZAGOON] = { .size = 0x85, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_LINOONE] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_WURMPLE] = { .size = 0x45, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_SILCOON] = { .size = 0x75, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_BEAUTIFLY] = { .size = 0x86, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_CASCOON] = { .size = 0x74, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_DUSTOX] = { .size = 0x86, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_LOTAD] = { .size = 0x65, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_LOMBRE] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_LUDICOLO] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SEEDOT] = { .size = 0x46, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_NUZLEAF] = { .size = 0x56, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SHIFTRY] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_NINCADA] = { .size = 0x74, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_NINJASK] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SHEDINJA] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_TAILLOW] = { .size = 0x64, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_SWELLOW] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_SHROOMISH] = { .size = 0x54, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_BRELOOM] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SPINDA] = { .size = 0x68, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_WINGULL] = { .size = 0x84, - .y_offset = 0x18, + .y_offset = 24, }, [SPECIES_PELIPPER] = { .size = 0x77, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_SURSKIT] = { .size = 0x65, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_MASQUERAIN] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_WAILMER] = { .size = 0x75, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_WAILORD] = { .size = 0x87, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_SKITTY] = { .size = 0x66, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_DELCATTY] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_KECLEON] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_BALTOY] = { .size = 0x55, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_CLAYDOL] = { .size = 0x78, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_NOSEPASS] = { .size = 0x56, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_TORKOAL] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_SABLEYE] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_BARBOACH] = { .size = 0x46, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_WHISCASH] = { .size = 0x76, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_LUVDISC] = { .size = 0x46, - .y_offset = 0x18, + .y_offset = 24, }, [SPECIES_CORPHISH] = { .size = 0x66, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_CRAWDAUNT] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_FEEBAS] = { .size = 0x46, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_MILOTIC] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CARVANHA] = { .size = 0x67, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_SHARPEDO] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_TRAPINCH] = { .size = 0x54, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_VIBRAVA] = { .size = 0x86, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_FLYGON] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_MAKUHITA] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_HARIYAMA] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_ELECTRIKE] = { .size = 0x64, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_MANECTRIC] = { .size = 0x67, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_NUMEL] = { .size = 0x65, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_CAMERUPT] = { .size = 0x87, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SPHEAL] = { .size = 0x65, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_SEALEO] = { .size = 0x86, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_WALREIN] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_CACNEA] = { .size = 0x74, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_CACTURNE] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SNORUNT] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_GLALIE] = { .size = 0x76, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_LUNATONE] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SOLROCK] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_AZURILL] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_SPOINK] = { .size = 0x46, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_GRUMPIG] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_PLUSLE] = { .size = 0x56, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_MINUN] = { .size = 0x66, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_MAWILE] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_MEDITITE] = { .size = 0x65, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_MEDICHAM] = { .size = 0x68, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_SWABLU] = { .size = 0x76, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_ALTARIA] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_WYNAUT] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_DUSKULL] = { .size = 0x66, - .y_offset = 0x0a, + .y_offset = 10, }, [SPECIES_DUSCLOPS] = { .size = 0x77, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_ROSELIA] = { .size = 0x76, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_SLAKOTH] = { .size = 0x74, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_VIGOROTH] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SLAKING] = { .size = 0x86, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_GULPIN] = { .size = 0x55, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_SWALOT] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_TROPIUS] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_WHISMUR] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_LOUDRED] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_EXPLOUD] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_CLAMPERL] = { .size = 0x55, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_HUNTAIL] = { .size = 0x78, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_GOREBYSS] = { .size = 0x86, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_ABSOL] = { .size = 0x68, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_SHUPPET] = { .size = 0x56, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_BANETTE] = { .size = 0x55, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_SEVIPER] = { .size = 0x77, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ZANGOOSE] = { .size = 0x87, - .y_offset = 0x05, + .y_offset = 5, }, [SPECIES_RELICANTH] = { .size = 0x77, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_ARON] = { .size = 0x43, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_LAIRON] = { .size = 0x75, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_AGGRON] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_CASTFORM] = { .size = 0x34, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_VOLBEAT] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ILLUMISE] = { .size = 0x56, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_LILEEP] = { .size = 0x67, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_CRADILY] = { .size = 0x78, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_ANORITH] = { .size = 0x66, - .y_offset = 0x08, + .y_offset = 8, }, [SPECIES_ARMALDO] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_RALTS] = { .size = 0x35, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_KIRLIA] = { .size = 0x47, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_GARDEVOIR] = { .size = 0x78, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_BAGON] = { .size = 0x56, - .y_offset = 0x0b, + .y_offset = 11, }, [SPECIES_SHELGON] = { .size = 0x66, - .y_offset = 0x09, + .y_offset = 9, }, [SPECIES_SALAMENCE] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_BELDUM] = { .size = 0x55, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_METANG] = { .size = 0x87, - .y_offset = 0x07, + .y_offset = 7, }, [SPECIES_METAGROSS] = { .size = 0x87, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_REGIROCK] = { .size = 0x78, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_REGICE] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_REGISTEEL] = { .size = 0x88, - .y_offset = 0x03, + .y_offset = 3, }, [SPECIES_KYOGRE] = { .size = 0x87, - .y_offset = 0x04, + .y_offset = 4, }, [SPECIES_GROUDON] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_RAYQUAZA] = { .size = 0x88, - .y_offset = 0x00, + .y_offset = 0, }, [SPECIES_LATIAS] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_LATIOS] = { .size = 0x88, - .y_offset = 0x02, + .y_offset = 2, }, [SPECIES_JIRACHI] = { .size = 0x66, - .y_offset = 0x0d, + .y_offset = 13, }, [SPECIES_DEOXYS] = { .size = 0x88, - .y_offset = 0x01, + .y_offset = 1, }, [SPECIES_CHIMECHO] = { .size = 0x37, - .y_offset = 0x06, + .y_offset = 6, }, [SPECIES_EGG] = { .size = 0x33, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_UNOWN_B] = { .size = 0x34, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_UNOWN_C] = { .size = 0x44, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_UNOWN_D] = { .size = 0x44, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_UNOWN_E] = { .size = 0x44, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_UNOWN_F] = { .size = 0x44, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_UNOWN_G] = { .size = 0x35, - .y_offset = 0x0e, + .y_offset = 14, }, [SPECIES_UNOWN_H] = { .size = 0x44, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_UNOWN_I] = { .size = 0x34, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_UNOWN_J] = { .size = 0x34, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_UNOWN_K] = { .size = 0x44, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_UNOWN_L] = { .size = 0x34, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_UNOWN_M] = { .size = 0x44, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_UNOWN_N] = { .size = 0x43, - .y_offset = 0x14, + .y_offset = 20, }, [SPECIES_UNOWN_O] = { .size = 0x44, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_UNOWN_P] = { .size = 0x34, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_UNOWN_Q] = { .size = 0x43, - .y_offset = 0x15, + .y_offset = 21, }, [SPECIES_UNOWN_R] = { .size = 0x34, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_UNOWN_S] = { .size = 0x45, - .y_offset = 0x0c, + .y_offset = 12, }, [SPECIES_UNOWN_T] = { .size = 0x34, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_UNOWN_U] = { .size = 0x44, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_UNOWN_V] = { .size = 0x44, - .y_offset = 0x12, + .y_offset = 18, }, [SPECIES_UNOWN_W] = { .size = 0x44, - .y_offset = 0x13, + .y_offset = 19, }, [SPECIES_UNOWN_X] = { .size = 0x33, - .y_offset = 0x15, + .y_offset = 21, }, [SPECIES_UNOWN_Y] = { .size = 0x34, - .y_offset = 0x11, + .y_offset = 17, }, [SPECIES_UNOWN_Z] = { .size = 0x34, - .y_offset = 0x10, + .y_offset = 16, }, [SPECIES_UNOWN_EMARK] = { .size = 0x35, - .y_offset = 0x0f, + .y_offset = 15, }, [SPECIES_UNOWN_QMARK] = { .size = 0x35, - .y_offset = 0x0d, + .y_offset = 13, }, }; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ad839e006..de5536240 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8124,7 +8124,7 @@ static void DoFlaggedGroundEffects(struct ObjectEvent *objEvent, struct Sprite * { u8 i; - if (ObjectEventIsFarawayIslandMew(objEvent) == TRUE && !sub_81D4A58(objEvent)) + if (ObjectEventIsFarawayIslandMew(objEvent) == TRUE && !ShouldMewShakeGrass(objEvent)) return; for (i = 0; i < ARRAY_COUNT(sGroundEffectFuncs); i++, flags >>= 1) diff --git a/src/faraway_island.c b/src/faraway_island.c index 06e47cd21..57d31057f 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -9,15 +9,15 @@ #include "constants/maps.h" #include "constants/metatile_behaviors.h" -static u8 sub_81D4890(u8); -static bool8 sub_81D4C14(struct ObjectEvent*, u8); -static u8 sub_81D4C9C(struct ObjectEvent*, u8); -static u8 sub_81D4C58(struct ObjectEvent*, u8); -static u8 sub_81D4CE0(struct ObjectEvent*, u8); -static u8 sub_81D4D24(u8); -static bool8 CanMewWalkToCoords(s16, s16); +static u8 GetValidMewMoveDirection(u8); +static bool8 ShouldMewMoveNorth(struct ObjectEvent*, u8); +static bool8 ShouldMewMoveSouth(struct ObjectEvent*, u8); +static bool8 ShouldMewMoveEast(struct ObjectEvent*, u8); +static bool8 ShouldMewMoveWest(struct ObjectEvent*, u8); +static u8 GetRandomMewDirectionCandidate(u8); +static bool8 CanMewMoveToCoords(s16, s16); -static EWRAM_DATA u8 sUnknown_0203CF50 = 0; +static EWRAM_DATA u8 sGrassSpriteId = 0; static s16 sPlayerToMewDeltaX; static s16 sPlayerToMewDeltaY; @@ -28,10 +28,10 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; static const s16 sFarawayIslandRockCoords[4][2] = { - {21, 16}, - {25, 16}, - {16, 17}, - {20, 20}, + {14 + 7, 9 + 7}, + {18 + 7, 9 + 7}, + { 9 + 7, 10 + 7}, + {13 + 7, 13 + 7}, }; static u8 GetMewObjectEventId(void) @@ -41,10 +41,12 @@ static u8 GetMewObjectEventId(void) return objectEventId; } +// When the player enters Faraway Island interior it begins a "hide and seek" minigame where Mew disappears into the grass +// This function returns the direction Mew will take a step, and is run every time the player takes a step u32 GetMewMoveDirection(void) { u8 i; - int skip; + int mewSafeFromTrap; struct ObjectEvent *mew = &gObjectEvents[GetMewObjectEventId()]; sPlayerToMewDeltaX = gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x - mew->currentCoords.x; @@ -52,43 +54,47 @@ u32 GetMewMoveDirection(void) for (i = 0; i < ARRAY_COUNT(sMewDirectionCandidates); i++) sMewDirectionCandidates[i] = DIR_NONE; + // Player hasn't moved (just facing new direction), don't move if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x == gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x && gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y == gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y) { return DIR_NONE; } + // Mew is invisible except for every 8th step if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) - mew->invisible = 0; + mew->invisible = FALSE; else - mew->invisible = 1; + mew->invisible = TRUE; + // Mew will stay in place for 1 step after its visible if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) return DIR_NONE; + // Below loop is for Mew to try to avoid getting trapped between the player and a rock for (i = 0; i < ARRAY_COUNT(sFarawayIslandRockCoords); i++) { if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x == sFarawayIslandRockCoords[i][0]) { - skip = 0; + mewSafeFromTrap = FALSE; if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y < sFarawayIslandRockCoords[i][1]) { if (mew->currentCoords.y <= sFarawayIslandRockCoords[i][1]) - skip = 1; + mewSafeFromTrap = TRUE; } else { if (mew->currentCoords.y >= sFarawayIslandRockCoords[i][1]) - skip = 1; + mewSafeFromTrap = TRUE; } - if (!skip) + if (!mewSafeFromTrap) { if (sPlayerToMewDeltaX > 0) { if (mew->currentCoords.x + 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } } @@ -96,7 +102,7 @@ u32 GetMewMoveDirection(void) { if (mew->currentCoords.x - 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } } @@ -105,12 +111,12 @@ u32 GetMewMoveDirection(void) { if (sPlayerToMewDeltaY > 0) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } else { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } } @@ -119,25 +125,25 @@ u32 GetMewMoveDirection(void) if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y == sFarawayIslandRockCoords[i][1]) { - skip = 0; + mewSafeFromTrap = FALSE; if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x < sFarawayIslandRockCoords[i][0]) { if (mew->currentCoords.x <= sFarawayIslandRockCoords[i][0]) - skip = 1; + mewSafeFromTrap = TRUE; } else { if (mew->currentCoords.x >= sFarawayIslandRockCoords[i][0]) - skip = 1; + mewSafeFromTrap = TRUE; } - if (!skip) + if (!mewSafeFromTrap) { if (sPlayerToMewDeltaY > 0) { if (mew->currentCoords.y + 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } } @@ -145,7 +151,7 @@ u32 GetMewMoveDirection(void) { if (mew->currentCoords.y - 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } } @@ -154,12 +160,12 @@ u32 GetMewMoveDirection(void) { if (sPlayerToMewDeltaX > 0) { - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } else { - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } } @@ -167,92 +173,101 @@ u32 GetMewMoveDirection(void) } } - if (sub_81D4C14(mew, 0)) + // Check if Mew can move in any direction without getting closer to the player + // If so load into sMewDirectionCandidates + // If Mew can move in two of the checked directions, choose one randomly + if (ShouldMewMoveNorth(mew, 0)) { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveEast(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveWest(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_NORTH; } - if (sub_81D4C9C(mew, 0)) + if (ShouldMewMoveSouth(mew, 0)) { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveEast(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveWest(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_SOUTH; } - if (sub_81D4C58(mew, 0)) + if (ShouldMewMoveEast(mew, 0)) { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveNorth(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveSouth(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_EAST; } - if (sub_81D4CE0(mew, 0)) + if (ShouldMewMoveWest(mew, 0)) { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveNorth(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveSouth(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_WEST; } + // If this point is reached, Mew cannot move without getting closer to the player + + // Avoid player on same Y, try move North/South if (sPlayerToMewDeltaY == 0) { if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y > mew->currentCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y < mew->currentCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } + // Avoid player on same X, try move West/East if (sPlayerToMewDeltaX == 0) { if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x > mew->currentCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x < mew->currentCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } - return sub_81D4890(DIR_NONE); + // Can't avoid player on axis, move any valid direction + return GetValidMewMoveDirection(DIR_NONE); } -static bool8 CanMewWalkToCoords(s16 x, s16 y) +// Mew can move to any Tall/Long Grass metatile the player isn't currently on +static bool8 CanMewMoveToCoords(s16 x, s16 y) { if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x == x && gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y == y) @@ -263,7 +278,8 @@ static bool8 CanMewWalkToCoords(s16 x, s16 y) return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); } -static u8 sub_81D4890(u8 ignoredDir) +// Last ditch effort to move, clear move candidates and try all directions again +static u8 GetValidMewMoveDirection(u8 ignoredDir) { u8 i; u8 count = 0; @@ -272,25 +288,25 @@ static u8 sub_81D4890(u8 ignoredDir) for (i = 0; i < ARRAY_COUNT(sMewDirectionCandidates); i++) sMewDirectionCandidates[i] = DIR_NONE; - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) { sMewDirectionCandidates[count] = DIR_NORTH; count++; } - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) { sMewDirectionCandidates[count] = DIR_EAST; count++; } - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) { sMewDirectionCandidates[count] = DIR_SOUTH; count++; } - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) { sMewDirectionCandidates[count] = DIR_WEST; count++; @@ -340,7 +356,9 @@ bool8 IsMewPlayingHideAndSeek(void) return FALSE; } -bool8 sub_81D4A58(struct ObjectEvent *objectEvent) +// Every 4th step Mew will shake the grass it steps into +// Otherwise its movement leaves grass undisturbed +bool8 ShouldMewShakeGrass(struct ObjectEvent *objectEvent) { if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) @@ -349,22 +367,25 @@ bool8 sub_81D4A58(struct ObjectEvent *objectEvent) return FALSE; } -void sub_81D4A90(void) +void SetMewAboveGrass(void) { s16 x; s16 y; u8 spriteId; struct ObjectEvent *mew = &gObjectEvents[GetMewObjectEventId()]; - mew->invisible = 0; + mew->invisible = FALSE; if (gSpecialVar_0x8004 == 1) { + // For after battle where Mew should still be present (e.g. if ran from battle) mew->fixedPriority = 1; gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; gSprites[mew->spriteId].subpriority = 1; } else { + // Mew emerging from grass when found + // Also do field effect for grass shaking as it emerges VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); mew->fixedPriority = 1; gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; @@ -377,10 +398,10 @@ void sub_81D4A90(void) x = mew->currentCoords.x; y = mew->currentCoords.y; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); - sUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); - if (sUnknown_0203CF50 != MAX_SPRITES) + sGrassSpriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + if (sGrassSpriteId != MAX_SPRITES) { - struct Sprite *sprite = &gSprites[sUnknown_0203CF50]; + struct Sprite *sprite = &gSprites[sGrassSpriteId]; sprite->coordOffsetEnabled = 1; sprite->oam.priority = 2; sprite->callback = SpriteCallbackDummy; @@ -388,15 +409,15 @@ void sub_81D4A90(void) } } -void sub_81D4BEC(void) +void DestroyMewEmergingGrassSprite(void) { - if (sUnknown_0203CF50 != MAX_SPRITES) - DestroySprite(&gSprites[sUnknown_0203CF50]); + if (sGrassSpriteId != MAX_SPRITES) + DestroySprite(&gSprites[sGrassSpriteId]); } -static bool8 sub_81D4C14(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveNorth(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaY > 0 && CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (sPlayerToMewDeltaY > 0 && CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) { sMewDirectionCandidates[index] = DIR_NORTH; return TRUE; @@ -405,9 +426,9 @@ static bool8 sub_81D4C14(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4C58(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveEast(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaX < 0 && CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (sPlayerToMewDeltaX < 0 && CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) { sMewDirectionCandidates[index] = DIR_EAST; return TRUE; @@ -416,9 +437,9 @@ static u8 sub_81D4C58(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4C9C(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveSouth(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaY < 0 && CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (sPlayerToMewDeltaY < 0 && CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) { sMewDirectionCandidates[index] = DIR_SOUTH; return TRUE; @@ -427,9 +448,9 @@ static u8 sub_81D4C9C(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4CE0(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveWest(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaX > 0 && CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (sPlayerToMewDeltaX > 0 && CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) { sMewDirectionCandidates[index] = DIR_WEST; return TRUE; @@ -438,7 +459,7 @@ static u8 sub_81D4CE0(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4D24(u8 mod) +static u8 GetRandomMewDirectionCandidate(u8 numDirections) { - return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; + return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % numDirections]; } |