All pastes #781349 Raw Edit

Mine

public text v1 · immutable
·published 2007-11-18 20:56 UTC
rendered paste body
#region CharStartOutfit.dbc

    public struct CharStartOutfit
    {
        public uint Id;
        public ClassTypes Class;
        public RaceTypes Race;
        public GenderTypes Gender;
        // byte unk always 0
        public int[] ItemIds;//12
        //public uint[] StartingItemDisplayIds;//12
        public InventorySlot[] ItemSlots;//12
    }

    public class CharStartOutfitConverter : DBCRecordConverter<CharStartOutfit>
    {
        public override CharStartOutfit ConvertTo(byte[] rawData, out int id)
        {
            id = GetInt32(rawData, 0);

            uint currIndex = 0;

            CharStartOutfit outfit = new CharStartOutfit();
            outfit.Id = GetUInt32(rawData, currIndex++);
            uint temp = GetUInt32(rawData, currIndex++);

            outfit.Race = (RaceTypes)(temp & 0xFF);
            outfit.Class = (ClassTypes)((temp & 0xFF00) >> 8);
            outfit.Gender = (GenderTypes)((temp & 0xFF0000) >> 16);

            outfit.ItemIds = new int[12];
            for (int i = 0; i < 12; i++)
            {
                outfit.ItemIds[i] = GetInt32(rawData, currIndex++);
            }

            // Skip display ids
            currIndex += 12;

            outfit.ItemSlots = new InventorySlot[12];
            for (int i = 0; i < 12; i++)
            {
                outfit.ItemSlots[i] = (InventorySlot)GetUInt32(rawData, currIndex++);
            }

            return outfit;
        }
    }

    #endregion