Fix header interaction on savefile clone

Probably should refactor this so all saves are handled the same way
(header & footer checks)

Closes #496
This commit is contained in:
Kurt 2016-12-27 15:05:06 -08:00
parent 2261a46670
commit a4fbb7e0dd
3 changed files with 18 additions and 3 deletions

View file

@ -115,7 +115,12 @@ namespace PKHeX
}
// Configuration
public override SaveFile Clone() { return new SAV3Colosseum(Write(DSV: false)); }
public override SaveFile Clone()
{
byte[] data = Write(DSV: false).Skip(Header.Length).ToArray();
var sav = new SAV3Colosseum(data) { Header = (byte[])Header.Clone() };
return sav;
}
public override int SIZE_STORED => PKX.SIZE_3CSTORED;
public override int SIZE_PARTY => PKX.SIZE_3CSTORED; // unused

View file

@ -67,7 +67,12 @@ namespace PKHeX
}
// Configuration
public override SaveFile Clone() { return new SAV3(Write(DSV: false), Version); }
public override SaveFile Clone()
{
byte[] data = Write(DSV: false).Skip(Header.Length).ToArray();
var sav = new SAV3RSBox(data) {Header = (byte[]) Header.Clone()};
return sav;
}
public override int SIZE_STORED => PKX.SIZE_3STORED + 4;
public override int SIZE_PARTY => PKX.SIZE_3PARTY; // unused

View file

@ -128,7 +128,12 @@ namespace PKHeX
}
// Configuration
public override SaveFile Clone() { return new SAV3XD(Write(DSV: false)); }
public override SaveFile Clone()
{
byte[] data = Write(DSV: false).Skip(Header.Length).ToArray();
var sav = new SAV3XD(data) {Header = (byte[]) Header.Clone()};
return sav;
}
public override int SIZE_STORED => PKX.SIZE_3XSTORED;
public override int SIZE_PARTY => PKX.SIZE_3XSTORED; // unused