private void OpenISO(Control control, Command loadISO, Command closeISO) { OpenFileDialog openFileDialog = new OpenFileDialog(); FileFilter isoFilter = new FileFilter("ISO", ".iso", ".ISO"); openFileDialog.MultiSelect = false; openFileDialog.Filters.Add(isoFilter); openFileDialog.ShowDialog(control); string filename = openFileDialog.FileName; if (!string.IsNullOrEmpty(filename)) { isoFileStream = File.Open(filename, FileMode.Open); cdReader = new CDReader(isoFileStream, true); loadISO.Enabled = false; closeISO.Enabled = true; var tfsFiles = ScanDiscDirectory(cdReader.Root); foreach (string tfsFilename in tfsFiles) { TFSFile newTFSFile = new TFSFile(tfsFilename, filename); var directoryPath = Path.GetDirectoryName(tfsFilename); var newMAPFile = Path.Combine( directoryPath, $"{Path.GetFileNameWithoutExtension(tfsFilename)}.MAP;1"); if (File.Exists(newMAPFile)) { newTFSFile.MAPFilename = newMAPFile; } files.Add(newTFSFile); } } }
private void ucAddFileAttr1_AddFileAttr(object sender, ucAddFileAttr.AddFileAttrEventArgs e) { e.FileAttr.File = mFile; mFile.Attrs.Add(e.FileAttr); e.FileAttr.FixInBase(); TFSFile File = mFile; ucAddFileAttr1.DB = File.DB; while (ltAttributes.Controls.Count > 1) { ltAttributes.Controls.RemoveAt(0); } if (File.Attrs != null) { foreach (TFSFileAttribute FileAttr in File.Attrs) { var Attribute = new ucFileAttribute(FileAttr); ltAttributes.Controls.Add(Attribute); ltAttributes.Controls.SetChildIndex(Attribute, ltAttributes.Controls.Count - 2); } } }
private void OpenTFS(Control control) { OpenFileDialog openFileDialog = new OpenFileDialog(); FileFilter tfsFilter = new FileFilter("TFS", ".tfs", ".TFS"); openFileDialog.MultiSelect = true; openFileDialog.Filters.Add(tfsFilter); openFileDialog.ShowDialog(control); foreach (var filename in openFileDialog.Filenames) { if (!string.IsNullOrEmpty(filename) && !files.Any(i => i.Filename == filename)) { var newFile = new TFSFile(filename); var directoryPath = Path.GetDirectoryName(filename); var newMAPFile = Path.Combine( directoryPath, $"{Path.GetFileNameWithoutExtension(filename)}.MAP"); if (File.Exists(newMAPFile)) { newFile.MAPFilename = newMAPFile; } files.Add(newFile); } } }
void ucF_Enter(object sender, EventArgs e) { mTagsDB.LoadAllAttrs(); TFSFile File = ((ucFile)sender).File; ucAddFileAttr1.DB = File.DB; while (ltAttributes.Controls.Count > 1) { ltAttributes.Controls.RemoveAt(0); } if (File.Attrs != null) { foreach (TFSFileAttribute FileAttr in File.Attrs) { var Attribute = new ucFileAttribute(FileAttr); ltAttributes.Controls.Add(Attribute); ltAttributes.Controls.SetChildIndex(Attribute, ltAttributes.Controls.Count - 2); } } mFile = File; }
private void ucFile_Resize(object sender, EventArgs e) { ltTags.Width = Width - 4; ltTags.Height = Height - ltTags.Top - 2; File = mFile; //aftNewTag.Left = ltTags.Width - aftNewTag.Width; }
private void ucAddFileTag1_AddFileTag(object sender, ucAddFileTag.AddFileTagEventArgs e) { e.FileTag.File = mFile; e.FileTag.FixInBase(); if (mFile.Tags == null) { mFile.Tags = new List <TFSFileTag>(); } mFile.Tags.Add(e.FileTag); File = mFile; }
private void OpenSelectedTFS( Command saveImage, DropDown paletteDropdown, Label paletteDropdownLabel, Label toolbarImageInfoLabel, ImageView imageView, ImageView collisionMapImageView, TextArea mapDetailsText, TabPage timDataPage) { if (fileList.SelectedKey == null) { imageView.Image = null; return; } saveImage.Enabled = false; paletteDropdown.Visible = false; paletteDropdown.Items.Clear(); paletteDropdownLabel.Visible = false; saveImage.Enabled = false; toolbarImageInfoLabel.Text = ""; mapDetailsText.Text = ""; timDataPage.Content = null; TFSFile selectedItem = files[fileList.SelectedIndex]; if (selectedItem.DiscFile == null) { roomData = selectedItem.MAPFilename == null ? roomReader.ReadRoomDataTFSOnly(selectedItem.Filename) : roomReader.ReadRoomData(selectedItem.Filename, selectedItem.MAPFilename); } else { using (Stream fileStream = cdReader.OpenFile(selectedItem.Filename, FileMode.Open)) { if (selectedItem.MAPFilename == null) { roomData = roomReader.ReadRoomDataTFSOnly(fileStream); } else { using (Stream mapFileStream = cdReader.OpenFile(selectedItem.MAPFilename, FileMode.Open)) { roomData = roomReader.ReadRoomData(fileStream, mapFileStream); } } } } if (roomData.MAPData != null) { mapDetailsText.Text = getDetailsText(roomData.MAPData); var timDataTabControl = new TabControl(); for (var i = 0; i < roomData.MAPData.TIMImages.Count; ++i) { var timImageView = new ImageView(); var timBitmap = roomData.MAPData.TIMImages[i].GetBitmapAsFlatArray(0); timImageView.Image = getBitmap(roomData.MAPData.TIMImages[i].ImageSize, timBitmap); var tabPage = new TabPage { Text = $"Image {i + 1}" }; tabPage.Content = timImageView; timDataTabControl.Pages.Add(tabPage); } timDataPage.Content = timDataTabControl; List <Color> bitmapData = new List <Color>(); var collisionMapWidth = roomData.MAPData.Collision.CollisionMap.GetLength(0); var collisionMapHeight = roomData.MAPData.Collision.CollisionMap.GetLength(1); for (int y = 0; y < collisionMapHeight; ++y) { for (int x = 0; x < collisionMapWidth; ++x) { CollisionType collisionType = roomData.MAPData.Collision.CollisionMap[x, y]; switch (collisionType) { case CollisionType.SOLID: bitmapData.Add(Color.FromArgb(29, 31, 33)); break; case CollisionType.EMPTY: bitmapData.Add(Color.FromArgb(197, 200, 198)); break; case CollisionType.EXIT_1: case CollisionType.EXIT_2: case CollisionType.EXIT_3: case CollisionType.EXIT_4: case CollisionType.EXIT_5: case CollisionType.EXIT_6: case CollisionType.EXIT_7: case CollisionType.EXIT_8: case CollisionType.EXIT_9: case CollisionType.EXIT_10: bitmapData.Add(Color.FromArgb(181, 189, 104)); break; case CollisionType.TOILET: bitmapData.Add(Color.FromArgb(129, 162, 190)); break; default: bitmapData.Add(Color.FromArgb(133, 103, 143)); break; } } } collisionMapImageView.Image = new Bitmap( collisionMapWidth, collisionMapHeight, PixelFormat.Format32bppRgba, bitmapData); } toolbarImageInfoLabel.Text = $"{roomData.TFSData.ImageSize.X} x {roomData.TFSData.ImageSize.Y} pixels"; var tfsBitmap = roomData.TFSData.GetBitmapAsFlatArray(0); imageView.Image = getBitmap(roomData.TFSData.ImageSize, tfsBitmap); if (roomData.TFSData.PaletteCount > 1) { List <string> options = Enumerable .Range(0, roomData.TFSData.PaletteCount) .Select(i => i.ToString()) .ToList(); foreach (var option in options) { paletteDropdown.Items.Add(option); } paletteDropdown.SelectedKey = "0"; paletteDropdown.Visible = true; paletteDropdownLabel.Visible = true; } saveImage.Enabled = true; }
public ucFile(TFSFile _File) { InitializeComponent(); File = _File; }
void Tag_DeleteClick(object sender, ucFileTagBranch.DeleteClickEventArgs e) { e.FileTag.Delete(); File = mFile; }