public void ImportOBJToDecalDialog(bool replace) { int old_active_dmesh_index = m_decal_list.IndexOf((string)m_active_dmesh.name); using (OpenFileDialog od = new OpenFileDialog()) { od.AddExtension = true; od.CheckFileExists = true; od.CheckPathExists = true; od.DefaultExt = ".obj"; od.Filter = "OBJ mesh files (*.obj) | *.obj"; od.Multiselect = false; od.Title = "Import an OBJ mesh file"; od.InitialDirectory = editor.m_filepath_decals + "\\OBJ"; DialogResult res = od.ShowDialog(); if (res != DialogResult.OK) { return; } string name = m_active_dmesh.name; if (!replace) { m_active_dmesh = new DMesh(""); } bool saved = ImportOBJToDecal(od.FileName); if (!saved) { listbox.SetSelected(old_active_dmesh_index, true); return; } if (replace) { m_active_dmesh.name = name; SaveDecalMesh(m_active_dmesh); editor.RefreshAllGMeshes(); editor.Refresh(); } else { name = InputBox.GetInput("Import Decal Mesh", "Enter a name for this decal (must be valid filename)", ""); if (name == null) { listbox.SetSelected(old_active_dmesh_index, true); return; } if (m_decal_list.IndexOf((string)name) != -1) { MessageBox.Show("Name '" + name + "' already used for a decal."); listbox.SetSelected(old_active_dmesh_index, true); return; } m_active_dmesh.name = name; SaveDecalMesh(m_active_dmesh); m_dmesh.Add(m_active_dmesh); m_decal_list.Add(m_active_dmesh.name); m_decal_readonly.Add(false); ListboxUpdate(m_active_dmesh.name); } UpdateActiveDMesh(); gl_custom.Invalidate(); } }