public ResourceTypeCollection(byte [] bytes, uint offset, uint size) { this.bytes = bytes; rsrcTypeListOff = offset + LoadedImage.ReadBeUInt16(bytes, offset + 0x18) + 2u; rsrcNameListOff = offset + LoadedImage.ReadBeUInt16(bytes, offset + 0x1A); crsrcTypes = LoadedImage.ReadBeUInt16(bytes, offset + 0x1C) + 1; }
public IEnumerator <ResourceReference> GetEnumerator() { var offset = this.offset; for (int i = 0; i < count; ++i) { ushort rsrcID = LoadedImage.ReadBeUInt16(bytes, offset); string name = ReadName(LoadedImage.ReadBeUInt16(bytes, offset + 2)); uint dataOff = LoadedImage.ReadBeUInt32(bytes, offset + 4) & 0x00FFFFFFU; yield return(new ResourceReference(rsrcID, name, dataOff)); offset += 0x0C; } }
public IEnumerator <ResourceType> GetEnumerator() { var offset = rsrcTypeListOff; for (int i = 0; i < crsrcTypes; ++i) { string rsrcTypeName = Encoding.ASCII.GetString(bytes, (int)offset, 4); int crsrc = LoadedImage.ReadBeUInt16(bytes, offset + 4) + 1; uint rsrcReferenceListOffset = rsrcTypeListOff + LoadedImage.ReadBeUInt16(bytes, offset + 6) - 2; yield return(new ResourceType(bytes, rsrcTypeName, rsrcReferenceListOffset, rsrcNameListOff, crsrc)); offset += 8; } }