<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://codresearch.dev/index.php?action=history&amp;feed=atom&amp;title=XModel_Surface_Asset</id>
	<title>XModel Surface Asset - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://codresearch.dev/index.php?action=history&amp;feed=atom&amp;title=XModel_Surface_Asset"/>
	<link rel="alternate" type="text/html" href="https://codresearch.dev/index.php?title=XModel_Surface_Asset&amp;action=history"/>
	<updated>2026-06-06T01:09:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://codresearch.dev/index.php?title=XModel_Surface_Asset&amp;diff=409&amp;oldid=prev</id>
		<title>Aerosoul94 at 18:33, 28 February 2014</title>
		<link rel="alternate" type="text/html" href="https://codresearch.dev/index.php?title=XModel_Surface_Asset&amp;diff=409&amp;oldid=prev"/>
		<updated>2014-02-28T18:33:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:33, 28 February 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l287&quot;&gt;Line 287:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 287:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;struct &lt;/del&gt;unknownUnion&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;union &lt;/ins&gt;unknownUnion&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   GfxPackedVertex * packedVerticies;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   GfxPackedVertex * packedVerticies;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Aerosoul94</name></author>
	</entry>
	<entry>
		<id>https://codresearch.dev/index.php?title=XModel_Surface_Asset&amp;diff=297&amp;oldid=prev</id>
		<title>CraigChrist8239: Created page with &quot;__NOTOC__ Category:Assets Category:MW2 Category:MW3 Category:Ghosts The xmodel surface (xmodelsurf) is an asset dedicated to holding the XSurfaces from the XMo...&quot;</title>
		<link rel="alternate" type="text/html" href="https://codresearch.dev/index.php?title=XModel_Surface_Asset&amp;diff=297&amp;oldid=prev"/>
		<updated>2014-01-31T17:54:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__NOTOC__ &lt;a href=&quot;/index.php/Category:Assets&quot; title=&quot;Category:Assets&quot;&gt;Category:Assets&lt;/a&gt; &lt;a href=&quot;/index.php/Category:MW2&quot; title=&quot;Category:MW2&quot;&gt;Category:MW2&lt;/a&gt; &lt;a href=&quot;/index.php/Category:MW3&quot; title=&quot;Category:MW3&quot;&gt;Category:MW3&lt;/a&gt; &lt;a href=&quot;/index.php/Category:Ghosts&quot; title=&quot;Category:Ghosts&quot;&gt;Category:Ghosts&lt;/a&gt; The xmodel surface (xmodelsurf) is an asset dedicated to holding the XSurfaces from the XMo...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Category:Assets]]&lt;br /&gt;
