using System.Collections.Generic;
using System.IO;
using System.Linq;
using ACE.Database.Models.Shard;
namespace ACE.Server.Network.Structure
{
///
/// HashTable which is packable for network
///
public static class PackableHashTable
{
public static void WriteHeader(BinaryWriter writer, int count, int numBuckets)
{
writer.Write((ushort)count);
writer.Write((ushort)numBuckets);
}
public static void WriteOld(this BinaryWriter writer, List fillComps)
{
const int numBuckets = 256; // constant from retail pcaps
WriteHeader(writer, fillComps.Count, numBuckets);
var sorted = fillComps.OrderBy(i => i.SpellComponentId % numBuckets);
foreach (var fillComp in sorted)
{
writer.Write(fillComp.SpellComponentId);
writer.Write(fillComp.QuantityToRebuy);
}
}
}
}