diff --git a/nif.xml b/nif.xml index fb350053c803d8bf071c52a3e7a816c6e9e490ef..921f0c8154d1b100c797a1527987a027a751611a 100644 --- a/nif.xml +++ b/nif.xml @@ -3067,14 +3067,19 @@ A simple LOD controller for bones. </niobject> - <compound name="GeomMaterialData"> + <compound name="MaterialData"> <add name="Has Shader" type="bool" ver1="10.0.1.0" ver2="20.1.0.3">Shader.</add> <add name="Shader Name" type="string" cond="Has Shader" ver1="10.0.1.0" ver2="20.1.0.3">The shader name.</add> - <add name="Unknown Integer" type="int" cond="Has Shader" ver1="10.0.1.0" ver2="20.1.0.3">Unknown value, usually -1. (Not a link)</add> - <add name="Num Materials" type="uint" ver1="20.2.0.7">Num Materials</add> - <add name="Material Name" type="string" arr1="Num Materials" ver1="20.2.0.7">Unknown string. Shader?</add> - <add name="Material Extra Data" type="int" arr1="Num Materials" ver1="20.2.0.7">Unknown integer; often -1. (Is this a link, array index?)</add> - <add name="Active Material" type="int" ver1="20.2.0.7" default="0">Active Material; often -1. (Is this a link, array index?)</add> + <add name="Shader Extra Data" type="int" cond="Has Shader" ver1="10.0.1.0" ver2="20.1.0.3">Extra data associated with the shader. A value of -1 means the shader is the default implementation.</add> + <add name="Num Materials" type="uint" ver1="20.2.0.5" /> + <add name="Material Name" type="string" arr1="Num Materials" ver1="20.2.0.5">The name of the material.</add> + <add name="Material Extra Data" type="int" arr1="Num Materials" ver1="20.2.0.5">Extra data associated with the material. A value of -1 means the material is the default implementation.</add> + <add name="Active Material" type="int" default="-1" ver1="20.2.0.5">The index of the currently active material.</add> + <!-- Custom Versions --> + <add name="Unknown Byte" type="byte" default="255" ver1="10.2.0.0" ver2="10.2.0.0" userver="1">Cyanide extension (only in version 10.2.0.0?).</add> + <add name="Unknown Integer 2" type="int" ver1="10.4.0.1" ver2="10.4.0.1">Unknown.</add> + <!-- / Custom --> + <add name="Material Needs Update" type="bool" ver1="20.2.0.7">Whether the materials for this object always needs to be updated before rendering with them.</add> </compound> <niobject name="NiGeometry" abstract="1" inherit="NiAVObject"> @@ -3091,14 +3096,8 @@ <add name="Data" type="Ref" template="NiGeometryData" vercond="(User Version 2 >= 100)" cond="!NiParticleSystem">Data index (NiTriShapeData/NiTriStripData).</add> <add name="Skin Instance" type="Ref" template="NiSkinInstance" ver1="3.3.0.13" vercond="(User Version 2 < 100)" /> <add name="Skin Instance" type="Ref" template="NiSkinInstance" vercond="(User Version 2 >= 100)" cond="!NiParticleSystem" /> - <add name="Material Data" type="GeomMaterialData" ver1="10.0.1.0" vercond="(User Version 2 < 100)" /> - <add name="Material Data" type="GeomMaterialData" ver1="10.0.1.0" vercond="(User Version 2 >= 100)" cond="!NiParticleSystem" /> - <!-- Custom Versions --> - <add name="Unknown Byte" type="byte" default="255" userver="1">Cyanide extension (only in version 10.2.0.0?).</add> - <add name="Unknown Integer 2" type="int" ver1="10.4.0.1" ver2="10.4.0.1">Unknown.</add> - <!-- / Custom --> - <add name="Dirty Flag" type="bool" ver1="20.2.0.7" vercond="(User Version 2 < 100)" /> - <add name="Dirty Flag" type="bool" ver1="20.2.0.7" vercond="(User Version 2 >= 100)" cond="!NiParticleSystem" /> + <add name="Material Data" type="MaterialData" ver1="10.0.1.0" vercond="(User Version 2 < 100)" /> + <add name="Material Data" type="MaterialData" ver1="10.0.1.0" vercond="(User Version 2 >= 100)" cond="!NiParticleSystem" /> <!-- Bethesda --> <add name="Shader Property" type="Ref" template="BSShaderProperty" ver1="20.2.0.7" userver="12" /> <add name="Alpha Property" type="Ref" template="NiAlphaProperty" ver1="20.2.0.7" userver="12" /> @@ -6213,7 +6212,7 @@ </add> </compound> - <compound name="MeshData"> + <compound name="DataStreamRef"> <add name="Stream" type="Ref" template="NiDataStream"> Reference to a data stream object which holds the data used by this reference. @@ -6230,31 +6229,23 @@ <!-- see Zorsis Zombie_Boy.nif --> A lookup table that maps submeshes to regions. </add> - <add name="Num Components" type="int" default="1" /> + <add name="Num Components" type="uint" default="1" /> <add name="Component Semantics" type="SemanticData" arr1="Num Components">Describes the semantic of each component.</add> </compound> - <compound name="MaterialData" ver1="20.5.0.0"> - Data stored per-material by NiRenderObject - <add name="Material Name" type="string">The name of the material.</add> - <add name="Material Extra Data" type="uint">Extra data associated with the material?</add> - </compound> - - <niobject name="NiRenderObject" inherit="NiAVObject"> + <niobject name="NiRenderObject" abstract="1" inherit="NiAVObject"> An object that can be rendered. - <add name="Num Materials" type="uint" /> - <add name="Material Data" type="MaterialData" arr1="Num Materials">Per-material data.</add> - <add name="Active Material" type="int" default="-1">The index of the currently active material.</add> - <add name="Material Needs Update Default" type="bool">Whether the materials for this render object always needs to be updated before rendering with them.</add> + <add name="Material Data" type="MaterialData">Per-material data.</add> </niobject> <enum name="MeshPrimitiveType" storage="uint"> Describes the type of primitives stored in a mesh object. <option value="0" name="MESH_PRIMITIVE_TRIANGLES">Triangle primitive type.</option> <option value="1" name="MESH_PRIMITIVE_TRISTRIPS">Triangle strip primitive type.</option> - <option value="2" name="MESH_PRIMITIVE_LINESTRIPS">Line strip primitive type.</option> - <option value="3" name="MESH_PRIMITIVE_QUADS">Quadrilateral primitive type.</option> - <option value="4" name="MESH_PRIMITIVE_POINTS">Point primitive type.</option> + <option value="2" name="MESH_PRIMITIVE_LINES">Lines primitive type.</option> + <option value="3" name="MESH_PRIMITIVE_LINESTRIPS">Line strip primitive type.</option> + <option value="4" name="MESH_PRIMITIVE_QUADS">Quadrilateral primitive type.</option> + <option value="5" name="MESH_PRIMITIVE_POINTS">Point primitive type.</option> </enum> <enum name="SyncPoint" storage="ushort"> @@ -6307,8 +6298,8 @@ <add name="Num Submeshes" type="ushort">The number of submeshes contained in this mesh.</add> <add name="Instancing Enabled" type="bool">Sets whether hardware instancing is being used.</add> <add name="Bound" type="NiBound">The combined bounding volume of all submeshes.</add> - <add name="Num Datas" type="uint" /> - <add name="Datas" type="MeshData" arr1="Num Datas" /> + <add name="Num Datastreams" type="uint" /> + <add name="Datastreams" type="DataStreamRef" arr1="Num Datastreams" /> <add name="Num Modifiers" type="uint" /> <add name="Modifiers" type="Ref" template="NiMeshModifier" arr1="Num Modifiers" /> @@ -6332,6 +6323,7 @@ </niobject> <niobject name="NiMorphWeightsController" inherit="NiInterpController"> + Manipulates a mesh with the semantic MORPHWEIGHTS using an NiMorphMeshModifier. <add name="Count" type="uint" /> <add name="Num Interpolators" type="uint" /> <add name="Interpolators" type="Ref" template="NiInterpolator" arr1="Num Interpolators" />