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); }
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); }
public int GetEntryCountByDataUsage(Entry.DataUsages usage) { int count = 0; foreach (Entry entry in Entries) { if (entry.DataUsage == usage) { ++count; } } return(count); }
public Boolean HasDataUsage(Entry.DataUsages usage) { return(GetEntryCountByDataUsage(usage) > 0); }