public void Write(IBitWriter writer) { writer.WriteUInt16(Header ?? 0x102); int startPos = writer.Position; ActI.Write(writer); ActII.Write(writer); ActIII.Write(writer); ActIV.Write(writer); ActV.Write(writer); int endPos = writer.Position; writer.Align(); Span <byte> padding = stackalloc byte[13]; padding.Clear(); writer.WriteBytes(padding); }
public void Write(IBitWriter writer) { var itemStatCost = Core.MetaData.ItemStatCostData; writer.WriteUInt16(Header ?? 0x6667); foreach (var entry in Stats) { var property = itemStatCost.GetByStat(entry.Key); writer.WriteUInt16(property?["ID"].ToUInt16() ?? 0, 9); int attribute = entry.Value; int valShift = property?["ValShift"].ToInt32() ?? 0; if (valShift > 0) { attribute <<= valShift; } writer.WriteInt32(attribute, property?["CSvBits"].ToInt32() ?? 0); } writer.WriteUInt16(0x1ff, 9); writer.Align(); }