PKHeX/PKHeX.Core/Saves/Substructures/Gen6/SecretBase6.cs

72 lines
2.4 KiB
C#
Raw Normal View History

using System;
namespace PKHeX.Core
{
/// <summary>
/// Secret base format for <see cref="GameVersion.ORAS"/>
/// </summary>
public sealed class SecretBase6
{
private readonly byte[] Data;
private readonly int Offset;
public const int SIZE = 0x3E0;
public int BaseLocation
{
get => BitConverter.ToInt16(Data, Offset);
set => BitConverter.GetBytes((short)value).CopyTo(Data, Offset);
}
public SecretBase6(byte[] data, int offset = 0)
{
Data = data;
Offset = offset;
}
public string TrainerName
{
get => StringConverter.GetString6(Data, Offset + 0x218, 0x1A);
set => StringConverter.SetString6(TrainerName, 0x1A / 2).CopyTo(Data, Offset + 0x218);
}
public string FlavorText1
{
get => StringConverter.GetString6(Data, Offset + 0x232 + (0x22 * 0), 0x22);
set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x232 + (0x22 * 0));
}
public string FlavorText2
{
get => StringConverter.GetString6(Data, Offset + 0x232 + (0x22 * 1), 0x22);
set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x232 + (0x22 * 1));
}
public string Saying1
{
get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 0), 0x22);
set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 0));
}
public string Saying2
{
get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 1), 0x22);
set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 1));
}
public string Saying3
{
get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 2), 0x22);
set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 2));
}
public string Saying4
{
get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 3), 0x22);
set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 3));
}
public bool IsDummiedBaseLocation => !IsEmpty && BaseLocation < 3;
public bool IsEmpty => BaseLocation == 0;
}
}