mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2026-05-14 11:42:46 +08:00
Changed DrawableModels into arrays and added DrawableModelsBlock
This commit is contained in:
@@ -964,11 +964,11 @@ namespace CodeWalker.Forms
|
||||
TexturesTreeView.Nodes.Clear();
|
||||
if (drawable != null)
|
||||
{
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh, "High Detail", true);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium, "Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsLow, "Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow, "Very Low Detail", false);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.High, "High Detail", true);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Med, "Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Low, "Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.VLow, "Very Low Detail", false);
|
||||
//AddDrawableModelsTreeNodes(drawable.DrawableModels?.Extra, "X Detail", false);
|
||||
|
||||
var fdrawable = drawable as FragDrawable;
|
||||
if (fdrawable != null)
|
||||
@@ -984,10 +984,10 @@ namespace CodeWalker.Forms
|
||||
if (cdrwbl.Owner is FragDrawable) continue; //it's a copied drawable... eg a wheel
|
||||
|
||||
var dname = child.GroupName;
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsHigh, dname + " - High Detail", true);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsMedium, dname + " - Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsLow, dname + " - Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsVeryLow, dname + " - Very Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.High, dname + " - High Detail", true);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.Med, dname + " - Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.Low, dname + " - Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.VLow, dname + " - Very Low Detail", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1070,23 +1070,22 @@ namespace CodeWalker.Forms
|
||||
dnode.Tag = drawable;
|
||||
dnode.Checked = check;
|
||||
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh, "High Detail", true, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium, "Medium Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsLow, "Low Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow, "Very Low Detail", false, dnode);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.High, "High Detail", true, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Med, "Medium Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Low, "Low Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.VLow, "Very Low Detail", false, dnode);
|
||||
//AddDrawableModelsTreeNodes(drawable.DrawableModels?.Extra, "X Detail", false, dnode);
|
||||
|
||||
}
|
||||
private void AddDrawableModelsTreeNodes(ResourcePointerList64<DrawableModel> models, string prefix, bool check, TreeNode parentDrawableNode = null)
|
||||
private void AddDrawableModelsTreeNodes(DrawableModel[] models, string prefix, bool check, TreeNode parentDrawableNode = null)
|
||||
{
|
||||
if (models == null) return;
|
||||
if (models.data_items == null) return;
|
||||
|
||||
for (int mi = 0; mi < models.data_items.Length; mi++)
|
||||
for (int mi = 0; mi < models.Length; mi++)
|
||||
{
|
||||
var tnc = (parentDrawableNode != null) ? parentDrawableNode.Nodes : ModelsTreeView.Nodes;
|
||||
|
||||
var model = models.data_items[mi];
|
||||
var model = models[mi];
|
||||
string mprefix = prefix + " " + (mi + 1).ToString();
|
||||
var mnode = tnc.Add(mprefix + " " + model.ToString());
|
||||
mnode.Tag = model;
|
||||
|
||||
@@ -36,10 +36,10 @@ namespace CodeWalker.Forms
|
||||
ModelsTreeView.ShowRootLines = false;
|
||||
if (drawable != null)
|
||||
{
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh, "High Detail");
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium, "Medium Detail");
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsLow, "Low Detail");
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow, "Very Low Detail");
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.High, "High Detail");
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Med, "Medium Detail");
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Low, "Low Detail");
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.VLow, "Very Low Detail");
|
||||
|
||||
var fdrawable = drawable as FragDrawable;
|
||||
if (fdrawable != null)
|
||||
@@ -55,10 +55,10 @@ namespace CodeWalker.Forms
|
||||
if (cdrwbl.Owner is FragDrawable) continue; //it's a copied drawable... eg a wheel
|
||||
|
||||
var dname = child.GroupName;
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsHigh, dname + " - High Detail");
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsMedium, dname + " - Medium Detail");
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsLow, dname + " - Low Detail");
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsVeryLow, dname + " - Very Low Detail");
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.High, dname + " - High Detail");
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.Med, dname + " - Medium Detail");
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.Low, dname + " - Low Detail");
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.VLow, dname + " - Very Low Detail");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -82,26 +82,25 @@ namespace CodeWalker.Forms
|
||||
var dnode = ModelsTreeView.Nodes.Add(mhash.ToString());
|
||||
dnode.Tag = drawable;
|
||||
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh, "High Detail", dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium, "Medium Detail", dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsLow, "Low Detail", dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow, "Very Low Detail", dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.High, "High Detail", dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Med, "Medium Detail", dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Low, "Low Detail", dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.VLow, "Very Low Detail", dnode);
|
||||
|
||||
dnode.Expand();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddDrawableModelsTreeNodes(ResourcePointerList64<DrawableModel> models, string prefix, TreeNode parentDrawableNode = null)
|
||||
private void AddDrawableModelsTreeNodes(DrawableModel[] models, string prefix, TreeNode parentDrawableNode = null)
|
||||
{
|
||||
if (models == null) return;
|
||||
if (models.data_items == null) return;
|
||||
|
||||
for (int mi = 0; mi < models.data_items.Length; mi++)
|
||||
for (int mi = 0; mi < models.Length; mi++)
|
||||
{
|
||||
var tnc = (parentDrawableNode != null) ? parentDrawableNode.Nodes : ModelsTreeView.Nodes;
|
||||
|
||||
var model = models.data_items[mi];
|
||||
var model = models[mi];
|
||||
string mprefix = prefix + " " + (mi + 1).ToString();
|
||||
var mnode = tnc.Add(mprefix + " " + model.ToString());
|
||||
mnode.Tag = model;
|
||||
|
||||
@@ -515,11 +515,11 @@ namespace CodeWalker
|
||||
dnode.Tag = drawable;
|
||||
dnode.Checked = check;
|
||||
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh?.data_items, "High Detail", true, dnode, tnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium?.data_items, "Medium Detail", false, dnode, tnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsLow?.data_items, "Low Detail", false, dnode, tnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow?.data_items, "Very Low Detail", false, dnode, tnode);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false, dnode, tnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.High, "High Detail", true, dnode, tnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Med, "Medium Detail", false, dnode, tnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Low, "Low Detail", false, dnode, tnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.VLow, "Very Low Detail", false, dnode, tnode);
|
||||
//AddDrawableModelsTreeNodes(drawable.DrawableModels?.Extra, "X Detail", false, dnode, tnode);
|
||||
|
||||
}
|
||||
private void AddDrawableModelsTreeNodes(DrawableModel[] models, string prefix, bool check, TreeNode parentDrawableNode = null, TreeNode parentTextureNode = null)
|
||||
|
||||
@@ -101,10 +101,10 @@ namespace CodeWalker.Rendering
|
||||
|
||||
DataSize = 0;
|
||||
|
||||
var hd = Key.DrawableModelsHigh?.data_items ?? Key.AllModels;
|
||||
var med = Key.DrawableModelsMedium?.data_items;
|
||||
var low = Key.DrawableModelsLow?.data_items;
|
||||
var vlow = Key.DrawableModelsVeryLow?.data_items;
|
||||
var hd = Key.DrawableModels?.High ?? Key.AllModels;
|
||||
var med = Key.DrawableModels?.Med;
|
||||
var low = Key.DrawableModels?.Low;
|
||||
var vlow = Key.DrawableModels?.VLow;
|
||||
int totmodels = (hd?.Length ?? 0) + (med?.Length ?? 0) + (low?.Length ?? 0) + (vlow?.Length ?? 0);
|
||||
int curmodel = hd?.Length ?? 0;
|
||||
AllModels = new RenderableModel[totmodels];
|
||||
|
||||
+17
-18
@@ -461,23 +461,22 @@ namespace CodeWalker
|
||||
dnode.Tag = drawable;
|
||||
dnode.Checked = check;
|
||||
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh, "High Detail", true, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium, "Medium Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsLow, "Low Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow, "Very Low Detail", false, dnode);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.High, "High Detail", true, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Med, "Medium Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Low, "Low Detail", false, dnode);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.VLow, "Very Low Detail", false, dnode);
|
||||
//AddDrawableModelsTreeNodes(drawable.DrawableModels?.Extra, "X Detail", false, dnode);
|
||||
|
||||
}
|
||||
private void AddDrawableModelsTreeNodes(ResourcePointerList64<DrawableModel> models, string prefix, bool check, TreeNode parentDrawableNode = null)
|
||||
private void AddDrawableModelsTreeNodes(DrawableModel[] models, string prefix, bool check, TreeNode parentDrawableNode = null)
|
||||
{
|
||||
if (models == null) return;
|
||||
if (models.data_items == null) return;
|
||||
|
||||
for (int mi = 0; mi < models.data_items.Length; mi++)
|
||||
for (int mi = 0; mi < models.Length; mi++)
|
||||
{
|
||||
var tnc = (parentDrawableNode != null) ? parentDrawableNode.Nodes : ModelsTreeView.Nodes;
|
||||
|
||||
var model = models.data_items[mi];
|
||||
var model = models[mi];
|
||||
string mprefix = prefix + " " + (mi + 1).ToString();
|
||||
var mnode = tnc.Add(mprefix + " " + model.ToString());
|
||||
mnode.Tag = model;
|
||||
@@ -632,11 +631,11 @@ namespace CodeWalker
|
||||
TexturesTreeView.Nodes.Clear();
|
||||
if (drawable != null)
|
||||
{
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh, "High Detail", true);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium, "Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsLow, "Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow, "Very Low Detail", false);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.High, "High Detail", true);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Med, "Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.Low, "Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(drawable.DrawableModels?.VLow, "Very Low Detail", false);
|
||||
//AddDrawableModelsTreeNodes(drawable.DrawableModels?.Extra, "X Detail", false);
|
||||
|
||||
|
||||
var fdrawable = drawable as FragDrawable;
|
||||
@@ -653,10 +652,10 @@ namespace CodeWalker
|
||||
if (cdrwbl.Owner is FragDrawable) continue; //it's a copied drawable... eg a wheel
|
||||
|
||||
var dname = child.GroupName;
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsHigh, dname + " - High Detail", true);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsMedium, dname + " - Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsLow, dname + " - Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModelsVeryLow, dname + " - Very Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.High, dname + " - High Detail", true);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.Med, dname + " - Medium Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.Low, dname + " - Low Detail", false);
|
||||
AddDrawableModelsTreeNodes(cdrwbl.DrawableModels?.VLow, dname + " - Very Low Detail", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,11 +75,11 @@ namespace CodeWalker.World
|
||||
HierarchyTreeView.Nodes.Clear();
|
||||
if (item.Drawable != null)
|
||||
{
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsHigh, "High Detail", true);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsMedium, "Medium Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsLow, "Low Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsVeryLow, "Very Low Detail", false);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.High, "High Detail", true);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.Med, "Medium Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.Low, "Low Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.VLow, "Very Low Detail", false);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.Extra, "X Detail", false);
|
||||
}
|
||||
|
||||
if (item.EntityDef != null)
|
||||
@@ -201,14 +201,13 @@ namespace CodeWalker.World
|
||||
}
|
||||
|
||||
}
|
||||
private void AddSelectionDrawableModelsTreeNodes(ResourcePointerList64<DrawableModel> models, string prefix, bool check)
|
||||
private void AddSelectionDrawableModelsTreeNodes(DrawableModel[] models, string prefix, bool check)
|
||||
{
|
||||
if (models == null) return;
|
||||
if (models.data_items == null) return;
|
||||
|
||||
for (int mi = 0; mi < models.data_items.Length; mi++)
|
||||
for (int mi = 0; mi < models.Length; mi++)
|
||||
{
|
||||
var model = models.data_items[mi];
|
||||
var model = models[mi];
|
||||
string mprefix = prefix + " " + (mi + 1).ToString();
|
||||
var mnode = SelDrawableModelsTreeView.Nodes.Add(mprefix + " " + model.ToString());
|
||||
mnode.Tag = model;
|
||||
|
||||
+14
-15
@@ -2401,14 +2401,14 @@ namespace CodeWalker
|
||||
|
||||
|
||||
bool usegeomboxes = SelectByGeometry;
|
||||
var dmodels = drawable.DrawableModelsHigh;
|
||||
if((dmodels==null)||(dmodels.data_items==null))
|
||||
var dmodels = drawable.DrawableModels?.High;
|
||||
if (dmodels == null)
|
||||
{ usegeomboxes = false; }
|
||||
if (usegeomboxes)
|
||||
{
|
||||
for (int i = 0; i < dmodels.data_items.Length; i++)
|
||||
for (int i = 0; i < dmodels.Length; i++)
|
||||
{
|
||||
var m = dmodels.data_items[i];
|
||||
var m = dmodels[i];
|
||||
if (m.BoundsData == null)
|
||||
{ usegeomboxes = false; break; }
|
||||
}
|
||||
@@ -2428,9 +2428,9 @@ namespace CodeWalker
|
||||
{
|
||||
//geometry bounding boxes version
|
||||
float ghitdist = float.MaxValue;
|
||||
for (int i = 0; i < dmodels.data_items.Length; i++)
|
||||
for (int i = 0; i < dmodels.Length; i++)
|
||||
{
|
||||
var m = dmodels.data_items[i];
|
||||
var m = dmodels[i];
|
||||
int gbbcount = m.BoundsData.Length;
|
||||
for (int j = 0; j < gbbcount; j++) //first box seems to be whole model
|
||||
{
|
||||
@@ -3538,11 +3538,11 @@ namespace CodeWalker
|
||||
SelDrawableTexturesTreeView.Nodes.Clear();
|
||||
if (item.Drawable != null)
|
||||
{
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsHigh, "High Detail", true);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsMedium, "Medium Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsLow, "Low Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsVeryLow, "Very Low Detail", false);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.High, "High Detail", true);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.Med, "Medium Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.Low, "Low Detail", false);
|
||||
AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.VLow, "Very Low Detail", false);
|
||||
//AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModels?.Extra, "X Detail", false);
|
||||
}
|
||||
|
||||
|
||||
@@ -3765,14 +3765,13 @@ namespace CodeWalker
|
||||
}
|
||||
}
|
||||
}
|
||||
private void AddSelectionDrawableModelsTreeNodes(ResourcePointerList64<DrawableModel> models, string prefix, bool check)
|
||||
private void AddSelectionDrawableModelsTreeNodes(DrawableModel[] models, string prefix, bool check)
|
||||
{
|
||||
if (models == null) return;
|
||||
if (models.data_items == null) return;
|
||||
|
||||
for (int mi = 0; mi < models.data_items.Length; mi++)
|
||||
for (int mi = 0; mi < models.Length; mi++)
|
||||
{
|
||||
var model = models.data_items[mi];
|
||||
var model = models[mi];
|
||||
string mprefix = prefix + " " + (mi + 1).ToString();
|
||||
var mnode = SelDrawableModelsTreeView.Nodes.Add(mprefix + " " + model.ToString());
|
||||
mnode.Tag = model;
|
||||
|
||||
Reference in New Issue
Block a user