From d8bb1fe7d9bd5c80d4ed8e0c20078a13abc695c9 Mon Sep 17 00:00:00 2001 From: Serge Bazanski Date: Fri, 15 Apr 2022 01:21:38 +0000 Subject: [PATCH] tups: add map kinds from RA2.exe --- gmflib/src/types.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gmflib/src/types.rs b/gmflib/src/types.rs index f1d84ea..79edc0c 100644 --- a/gmflib/src/types.rs +++ b/gmflib/src/types.rs @@ -94,19 +94,39 @@ impl gma::Atom for Color { #[derive(Debug,GMISerializable)] pub enum MapKind { + Ambient = 0, Diffuse = 1, + Specular = 2, + Shine = 3, + ShineStrength = 4, SelfIllum = 5, Opacity = 6, + FilterColor = 7, + Bump = 8, Reflect = 9, + Refract = 10, + Displacement = 11, + Name = 12, + Generic = 13, } impl gma::Serializable for MapKind { fn write(&self, _name: S, w: &mut gma::WriteStream) -> gma::WriteResult<()> { match self { + MapKind::Ambient => w.emit("*MAP_AMBIENT"), MapKind::Diffuse => w.emit("*MAP_DIFFUSE"), + MapKind::Specular => w.emit("*MAP_SPECULAR"), + MapKind::Shine => w.emit("*MAP_SHINE"), + MapKind::ShineStrength => w.emit("*MAP_SHINESTRENGTH"), MapKind::SelfIllum => w.emit("*MAP_SELFILLUM"), MapKind::Opacity => w.emit("*MAP_OPACITY"), + MapKind::FilterColor => w.emit("*MAP_FILTERCOLOR"), + MapKind::Bump => w.emit("*MAP_BUMP"), MapKind::Reflect => w.emit("*MAP_REFLECT"), + MapKind::Refract => w.emit("*MAP_REFRACT"), + MapKind::Displacement => w.emit("*MAP_DISPLACEMENT"), + MapKind::Name => w.emit("*MAP_NAME"), + MapKind::Generic => w.emit("*MAP_GENERIC"), } } } @@ -311,7 +331,7 @@ impl gmi::Serializable for Object { let (res, check) = match (tlv.tag, tlv.flags) { (2, 4) => (Object::Geometry(r.read("geometry")?), false), (4, 2) => (Object::Camera(r.read("camera")?), false), - (5, 3) => (Object::Light(r.read("light")?), false), + (5, 3) => (Object::Light(r.read("light")?), true), (21, 2) => (Object::AttachmentPoint(r.read("attachmentpoint")?), true), (30, 2) => (Object::Simulation(r.read("simulation")?), false), (31, 4) => (Object::RBCollection(r.read("rigidbodycollection")?), true),