summaryrefslogtreecommitdiff
path: root/NW4RTools/Models
diff options
context:
space:
mode:
Diffstat (limited to 'NW4RTools/Models')
-rw-r--r--NW4RTools/Models/Material.cs10
-rw-r--r--NW4RTools/Models/Model.cs5
-rw-r--r--NW4RTools/Models/Shape.cs29
-rw-r--r--NW4RTools/Models/TextureInfo.cs21
4 files changed, 56 insertions, 9 deletions
diff --git a/NW4RTools/Models/Material.cs b/NW4RTools/Models/Material.cs
index 8ca5082..200c6e7 100644
--- a/NW4RTools/Models/Material.cs
+++ b/NW4RTools/Models/Material.cs
@@ -20,14 +20,6 @@ namespace NW4RTools.Models {
public Matrix TexMatrix;
}
- public class BoundTextureInfo {
- public string TextureName, PaletteName;
- public UInt32 TexMapID, TlutID, WrapS, WrapT, MinFilt, MagFilt;
- public float LODBias;
- public UInt32 MaxAniso;
- public bool BiasClamp, DoEdgeLOD;
- }
-
public class Material {
@@ -54,7 +46,7 @@ namespace NW4RTools.Models {
public ChanCtrl[] ChanCtrls;
// Other
- public List<BoundTextureInfo> BoundTextures;
+ public List<TextureInfo> TextureInfos;
public Shader ShaderRef;
// Display Lists
diff --git a/NW4RTools/Models/Model.cs b/NW4RTools/Models/Model.cs
index d1c170b..c0297db 100644
--- a/NW4RTools/Models/Model.cs
+++ b/NW4RTools/Models/Model.cs
@@ -1,4 +1,6 @@
using System;
+using System.Collections.Generic;
+
namespace NW4RTools.Models {
public class Model {
public enum ScaleModeType {
@@ -17,6 +19,9 @@ namespace NW4RTools.Models {
public ResDict<VertexTexCoordData> VtxTexCoordData;
public ResDict<Material> Materials;
public ResDict<Shader> Shaders;
+ public ResDict<Shape> Shapes;
+ public ResDict<List<TexMatPairing>> PairingLookupByTexture;
+ public ResDict<List<TexMatPairing>> PairingLookupByPalette;
/*public ResDict Bytecode, Nodes, VtxPosData, VtsNrmData, VtxClrData, VtxTexCoordData;
public ResDict VtxFurVecData, VtxFurPosData, Materials, Shaders, Shapes;
diff --git a/NW4RTools/Models/Shape.cs b/NW4RTools/Models/Shape.cs
new file mode 100644
index 0000000..72cdbaa
--- /dev/null
+++ b/NW4RTools/Models/Shape.cs
@@ -0,0 +1,29 @@
+using System;
+
+namespace NW4RTools.Models {
+ public class Shape {
+ public Int32 MatrixID;
+ public byte[] Unk;
+ public byte[] DisplayList1, DisplayList2;
+ public UInt32 DataFlags;
+ public UInt32 Flags;
+ public UInt32 Index;
+
+ public UInt32 VertexCount;
+ public UInt32 PolygonCount;
+
+ // todo: use refs for this
+ public Int16 PosDataIndex;
+ public Int16 NrmDataIndex;
+ public Int16[] ClrDataIndex;
+ public Int16[] TexCoordDataIndex;
+ public Int16 FurVecDataIndex;
+ public Int16 FurPosDataIndex;
+
+ // todo: more
+
+ public Shape() {
+ }
+ }
+}
+
diff --git a/NW4RTools/Models/TextureInfo.cs b/NW4RTools/Models/TextureInfo.cs
new file mode 100644
index 0000000..c8bc9a4
--- /dev/null
+++ b/NW4RTools/Models/TextureInfo.cs
@@ -0,0 +1,21 @@
+using System;
+
+namespace NW4RTools.Models {
+ public class TextureInfo {
+ public string TextureName, PaletteName;
+ public UInt32 TexMapID, TlutID, WrapS, WrapT, MinFilt, MagFilt;
+ public float LODBias;
+ public UInt32 MaxAniso;
+ public bool BiasClamp, DoEdgeLOD;
+
+ public TextureInfo() {
+ }
+ }
+
+
+ public class TexMatPairing {
+ public TextureInfo Texture;
+ public Material Material;
+ }
+}
+