public static void Save(BinaryWriter writer, SavedAnimPath path) { writer.WriteInt32((int)path.Flags); writer.Write(MemoryMarshal.Cast <sbyte, byte>(path.Deltas)); writer.WriteInt32(path.Range); writer.WriteInt32((int)path.FieldD0); writer.WriteInt32(path.FieldD4); writer.WriteInt32(path.DeltaIdxMax); writer.WriteInt32(path.FieldDC); writer.WriteInt32(path.MaxPathLength); writer.WriteInt32(path.FieldE4); writer.WriteTileLocation(path.ObjectLoc); writer.WriteTileLocation(path.TargetLoc); }
public static SavedAnimPath Load(BinaryReader reader) { var result = new SavedAnimPath(); result.Flags = (AnimPathFlag)reader.ReadInt32(); result.Deltas = new sbyte[200]; reader.Read(MemoryMarshal.Cast <sbyte, byte>(result.Deltas)); result.Range = reader.ReadInt32(); result.FieldD0 = (CompassDirection)reader.ReadInt32(); result.FieldD4 = reader.ReadInt32(); result.DeltaIdxMax = reader.ReadInt32(); result.FieldDC = reader.ReadInt32(); result.MaxPathLength = reader.ReadInt32(); result.FieldE4 = reader.ReadInt32(); result.ObjectLoc = reader.ReadTileLocation(); result.TargetLoc = reader.ReadTileLocation(); return(result); }