Skip to content

Commit 9eb4c2a

Browse files
committedJun 14, 2017
Re-unify BSVertexData for niflib
Also updated definitions for Eye Data (missed during decoding from #58)
1 parent 6bdc3d8 commit 9eb4c2a

File tree

1 file changed

+26
-38
lines changed

1 file changed

+26
-38
lines changed
 

‎nif.xml

+26-38
Original file line numberDiff line numberDiff line change
@@ -1472,46 +1472,35 @@
14721472
<option value="9" name="VF_Vertex_Colors" /> <!-- & 512 -->
14731473
<option value="10" name="VF_Skinned" /> <!-- & 1024 -->
14741474
<option value="11" name="VF_Unknown_6" /> <!-- & 2048 -->
1475-
<option value="12" name="VF_Male_Eyes" /> <!-- & 4096 -->
1475+
<option value="12" name="VF_Eye_Data" /> <!-- & 4096 -->
14761476
<option value="13" name="VF_Unknown_7" /> <!-- & 8192 -->
14771477
<option value="14" name="VF_Full_Precision" /> <!-- & 16384 -->
14781478
<option value="15" name="VF_Unknown_8" /> <!-- & 32768 -->
14791479
</bitflags>
14801480

1481-
<compound name="BSVertexData">
1482-
<add name="Vertex" type="HalfVector3" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 16384) == 0)" />
1483-
<add name="Bitangent X" type="hfloat" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 256) != 0) &amp;&amp; ((ARG &amp; 16384) == 0)" />
1484-
<add name="Unknown Short" type="ushort" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 256) == 0) &amp;&amp; ((ARG &amp; 16384) == 0)" />
1485-
1486-
<add name="Vertex" type="Vector3" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 16384) != 0)" />
1487-
<add name="Bitangent X" type="float" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 256) != 0) &amp;&amp; ((ARG &amp; 16384) != 0)" />
1488-
<add name="Unknown Int" type="uint" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 256) == 0) &amp;&amp; ((ARG &amp; 16384) != 0)" />
1489-
1490-
<add name="UV" type="HalfTexCoord" cond="((ARG &amp; 32) != 0)" />
1491-
<add name="Normal" type="ByteVector3" cond="(ARG &amp; 128) != 0" />
1492-
<add name="Bitangent Y" type="byte" cond="(ARG &amp; 128) != 0" />
1493-
<add name="Tangent" type="ByteVector3" cond="((ARG &amp; 128) != 0) &amp;&amp; ((ARG &amp; 256) != 0)" />
1494-
<add name="Bitangent Z" type="byte" cond="((ARG &amp; 128) != 0) &amp;&amp; ((ARG &amp; 256) != 0)" />
1495-
<add name="Vertex Colors" type="ByteColor4" cond="(ARG &amp; 512) != 0" />
1496-
<add name="Bone Weights" type="hfloat" arr1="4" cond="(ARG &amp; 1024) != 0" />
1497-
<add name="Bone Indices" type="byte" arr1="4" cond="(ARG &amp; 1024) != 0" />
1498-
<add name="Unknown Int 2" type="uint" cond="(ARG &amp; 4096) != 0" />
1499-
</compound>
1500-
1501-
<compound name="BSVertexDataSSE">
1502-
<add name="Vertex" type="Vector3" cond="((ARG &amp; 16) != 0)" />
1503-
<add name="Bitangent X" type="float" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 256) != 0)" />
1504-
<add name="Unknown Int" type="int" cond="((ARG &amp; 16) != 0) &amp;&amp; (ARG &amp; 256) == 0" />
1505-
<add name="UV" type="HalfTexCoord" cond="((ARG &amp; 32) != 0)" />
1506-
<add name="Normal" type="ByteVector3" cond="(ARG &amp; 128) != 0" />
1507-
<add name="Bitangent Y" type="byte" cond="(ARG &amp; 128) != 0" />
1508-
<add name="Tangent" type="ByteVector3" cond="((ARG &amp; 128) != 0) &amp;&amp; ((ARG &amp; 256) != 0)" />
1509-
<add name="Bitangent Z" type="byte" cond="((ARG &amp; 128) != 0) &amp;&amp; ((ARG &amp; 256) != 0)" />
1510-
<add name="Vertex Colors" type="ByteColor4" cond="(ARG &amp; 512) != 0" />
1511-
<add name="Bone Weights" type="hfloat" arr1="4" cond="(ARG &amp; 1024) != 0" />
1512-
<add name="Bone Indices" type="byte" arr1="4" cond="(ARG &amp; 1024) != 0" />
1513-
<add name="Unknown Int 2" type="uint" cond="(ARG &amp; 4096) != 0" />
1514-
</compound>
1481+
<compound name="BSVertexData">
1482+
<add name="Vertex" type="Vector3" userver2="100" cond="((ARG &amp; 16) != 0)" />
1483+
<add name="Bitangent X" type="float" userver2="100" cond="((ARG &amp; 256) != 0)" />
1484+
<add name="Unknown Int" type="uint" userver2="100" cond="(ARG &amp; 256) == 0" />
1485+
1486+
<add name="Vertex" type="HalfVector3" userver2="130" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 16384) == 0)" />
1487+
<add name="Bitangent X" type="hfloat" userver2="130" cond="((ARG &amp; 256) != 0) &amp;&amp; ((ARG &amp; 16384) == 0)" />
1488+
<add name="Unknown Short" type="ushort" userver2="130" cond="((ARG &amp; 256) == 0) &amp;&amp; ((ARG &amp; 16384) == 0)" />
1489+
1490+
<add name="Vertex" type="Vector3" userver2="130" cond="((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 16384) != 0)" />
1491+
<add name="Bitangent X" type="float" userver2="130" cond="((ARG &amp; 256) != 0) &amp;&amp; ((ARG &amp; 16384) != 0)" />
1492+
<add name="Unknown Int" type="uint" userver2="130" cond="((ARG &amp; 256) == 0) &amp;&amp; ((ARG &amp; 16384) != 0)" />
1493+
1494+
<add name="UV" type="HalfTexCoord" cond="(((ARG &amp; 16) != 0) &amp;&amp; ((ARG &amp; 32) != 0))" />
1495+
<add name="Normal" type="ByteVector3" cond="(ARG &amp; 128) != 0" />
1496+
<add name="Bitangent Y" type="byte" cond="(ARG &amp; 128) != 0" />
1497+
<add name="Tangent" type="ByteVector3" cond="((ARG &amp; 128) != 0) &amp;&amp; ((ARG &amp; 256) != 0)" />
1498+
<add name="Bitangent Z" type="byte" cond="((ARG &amp; 128) != 0) &amp;&amp; ((ARG &amp; 256) != 0)" />
1499+
<add name="Vertex Colors" type="ByteColor4" cond="(ARG &amp; 512) != 0" />
1500+
<add name="Bone Weights" type="hfloat" arr1="4" cond="(ARG &amp; 1024) != 0" />
1501+
<add name="Bone Indices" type="byte" arr1="4" cond="(ARG &amp; 1024) != 0" />
1502+
<add name="Eye Data" type="float" cond="(ARG &amp; 4096) != 0" />
1503+
</compound>
15151504

