mirror of
https://github.com/mm201/pkmn-classic-framework.git
synced 2026-09-29 04:46:27 -05:00
Populate species/form correctly on Battle Tower Pokémon records. Should resolve validation issues with them.
This commit is contained in:
@@ -782,7 +782,7 @@ namespace PkmnFoundations.Data
|
||||
private List<MySqlParameter> ParamsFromBattleTowerPokemon4(BattleTowerPokemon4 pokemon)
|
||||
{
|
||||
List<MySqlParameter> result = new List<MySqlParameter>(15);
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesID));
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesFormValue));
|
||||
result.Add(new MySqlParameter("@held_item", pokemon.HeldItemID));
|
||||
result.Add(new MySqlParameter("@move1", (ushort)pokemon.Moves[0].MoveID));
|
||||
result.Add(new MySqlParameter("@move2", (ushort)pokemon.Moves[1].MoveID));
|
||||
@@ -2010,7 +2010,7 @@ namespace PkmnFoundations.Data
|
||||
private List<MySqlParameter> ParamsFromBattleSubwayPokemon5(BattleSubwayPokemon5 pokemon)
|
||||
{
|
||||
List<MySqlParameter> result = new List<MySqlParameter>(15);
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesID));
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesFormValue));
|
||||
result.Add(new MySqlParameter("@held_item", pokemon.HeldItemID));
|
||||
result.Add(new MySqlParameter("@move1", pokemon.Moves[0].MoveID));
|
||||
result.Add(new MySqlParameter("@move2", pokemon.Moves[1].MoveID));
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace PkmnFoundations.Structures
|
||||
{
|
||||
}
|
||||
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, ushort species, ushort held_item, ushort[] moveset,
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item, ushort[] moveset,
|
||||
uint ot, uint personality, uint ivs, byte[] evs, byte pp_ups,
|
||||
Languages language, byte ability, byte happiness, EncodedString5 nickname, uint unknown2) : base(pokedex)
|
||||
{
|
||||
@@ -24,7 +24,7 @@ namespace PkmnFoundations.Structures
|
||||
if (nickname == null) throw new ArgumentNullException("nickname");
|
||||
if (nickname.Size != 22) throw new ArgumentException("nickname");
|
||||
|
||||
SpeciesID = species;
|
||||
SpeciesFormValue = species_form;
|
||||
HeldItemID = held_item;
|
||||
GetMovesFromArray(Moves, pokedex, moveset, pp_ups);
|
||||
TrainerID = ot;
|
||||
@@ -39,11 +39,11 @@ namespace PkmnFoundations.Structures
|
||||
Unknown2 = unknown2;
|
||||
}
|
||||
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, ushort species, ushort held_item,
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item,
|
||||
ushort move1, ushort move2, ushort move3, ushort move4, uint ot, uint personality,
|
||||
uint ivs, byte[] evs, byte pp_ups, Languages language, byte ability, byte happiness,
|
||||
EncodedString5 nickname, uint unknown2) :
|
||||
this(pokedex, species, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
this(pokedex, species_form, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
ot, personality, ivs, evs, pp_ups, language, ability, happiness, nickname, unknown2)
|
||||
{
|
||||
}
|
||||
@@ -83,7 +83,7 @@ namespace PkmnFoundations.Structures
|
||||
|
||||
protected override void Save(BinaryWriter writer)
|
||||
{
|
||||
writer.Write((ushort)SpeciesID);
|
||||
writer.Write(SpeciesFormValue);
|
||||
writer.Write((ushort)HeldItemID);
|
||||
|
||||
ushort[] moveset = GetArrayFromMoves(Moves);
|
||||
@@ -108,7 +108,7 @@ namespace PkmnFoundations.Structures
|
||||
|
||||
protected override void Load(BinaryReader reader)
|
||||
{
|
||||
SpeciesID = reader.ReadUInt16();
|
||||
SpeciesFormValue = reader.ReadUInt16();
|
||||
HeldItemID = reader.ReadUInt16();
|
||||
|
||||
ushort[] moveset = new ushort[4];
|
||||
@@ -141,7 +141,7 @@ namespace PkmnFoundations.Structures
|
||||
byte ppUps = GetPpUpsFromMoves(Moves);
|
||||
|
||||
BattleSubwayPokemon5 result = new BattleSubwayPokemon5(m_pokedex,
|
||||
(ushort)SpeciesID, (ushort)HeldItemID, moveset,
|
||||
SpeciesFormValue, (ushort)HeldItemID, moveset,
|
||||
TrainerID, Personality, ivsField, EVs.ToArray(), ppUps,
|
||||
Language, (byte)AbilityID, Happiness, NicknameEncoded, Unknown2);
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace PkmnFoundations.Structures
|
||||
{
|
||||
}
|
||||
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, ushort species, ushort held_item, ushort[] moveset,
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item, ushort[] moveset,
|
||||
uint ot, uint personality, uint ivs, byte[] evs, byte pp_ups,
|
||||
Languages language, byte ability, byte happiness, EncodedString4 nickname) : base(pokedex)
|
||||
{
|
||||
@@ -24,7 +24,7 @@ namespace PkmnFoundations.Structures
|
||||
if (nickname == null) throw new ArgumentNullException("nickname");
|
||||
if (nickname.Size != 22) throw new ArgumentException("nickname");
|
||||
|
||||
SpeciesID = species;
|
||||
SpeciesFormValue = species_form;
|
||||
HeldItemID = held_item;
|
||||
GetMovesFromArray(Moves, pokedex, moveset, pp_ups);
|
||||
TrainerID = ot;
|
||||
@@ -38,11 +38,11 @@ namespace PkmnFoundations.Structures
|
||||
NicknameEncoded = nickname; // todo: clone
|
||||
}
|
||||
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, ushort species, ushort held_item,
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item,
|
||||
ushort move1, ushort move2, ushort move3, ushort move4, uint ot, uint personality,
|
||||
uint ivs, byte[] evs, byte pp_ups, Languages language, byte ability, byte happiness,
|
||||
EncodedString4 nickname) :
|
||||
this(pokedex, species, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
this(pokedex, species_form, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
ot, personality, ivs, evs, pp_ups, language, ability, happiness, nickname)
|
||||
{
|
||||
}
|
||||
@@ -80,7 +80,7 @@ namespace PkmnFoundations.Structures
|
||||
|
||||
protected override void Save(BinaryWriter writer)
|
||||
{
|
||||
writer.Write((ushort)SpeciesID);
|
||||
writer.Write(SpeciesFormValue);
|
||||
writer.Write((ushort)HeldItemID);
|
||||
|
||||
ushort[] moveset = GetArrayFromMoves(Moves);
|
||||
@@ -104,7 +104,7 @@ namespace PkmnFoundations.Structures
|
||||
|
||||
protected override void Load(BinaryReader reader)
|
||||
{
|
||||
SpeciesID = reader.ReadUInt16();
|
||||
SpeciesFormValue = reader.ReadUInt16();
|
||||
HeldItemID = reader.ReadUInt16();
|
||||
|
||||
ushort[] moveset = new ushort[4];
|
||||
@@ -136,7 +136,7 @@ namespace PkmnFoundations.Structures
|
||||
byte ppUps = GetPpUpsFromMoves(Moves);
|
||||
|
||||
BattleTowerPokemon4 result = new BattleTowerPokemon4(m_pokedex,
|
||||
(ushort)SpeciesID, (ushort)HeldItemID, moveset,
|
||||
SpeciesFormValue, (ushort)HeldItemID, moveset,
|
||||
TrainerID, Personality, ivsField, EVs.ToArray(), ppUps,
|
||||
Language, (byte)AbilityID, Happiness, NicknameEncoded);
|
||||
|
||||
|
||||
@@ -34,6 +34,19 @@ namespace PkmnFoundations.Structures
|
||||
}
|
||||
}
|
||||
|
||||
public ushort SpeciesFormValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return (ushort)(SpeciesID & 0x7ff | FormID << 11);
|
||||
}
|
||||
set
|
||||
{
|
||||
SpeciesID = value & 0x7ff;
|
||||
FormID = (byte)(value >> 11);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void GetMovesFromArray(IList<MoveSlot> result, Pokedex.Pokedex pokedex, ushort[] moves, byte ppUps)
|
||||
{
|
||||
if (moves.Length != 4) throw new ArgumentException("moves");
|
||||
|
||||
Reference in New Issue
Block a user