mirror of
https://github.com/mm201/pkmn-classic-framework.git
synced 2026-08-27 20:54:10 -05:00
Retire GtsRecord5.Unknown0
This commit is contained in:
@@ -1191,8 +1191,7 @@ namespace PkmnFoundations.Data
|
||||
public bool GtsDepositPokemon5(MySqlTransaction tran, GtsRecord5 record)
|
||||
{
|
||||
if (record == null) throw new ArgumentNullException("record");
|
||||
if (record.Data.Length != 220) throw new FormatException("pkm data must be 220 bytes.");
|
||||
if (record.Unknown0.Length != 16) throw new FormatException("pkm padding must be 16 bytes.");
|
||||
if (record.Data.Length != 236) throw new FormatException("pkm data must be 220 bytes.");
|
||||
if (record.TrainerName.RawData.Length != 16) throw new FormatException("Trainer name must be 16 bytes.");
|
||||
// note that IsTraded being true in the record is not an error condition
|
||||
// since it might have use later on. You should check for this in the upload handler.
|
||||
@@ -1226,8 +1225,7 @@ namespace PkmnFoundations.Data
|
||||
public override bool GtsDepositPokemon5(GtsRecord5 record)
|
||||
{
|
||||
if (record == null) throw new ArgumentNullException("record");
|
||||
if (record.Data.Length != 220) throw new FormatException("pkm data must be 220 bytes.");
|
||||
if (record.Unknown0.Length != 16) throw new FormatException("pkm padding must be 16 bytes.");
|
||||
if (record.Data.Length != 236) throw new FormatException("pkm data must be 236 bytes.");
|
||||
if (record.TrainerName.RawData.Length != 16) throw new FormatException("Trainer name must be 16 bytes.");
|
||||
|
||||
return WithTransactionSuccessful(tran => GtsDepositPokemon5(tran, record));
|
||||
@@ -1407,16 +1405,14 @@ namespace PkmnFoundations.Data
|
||||
// xxx: Don't use ordinals here
|
||||
GtsRecord5 result = new GtsRecord5();
|
||||
|
||||
byte[] data = new byte[220];
|
||||
// xxx: Data and Unknown0 should share a database field.
|
||||
// (This requires migrating a lot of existing data)
|
||||
byte[] data = new byte[236];
|
||||
reader.GetBytes(0, 0, data, 0, 220);
|
||||
reader.GetBytes(1, 0, data, 220, 16);
|
||||
result.Data = data;
|
||||
data = null;
|
||||
|
||||
data = new byte[16];
|
||||
reader.GetBytes(1, 0, data, 0, 16);
|
||||
result.Unknown0 = data;
|
||||
data = null;
|
||||
|
||||
result.Species = reader.GetUInt16(2);
|
||||
result.Gender = (Genders)reader.GetByte(3);
|
||||
result.Level = reader.GetByte(4);
|
||||
@@ -1455,8 +1451,13 @@ namespace PkmnFoundations.Data
|
||||
{
|
||||
MySqlParameter[] result = new MySqlParameter[25];
|
||||
|
||||
result[0] = new MySqlParameter("@Data", record.Data);
|
||||
result[1] = new MySqlParameter("@Unknown0", record.Unknown0);
|
||||
byte[] data = new byte[220];
|
||||
byte[] unknown0 = new byte[16];
|
||||
Array.Copy(record.Data, 0, data, 0, 220);
|
||||
Array.Copy(record.Data, 220, unknown0, 0, 16);
|
||||
|
||||
result[0] = new MySqlParameter("@Data", data);
|
||||
result[1] = new MySqlParameter("@Unknown0", unknown0);
|
||||
result[2] = new MySqlParameter("@Species", record.Species);
|
||||
result[3] = new MySqlParameter("@Gender", (byte)record.Gender);
|
||||
result[4] = new MySqlParameter("@Level", record.Level);
|
||||
@@ -1503,8 +1504,7 @@ namespace PkmnFoundations.Data
|
||||
{
|
||||
// todo: Bring these out into a ValidateRecord5 method
|
||||
if (record == null) throw new ArgumentNullException("record");
|
||||
if (record.Data.Length != 220) throw new FormatException("pkm data must be 220 bytes.");
|
||||
if (record.Unknown0.Length != 16) throw new FormatException("pkm padding must be 16 bytes.");
|
||||
if (record.Data.Length != 236) throw new FormatException("pkm data must be 236 bytes.");
|
||||
if (record.TrainerName.RawData.Length != 16) throw new FormatException("Trainer name must be 16 bytes.");
|
||||
// note that IsTraded being true in the record is not an error condition
|
||||
// since it might have use later on. You should check for this in the upload handler.
|
||||
|
||||
@@ -38,11 +38,6 @@ namespace PkmnFoundations.Structures
|
||||
/// </summary>
|
||||
public byte[] Data;
|
||||
|
||||
/// <summary>
|
||||
/// Unknown padding between pkm and rest of data. 16 bytes.
|
||||
/// </summary>
|
||||
public byte[] Unknown0;
|
||||
|
||||
/// <summary>
|
||||
/// National Dex species number
|
||||
/// </summary>
|
||||
@@ -101,12 +96,10 @@ namespace PkmnFoundations.Structures
|
||||
protected override void Save(BinaryWriter writer)
|
||||
{
|
||||
// todo: enclose in properties and validate these when assigning.
|
||||
if (Data.Length != 0xDC) throw new FormatException("PKM length is incorrect");
|
||||
if (Data.Length != 0xEC) throw new FormatException("PKM length is incorrect");
|
||||
if (TrainerName.RawData.Length != 0x10) throw new FormatException("Trainer name length is incorrect");
|
||||
|
||||
writer.Write(Data, 0, 0xDC); // 0x0000
|
||||
writer.Write(Unknown0, 0, 0x10); // 0x00DC
|
||||
|
||||
writer.Write(Data, 0, 0xEC); // 0x0000
|
||||
writer.Write(Species); // 0x00EC
|
||||
writer.Write((byte)Gender); // 0x00EE
|
||||
writer.Write(Level); // 0x00EF
|
||||
@@ -134,8 +127,7 @@ namespace PkmnFoundations.Structures
|
||||
|
||||
protected override void Load(BinaryReader reader)
|
||||
{
|
||||
Data = reader.ReadBytes(0xDC); // 0x0000
|
||||
Unknown0 = reader.ReadBytes(0x10); // 0x00DC
|
||||
Data = reader.ReadBytes(0xEC); // 0x0000
|
||||
Species = reader.ReadUInt16(); // 0x00EC
|
||||
Gender = (Genders)reader.ReadByte(); // 0x00EE
|
||||
Level = reader.ReadByte(); // 0x00EF
|
||||
|
||||
Reference in New Issue
Block a user