public BrgMaterial(BrgBinaryReader reader, BrgFile file) : this(file) { Id = reader.ReadInt32(); Flags = (BrgMatFlag)reader.ReadInt32(); unknown01b = reader.ReadInt32(); int nameLength = reader.ReadInt32(); this.DiffuseColor = reader.ReadColor3D(); this.AmbientColor = reader.ReadColor3D(); this.SpecularColor = reader.ReadColor3D(); this.EmissiveColor = reader.ReadColor3D(); this.DiffuseMap = reader.ReadString(nameLength); if (Flags.HasFlag(BrgMatFlag.SpecularExponent)) { this.SpecularExponent = reader.ReadSingle(); } if (Flags.HasFlag(BrgMatFlag.BumpMap)) { this.BumpMap = reader.ReadString(reader.ReadInt32()); } if (Flags.HasFlag(BrgMatFlag.Alpha)) { this.Opacity = reader.ReadSingle(); } if (Flags.HasFlag(BrgMatFlag.REFLECTIONTEXTURE)) { byte numSFX = reader.ReadByte(); sfx = new List <BrgMatSFX>(numSFX); for (int i = 0; i < numSFX; i++) { sfx.Add(reader.ReadMaterialSFX()); } } else { sfx = new List <BrgMatSFX>(); } }