private static TextReader OpenRead(FileSystemInfo mapFile, string filename) { if (mapFile is FileInfo) { return(new StreamReader(MpqEditor.OpenFileRead((FileInfo)mapFile, filename))); } else//Dir info { DirectoryInfo dir = (DirectoryInfo)mapFile; foreach (FileInfo file in dir.GetFiles()) { if (file.Name == filename) { return(new StreamReader(file.OpenRead())); } } return(new StringReader("")); } }
private void extractOrInjectScript() { if (ProjectProperties.CurrentProjectPropperties.LoadSaveScriptToMap) { if (File.Exists(ProjectProperties.CurrentProjectPropperties.MapPath)) { UploadToMapForm questionForm = new UploadToMapForm(); questionForm.ShowDialog(this); if (questionForm.Extract) { if (ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.Exists) { //ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.Delete(true); Form1.DeleteDir(ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.FullName); } //ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir = new DirectoryInfo(ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.FullName); ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.Create(); MpqEditor.ExtractGalaxyppScriptFiles( new FileInfo(ProjectProperties.CurrentProjectPropperties.MapPath), ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir, true); ProjectProperties.CurrentProjectPropperties.SrcFolder.FixConflicts(".galaxy++"); Form1.Form.ReloadSourceFiles(); Form1.Form.RebuildProjectView(); Form1.Form.UploadedChangesToMap = true; } else if (questionForm.Inject) { MpqEditor.SaveGalaxyppScriptFiles( new FileInfo(ProjectProperties.CurrentProjectPropperties.MapPath), ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir); Form1.Form.UploadedChangesToMap = true; } else { CBSaveScriptToMap.Checked = false; } } else if (Directory.Exists(ProjectProperties.CurrentProjectPropperties.MapPath)) { UploadToMapForm questionForm = new UploadToMapForm(); questionForm.ShowDialog(this); if (questionForm.Extract) { if (ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.Exists) { //ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.Delete(true); Form1.DeleteDir(ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.FullName); } //ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir = new DirectoryInfo(ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.FullName); ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir.Create(); DirectoryInfo codeDir = new DirectoryInfo(Path.Combine(ProjectProperties.CurrentProjectPropperties.MapPath, "Galaxy++")); if (!codeDir.Exists) { MessageBox.Show(this, "Unable to extract script. No script found in map.", "Error"); return; } Form1.CopyDirectories( codeDir, ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir); ProjectProperties.CurrentProjectPropperties.SrcFolder.FixConflicts("*.galaxy++"); Form1.Form.ReloadSourceFiles(); Form1.Form.RebuildProjectView(); Form1.Form.UploadedChangesToMap = true; } else if (questionForm.Inject) { string path = Path.Combine(ProjectProperties.CurrentProjectPropperties.MapPath, "Galaxy++"); if (Directory.Exists(path)) { Directory.Delete(path, true); } Form1.CopyDirectories(ProjectProperties.CurrentProjectPropperties.SrcFolder.Dir, new DirectoryInfo(path)); Form1.Form.UploadedChangesToMap = true; } else { CBSaveScriptToMap.Checked = false; } } } }