15161505
<compound name="SkinPartition" ver1="4.2.1.0">
15171506
Skinning data for a submesh, optimized for hardware skinning. Part of NiSkinPartition.
@@ -4284,7 +4273,7 @@
42844273
<add name="VF5" type="byte" ver="20.2.0.7" userver2="100" />
42854274
<add name="VF" type="VertexFlags" ver="20.2.0.7" userver2="100" />
42864275
<add name="VF8" type="byte" ver="20.2.0.7" userver2="100" />
4287-
<add name="Vertex Data" type="BSVertexDataSSE" arg="VF" arr1="Data Size / Vertex Size" cond="Data Size &gt; 0" ver="20.2.0.7" userver2="100" />
4276+
<add name="Vertex Data" type="BSVertexData" arg="VF" arr1="Data Size / Vertex Size" cond="Data Size &gt; 0" ver="20.2.0.7" userver2="100" />
42884277
<add name="Partition" type="SkinPartition" arr1="Num Skin Partition Blocks" ver="20.2.0.7" userver2="100" />
42894278
</niobject>
42904279

@@ -6627,8 +6616,7 @@
66276616
<add name="Num Triangles" type="ushort" vercond="User Version 2 &lt; 130" />
66286617
<add name="Num Vertices" type="ushort" />
66296618
<add name="Data Size" type="uint" />
6630-
<add name="Vertex Data" type="BSVertexData" arr1="Num Vertices" arg="VF" cond="Data Size &gt; 0" userver2="130" />
6631-
<add name="Vertex Data" type="BSVertexDataSSE" arr1="Num Vertices" arg="VF" cond="Data Size &gt; 0" userver2="100" />
6619+
<add name="Vertex Data" type="BSVertexData" arr1="Num Vertices" arg="VF" cond="Data Size &gt; 0" />
66326620
<add name="Triangles" type="Triangle" arr1="Num Triangles" cond="Data Size &gt; 0" />
66336621
<add name="Particle Data Size" type="uint" userver2="100" />
66346622
<add name="Vertices" type="Vector3" arr1="Num Vertices" cond="Particle Data Size &gt; 0" userver2="100" />

0 commit comments

Comments
 (0)