public bool ChangeResourceObjectEditor(string fileName) { this.currentResourcePath = fileName; this.currentResourceFileSize = 0L; try { if (!string.IsNullOrEmpty(this.currentResourcePath)) { this.currentResourceFileSize = VirtualFile.GetLength(this.currentResourcePath); } } catch { } this.currentResourceIsArchive = false; try { if (!string.IsNullOrEmpty(this.currentResourcePath)) { this.currentResourceIsArchive = VirtualFile.IsArchive(this.currentResourcePath); } } catch { } this.currentResourceIsInArchive = false; try { if (!string.IsNullOrEmpty(this.currentResourcePath)) { this.currentResourceIsInArchive = VirtualFile.IsInArchive(this.currentResourcePath); } } catch { } if (this.currentResourceObjectEditor != null) { if (fileName != null && string.Compare(this.currentResourceObjectEditor.FileName, fileName, true) == 0) { return(true); } if (this.currentResourceObjectEditor.EditModeActive && !this.currentResourceObjectEditor.EndEditMode()) { return(false); } this.currentResourceObjectEditor.Dispose(); this.currentResourceObjectEditor = null; } if (fileName != null) { string text = Path.GetExtension(fileName); if (!string.IsNullOrEmpty(text)) { text = text.Substring(1); if (ResourceTypeManager.Instance != null) { ResourceType byExtension = ResourceTypeManager.Instance.GetByExtension(text); if (byExtension != null) { Type resourceObjectEditorType = byExtension.ResourceObjectEditorType; ConstructorInfo constructor = resourceObjectEditorType.GetConstructor(new Type[0]); this.currentResourceObjectEditor = (ResourceObjectEditor)constructor.Invoke(new object[0]); this.currentResourceObjectEditor.Create(byExtension, fileName); } } } } if (MainForm.Instance != null && this.currentResourceObjectEditor == null) { MainForm.Instance.PropertiesForm.SelectObjects(null); } return(true); }