Fix for XmlMeta not importing Vector3 arrays properly, Added extra texture sampler options

This commit is contained in:
dexy
2019-01-12 12:17:02 +11:00
Unverified
parent f3c7538d78
commit d7d4054971
4 changed files with 51 additions and 24 deletions
@@ -2136,6 +2136,7 @@ namespace CodeWalker.GameFiles
DiffuseNoBorderTexSampler = 1732587965, DiffuseNoBorderTexSampler = 1732587965,
DiffuseSampler = 4059966321, DiffuseSampler = 4059966321,
DiffuseSampler2 = 181641832, DiffuseSampler2 = 181641832,
DiffuseSampler3 = 1429813046, //thanks CP
DiffuseSamplerFur = 1282320680, DiffuseSamplerFur = 1282320680,
DiffuseSamplerPhase2 = 3227619449, DiffuseSamplerPhase2 = 3227619449,
DiffuseSamplerPoint = 4015001285, DiffuseSamplerPoint = 4015001285,
@@ -2158,6 +2159,7 @@ namespace CodeWalker.GameFiles
dirtLevel = 47191856, dirtLevel = 47191856,
dirtLevelMod = 3961814809, dirtLevelMod = 3961814809,
DirtSampler = 2124031998, DirtSampler = 2124031998,
DirtBumpSampler = 3157820509,//thanks CP
DiskBrakeGlow = 1035405954, DiskBrakeGlow = 1035405954,
displParams = 1163050293, displParams = 1163050293,
distanceMapSampler = 1616890976, distanceMapSampler = 1616890976,
+44 -22
View File
@@ -589,39 +589,61 @@ namespace CodeWalker.GameFiles
{ {
var items = new List<Vector4>(); var items = new List<Vector4>();
var split = node.InnerText.Split('\n');// Regex.Split(node.InnerText, @"[\s\r\n\t]");
float x = 0f; float x = 0f;
float y = 0f; float y = 0f;
float z = 0f; float z = 0f;
float w = 0f; float w = 0f;
for (int i = 0; i < split.Length; i++) var cnodes = node.SelectNodes("Item");
if (cnodes.Count > 0)
{ {
var s = split[i]?.Trim(); foreach (XmlNode cnode in cnodes)
if (string.IsNullOrEmpty(s)) continue;
var split2 = Regex.Split(s, @"[\s\t]");
int c = 0;
x = 0f; y = 0f; z = 0f;
for (int n = 0; n < split2.Length; n++)
{ {
var ts = split2[n]?.Trim(); var str = cnode.InnerText;
if (string.IsNullOrEmpty(ts)) continue; var strs = str.Split(',');
var f = FloatUtil.Parse(ts); if (strs.Length >= 3)
switch (c)
{ {
case 0: x = f; break; x = FloatUtil.Parse(strs[0].Trim());
case 1: y = f; break; y = FloatUtil.Parse(strs[1].Trim());
case 2: z = f; break; z = FloatUtil.Parse(strs[2].Trim());
if (strs.Length >= 4)
{
w = FloatUtil.Parse(strs[3].Trim());
}
var val = new Vector4(x, y, z, w);
items.Add(val);
} }
c++;
} }
if (c >= 3) }
else
{
var split = node.InnerText.Split('\n');// Regex.Split(node.InnerText, @"[\s\r\n\t]");
for (int i = 0; i < split.Length; i++)
{ {
var val = new Vector4(x, y, z, w); var s = split[i]?.Trim();
items.Add(val); if (string.IsNullOrEmpty(s)) continue;
var split2 = Regex.Split(s, @"[\s\t]");
int c = 0;
x = 0f; y = 0f; z = 0f;
for (int n = 0; n < split2.Length; n++)
{
var ts = split2[n]?.Trim();
if (string.IsNullOrEmpty(ts)) continue;
var f = FloatUtil.Parse(ts);
switch (c)
{
case 0: x = f; break;
case 1: y = f; break;
case 2: z = f; break;
}
c++;
}
if (c >= 3)
{
var val = new Vector4(x, y, z, w);
items.Add(val);
}
} }
} }
+3 -1
View File
@@ -434,8 +434,10 @@ namespace CodeWalker.Rendering
MetaName.lookupSampler, //TF_RSN_Msk_CS1_DesHill1, bh1_43_golf_blendmap_04_LOD MetaName.lookupSampler, //TF_RSN_Msk_CS1_DesHill1, bh1_43_golf_blendmap_04_LOD
MetaName.heightSampler, //nxg_prop_tree_palm2_displ_l MetaName.heightSampler, //nxg_prop_tree_palm2_displ_l
MetaName.FoamSampler, //bj_beachfoam01_lod, CS_RSN_SL_RiverFoam_01_A_lodCS_RSN_SL_RiverFoam_01_A MetaName.FoamSampler, //bj_beachfoam01_lod, CS_RSN_SL_RiverFoam_01_A_lodCS_RSN_SL_RiverFoam_01_A
MetaName.textureSamp, MetaName.DirtSampler,
MetaName.DirtBumpSampler,
MetaName.DiffuseSampler2, MetaName.DiffuseSampler2,
MetaName.DiffuseSampler3,
MetaName.DiffuseHfSampler, MetaName.DiffuseHfSampler,
MetaName.ComboHeightSamplerFur01, MetaName.ComboHeightSamplerFur01,
MetaName.ComboHeightSamplerFur23, MetaName.ComboHeightSamplerFur23,
+2 -1
View File
@@ -573,8 +573,9 @@ namespace CodeWalker.Rendering
//case MetaName.SnowSampler0: //case MetaName.SnowSampler0:
//case MetaName.SnowSampler1: //case MetaName.SnowSampler1:
//case MetaName.DiffuseSampler2: //case MetaName.DiffuseSampler2:
//case MetaName.DiffuseSampler3:
//case MetaName.DirtSampler: //case MetaName.DirtSampler:
//case (MetaName)3157820509://normal? //case MetaName.DirtBumpSampler:
break; break;
case MetaName.FlowSampler: case MetaName.FlowSampler:
case MetaName.FogSampler: case MetaName.FogSampler: