Fix model import resetting dirty flag.

This commit is contained in:
Ottermandias 2024-03-28 15:19:19 +01:00
parent 12532dee28
commit e793e7793b

View file

@ -35,39 +35,28 @@ public partial class ModEditWindow
private void UpdateFile(MdlFile file, bool force) private void UpdateFile(MdlFile file, bool force)
{ {
if (file == _lastFile) if (file == _lastFile && !force)
return;
_lastFile = file;
var subMeshTotal = file.Meshes.Aggregate(0, (count, mesh) => count + mesh.SubMeshCount);
if (_subMeshAttributeTagWidgets.Count != subMeshTotal)
{ {
if (force) _subMeshAttributeTagWidgets.Clear();
UpdateMeshes(); _subMeshAttributeTagWidgets.AddRange(
} Enumerable.Range(0, subMeshTotal).Select(_ => new TagButtons())
else );
{
UpdateMeshes();
_lastFile = file;
_lodTriCount = Enumerable.Range(0, file.Lods.Length).Select(l => GetTriangleCountForLod(file, l)).ToArray();
} }
return; _lodTriCount = Enumerable.Range(0, file.Lods.Length).Select(l => GetTriangleCountForLod(file, l)).ToArray();
void UpdateMeshes()
{
var subMeshTotal = file.Meshes.Aggregate(0, (count, mesh) => count + mesh.SubMeshCount);
if (_subMeshAttributeTagWidgets.Count != subMeshTotal)
{
_subMeshAttributeTagWidgets.Clear();
_subMeshAttributeTagWidgets.AddRange(
Enumerable.Range(0, subMeshTotal).Select(_ => new TagButtons())
);
}
}
} }
private bool DrawModelPanel(MdlTab tab, bool disabled) private bool DrawModelPanel(MdlTab tab, bool disabled)
{ {
UpdateFile(tab.Mdl, tab.Dirty); var ret = tab.Dirty;
UpdateFile(tab.Mdl, ret);
DrawImportExport(tab, disabled); DrawImportExport(tab, disabled);
var ret = tab.Dirty;
ret |= DrawModelMaterialDetails(tab, disabled); ret |= DrawModelMaterialDetails(tab, disabled);
if (ImGui.CollapsingHeader($"Meshes ({_lastFile.Meshes.Length})###meshes")) if (ImGui.CollapsingHeader($"Meshes ({_lastFile.Meshes.Length})###meshes"))