public static void Write(byte[] data, ExtraSkeletonEntry entry, int count, int index)
        {
            int   offset = (int)(4 + (index * 4));
            short raceId = Int16.Parse(XivRaces.GetRaceCode(entry.Race));

            IOUtil.ReplaceBytesAt(data, BitConverter.GetBytes(entry.SetId), offset);
            IOUtil.ReplaceBytesAt(data, BitConverter.GetBytes(raceId), offset + 2);

            var baseOffset = 4 + (count * 4);

            offset = (int)(baseOffset + (index * 2));
            IOUtil.ReplaceBytesAt(data, BitConverter.GetBytes(entry.SkelId), offset);
        }
        public static ExtraSkeletonEntry Read(byte[] data, uint count, uint index)
        {
            int offset = (int)(4 + (index * 4));

            var setId  = BitConverter.ToUInt16(data, offset);
            var raceId = BitConverter.ToUInt16(data, offset + 2);
            var race   = XivRaces.GetXivRace(raceId.ToString().PadLeft(4, '0'));


            var baseOffset = 4 + (count * 4);

            offset = (int)(baseOffset + (index * 2));

            var skelId = BitConverter.ToUInt16(data, offset);

            var ret = new ExtraSkeletonEntry(race, setId, skelId);

            return(ret);
        }