2020-01-23 21:30:39 -08:00
|
|
|
using System.ComponentModel;
|
|
|
|
|
2022-04-09 18:12:57 -07:00
|
|
|
namespace PKHeX.Core;
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Base class for a savegame data reader.
|
|
|
|
/// </summary>
|
2022-04-15 11:45:04 -07:00
|
|
|
public abstract class SaveBlock<T> : IDataIndirect where T : SaveFile
|
2018-11-01 15:38:09 -07:00
|
|
|
{
|
2022-04-15 11:45:04 -07:00
|
|
|
protected readonly T SAV;
|
|
|
|
|
|
|
|
[Browsable(false)] public byte[] Data { get; }
|
|
|
|
[Browsable(false)] public int Offset { get; protected init; }
|
2022-04-09 18:12:57 -07:00
|
|
|
|
2022-04-15 11:45:04 -07:00
|
|
|
protected SaveBlock(T sav) : this(sav, sav.Data) { }
|
2022-04-09 18:12:57 -07:00
|
|
|
|
2022-04-15 11:45:04 -07:00
|
|
|
protected SaveBlock(T sav, byte[] data)
|
2018-11-01 15:38:09 -07:00
|
|
|
{
|
2022-04-09 18:12:57 -07:00
|
|
|
SAV = sav;
|
|
|
|
Data = data;
|
|
|
|
}
|
|
|
|
}
|
2020-01-23 21:30:39 -08:00
|
|
|
|
2022-04-15 11:45:04 -07:00
|
|
|
public interface IDataIndirect
|
2022-04-09 18:12:57 -07:00
|
|
|
{
|
2022-04-15 11:45:04 -07:00
|
|
|
int Offset { get; }
|
|
|
|
byte[] Data { get; }
|
2022-04-09 18:12:57 -07:00
|
|
|
}
|