Пример #1
0
        public override CharStartOutfit ConvertTo(byte[] rawData, ref int id)
        {
            id = DBCRecordConverter.GetInt32(rawData, 0);
            int             currIndex = 0;
            CharStartOutfit outfit    = default(CharStartOutfit);

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

            outfit.Race   = (RaceId)(temp & 255u);
            outfit.Class  = (ClassId)((temp & 65280u) >> 8);
            outfit.Gender = (GenderType)((temp & 16711680u) >> 16);
            for (int i = 0; i < 12; i++)
            {
                outfit.ItemIds[i] = DBCRecordConverter.GetUInt32(rawData, currIndex++);
            }

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

            return(outfit);
        }
Пример #2
0
 public override ChatChannelEntry ConvertTo(byte[] rawData, ref int id)
 {
     id = DBCRecordConverter.GetInt32(rawData, 0);
     return(new ChatChannelEntry()
     {
         Id = DBCRecordConverter.GetUInt32(rawData, 0),
         ChannelFlags = (ChatChannelFlags)DBCRecordConverter.GetUInt32(rawData, 1)
     });
 }
Пример #3
0
        public string GetString(byte[] data, ClientLocale locale, int stringOffset)
        {
            int int32 = DBCRecordConverter.GetInt32(data, (int)(stringOffset + locale));
            int num   = 0;

            do
            {
                ;
            }while (this.m_stringTable[int32 + num++] != (byte)0);
            return(WCellConstants.DefaultEncoding.GetString(this.m_stringTable, int32, num - 1) ?? "");
        }
Пример #4
0
        protected static int CopyTo(byte[] bytes, object obj, int index)
        {
            foreach (MemberInfo member in obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)
                     .Cast <MemberInfo>()
                     .Concat <MemberInfo>(
                         (IEnumerable <MemberInfo>)obj.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public)))
            {
                if (!member.IsReadonly() &&
                    member.GetCustomAttributes(typeof(NotPersistentAttribute), true).Length <= 0)
                {
                    object obj1 = Utility.ChangeType((object)DBCRecordConverter.GetInt32(bytes, index++),
                                                     member.GetVariableType());
                    member.SetUnindexedValue(obj, obj1);
                }
            }

            return(index);
        }