[[Category:MW2]]&lt;br /&gt;
[[Category:MW3]]&lt;br /&gt;
[[Category:Ghosts]]&lt;br /&gt;
The xmodel surface (xmodelsurf) is an asset dedicated to holding the XSurfaces from the XModel. This asset was added on Modern Warfare 2, and stayed for Modern Warfare 3 and Ghosts, Treyarch however continues to keep this part of the XModel asset.&lt;br /&gt;
== Modern Warfare 2 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
struct XSurfaceVertexInfo&lt;br /&gt;
{&lt;br /&gt;
  __int16 vertCount[4];&lt;br /&gt;
  unsigned __int16 *vertsBlend;&lt;br /&gt;
&lt;br /&gt;
  /*Count... Ok, here we go...&lt;br /&gt;
&lt;br /&gt;
   (((vertCount[2] &amp;lt;&amp;lt; 2) + vertCount[2]) +&lt;br /&gt;
  ((vertCount[3] &amp;lt;&amp;lt; 3) - vertCount[3]) +&lt;br /&gt;
  ((vertCount[1] &amp;lt;&amp;lt; 1) + vertCount[1])&lt;br /&gt;
  + vertCount[0]) &amp;lt;&amp;lt; 1*/&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union GfxColor&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
  char array[4];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union PackedTexCoords&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union PackedUnitVec&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct GfxPackedVertex&lt;br /&gt;
{&lt;br /&gt;
  float xyz[3];&lt;br /&gt;
  float binormalSign;&lt;br /&gt;
  GfxColor color;&lt;br /&gt;
  PackedTexCoords texCoord;&lt;br /&gt;
  PackedUnitVec normal;&lt;br /&gt;
  PackedUnitVec tangent;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionAabb&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 mins[3];&lt;br /&gt;
  unsigned __int16 maxs[3];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionNode&lt;br /&gt;
{&lt;br /&gt;
  XSurfaceCollisionAabb aabb;&lt;br /&gt;
  unsigned __int16 childBeginIndex;&lt;br /&gt;
  unsigned __int16 childCount;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionLeaf&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 triangleBeginIndex;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionTree&lt;br /&gt;
{&lt;br /&gt;
  float trans[3];&lt;br /&gt;
  float scale[3];&lt;br /&gt;
  unsigned int nodeCount;&lt;br /&gt;
  XSurfaceCollisionNode *nodes;&lt;br /&gt;
  unsigned int leafCount;&lt;br /&gt;
  XSurfaceCollisionLeaf *leafs;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XRigidVertList&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 boneOffset;&lt;br /&gt;
  unsigned __int16 vertCount;&lt;br /&gt;
  unsigned __int16 triOffset;&lt;br /&gt;
  unsigned __int16 triCount;&lt;br /&gt;
  XSurfaceCollisionTree *collisionTree;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurface&lt;br /&gt;
{&lt;br /&gt;
  char tileMode;&lt;br /&gt;
  bool deformed;&lt;br /&gt;
  unsigned __int16 vertCount;&lt;br /&gt;
  unsigned __int16 triCount;&lt;br /&gt;
  short _pad;&lt;br /&gt;
  unsigned __int16 (*triIndices)[3];                  //Count = triCount * 3 (groups of 3)&lt;br /&gt;
  XSurfaceVertexInfo vertexInfo;&lt;br /&gt;
  GfxPackedVertex * packedVerticies;&lt;br /&gt;
  IDirect3DVertexBuffer9 vertexBuffer;&lt;br /&gt;
  unsigned int vertListCount;&lt;br /&gt;
  XRigidVertList * rigidVertLists;&lt;br /&gt;
  IDirect3DIndexBuffer9 indexBuffer;&lt;br /&gt;
       char unknown[0x18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ModelSurface&lt;br /&gt;
{&lt;br /&gt;
  char * name;&lt;br /&gt;
  XSurface * xSurficies;&lt;br /&gt;
  short xSurficiesCount; //This is a copy of the count, the actual count is loaded from the parent XModelStreamInfo&lt;br /&gt;
  short _pad;&lt;br /&gt;
       char unknown[0x18];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Modern Warfare 3 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
struct XSurfaceVertexInfo&lt;br /&gt;
{&lt;br /&gt;
  __int16 vertCount[4];&lt;br /&gt;
  unsigned __int16 *vertsBlend;&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
  Count... Ok, here we go...&lt;br /&gt;
&lt;br /&gt;
   (((vertCount[2] &amp;lt;&amp;lt; 2) + vertCount[2]) +&lt;br /&gt;
  ((vertCount[3] &amp;lt;&amp;lt; 3) - vertCount[3]) +&lt;br /&gt;
  ((vertCount[1] &amp;lt;&amp;lt; 1) + vertCount[1])&lt;br /&gt;
  + vertCount[0]) &amp;lt;&amp;lt; 1*/&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union GfxColor&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
  char array[4];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union PackedTexCoords&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union PackedUnitVec&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct GfxPackedVertex&lt;br /&gt;
{&lt;br /&gt;
  float xyz[3];&lt;br /&gt;
  float binormalSign;&lt;br /&gt;
  GfxColor color;&lt;br /&gt;
  PackedTexCoords texCoord;&lt;br /&gt;
  PackedUnitVec normal;&lt;br /&gt;
  PackedUnitVec tangent;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionAabb&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 mins[3];&lt;br /&gt;
  unsigned __int16 maxs[3];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionNode&lt;br /&gt;
{&lt;br /&gt;
  XSurfaceCollisionAabb aabb;&lt;br /&gt;
  unsigned __int16 childBeginIndex;&lt;br /&gt;
  unsigned __int16 childCount;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionLeaf&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 triangleBeginIndex;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionTree&lt;br /&gt;
{&lt;br /&gt;
  float trans[3];&lt;br /&gt;
  float scale[3];&lt;br /&gt;
  unsigned int nodeCount;&lt;br /&gt;
  XSurfaceCollisionNode *nodes;&lt;br /&gt;
  unsigned int leafCount;&lt;br /&gt;
  XSurfaceCollisionLeaf *leafs;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XRigidVertList&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 boneOffset;&lt;br /&gt;
  unsigned __int16 vertCount;&lt;br /&gt;
  unsigned __int16 triOffset;&lt;br /&gt;
  unsigned __int16 triCount;&lt;br /&gt;
  XSurfaceCollisionTree *collisionTree;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct unknownUnion&lt;br /&gt;
{&lt;br /&gt;
  GfxPackedVertex * packedVerticies;&lt;br /&gt;
       char * unknown1;  //Size = ((vertCount &amp;lt;&amp;lt; 1) + vertCount) &amp;lt;&amp;lt; 3&lt;br /&gt;
       char * unknown2;  //Size = ((vertCount &amp;lt;&amp;lt; 2) + vertCount) &amp;lt;&amp;lt; 2&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurface&lt;br /&gt;
{&lt;br /&gt;
  char tileMode;&lt;br /&gt;
  bool deformed;&lt;br /&gt;
  unsigned __int16 vertCount;&lt;br /&gt;
  unsigned __int16 triCount;&lt;br /&gt;
  short _padding;&lt;br /&gt;
       int unknown1;&lt;br /&gt;
  unsigned __int16 (*triIndices)[3];                  //Count = triCount * 3 (groups of 3)&lt;br /&gt;
  XSurfaceVertexInfo vertexInfo;&lt;br /&gt;
        unknownUnion verticies;&lt;br /&gt;
  IDirect3DVertexBuffer9 vertexBuffer;&lt;br /&gt;
  unsigned int vertListCount;&lt;br /&gt;
  XRigidVertList * rigidVertLists;&lt;br /&gt;
  IDirect3DIndexBuffer9 indexBuffer;&lt;br /&gt;
       char unknown2[0x18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ModelSurface&lt;br /&gt;
{&lt;br /&gt;
  char * name;&lt;br /&gt;
  XSurface * xSurficies;&lt;br /&gt;
  short xSurficiesCount; //This is a copy of the count, the actual count is loaded from the parent XModelStreamInfo&lt;br /&gt;
  short _pad;&lt;br /&gt;
  char unknown[0x18];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Ghosts ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
union GfxColor&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
  char array[4];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union PackedTexCoords&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
union PackedUnitVec&lt;br /&gt;
{&lt;br /&gt;
  unsigned int packed;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct GfxPackedVertex&lt;br /&gt;
{&lt;br /&gt;
  float xyz[3];&lt;br /&gt;
  float binormalSign;&lt;br /&gt;
  GfxColor color;&lt;br /&gt;
  PackedTexCoords texCoord;&lt;br /&gt;
  PackedUnitVec normal;&lt;br /&gt;
  PackedUnitVec tangent;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionAabb&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 mins[3];&lt;br /&gt;
  unsigned __int16 maxs[3];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionNode&lt;br /&gt;
{&lt;br /&gt;
  XSurfaceCollisionAabb aabb;&lt;br /&gt;
  unsigned __int16 childBeginIndex;&lt;br /&gt;
  unsigned __int16 childCount;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionLeaf&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 triangleBeginIndex;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurfaceCollisionTree&lt;br /&gt;
{&lt;br /&gt;
  float trans[3];&lt;br /&gt;
  float scale[3];&lt;br /&gt;
  unsigned int nodeCount;&lt;br /&gt;
  XSurfaceCollisionNode *nodes;&lt;br /&gt;
  unsigned int leafCount;&lt;br /&gt;
  XSurfaceCollisionLeaf *leafs;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XRigidVertList&lt;br /&gt;
{&lt;br /&gt;
  unsigned __int16 boneOffset;&lt;br /&gt;
  unsigned __int16 vertCount;&lt;br /&gt;
  unsigned __int16 triOffset;&lt;br /&gt;
  unsigned __int16 triCount;&lt;br /&gt;
  XSurfaceCollisionTree *collisionTree;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct unknownUnion&lt;br /&gt;
{&lt;br /&gt;
  GfxPackedVertex * packedVerticies;&lt;br /&gt;
       char * unknown1;  //Size = vertCount &amp;lt;&amp;lt; 5&lt;br /&gt;
       char * unknown2;  //Size = ((vertCount &amp;lt;&amp;lt; 1) + vertCount) &amp;lt;&amp;lt; 3&lt;br /&gt;
       char * unknown3;  //Size = ((vertCount &amp;lt;&amp;lt; 1) + vertCount) &amp;lt;&amp;lt; 3&lt;br /&gt;
       char * unknown4;  //Size = ((vertCount &amp;lt;&amp;lt; 2) + vertCount) &amp;lt;&amp;lt; 2&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct XSurface&lt;br /&gt;
{&lt;br /&gt;
  char tileMode;&lt;br /&gt;
  bool deformed;&lt;br /&gt;
  unsigned __int16 vertCount;&lt;br /&gt;
  byte vertListCount;&lt;br /&gt;
  unsigned __int16 triCount;&lt;br /&gt;
  __int16 vertCount[4];&lt;br /&gt;
       unknownUnion verticies;&lt;br /&gt;
       char * unknown2; //Size = ((vertCount &amp;lt;&amp;lt; 1) + vertCount) &amp;lt;&amp;lt; 1&lt;br /&gt;
  IDirect3DVertexBuffer9 vertexBuffer;&lt;br /&gt;
  IDirect3DIndexBuffer9 indexBuffer;&lt;br /&gt;
  XRigidVertList * rigidVertLists;&lt;br /&gt;
  unsigned __int16 *vertsBlend;&lt;br /&gt;
       char unknown3[0x20];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ModelSurface&lt;br /&gt;
{&lt;br /&gt;
  char * name;&lt;br /&gt;
  XSurface * xSurficies;&lt;br /&gt;
  short xSurficiesCount; //This is a copy of the count, the actual count is loaded from the parent XModelStreamInfo&lt;br /&gt;
  short unknownShort;&lt;br /&gt;
  char unknown[0x18];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>CraigChrist8239</name></author>
	</entry>
</feed>