summaryrefslogtreecommitdiff
path: root/NW4RTools/ObjImporter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'NW4RTools/ObjImporter.cs')
-rwxr-xr-xNW4RTools/ObjImporter.cs53
1 files changed, 27 insertions, 26 deletions
diff --git a/NW4RTools/ObjImporter.cs b/NW4RTools/ObjImporter.cs
index 384fb66..cdc9fcd 100755
--- a/NW4RTools/ObjImporter.cs
+++ b/NW4RTools/ObjImporter.cs
@@ -2,6 +2,7 @@ using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
+using System.Globalization;
using NW4RTools.Models;
namespace NW4RTools {
@@ -271,7 +272,7 @@ namespace NW4RTools {
var output = new float[count];
for (int i = 0; i < count; i++) {
- output[i] = float.Parse(src[i + index]);
+ output[i] = float.Parse(src[i + index], CultureInfo.InvariantCulture);
}
return output;
@@ -293,13 +294,13 @@ namespace NW4RTools {
if (line.Length == 0 || line[0] == '#')
continue;
- var parsed = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
-
- switch (parsed[0]) {
- case "newmtl":
- // Create a new material and initialise everything
- // Default settings taken from Test_Lift material
- currentMaterial = new Material();
+ var parsed = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
+
+ switch (parsed[0]) {
+ case "newmtl":
+ // Create a new material and initialise everything
+ // Default settings taken from Test_Lift material
+ currentMaterial = new Material();
currentMaterial.ChanCtrls[0] = new ChanCtrl();
currentMaterial.ChanCtrls[0].Flags = 0x3F;
@@ -315,20 +316,20 @@ namespace NW4RTools {
currentMaterial.ChanCtrls[1].FlagC = 0;
currentMaterial.ChanCtrls[1].FlagA = 0;
- if (Lightmap == ObjImporter.LightmapType.None) {
- currentMaterial.TexCoordGenCount = 1;
- currentMaterial.ChanCount = 1;
- currentMaterial.TevStageCount = 2;
- currentMaterial.IndStageCount = 0;
-
- // This might need changing
- currentMaterial.CullMode = 2;
+ if (Lightmap == ObjImporter.LightmapType.None) {
+ currentMaterial.TexCoordGenCount = 1;
+ currentMaterial.ChanCount = 1;
+ currentMaterial.TevStageCount = 2;
+ currentMaterial.IndStageCount = 0;
+
+ // This might need changing
+ currentMaterial.CullMode = 2;
currentMaterial.LightSetID = 1;
- currentMaterial.SRTSettings[0] = new SRTSettingInfo();
-
- // Default display lists, taken from test_lift
+ currentMaterial.SRTSettings[0] = new SRTSettingInfo();
+
+ // Default display lists, taken from test_lift
var pixDL = new DisplayListWriter();
pixDL.LoadBPReg(0xF31EFF80);
pixDL.LoadBPReg(0x40000017);
@@ -469,10 +470,10 @@ namespace NW4RTools {
Shader thisShader = CreateShader();
CurrentModel.Shaders.Add(parsed[1], thisShader);
- currentMaterial.ShaderRef = thisShader;
-
- break;
-
+ currentMaterial.ShaderRef = thisShader;
+
+ break;
+
case "map_Kd":
var rawTexName = string.Join(" ", parsed, 1, parsed.Length - 1);
// TODO: fix this to use the mtllib path
@@ -512,9 +513,9 @@ namespace NW4RTools {
currentMaterial.TextureInfos.Add(lm01);
currentMaterial.TextureInfos.Add(lm02);
}
-
- break;
-
+
+ break;
+
}
}