AxibugEmuOnline/AxibugEmuOnline.Client.Transplant/Assets/VirtualNes.Core/State/BLOCKHDR.cs

39 lines
989 B
C#
Raw Normal View History

namespace VirtualNes.Core
{
public struct BLOCKHDR : IStateBufferObject
{
2024-12-20 17:24:09 +08:00
public bool Valid => !string.IsNullOrEmpty(ID);
/// <summary> 总是8个字节 </summary>
public string ID;
public ushort Reserved;
public ushort BlockVersion;
public uint BlockSize;
2024-12-20 17:24:09 +08:00
public uint GetSize()
{
return (uint)(8 + sizeof(ushort) + sizeof(ushort) + sizeof(uint));
}
2024-12-20 17:24:09 +08:00
public void SaveState(StateBuffer buffer)
{
if (Valid)
{
buffer.Write(ID);
buffer.Write(Reserved);
buffer.Write(BlockVersion);
buffer.Write(BlockSize);
}
}
public void LoadState(StateReader buffer)
{
ID = buffer.Read_string(8);
Reserved = buffer.Read_ushort();
BlockVersion = buffer.Read_ushort();
BlockSize = buffer.Read_uint();
}
}
}