From f7402198799435ee5bcfd4f214800743c3104816 Mon Sep 17 00:00:00 2001
From: jonwd7 <jon.wd7@gmail.com>
Date: Fri, 15 Dec 2017 06:53:04 -0500
Subject: [PATCH] [PARSER CHANGES REQUIRED] Use `\` as compound member accessor

Instead of requiring all parsers to special-case the arg passing for BSVertexDesc,  have just adopted the `\` syntax for compound member accessor.

So at least for parsers that do not internalize BSVertexDesc to be `uint64_t` or equivalent to mirror the game,  all you need to do is support `\`.

For C++ this would go from

`Vertex Desc\Vertex Attributes`
to
`vertexDesc.vertexAttributes`

The period syntax was decided against because it is not very visible and `\` is familiar from filepaths / directory trees.
---
 nif.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/nif.xml b/nif.xml
index f56e118..a92905a 100644
--- a/nif.xml
+++ b/nif.xml
@@ -4404,7 +4404,7 @@
 		<add name="Data Size" type="uint" ver="20.2.0.7" userver2="100" />
 		<add name="Vertex Size" type="uint" ver="20.2.0.7" userver2="100" />
 		<add name="Vertex Desc" type="BSVertexDesc" ver="20.2.0.7" userver2="100" />
-		<add name="Vertex Data" type="BSVertexDataSSE" arg="Vertex Desc" arr1="Data Size / Vertex Size" cond="Data Size &gt; 0" ver="20.2.0.7" userver2="100" />
+		<add name="Vertex Data" type="BSVertexDataSSE" arg="Vertex Desc\Vertex Attributes" arr1="Data Size / Vertex Size" cond="Data Size &gt; 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>
 
@@ -7099,8 +7099,8 @@
         <add name="Num Triangles" type="ushort" vercond="User Version 2 &lt; 130" />
         <add name="Num Vertices" type="ushort" />
         <add name="Data Size" type="uint" />
-        <add name="Vertex Data" type="BSVertexData" arr1="Num Vertices" arg="Vertex Desc" cond="Data Size &gt; 0" userver2="130" />
-        <add name="Vertex Data" type="BSVertexDataSSE" arr1="Num Vertices" arg="Vertex Desc" cond="Data Size &gt; 0" userver2="100" />
+        <add name="Vertex Data" type="BSVertexData" arr1="Num Vertices" arg="Vertex Desc\Vertex Attributes" cond="Data Size &gt; 0" userver2="130" />
+        <add name="Vertex Data" type="BSVertexDataSSE" arr1="Num Vertices" arg="Vertex Desc\Vertex Attributes" cond="Data Size &gt; 0" userver2="100" />
         <add name="Triangles" type="Triangle" arr1="Num Triangles" cond="Data Size &gt; 0" />
         <add name="Particle Data Size" type="uint" userver2="100" />
         <add name="Vertices" type="Vector3" arr1="Num Vertices" cond="Particle Data Size &gt; 0" userver2="100" />
@@ -7254,7 +7254,7 @@
         <add name="Num Combined" type="uint" />
         <add name="Combined" type="BSPackedGeomDataCombined" arr1="Num Combined" />
         <add name="Vertex Desc" type="BSVertexDesc" />
-        <add name="Vertex Data" type="BSVertexData" arr1="Num Verts" arg="Vertex Desc" cond="!BSPackedCombinedSharedGeomDataExtra" />
+        <add name="Vertex Data" type="BSVertexData" arr1="Num Verts" arg="Vertex Desc\Vertex Attributes" cond="!BSPackedCombinedSharedGeomDataExtra" />
         <add name="Triangles" type="Triangle" arr1="Tri Count LOD0 + Tri Count LOD1 + Tri Count LOD2" cond="!BSPackedCombinedSharedGeomDataExtra" />
     </compound>
 	
-- 
GitLab