diff --git a/nif.xml b/nif.xml index 62ee6a3903e581355294a3fa05eb719d2602995a..0e177720dca209dcc200abbb6c8422286d6de69c 100644 --- a/nif.xml +++ b/nif.xml @@ -1472,46 +1472,35 @@ <option value="9" name="VF_Vertex_Colors" /> <!-- & 512 --> <option value="10" name="VF_Skinned" /> <!-- & 1024 --> <option value="11" name="VF_Unknown_6" /> <!-- & 2048 --> - <option value="12" name="VF_Male_Eyes" /> <!-- & 4096 --> + <option value="12" name="VF_Eye_Data" /> <!-- & 4096 --> <option value="13" name="VF_Unknown_7" /> <!-- & 8192 --> <option value="14" name="VF_Full_Precision" /> <!-- & 16384 --> <option value="15" name="VF_Unknown_8" /> <!-- & 32768 --> </bitflags> - <compound name="BSVertexData"> - <add name="Vertex" type="HalfVector3" cond="((ARG & 16) != 0) && ((ARG & 16384) == 0)" /> - <add name="Bitangent X" type="hfloat" cond="((ARG & 16) != 0) && ((ARG & 256) != 0) && ((ARG & 16384) == 0)" /> - <add name="Unknown Short" type="ushort" cond="((ARG & 16) != 0) && ((ARG & 256) == 0) && ((ARG & 16384) == 0)" /> - - <add name="Vertex" type="Vector3" cond="((ARG & 16) != 0) && ((ARG & 16384) != 0)" /> - <add name="Bitangent X" type="float" cond="((ARG & 16) != 0) && ((ARG & 256) != 0) && ((ARG & 16384) != 0)" /> - <add name="Unknown Int" type="uint" cond="((ARG & 16) != 0) && ((ARG & 256) == 0) && ((ARG & 16384) != 0)" /> - - <add name="UV" type="HalfTexCoord" cond="((ARG & 32) != 0)" /> - <add name="Normal" type="ByteVector3" cond="(ARG & 128) != 0" /> - <add name="Bitangent Y" type="byte" cond="(ARG & 128) != 0" /> - <add name="Tangent" type="ByteVector3" cond="((ARG & 128) != 0) && ((ARG & 256) != 0)" /> - <add name="Bitangent Z" type="byte" cond="((ARG & 128) != 0) && ((ARG & 256) != 0)" /> - <add name="Vertex Colors" type="ByteColor4" cond="(ARG & 512) != 0" /> - <add name="Bone Weights" type="hfloat" arr1="4" cond="(ARG & 1024) != 0" /> - <add name="Bone Indices" type="byte" arr1="4" cond="(ARG & 1024) != 0" /> - <add name="Unknown Int 2" type="uint" cond="(ARG & 4096) != 0" /> - </compound> - - <compound name="BSVertexDataSSE"> - <add name="Vertex" type="Vector3" cond="((ARG & 16) != 0)" /> - <add name="Bitangent X" type="float" cond="((ARG & 16) != 0) && ((ARG & 256) != 0)" /> - <add name="Unknown Int" type="int" cond="((ARG & 16) != 0) && (ARG & 256) == 0" /> - <add name="UV" type="HalfTexCoord" cond="((ARG & 32) != 0)" /> - <add name="Normal" type="ByteVector3" cond="(ARG & 128) != 0" /> - <add name="Bitangent Y" type="byte" cond="(ARG & 128) != 0" /> - <add name="Tangent" type="ByteVector3" cond="((ARG & 128) != 0) && ((ARG & 256) != 0)" /> - <add name="Bitangent Z" type="byte" cond="((ARG & 128) != 0) && ((ARG & 256) != 0)" /> - <add name="Vertex Colors" type="ByteColor4" cond="(ARG & 512) != 0" /> - <add name="Bone Weights" type="hfloat" arr1="4" cond="(ARG & 1024) != 0" /> - <add name="Bone Indices" type="byte" arr1="4" cond="(ARG & 1024) != 0" /> - <add name="Unknown Int 2" type="uint" cond="(ARG & 4096) != 0" /> - </compound> + <compound name="BSVertexData"> + <add name="Vertex" type="Vector3" userver2="100" cond="((ARG & 16) != 0)" /> + <add name="Bitangent X" type="float" userver2="100" cond="((ARG & 256) != 0)" /> + <add name="Unknown Int" type="uint" userver2="100" cond="(ARG & 256) == 0" /> + + <add name="Vertex" type="HalfVector3" userver2="130" cond="((ARG & 16) != 0) && ((ARG & 16384) == 0)" /> + <add name="Bitangent X" type="hfloat" userver2="130" cond="((ARG & 256) != 0) && ((ARG & 16384) == 0)" /> + <add name="Unknown Short" type="ushort" userver2="130" cond="((ARG & 256) == 0) && ((ARG & 16384) == 0)" /> + + <add name="Vertex" type="Vector3" userver2="130" cond="((ARG & 16) != 0) && ((ARG & 16384) != 0)" /> + <add name="Bitangent X" type="float" userver2="130" cond="((ARG & 256) != 0) && ((ARG & 16384) != 0)" /> + <add name="Unknown Int" type="uint" userver2="130" cond="((ARG & 256) == 0) && ((ARG & 16384) != 0)" /> + + <add name="UV" type="HalfTexCoord" cond="(((ARG & 16) != 0) && ((ARG & 32) != 0))" /> + <add name="Normal" type="ByteVector3" cond="(ARG & 128) != 0" /> + <add name="Bitangent Y" type="byte" cond="(ARG & 128) != 0" /> + <add name="Tangent" type="ByteVector3" cond="((ARG & 128) != 0) && ((ARG & 256) != 0)" /> + <add name="Bitangent Z" type="byte" cond="((ARG & 128) != 0) && ((ARG & 256) != 0)" /> + <add name="Vertex Colors" type="ByteColor4" cond="(ARG & 512) != 0" /> + <add name="Bone Weights" type="hfloat" arr1="4" cond="(ARG & 1024) != 0" /> + <add name="Bone Indices" type="byte" arr1="4" cond="(ARG & 1024) != 0" /> + <add name="Eye Data" type="float" cond="(ARG & 4096) != 0" /> + </compound> <compound name="SkinPartition" ver1="4.2.1.0"> Skinning data for a submesh, optimized for hardware skinning. Part of NiSkinPartition. @@ -4284,7 +4273,7 @@ <add name="VF5" type="byte" ver="20.2.0.7" userver2="100" /> <add name="VF" type="VertexFlags" ver="20.2.0.7" userver2="100" /> <add name="VF8" type="byte" ver="20.2.0.7" userver2="100" /> - <add name="Vertex Data" type="BSVertexDataSSE" arg="VF" arr1="Data Size / Vertex Size" cond="Data Size > 0" ver="20.2.0.7" userver2="100" /> + <add name="Vertex Data" type="BSVertexData" arg="VF" arr1="Data Size / Vertex Size" cond="Data Size > 0" ver="20.2.0.7" userver2="100" /> <add name="Partition" type="SkinPartition" arr1="Num Skin Partition Blocks" ver="20.2.0.7" userver2="100" /> </niobject> @@ -6627,8 +6616,7 @@ <add name="Num Triangles" type="ushort" vercond="User Version 2 < 130" /> <add name="Num Vertices" type="ushort" /> <add name="Data Size" type="uint" /> - <add name="Vertex Data" type="BSVertexData" arr1="Num Vertices" arg="VF" cond="Data Size > 0" userver2="130" /> - <add name="Vertex Data" type="BSVertexDataSSE" arr1="Num Vertices" arg="VF" cond="Data Size > 0" userver2="100" /> + <add name="Vertex Data" type="BSVertexData" arr1="Num Vertices" arg="VF" cond="Data Size > 0" /> <add name="Triangles" type="Triangle" arr1="Num Triangles" cond="Data Size > 0" /> <add name="Particle Data Size" type="uint" userver2="100" /> <add name="Vertices" type="Vector3" arr1="Num Vertices" cond="Particle Data Size > 0" userver2="100" />