2019-10-08 01:40:09 +00:00
|
|
|
|
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);
|
2021-05-18 20:12:43 +00:00
|
|
|
|
set => StringConverter.SetString6(value, 0x1A / 2).CopyTo(Data, Offset + 0x218);
|
2019-10-08 01:40:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|