Add gen7 learsnets for pokemon

This commit is contained in:
DizzyEggg 2018-09-22 13:52:38 +02:00
parent c5831d5f3e
commit bf11c35eaf
6 changed files with 6119 additions and 3792 deletions

View File

@ -638,6 +638,61 @@
#define MOVES_COUNT_GEN6 622
// Gen7 moves.
#define MOVE_SHORE_UP 622
#define MOVE_FIRST_IMPRESSION 623
#define MOVE_BANEFUL_BUNKER 624
#define MOVE_SPIRIT_SHACKLE 625
#define MOVE_DARKEST_LARIAT 626
#define MOVE_SPARKLING_ARIA 627
#define MOVE_ICE_HAMMER 628
#define MOVE_FLORAL_HEALING 629
#define MOVE_HIGH_HORSEPOWER 630
#define MOVE_STRENGTH_SAP 631
#define MOVE_SOLAR_BLADE 632
#define MOVE_LEAFAGE 633
#define MOVE_SPOTLIGHT 634
#define MOVE_TOXIC_THREAD 635
#define MOVE_LASER_FOCUS 636
#define MOVE_GEAR_UP 637
#define MOVE_THROAT_CHOP 638
#define MOVE_POLLEN_PUFF 639
#define MOVE_ANCHOR_SHOT 640
#define MOVE_PSYCHIC_TERRAIN 641
#define MOVE_LUNGE 642
#define MOVE_FIRE_LASH 643
#define MOVE_POWER_TRIP 644
#define MOVE_BURN_UP 645
#define MOVE_SPEED_SWAP 646
#define MOVE_SMART_STRIKE 647
#define MOVE_PURIFY 648
#define MOVE_REVELATION_DANCE 649
#define MOVE_CORE_ENFORCER 650
#define MOVE_TROP_KICK 651
#define MOVE_INSTRUCT 652
#define MOVE_BEAK_BLAST 653
#define MOVE_CLANGING_SCALES 654
#define MOVE_DRAGON_HAMMER 655
#define MOVE_BRUTAL_SWING 656
#define MOVE_AURORA_VEIL 657
#define MOVE_SHELL_TRAP 658
#define MOVE_FLEUR_CANNON 659
#define MOVE_PSYCHIC_FANGS 660
#define MOVE_STOMPING_TANTRUM 661
#define MOVE_SHADOW_BONE 662
#define MOVE_ACCELEROCK 663
#define MOVE_LIQUIDATION 664
#define MOVE_PRISMATIC_LASER 665
#define MOVE_SPECTRAL_THIEF 666
#define MOVE_SUNSTEEL_STRIKE 667
#define MOVE_MOONGEIST_BEAM 668
#define MOVE_TEARFUL_LOOK 669
#define MOVE_ZING_ZAP 670
#define MOVE_NATURES_MADNESS 671
#define MOVE_MULTI_ATTACK 672
#define MOVES_COUNT_GEN7 673
#define MOVES_COUNT MOVES_COUNT_GEN6
#endif // GUARD_CONSTANTS_MOVES_H

View File

@ -376,10 +376,10 @@ struct SpindaSpot
u16 image[16];
};
struct __attribute__((packed)) LevelUpMove
struct LevelUpMove
{
u16 move:9;
u16 level:7;
u16 move;
u16 level;
};
enum
@ -447,7 +447,7 @@ extern const struct BaseStats gBaseStats[];
extern const u8 *const gItemEffectTable[];
extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[];
extern const struct LevelUpMove *const gLevelUpLearnsets[];
extern const u8 gUnknown_08329D22[];
extern const u8 gUnknown_08329D26[];
extern const u8 gUnknown_08329D2A[];

View File

