Exemplo n.º 1
0
        public BACAnimData animFromBytes(List <Byte> data)
        {
            BACAnimData a = new BACAnimData();

            a.data = data;
            return(a);

            /*BACAnimData a = new BACAnimData();
             * a.header = new List<byte>();
             * for (int i = 0; i < 16; i++)
             * {
             *  a.header.Add(data[i]);
             * }
             *
             * int size_chunk_list = AEDataTools.UInt16FromData(data, 18);
             * int ptr_chunk_list = (int)AEDataTools.UInt32FromData(data, 20);
             * a.chunks = new List<BACChunk>(size_chunk_list);
             * for (int i = 0; i < size_chunk_list; i++)
             * {
             *  BACChunk c = new BACChunk();
             *  c.type = (BACChunkType)AEDataTools.UInt16FromData(data, ptr_chunk_list + (i * 12));
             *  int size_subchunk_list = (int)AEDataTools.UInt16FromData(data,ptr_chunk_list + (i * 12) + 2);
             *  c.subchunks = new List<BACSubChunk>(size_subchunk_list);
             *  int cur_chunk_start = (int)AEDataTools.UInt32FromData(data, ptr_chunk_list + (i * 12) + 4) + ptr_chunk_list + (i * 12);
             *  int cur_chunk_end = (int)AEDataTools.UInt32FromData(data, ptr_chunk_list + (i * 12) + 8) + ptr_chunk_list + (i * 12);
             *  int cur_chunk_data_end;
             *  if (i < size_subchunk_list - 1)
             *  {
             *      cur_chunk_data_end = (int)AEDataTools.UInt32FromData(data, ptr_chunk_list + ((i + 1) * 12) + 4) + ptr_chunk_list + ((i + 1) * 12);
             *  }
             *  else
             *  {
             *      cur_chunk_data_end = data.Count;
             *  }
             *  for (int j = 0; j < size_subchunk_list; j++)
             *  {
             *      BACSubChunk s = new BACSubChunk();
             *      AELogger.Log(cur_chunk_start + " " + cur_chunk_end + c.type);
             *      s.start = AEDataTools.UInt16FromData(data, cur_chunk_start + j * 4);
             *      s.end = AEDataTools.UInt16FromData(data, cur_chunk_start + j * 4 + 2);
             *      s.data = data.GetRange(cur_chunk_end, Math.Min(data.Count - cur_chunk_end, (cur_chunk_data_end - cur_chunk_end) / size_subchunk_list));
             *      c.subchunks.Add(s);
             *  }
             *
             *  a.chunks.Add(c);
             * }
             * return a;*/
        }
Exemplo n.º 2
0
        public BACAnimData animFromBytes(List<Byte> data)
        {
            BACAnimData a = new BACAnimData();
            a.data = data;
            return a;

            /*BACAnimData a = new BACAnimData();
            a.header = new List<byte>();
            for (int i = 0; i < 16; i++)
            {
                a.header.Add(data[i]);
            }

            int size_chunk_list = AEDataTools.UInt16FromData(data, 18);
            int ptr_chunk_list = (int)AEDataTools.UInt32FromData(data, 20);
            a.chunks = new List<BACChunk>(size_chunk_list);
            for (int i = 0; i < size_chunk_list; i++)
            {
                BACChunk c = new BACChunk();
                c.type = (BACChunkType)AEDataTools.UInt16FromData(data, ptr_chunk_list + (i * 12));
                int size_subchunk_list = (int)AEDataTools.UInt16FromData(data,ptr_chunk_list + (i * 12) + 2);
                c.subchunks = new List<BACSubChunk>(size_subchunk_list);
                int cur_chunk_start = (int)AEDataTools.UInt32FromData(data, ptr_chunk_list + (i * 12) + 4) + ptr_chunk_list + (i * 12);
                int cur_chunk_end = (int)AEDataTools.UInt32FromData(data, ptr_chunk_list + (i * 12) + 8) + ptr_chunk_list + (i * 12);
                int cur_chunk_data_end;
                if (i < size_subchunk_list - 1)
                {
                    cur_chunk_data_end = (int)AEDataTools.UInt32FromData(data, ptr_chunk_list + ((i + 1) * 12) + 4) + ptr_chunk_list + ((i + 1) * 12);
                }
                else
                {
                    cur_chunk_data_end = data.Count;
                }
                for (int j = 0; j < size_subchunk_list; j++)
                {
                    BACSubChunk s = new BACSubChunk();
                    AELogger.Log(cur_chunk_start + " " + cur_chunk_end + c.type);
                    s.start = AEDataTools.UInt16FromData(data, cur_chunk_start + j * 4);
                    s.end = AEDataTools.UInt16FromData(data, cur_chunk_start + j * 4 + 2);
                    s.data = data.GetRange(cur_chunk_end, Math.Min(data.Count - cur_chunk_end, (cur_chunk_data_end - cur_chunk_end) / size_subchunk_list));
                    c.subchunks.Add(s);
                }

                a.chunks.Add(c);
            }
            return a;*/
        }