Add getstring method with non-sav data

This commit is contained in:
Kurt 2018-12-04 22:00:57 -08:00
parent bca8924437
commit 4c1232855f
15 changed files with 21 additions and 37 deletions

View File

@ -555,7 +555,7 @@ public bool[] EventSpawnFlags
}
}
public override string GetString(int Offset, int Length) => StringConverter.GetString1(Data, Offset, Length, Japanese);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString1(data, offset, length, Japanese);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -657,11 +657,11 @@ public void UnlockAllDecorations()
SetEventFlag(i, true);
}
public override string GetString(int Offset, int Length)
public override string GetString(byte[] data, int offset, int length)
{
if (Korean)
return StringConverter.GetString2KOR(Data, Offset, Length);
return StringConverter.GetString1(Data, Offset, Length, Japanese);
return StringConverter.GetString2KOR(data, offset, length);
return StringConverter.GetString1(data, offset, length, Japanese);
}
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)

View File

@ -776,7 +776,7 @@ public bool NationalDex
}
}
public override string GetString(int Offset, int Length) => StringConverter.GetString3(Data, Offset, Length, Japanese);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString3(data, offset, length, Japanese);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -411,7 +411,7 @@ public override InventoryPouch[] Inventory
public override void SetDaycareEXP(int loc, int slot, uint EXP) { }
public override void SetDaycareOccupied(int loc, int slot, bool occupied) { }
public override string GetString(int Offset, int Length) => StringConverter.GetBEString3(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetBEString3(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -201,7 +201,7 @@ public override void SetStoredSlot(PKM pkm, int offset, bool? trade = null, bool
Edited = true;
}
public override string GetString(int Offset, int Length) => StringConverter.GetString3(Data, Offset, Length, Japanese);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString3(data, offset, length, Japanese);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -377,7 +377,7 @@ public override InventoryPouch[] Inventory
public override void SetDaycareEXP(int loc, int slot, uint EXP) { }
public override void SetDaycareOccupied(int loc, int slot, bool occupied) { }
public override string GetString(int Offset, int Length) => StringConverter.GetBEString3(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetBEString3(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -1301,7 +1301,7 @@ public bool[] PokewalkerCoursesUnlocked
public int GetApricornCount(int i) => !HGSS ? -1 : Data[0xE558 + GBO + i];
public void SetApricornCount(int i, int count) => Data[0xE558 + GBO + i] = (byte)count;
public override string GetString(int Offset, int Length) => StringConverter.GetString4(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString4(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -326,7 +326,7 @@ private static void SetChecksum(byte[] input, int offset, int len, int checksum_
}
}
public override string GetString(int Offset, int Length) => StringConverter.GetBEString4(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetBEString4(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -546,7 +546,7 @@ public override bool GetSeen(int species)
return false;
}
public override string GetString(int Offset, int Length) => StringConverter.GetString5(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString5(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -1086,7 +1086,7 @@ public override string MiscSaveChecks()
public override string MiscSaveInfo() => string.Join(Environment.NewLine, Blocks.Select(b => b.Summary));
public override string GetString(int Offset, int Length) => StringConverter.GetString6(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString6(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -1510,7 +1510,7 @@ public bool ZMoveUnlocked
set => Data[TrainerCard + 0x78] = (byte)((Data[TrainerCard + 0x78] & ~2) | (value ? 2 : 0)); // in battle
}
public override string GetString(int Offset, int Length) => StringConverter.GetString7(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString7(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -178,7 +178,7 @@ protected override void SetPKM(PKM pkm)
public override string GetBoxName(int box) => $"Box {box + 1}";
public override void SetBoxName(int box, string value) { }
public override string GetString(int Offset, int Length) => StringConverter.GetString7(Data, Offset, Length);
public override string GetString(byte[] data, int offset, int length) => StringConverter.GetString7(data, offset, length);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
{

View File

@ -455,6 +455,7 @@ public bool IsPartyAllEggs(params int[] except)
protected int[] LockedSlots = Array.Empty<int>();
protected int[] TeamSlots = Array.Empty<int>();
protected virtual IList<int>[] SlotPointers => new[] {LockedSlots,TeamSlots};
public virtual StorageSlotFlag GetSlotFlags(int index) => StorageSlotFlag.None;
public bool MoveBox(int box, int insertBeforeBox)
{
@ -467,8 +468,6 @@ public bool MoveBox(int box, int insertBeforeBox)
int pos2 = BoxSlotCount*insertBeforeBox;
int min = Math.Min(pos1, pos2);
int max = Math.Max(pos1, pos2);
if (LockedSlots.Any(slot => min <= slot && slot < max)) // slots locked within operation range
return false;
int len = BoxSlotCount*SIZE_STORED;
byte[] boxdata = GetData(GetBoxOffset(0), len*BoxCount); // get all boxes
@ -835,7 +834,8 @@ public bool IsRangeAll(int Offset, int Length, int value)
public virtual bool IsPKMPresent(int Offset) => PKX.IsPKMPresent(Data, Offset);
public abstract string GetString(int Offset, int Length);
public abstract string GetString(byte[] data, int offset, int length);
public string GetString(int offset, int length) => GetString(Data, offset, length);
public abstract byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0);
public virtual string EBerryName => string.Empty;

View File

@ -64,8 +64,8 @@ protected BulkStorage(byte[] data, Type t, int start, int slotsPerBox = 30)
public override void SetBoxName(int box, string value) { }
public override int GetPartyOffset(int slot) => int.MinValue;
public override string GetString(int Offset, int Length)
=> StringConverter.GetString(Data, Generation, blank.Japanese, BigEndian, Length, Offset);
public override string GetString(byte[] data, int offset, int length)
=> StringConverter.GetString(data, Generation, blank.Japanese, BigEndian, length, offset);
public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
=> StringConverter.SetString(value, Generation, blank.Japanese, BigEndian, maxLength, padTo: PadToSize, padWith: PadWith);

View File

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using PKHeX.Core;
@ -16,7 +15,6 @@ public TrashEditor(TextBoxBase TB_NN, byte[] raw, SaveFile sav)
InitializeComponent();
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
SAV = sav;
bigendian = new[] { GameVersion.COLO, GameVersion.XD, GameVersion.BATREV, }.Contains(SAV.Version);
FinalString = TB_NN.Text;
Raw = FinalBytes = raw;
@ -51,7 +49,6 @@ public TrashEditor(TextBoxBase TB_NN, byte[] raw, SaveFile sav)
public byte[] FinalBytes { get; private set; }
private readonly byte[] Raw;
private bool editing;
private readonly bool bigendian;
private void B_Cancel_Click(object sender, EventArgs e) => Close();
private void B_Save_Click(object sender, EventArgs e)
@ -175,21 +172,8 @@ private void B_ClearTrash_Click(object sender, EventArgs e)
Bytes[i].Value = 0;
}
private byte[] SetString(string text)
{
if (SAV is SAV2 s && s.Korean)
return StringConverter.SetString2KOR(text, Raw.Length);
if (SAV is SAV7b)
return StringConverter.SetString7b(text, SAV.Generation, Raw.Length, SAV.Language);
return StringConverter.SetString(text, SAV.Generation, SAV.Japanese, bigendian, Raw.Length, SAV.Language);
}
private string GetString()
{
return SAV is SAV2 s && s.Korean
? StringConverter.GetString2KOR(Raw, 0, Raw.Length)
: StringConverter.GetString(Raw, SAV.Generation, SAV.Japanese, bigendian, Raw.Length);
}
private byte[] SetString(string text) => SAV.SetString(text, Raw.Length);
private string GetString() => SAV.GetString(Raw, 0, Raw.Length);
// Helpers
private static Label GetLabel(string str) => new Label {Text = str, AutoSize = true};