@ -1,7 +1,7 @@
#ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
#define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
const u16 *const gLevelUpLearnsets[NUM_SPECIES] =
const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] =
{
[SPECIES_NONE] = sBulbasaurLevelUpLearnset,
[SPECIES_BULBASAUR] = sBulbasaurLevelUpLearnset,

File diff suppressed because it is too large Load Diff

View File

@ -1902,7 +1902,7 @@ static const u8 sECHOED_VOICEDescription[] = _(
"it is used.");
static const u8 sCHIP_AWAYDescription[] = _(
"Strikes through the foeApos, s\n"
"Strikes through the foes\n"
"stat changes.");
static const u8 sCLEAR_SMOGDescription[] = _(
@ -1962,7 +1962,7 @@ static const u8 sACROBATICSDescription[] = _(
"user has no item.");
static const u8 sREFLECT_TYPEDescription[] = _(
"The user reflects the foeApos, s\n"
"The user reflects the foes\n"
"type, copying it.");
static const u8 sRETALIATEDescription[] = _(
@ -2231,7 +2231,7 @@ static const u8 sSTEAM_ERUPTIONDescription[] = _(
static const u8 sHYPERSPACE_HOLEDescription[] = _(
"Uses a warp hole to attack.\n"
"CanApos, t be evaded.");
"Cant be evaded.");
static const u8 sWATER_SHURIKENDescription[] = _(
"Throws 2 to 5 stars that\n"
@ -2411,7 +2411,7 @@ static const u8 sBURN_UPDescription[] = _(
static const u8 sSPEED_SWAPDescription[] = _(
"Swaps users Speed with\n"
"the targetApos, s.");
"the targets.");
static const u8 sSMART_STRIKEDescription[] = _(
"Hits with an accurate\n"

View File

@ -3312,20 +3312,12 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
s32 level = GetLevelFromBoxMonExp(boxMon);
s32 i;
for (i = 0; gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++)
for (i = 0; gLevelUpLearnsets[species][i].move != LEVEL_UP_END; i++)
{
u16 moveLevel;
u16 move;
moveLevel = (gLevelUpLearnsets[species][i] & 0xFE00);
if (moveLevel > (level << 9))
if (gLevelUpLearnsets[species][i].level > level)
break;
move = (gLevelUpLearnsets[species][i] & 0x1FF);
if (GiveMoveToBoxMon(boxMon, move) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move);
if (GiveMoveToBoxMon(boxMon, gLevelUpLearnsets[species][i].move) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, gLevelUpLearnsets[species][i].move);
}
}
@ -3343,17 +3335,17 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove)
{
sLearningMoveTableID = 0;
while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9))
while (gLevelUpLearnsets[species][sLearningMoveTableID].level != level)
{
sLearningMoveTableID++;
if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END)
if (gLevelUpLearnsets[species][sLearningMoveTableID].move == LEVEL_UP_END)
return 0;
}
}
if ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) == (level << 9))
if (gLevelUpLearnsets[species][sLearningMoveTableID].level == level)
{
gMoveToLearn = (gLevelUpLearnsets[species][sLearningMoveTableID] & 0x1FF);
gMoveToLearn = gLevelUpLearnsets[species][sLearningMoveTableID].move;
sLearningMoveTableID++;
retVal = GiveMoveToMon(mon, gMoveToLearn);
}
@ -6223,23 +6215,23 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves)
{
u16 moveLevel;
if (gLevelUpLearnsets[species][i] == 0xFFFF)
if (gLevelUpLearnsets[species][i].move == LEVEL_UP_END)
break;
moveLevel = gLevelUpLearnsets[species][i] & 0xFE00;
moveLevel = gLevelUpLearnsets[species][i].level;
if (moveLevel <= (level << 9))
if (moveLevel <= level)
{
for (j = 0; j < 4 && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++)
for (j = 0; j < 4 && learnedMoves[j] != gLevelUpLearnsets[species][i].move; j++)
;
if (j == 4)
{
for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++)
for (k = 0; k < numMoves && moves[k] != gLevelUpLearnsets[species][i].move; k++)
;
if (k == numMoves)
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
moves[numMoves++] = gLevelUpLearnsets[species][i].move;
}
}
}
@ -6252,8 +6244,8 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves)
u8 numMoves = 0;
int i;
for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != 0xFFFF; i++)
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
for (i = 0; i < 20 && gLevelUpLearnsets[species][i].move != 0xFFFF; i++)
moves[numMoves++] = gLevelUpLearnsets[species][i].move;
return numMoves;
}
@ -6277,23 +6269,23 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon)
{
u16 moveLevel;
if (gLevelUpLearnsets[species][i] == 0xFFFF)
if (gLevelUpLearnsets[species][i].move == LEVEL_UP_END)
break;
moveLevel = gLevelUpLearnsets[species][i] & 0xFE00;
moveLevel = gLevelUpLearnsets[species][i].level;
if (moveLevel <= (level << 9))
if (moveLevel <= level)
{
for (j = 0; j < 4 && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++)
for (j = 0; j < 4 && learnedMoves[j] != gLevelUpLearnsets[species][i].move; j++)
;
if (j == 4)
{
for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++)
for (k = 0; k < numMoves && moves[k] != gLevelUpLearnsets[species][i].move; k++)
;
if (k == numMoves)
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
moves[numMoves++] = gLevelUpLearnsets[species][i].move;
}
}
}