From 139afb46fa71783916cf4ee580efa7ac09769527 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Tue, 30 Apr 2024 19:48:32 -0400 Subject: [PATCH] Add support for reading the color dye table from a material --- src/mtrl.rs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/mtrl.rs b/src/mtrl.rs index f610734..7faac33 100644 --- a/src/mtrl.rs +++ b/src/mtrl.rs @@ -66,12 +66,38 @@ struct ColorTable { data: Vec, } -#[binrw] +#[binread] +#[derive(Debug)] +#[allow(dead_code)] +struct ColorDyeTableRow { + #[br(temp)] + data: u16, + + #[br(calc = data >> 5)] + template: u16, + + #[br(calc = (data & 0x01) != 0)] + diffuse: bool, + + #[br(calc = (data & 0x02) != 0)] + specular: bool, + + #[br(calc = (data & 0x04) != 0)] + emissive: bool, + + #[br(calc = (data & 0x08) != 0)] + gloss: bool, + + #[br(calc = (data & 0x10) != 0)] + specular_strength: bool, +} + +#[binread] #[derive(Debug)] #[allow(dead_code)] struct ColorDyeTable { #[br(count = 16)] - data: Vec, + data: Vec, } #[binrw]