Example #1
0
        public Boolean GetEntryInfo(Entry.DataUsages dataUsage, int usageIndex, out Entry.DataTypes dataType, out int stream, out int offset)
        {
            dataType = Entry.DataTypes.None;
            stream   = 0;
            offset   = 0;

            uint previousStream = 0;

            foreach (Entry entry in Entries)
            {
                if (entry.Stream != previousStream)
                {
                    offset = 0;
                }

                stream = (int)entry.Stream;

                if (entry.DataUsage == dataUsage && entry.DataUsageIndex == usageIndex)
                {
                    dataType = entry.DataType;
                    return(true);
                }

                //increment offset
                offset += Entry.GetDataTypeSize(entry.DataType);

                //set previous stream for next iteration
                previousStream = entry.Stream;
            }

            return(false);
        }
Example #2
0
        public bool GetEntryInfo(Entry.DataUsages dataUsage, int usageIndex, out EntryInfo info)
        {
            info = new EntryInfo();

            uint previousStream = 0;

            foreach (Entry entry in Entries)
            {
                if (entry.Stream != previousStream)
                {
                    info.offset = 0;
                }

                info.streamIndex = (int)entry.Stream;

                if (entry.DataUsage == dataUsage && entry.DataUsageIndex == usageIndex)
                {
                    info.dataType = entry.DataType;
                    return(true);
                }

                //increment offset
                info.offset += Entry.GetDataTypeSize(entry.DataType);

                //set previous stream for next iteration
                previousStream = entry.Stream;
            }

            return(false);
        }
Example #3
0
        public int GetEntryCountByDataUsage(Entry.DataUsages usage)
        {
            int count = 0;

            foreach (Entry entry in Entries)
            {
                if (entry.DataUsage == usage)
                {
                    ++count;
                }
            }

            return(count);
        }
Example #4
0
 public Boolean HasDataUsage(Entry.DataUsages usage)
 {
     return(GetEntryCountByDataUsage(usage) > 0);
 }