using System; using System.Collections.Generic; namespace NW4RTools.Models { public class ChanCtrl { public UInt32 Flags; public Color MatColor, AmbColor; public UInt32 FlagC, FlagA; } // TODO: Rename this class? public class SRTSettingInfo { public float ScaleX, ScaleY, Rotate, TranslateX, TranslateY; public byte CameraID; public byte LightID; public byte MapType; public byte Flags; public Matrix TexMatrix; public SRTSettingInfo() { ScaleX = 1.0f; ScaleY = 1.0f; CameraID = 0xFF; LightID = 0xFF; Flags = 1; TexMatrix.Identity(); } } public class Material { public UInt32 Index, Flags; // ResGenMode public byte TexCoordGenCount, ChanCount, TevStageCount, IndStageCount; public UInt32 CullMode; // ResMatMisc public byte ZCompLoc, LightSetID, FogID; public byte[] IndirectTexMtxCalcMethod1; public byte[] IndirectTexMtxCalcMethod2; // ResTexObj and ResTlutObj public byte[][] TexObj; public UInt32 TlutFlag; public byte[] TlutObj; // ResTexSrt public UInt32 TexMatrixType; public SRTSettingInfo[] SRTSettings; // ResMatChan public ChanCtrl[] ChanCtrls; // Other public List TextureInfos; public Shader ShaderRef; // Display Lists public byte[] PixDL; public byte[] TevColorDL; public byte[] IndMtxAndScaleDL; public byte[] TexCoordGenDL; public Material() { IndirectTexMtxCalcMethod1 = new byte[4]; IndirectTexMtxCalcMethod2 = new byte[4]; TexObj = new byte[8][]; // todo SRTSettings = new SRTSettingInfo[8]; ChanCtrls = new ChanCtrl[2]; TextureInfos = new List(); } } }