Exemplo n.º 1
0
        protected static int ParseListString2(GameDataParser parser, byte[] bytes, int offset, GameDataBase gameDataObj, string fieldName)
        {
            BitConverterUtility.ConvertEndianFrom(bytes, true, offset, 4);
            var arrayCount = BitConverter.ToInt32(bytes, offset);

            offset += 4;

            List <List <string> > array = new List <List <string> >(arrayCount);

            for (int i = 0; i < arrayCount; i++)
            {
                BitConverterUtility.ConvertEndianFrom(bytes, true, offset, 4);
                var count = BitConverter.ToInt32(bytes, offset);
                offset += 4;

                List <string> values = new List <string>(count);
                for (int j = 0; j < count; j++)
                {
                    BitConverterUtility.ConvertEndianFrom(bytes, true, offset, 4);
                    var value = BitConverter.ToInt32(bytes, offset);
                    offset += 4;
                    values.Add(parser.m_StringBuffList[value]);
                }
                array.Add(values);
            }

            gameDataObj.SetListString2(fieldName, array);
            return(offset);
        }