/// <summary> /// Initialize a new shader. /// </summary> public Shader() { // Set UseDynamicLighting. UseDynamicLighting = false; // Set Unknown 2. Unknown2 = 0; // Set Unknown 3. Unknown3 = 0; // Set Tint. Tint = new Clr4(); // Set Unknown 4. (Padding) Unknown4 = 0; // Set Material Indices array. MaterialIndices = new short[8] { -1, -1, -1, -1, -1, -1, -1, -1 }; // Set Unknown 5 array. (Indices?) Unknown5 = new short[8]; }
/// <summary> /// Read array of Clr4s. /// </summary> /// <param name="count">Amount of Clr4s to read.</param> /// <returns>The read array of Clr4s.</returns> public Clr4[] ReadClr4s(int count) { Clr4[] data = new Clr4[count]; for (int i = 0; i < count; i++) { data[i] = ReadClr4(); } return(data); }
/// <summary> /// Write Clr4. /// </summary> /// <param name="value">The Clr4 to write.</param> public void WriteClr4(Clr4 value) { uint data = (uint)(value.R * byte.MaxValue) << 24 | (uint)(value.G * byte.MaxValue) << 16 | (uint)(value.B * byte.MaxValue) << 8 | (uint)(value.A * byte.MaxValue); WriteU32(data); }