Add Missing Egg Moves

This commit is contained in:
Skeli 2019-08-25 03:16:55 -04:00
parent 59069dc6d1
commit 6435f73750
4 changed files with 606 additions and 17 deletions

View File

@ -10,9 +10,11 @@ memset_ = 0x081E5ED8|1;
gMain = 0x30030F0;
GetGenderFromSpeciesAndPersonality = 0x803F78C | 1;
GetMonData = 0x803FBE8 | 1;
SpeciesToNationalPokedexNum = 0x8043298 | 1;
DrawSpindaSpots = 0x8043458 | 1;
GetUnownLetterFromPersonality = 0x8082AB8 | 1;
SafeLoadMonIconPalette = 0x80970A0 | 1;
LZ77UnCompWram = 0x81E3B70 | 1;
/*The Deal Breaker*/

View File

@ -65,17 +65,7 @@ DexFlagCheckCall:
ldr r3, =0x8104AB0 | 1
bx r3
@0x8045C58 with r0
UpdateEggMoveLimit:
add r0, r2, #0x1
lsl r0, r0, #0x10
lsr r2, r0, #0x10
push {r2}
bl GetUpdatedEggMoveLimit
pop {r2}
ldr r1, =0x8045C60 | 1
bx r1
.pool
@0x800ECF2 with r4
LoadSpecialPokePicHook:
mov r7, r8
@ -91,6 +81,32 @@ LoadSpecialPokePicHook:
pop {r0}
bx r0
.pool
@0x8034356 with r1
BattleLoadOpponentMonSpriteGfxHook:
ldr r1, [sp] @Personality
bl TryGetFemaleGenderedSpecies
mov r5, r0
ldr r6, [sp]
ldr r0, =0x803436C | 1
bx r0
/*
.pool
@0x80747B4 with r0
GetBattlerSpriteFinalYHook:
lsl r2, r2, #0x18
lsr r7, r2, #0x18
mov r0, r6
lsr r1, r1, #0x10
bl TryGetFemaleGenderedSpeciesFromBank
mov r0, r6
ldr r1, =0x80747BC | 1
bx r1
*/
.pool
@0x8096E38 with r2
GenderedMonIconHook:
lsr r7, r3, #0x10
@ -106,4 +122,33 @@ GenderedMonIconHook:
ldr r1, [sp, #0x50] @Personality
ldr r0, =0x8096E40 | 1
bx r0
.pool
@0x8139DDC with r1
SummaryScreenIconPalHook:
mov r4, r0
mov r1, r0
mov r0, r5
bl TryGetFemaleGenderedSpecies
mov r5, r0
ldr r1, =SafeLoadMonIconPalette
bl bxr1
ldr r0, =0x8139DE4 | 1
bx r0
.pool
@0x808398C with r1
CreateMonSprite_PicBoxHook:
mov r4, r0
mov r1, #0x0
mov r2, #0x80
lsl r2, #0x8 @0x8000
bl GetMonSpritePalStructFromOtIdPersonality
mov r1, r0
mov r0, r4
mov r4, r1 @Backup palette struct
ldrh r1, [r4, #0x4] @Tag
mov r3, #0x80
lsl r3, #0x8 @0x8000
ldr r2, =0x8083994 | 1
bx r2

9
hooks
View File

@ -1,11 +1,16 @@
##
LoadSpecialPokePicHook 800ECF2 4
BattleLoadOpponentMonSpriteGfxHook 8034356 1
SpeciesToCryId 8043304 1
NationalPokedexNumToSpecies 8043200 1
GetFrontSpritePalFromSpeciesAndPersonality 80440F4 3
GetMonSpritePalStructFromOtIdPersonality 8044180 3
UpdateEggMoveLimit 8045C58 0
GetEggSpecies 8045970 1
GetEggMoves 8045C28 2
CreateMonSprite_PicBoxHook 808398C 1
GenderedMonIconHook 8096E38 2
GetIconSpecies 8096F5C 2
PrepareDexListViewsHook 8103530 1
AlphabeticalDexHook 8103684 1
AlternateDexEntriesHook 8105CBC 0
AlternateDexEntriesHook 8105CBC 0
SummaryScreenIconPalHook 8139DDC 1

View File

@ -1,11 +1,13 @@
#include "defines.h"
#include "../include/evolution.h"
#include "../include/moves.h"
#define EGG_MOVES_SPECIES_OFFSET 20000
#define EGG_MOVES_TERMINATOR 0xFFFF
#define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves
const u16 gEggMoves[] = {
const u16 gEggMoves[] =
{
egg_moves(BULBASAUR,
MOVE_SKULLBASH,
MOVE_CHARM,
@ -57,6 +59,17 @@ const u16 gEggMoves[] = {
MOVE_DRAGONPULSE,
MOVE_AURASPHERE),
egg_moves(PIDGEY,
MOVE_PURSUIT,
MOVE_FEINTATTACK,
MOVE_FORESIGHT,
MOVE_STEELWING,
MOVE_AIRCUTTER,
MOVE_AIRSLASH,
MOVE_BRAVEBIRD,
MOVE_UPROAR,
MOVE_DEFOG),
egg_moves(RATTATA,
MOVE_SCREECH,
MOVE_FLAMEWHEEL,
@ -82,6 +95,20 @@ const u16 gEggMoves[] = {
MOVE_STEELWING,
MOVE_RAZORWIND),
egg_moves(EKANS,
MOVE_PURSUIT,
MOVE_SLAM,
MOVE_SPITE,
MOVE_BEATUP,
MOVE_POISONFANG,
MOVE_SCARYFACE,
MOVE_POISONTAIL,
MOVE_DISABLE,
MOVE_SWITCHEROO,
MOVE_IRONTAIL,
MOVE_SUCKERPUNCH,
MOVE_SNATCH),
egg_moves(SANDSHREW,
MOVE_FLAIL,
MOVE_COUNTER,
@ -189,6 +216,21 @@ const u16 gEggMoves[] = {
MOVE_SKILLSWAP,
MOVE_RAGEPOWDER),
egg_moves(DIGLETT,
MOVE_FEINTATTACK,
MOVE_SCREECH,
MOVE_ANCIENTPOWER,
MOVE_PURSUIT,
MOVE_BEATUP,
MOVE_UPROAR,
MOVE_MUDBOMB,
MOVE_ASTONISH,
MOVE_REVERSAL,
MOVE_HEADBUTT,
MOVE_ENDURE,
MOVE_FINALGAMBIT,
MOVE_MEMENTO),
egg_moves(MEOWTH,
MOVE_SPITE,
MOVE_CHARM,
@ -280,6 +322,23 @@ const u16 gEggMoves[] = {
MOVE_PSYCHOSHIFT,
MOVE_PSYCHICTERRAIN),
egg_moves(MACHOP,
MOVE_MEDITATE,
MOVE_ROLLINGKICK,
MOVE_ENCORE,
MOVE_SMELLINGSALTS,
MOVE_COUNTER,
MOVE_CLOSECOMBAT,
MOVE_FIREPUNCH,
MOVE_THUNDERPUNCH,
MOVE_ICEPUNCH,
MOVE_BULLETPUNCH,
MOVE_POWERTRICK,
MOVE_HEAVYSLAM,
MOVE_KNOCKOFF,
MOVE_TICKLE,
MOVE_QUICKGUARD),
egg_moves(BELLSPROUT,
MOVE_ENCORE,
MOVE_SYNTHESIS,
@ -444,6 +503,18 @@ const u16 gEggMoves[] = {
MOVE_SMOG,
MOVE_REFLECTTYPE),
egg_moves(ONIX,
MOVE_FLAIL,
MOVE_BLOCK,
MOVE_DEFENSECURL,
MOVE_ROLLOUT,
MOVE_ROCKBLAST,
MOVE_ROCKCLIMB,
MOVE_HEAVYSLAM,
MOVE_STEALTHROCK,
MOVE_ROTOTILLER,
MOVE_WIDEGUARD),
egg_moves(DROWZEE,
MOVE_BARRIER,
MOVE_ASSIST,
@ -460,6 +531,19 @@ const u16 gEggMoves[] = {
MOVE_POWERSPLIT,
MOVE_PSYCHICTERRAIN),
egg_moves(KRABBY,
MOVE_HAZE,
MOVE_AMNESIA,
MOVE_FLAIL,
MOVE_SLAM,
MOVE_KNOCKOFF,
MOVE_TICKLE,
MOVE_ANCIENTPOWER,
MOVE_AGILITY,
MOVE_ENDURE,
MOVE_CHIPAWAY,
MOVE_BIDE),
egg_moves(EXEGGCUTE,
MOVE_SYNTHESIS,
MOVE_MOONLIGHT,
@ -489,6 +573,21 @@ const u16 gEggMoves[] = {
MOVE_CHIPAWAY,
MOVE_CURSE),
egg_moves(LICKITUNG,
MOVE_BELLYDRUM,
MOVE_MAGNITUDE,
MOVE_BODYSLAM,
MOVE_CURSE,
MOVE_SMELLINGSALTS,
MOVE_SLEEPTALK,
MOVE_SNORE,
MOVE_AMNESIA,
MOVE_HAMMERARM,
MOVE_MUDDYWATER,
MOVE_ZENHEADBUTT,
MOVE_BELCH,
MOVE_THRASH),
egg_moves(KOFFING,
MOVE_SCREECH,
MOVE_PSYWAVE,
@ -720,6 +819,19 @@ const u16 gEggMoves[] = {
MOVE_BELCH,
MOVE_POWERUPPUNCH),
egg_moves(DRATINI,
MOVE_MIST,
MOVE_HAZE,
MOVE_SUPERSONIC,
MOVE_DRAGONBREATH,
MOVE_DRAGONDANCE,
MOVE_DRAGONRUSH,
MOVE_EXTREMESPEED,
MOVE_WATERPULSE,
MOVE_AQUAJET,
MOVE_DRAGONPULSE,
MOVE_IRONTAIL),
egg_moves(CHIKORITA,
MOVE_VINEWHIP,
MOVE_LEECHSEED,
@ -798,6 +910,22 @@ const u16 gEggMoves[] = {
MOVE_MEANLOOK,
MOVE_HURRICANE),
egg_moves(LEDYBA,
MOVE_PSYBEAM,
MOVE_BIDE,
MOVE_SILVERWIND,
MOVE_BUGBUZZ,
MOVE_SCREECH,
MOVE_ENCORE,
MOVE_KNOCKOFF,
MOVE_BUGBITE,
MOVE_FOCUSPUNCH,
MOVE_DRAINPUNCH,
MOVE_DIZZYPUNCH,
MOVE_TAILWIND,
MOVE_ENDURE,
MOVE_COUNTER),
egg_moves(SPINARAK,
MOVE_PSYBEAM,
MOVE_DISABLE,
@ -957,6 +1085,23 @@ const u16 gEggMoves[] = {
MOVE_GRASSYTERRAIN,
MOVE_STRENGTHSAP),
egg_moves(AIPOM,
MOVE_COUNTER,
MOVE_SCREECH,
MOVE_PURSUIT,
MOVE_AGILITY,
MOVE_SPITE,
MOVE_SLAM,
MOVE_DOUBLESLAP,
MOVE_BEATUP,
MOVE_FAKEOUT,
MOVE_COVET,
MOVE_BOUNCE,
MOVE_REVENGE,
MOVE_SWITCHEROO,
MOVE_QUICKGUARD,
MOVE_TAILSLAP),
egg_moves(SUNKERN,
MOVE_GRASSWHISTLE,
MOVE_ENCORE,
@ -1053,6 +1198,19 @@ const u16 gEggMoves[] = {
MOVE_PSYCHICTERRAIN,
MOVE_PSYCHICFANGS),
egg_moves(PINECO,
MOVE_PINMISSILE,
MOVE_FLAIL,
MOVE_SWIFT,
MOVE_COUNTER,
MOVE_SANDTOMB,
MOVE_REVENGE,
MOVE_DOUBLEEDGE,
MOVE_TOXICSPIKES,
MOVE_POWERTRICK,
MOVE_ENDURE,
MOVE_STEALTHROCK),
egg_moves(DUNSPARCE,
MOVE_BIDE,
MOVE_ANCIENTPOWER,
@ -1234,6 +1392,23 @@ const u16 gEggMoves[] = {
MOVE_WATERPULSE,
MOVE_ENTRAINMENT),
egg_moves(DELIBIRD,
MOVE_AURORABEAM,
MOVE_QUICKATTACK,
MOVE_FUTURESIGHT,
MOVE_SPLASH,
MOVE_RAPIDSPIN,
MOVE_ICEBALL,
MOVE_ICESHARD,
MOVE_ICEPUNCH,
MOVE_FAKEOUT,
MOVE_BESTOW,
MOVE_ICYWIND,
MOVE_FREEZEDRY,
MOVE_DESTINYBOND,
MOVE_SPIKES,
MOVE_COUNTER),
egg_moves(MANTINE,
MOVE_TWISTER,
MOVE_HYDROPUMP,
@ -1463,6 +1638,18 @@ const u16 gEggMoves[] = {
MOVE_SIMPLEBEAM,
MOVE_EXTREMESPEED),
egg_moves(LOTAD,
MOVE_SYNTHESIS,
MOVE_RAZORLEAF,
MOVE_SWEETSCENT,
MOVE_LEECHSEED,
MOVE_FLAIL,
MOVE_WATERGUN,
MOVE_TICKLE,
MOVE_COUNTER,
MOVE_GIGADRAIN,
MOVE_TEETERDANCE),
egg_moves(SEEDOT,
MOVE_LEECHSEED,
MOVE_AMNESIA,
@ -1478,6 +1665,16 @@ const u16 gEggMoves[] = {
MOVE_BULLETSEED,
MOVE_GRASSYTERRAIN),
egg_moves(NINCADA,
MOVE_ENDURE,
MOVE_FEINTATTACK,
MOVE_GUST,
MOVE_SILVERWIND,
MOVE_BUGBUZZ,
MOVE_NIGHTSLASH,
MOVE_BUGBITE,
MOVE_FINALGAMBIT),
egg_moves(TAILLOW,
MOVE_PURSUIT,
MOVE_SUPERSONIC,
@ -1595,6 +1792,15 @@ const u16 gEggMoves[] = {
MOVE_CAMOUFLAGE,
MOVE_POWERUPPUNCH),
egg_moves(NOSEPASS,
MOVE_MAGNITUDE,
MOVE_ROLLOUT,
MOVE_DOUBLEEDGE,
MOVE_BLOCK,
MOVE_STEALTHROCK,
MOVE_ENDURE,
MOVE_WIDEGUARD),
egg_moves(TORKOAL,
MOVE_ERUPTION,
MOVE_ENDURE,
@ -1631,6 +1837,33 @@ const u16 gEggMoves[] = {
MOVE_MUDSHOT,
MOVE_MUDDYWATER),
egg_moves(LUVDISC,
MOVE_SPLASH,
MOVE_SUPERSONIC,
MOVE_WATERSPORT,
MOVE_MUDSPORT,
MOVE_CAPTIVATE,
MOVE_AQUARING,
MOVE_AQUAJET,
MOVE_HEALPULSE,
MOVE_BRINE,
MOVE_ENTRAINMENT),
egg_moves(CORPHISH,
MOVE_MUDSPORT,
MOVE_ENDEAVOR,
MOVE_BODYSLAM,
MOVE_ANCIENTPOWER,
MOVE_KNOCKOFF,
MOVE_SUPERPOWER,
MOVE_METALCLAW,
MOVE_DRAGONDANCE,
MOVE_TRUMPCARD,
MOVE_CHIPAWAY,
MOVE_DOUBLEEDGE,
MOVE_AQUAJET,
MOVE_SWITCHEROO),
egg_moves(FEEBAS,
MOVE_MIRRORCOAT,
MOVE_DRAGONBREATH,
@ -1937,6 +2170,19 @@ const u16 gEggMoves[] = {
MOVE_DISARMINGVOICE,
MOVE_WHIRLWIND),
egg_moves(CLAMPERL,
MOVE_REFRESH,
MOVE_MUDSPORT,
MOVE_BODYSLAM,
MOVE_SUPERSONIC,
MOVE_BARRIER,
MOVE_CONFUSERAY,
MOVE_AQUARING,
MOVE_MUDDYWATER,
MOVE_WATERPULSE,
MOVE_BRINE,
MOVE_ENDURE),
egg_moves(ABSOL,
MOVE_BATONPASS,
MOVE_FEINTATTACK,
@ -2059,6 +2305,17 @@ const u16 gEggMoves[] = {
MOVE_CONFUSERAY,
MOVE_AROMATHERAPY),
egg_moves(LILEEP,
MOVE_BARRIER,
MOVE_RECOVER,
MOVE_MIRRORCOAT,
MOVE_WRINGOUT,
MOVE_TICKLE,
MOVE_CURSE,
MOVE_MEGADRAIN,
MOVE_ENDURE,
MOVE_STEALTHROCK),
egg_moves(ANORITH,
MOVE_RAPIDSPIN,
MOVE_KNOCKOFF,
@ -2144,6 +2401,22 @@ const u16 gEggMoves[] = {
MOVE_SUBMISSION,
MOVE_POWERUPPUNCH),
egg_moves(PIPLUP,
MOVE_DOUBLEHIT,
MOVE_SUPERSONIC,
MOVE_YAWN,
MOVE_MUDSPORT,
MOVE_MUDSLAP,
MOVE_SNORE,
MOVE_FLAIL,
MOVE_AGILITY,
MOVE_AQUARING,
MOVE_HYDROPUMP,
MOVE_FEATHERDANCE,
MOVE_BIDE,
MOVE_ICYWIND,
MOVE_POWERTRIP),
egg_moves(STARLY,
MOVE_FEATHERDANCE,
MOVE_FURYATTACK,
@ -2205,6 +2478,19 @@ const u16 gEggMoves[] = {
MOVE_NATURALGIFT,
MOVE_GRASSWHISTLE),
egg_moves(CRANIDOS,
MOVE_CRUNCH,
MOVE_THRASH,
MOVE_DOUBLEEDGE,
MOVE_LEER,
MOVE_SLAM,
MOVE_STOMP,
MOVE_WHIRLWIND,
MOVE_HAMMERARM,
MOVE_CURSE,
MOVE_IRONTAIL,
MOVE_IRONHEAD),
egg_moves(SHIELDON,
MOVE_HEADBUTT,
MOVE_SCARYFACE,
@ -2288,6 +2574,18 @@ const u16 gEggMoves[] = {
MOVE_MIST,
MOVE_ACIDARMOR),
egg_moves(DRIFLOON,
MOVE_MEMENTO,
MOVE_BODYSLAM,
MOVE_DESTINYBOND,
MOVE_DISABLE,
MOVE_HAZE,
MOVE_HYPNOSIS,
MOVE_WEATHERBALL,
MOVE_CLEARSMOG,
MOVE_DEFOG,
MOVE_TAILWIND),
egg_moves(BUNEARY,
MOVE_FAKETEARS,
MOVE_FAKEOUT,
@ -2425,6 +2723,20 @@ const u16 gEggMoves[] = {
MOVE_ROCKCLIMB,
MOVE_IRONTAIL),
egg_moves(MUNCHLAX,
MOVE_LICK,
MOVE_CHARM,
MOVE_DOUBLEEDGE,
MOVE_CURSE,
MOVE_WHIRLWIND,
MOVE_PURSUIT,
MOVE_ZENHEADBUTT,
MOVE_COUNTER,
MOVE_NATURALGIFT,
MOVE_AFTERYOU,
MOVE_SELFDESTRUCT,
MOVE_BELCH),
egg_moves(RIOLU,
MOVE_CROSSCHOP,
MOVE_DETECT,
@ -2590,6 +2902,21 @@ const u16 gEggMoves[] = {
MOVE_TEARFULLOOK,
MOVE_BULLETSEED),
egg_moves(LILLIPUP,
MOVE_HOWL,
MOVE_SANDATTACK,
MOVE_MUDSLAP,
MOVE_LICK,
MOVE_CHARM,
MOVE_ENDURE,
MOVE_YAWN,
MOVE_PURSUIT,
MOVE_FIREFANG,
MOVE_THUNDERFANG,
MOVE_ICEFANG,
MOVE_AFTERYOU,
MOVE_PSYCHICFANGS),
egg_moves(PURRLOIN,
MOVE_PAYDAY,
MOVE_FOULPLAY,
@ -2630,6 +2957,19 @@ const u16 gEggMoves[] = {
MOVE_BELCH,
MOVE_FLAREBLITZ),
egg_moves(PANPOUR,
MOVE_COVET,
MOVE_LOWKICK,
MOVE_TICKLE,
MOVE_NASTYPLOT,
MOVE_ROLEPLAY,
MOVE_ASTONISH,
MOVE_AQUARING,
MOVE_AQUATAIL,
MOVE_MUDSPORT,
MOVE_HYDROPUMP,
MOVE_DISARMINGVOICE),
egg_moves(MUNNA,
MOVE_SLEEPTALK,
MOVE_SECRETPOWER,
@ -2700,6 +3040,19 @@ const u16 gEggMoves[] = {
MOVE_SKULLBASH,
MOVE_ROCKCLIMB),
egg_moves(AUDINO,
MOVE_WISH,
MOVE_HEALBELL,
MOVE_LUCKYCHANT,
MOVE_ENCORE,
MOVE_BESTOW,
MOVE_SWEETKISS,
MOVE_YAWN,
MOVE_SLEEPTALK,
MOVE_HEALINGWISH,
MOVE_AMNESIA,
MOVE_DRAININGKISS),
egg_moves(TIMBURR,
MOVE_DRAINPUNCH,
MOVE_ENDURE,
@ -2759,6 +3112,18 @@ const u16 gEggMoves[] = {
MOVE_CAPTIVATE,
MOVE_MISTYTERRAIN),
egg_moves(PETILIL,
MOVE_NATURALGIFT,
MOVE_CHARM,
MOVE_ENDURE,
MOVE_INGRAIN,
MOVE_WORRYSEED,
MOVE_GRASSWHISTLE,
MOVE_SWEETSCENT,
MOVE_BIDE,
MOVE_HEALINGWISH,
MOVE_ENCORE),
egg_moves(BASCULIN_RED,
MOVE_SWIFT,
MOVE_BUBBLEBEAM,
@ -2809,6 +3174,18 @@ const u16 gEggMoves[] = {
MOVE_GRASSWHISTLE,
MOVE_GRASSYTERRAIN),
egg_moves(DWEBBLE,
MOVE_ENDURE,
MOVE_IRONDEFENSE,
MOVE_NIGHTSLASH,
MOVE_SANDTOMB,
MOVE_COUNTER,
MOVE_CURSE,
MOVE_SPIKES,
MOVE_BLOCK,
MOVE_WIDEGUARD,
MOVE_ROTOTILLER),
egg_moves(SCRAGGY,
MOVE_DRAINPUNCH,
MOVE_COUNTER,
@ -3048,6 +3425,18 @@ const u16 gEggMoves[] = {
MOVE_CLEARSMOG,
MOVE_POWERSPLIT),
egg_moves(AXEW,
MOVE_COUNTER,
MOVE_FOCUSENERGY,
MOVE_REVERSAL,
MOVE_ENDURE,
MOVE_RAZORWIND,
MOVE_NIGHTSLASH,
MOVE_ENDEAVOR,
MOVE_IRONTAIL,
MOVE_DRAGONPULSE,
MOVE_HARDEN),
egg_moves(CUBCHOO,
MOVE_YAWN,
MOVE_AVALANCHE,
@ -3153,6 +3542,14 @@ const u16 gEggMoves[] = {
MOVE_SLEEPTALK,
MOVE_BELCH),
egg_moves(DURANT,
MOVE_SCREECH,
MOVE_ENDURE,
MOVE_ROCKCLIMB,
MOVE_BATONPASS,
MOVE_THUNDERFANG,
MOVE_FEINTATTACK),
egg_moves(DEINO,
MOVE_FIREFANG,
MOVE_THUNDERFANG,
@ -3277,6 +3674,13 @@ const u16 gEggMoves[] = {
MOVE_SNATCH,
MOVE_QUICKGUARD),
egg_moves(LITLEO,
MOVE_ENTRAINMENT,
MOVE_YAWN,
MOVE_SNATCH,
MOVE_FIRESPIN,
MOVE_FLAREBLITZ),
egg_moves(FLABEBE,
MOVE_COPYCAT,
MOVE_CAPTIVATE,
@ -3289,6 +3693,14 @@ const u16 gEggMoves[] = {
MOVE_MILKDRINK,
MOVE_GRASSYTERRAIN),
egg_moves(PANCHAM,
MOVE_QUASH,
MOVE_MEFIRST,
MOVE_QUICKGUARD,
MOVE_FOULPLAY,
MOVE_STORMTHROW,
MOVE_POWERTRIP),
egg_moves(FURFROU,
MOVE_ROLEPLAY,
MOVE_WORKUP,
@ -3381,6 +3793,13 @@ const u16 gEggMoves[] = {
MOVE_QUICKGUARD,
MOVE_FEINT),
egg_moves(DEDENNE,
MOVE_EERIEIMPULSE,
MOVE_COVET,
MOVE_HELPINGHAND,
MOVE_NATURALGIFT,
MOVE_TEARFULLOOK),
egg_moves(GOOMY,
MOVE_ACIDARMOR,
MOVE_CURSE,
@ -3506,6 +3925,12 @@ const u16 gEggMoves[] = {
MOVE_MUDSHOT,
MOVE_ENDURE),
egg_moves(CRABRAWLER,
MOVE_WIDEGUARD,
MOVE_SUPERPOWER,
MOVE_ENDEAVOR,
MOVE_AMNESIA),
egg_moves(ORICORIO,
MOVE_PLUCK,
MOVE_TAILWIND,
@ -3548,6 +3973,13 @@ const u16 gEggMoves[] = {
MOVE_CLOSECOMBAT,
MOVE_MUDBOMB),
egg_moves(DEWPIDER,
MOVE_POWERSPLIT,
MOVE_AURORABEAM,
MOVE_STOCKPILE,
MOVE_SPITUP,
MOVE_STICKYWEB),
egg_moves(FOMANTIS,
MOVE_WEATHERBALL,
MOVE_GIGADRAIN,
@ -3586,11 +4018,25 @@ const u16 gEggMoves[] = {
MOVE_CHARM,
MOVE_ACUPRESSURE),
egg_moves(COMFEY,
MOVE_ENDURE,
MOVE_AMNESIA,
MOVE_AFTERYOU,
MOVE_LUCKYCHANT),
egg_moves(ORANGURU,
MOVE_EXTRASENSORY,
MOVE_WONDERROOM,
MOVE_PSYCHICTERRAIN),
egg_moves(PASSIMIAN,
MOVE_SEISMICTOSS,
MOVE_VITALTHROW,
MOVE_QUICKGUARD,
MOVE_IRONHEAD,
MOVE_QUICKATTACK,
MOVE_FEINT),
egg_moves(WIMPOD,
MOVE_SPIKES,
MOVE_METALCLAW,
@ -3649,6 +4095,13 @@ const u16 gEggMoves[] = {
MOVE_ICEFANG,
MOVE_RAGE),
egg_moves(DRAMPA,
MOVE_HURRICANE,
MOVE_DRAGONRUSH,
MOVE_RAZORWIND,
MOVE_MIST,
MOVE_PLAYROUGH),
egg_moves(JANGMO_O,
MOVE_COUNTER,
MOVE_REVERSAL,
@ -3767,6 +4220,19 @@ const u16 gEggMoves[] = {
MOVE_BLOCK,
MOVE_GRASSYTERRAIN),
egg_moves(CUBONE_A,
MOVE_ANCIENTPOWER,
MOVE_BELLYDRUM,
MOVE_SCREECH,
MOVE_SKULLBASH,
MOVE_PERISHSONG,
MOVE_DOUBLEKICK,
MOVE_IRONHEAD,
MOVE_DETECT,
MOVE_ENDURE,
MOVE_CHIPAWAY,
MOVE_CURSE),
egg_moves(ORICORIO_Y,
MOVE_PLUCK,
MOVE_TAILWIND,
@ -3786,7 +4252,78 @@ const u16 gEggMoves[] = {
MOVE_CAPTIVATE),
};
u32 GetUpdatedEggMoveLimit()
u32 __attribute__((long_call)) GetMonData(void*, s32, const void *data);
void __attribute__((long_call)) break_func(u32);
#define MON_DATA_SPECIES 11
#define EGG_MOVES_ARRAY_COUNT 50
// Counts the number of egg moves a pokemon learns and stores the moves in
// the given array.
u8 GetEggMoves(void* pokemon, u16 *eggMoves)
{
return ARRAY_COUNT(gEggMoves) - 1;
u16 numEggMoves;
u16 species;
u32 i;
u32 eggMoveIdx;
numEggMoves = 0;
eggMoveIdx = 0;
species = GetMonData(pokemon, MON_DATA_SPECIES, 0);
for (i = 0; i < ARRAY_COUNT(gEggMoves) - 1; ++i)
{
if (gEggMoves[i] == species + EGG_MOVES_SPECIES_OFFSET)
{
eggMoveIdx = i + 1;
break;
}
}
for (i = 0; i < EGG_MOVES_ARRAY_COUNT; ++i)
{
if (gEggMoves[eggMoveIdx + i] > EGG_MOVES_SPECIES_OFFSET)
break;
eggMoves[i] = gEggMoves[eggMoveIdx + i];
numEggMoves++;
}
return numEggMoves;
}
extern const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON];
// Determines what the species of an Egg would be based on the given species.
// It determines this by working backwards through the evolution chain of the
// given species.
u16 GetEggSpecies(u16 species)
{
int i, j, k;
bool8 found;
// Working backwards up to 5 times seems arbitrary, since the maximum number
// of times would only be 3 for 3-stage evolutions.
for (i = 0; i < EVOS_PER_MON; i++)
{
found = FALSE;
for (j = 1; j < NUM_SPECIES; j++)
{
for (k = 0; k < EVOS_PER_MON; k++)
{
if (gEvolutionTable[j][k].method != EVO_MEGA && gEvolutionTable[j][k].targetSpecies == species)
{
species = j;
found = TRUE;
break;
}
}
if (found)
break;
}
if (j == NUM_SPECIES)
break;
}
return species;
}