2019-06-09 02:56:11 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace PKHeX.Core
|
|
|
|
|
{
|
|
|
|
|
public sealed class Situation7 : SaveBlock
|
|
|
|
|
{
|
|
|
|
|
public Situation7(SAV7 sav, int offset) : base(sav) => Offset = offset;
|
|
|
|
|
|
|
|
|
|
// "StartLocation"
|
|
|
|
|
public int M { get => BitConverter.ToUInt16(Data, Offset + 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x00); }
|
|
|
|
|
public float X { get => BitConverter.ToSingle(Data, Offset + 0x08); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x08); }
|
|
|
|
|
public float Z { get => BitConverter.ToSingle(Data, Offset + 0x10); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x10); }
|
|
|
|
|
public float Y { get => (int)BitConverter.ToSingle(Data, Offset + 0x18); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x18); }
|
|
|
|
|
public float R { get => (int)BitConverter.ToSingle(Data, Offset + 0x20); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x20); }
|
|
|
|
|
|
|
|
|
|
public void UpdateOverworldCoordinates()
|
|
|
|
|
{
|
|
|
|
|
var o = ((SAV7) SAV).OverworldBlock;
|
|
|
|
|
o.M = M;
|
|
|
|
|
o.X = X;
|
|
|
|
|
o.Z = Z;
|
|
|
|
|
o.Y = Y;
|
|
|
|
|
o.R = R;
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-23 23:56:47 +00:00
|
|
|
|
public int SpecialLocation
|
|
|
|
|
{
|
|
|
|
|
get => Data[Offset + 0x24];
|
|
|
|
|
set => Data[Offset + 0x24] = (byte)value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int WarpContinueRequest
|
|
|
|
|
{
|
|
|
|
|
get => Data[Offset + 0x6E];
|
|
|
|
|
set => Data[Offset + 0x6E] = (byte)value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int StepCountEgg
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToInt32(Data, Offset + 0x70);
|
|
|
|
|
set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x70);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int LastZoneID
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToUInt16(Data, Offset + 0x74);
|
|
|
|
|
set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x74);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int StepCountFriendship
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToUInt16(Data, Offset + 0x76);
|
|
|
|
|
set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x76);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int StepCountAffection // Kawaigari
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToUInt16(Data, Offset + 0x78);
|
|
|
|
|
set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x78);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed class Situation8 : SaveBlock
|
|
|
|
|
{
|
|
|
|
|
public Situation8(SAV8 sav, int offset) : base(sav) => Offset = offset;
|
|
|
|
|
|
|
|
|
|
// "StartLocation"
|
|
|
|
|
public int M { get => BitConverter.ToUInt16(Data, Offset + 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x00); }
|
|
|
|
|
public float X { get => BitConverter.ToSingle(Data, Offset + 0x08); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x08); }
|
|
|
|
|
public float Z { get => BitConverter.ToSingle(Data, Offset + 0x10); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x10); }
|
|
|
|
|
public float Y { get => (int)BitConverter.ToSingle(Data, Offset + 0x18); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x18); }
|
|
|
|
|
public float R { get => (int)BitConverter.ToSingle(Data, Offset + 0x20); set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x20); }
|
|
|
|
|
|
|
|
|
|
public void UpdateOverworldCoordinates()
|
|
|
|
|
{
|
|
|
|
|
var o = ((SAV8)SAV).OverworldBlock;
|
|
|
|
|
o.M = M;
|
|
|
|
|
o.X = X;
|
|
|
|
|
o.Z = Z;
|
|
|
|
|
o.Y = Y;
|
|
|
|
|
o.R = R;
|
|
|
|
|
}
|
|
|
|
|
|
2019-06-09 02:56:11 +00:00
|
|
|
|
public int SpecialLocation
|
|
|
|
|
{
|
|
|
|
|
get => Data[Offset + 0x24];
|
|
|
|
|
set => Data[Offset + 0x24] = (byte)value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int WarpContinueRequest
|
|
|
|
|
{
|
|
|
|
|
get => Data[Offset + 0x6E];
|
|
|
|
|
set => Data[Offset + 0x6E] = (byte)value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int StepCountEgg
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToInt32(Data, Offset + 0x70);
|
|
|
|
|
set => BitConverter.GetBytes(value).CopyTo(Data, Offset + 0x70);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int LastZoneID
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToUInt16(Data, Offset + 0x74);
|
|
|
|
|
set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x74);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int StepCountFriendship
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToUInt16(Data, Offset + 0x76);
|
|
|
|
|
set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x76);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int StepCountAffection // Kawaigari
|
|
|
|
|
{
|
|
|
|
|
get => BitConverter.ToUInt16(Data, Offset + 0x78);
|
|
|
|
|
set => BitConverter.GetBytes((ushort)value).CopyTo(Data, Offset + 0x78);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|