private void projOpen_Click(object sender, EventArgs e) { ProjectWizard dlg = new ProjectWizard(); dlg.ShowDialog(); if (dlg.DialogResult == DialogResult.OK) { Manager.OpenProject(dlg.Project.ProjPath); IDEMode = IDE_MODE.Project; } }
public void Reset() { this.Text = $"{Program.AssemblyTitle} {Program.Version} - "; FileTree.Nodes.Clear(); ScriptFiles.Clear(); Viewport.TabPages.Clear(); ParamFile = null; Manager = new WorkspaceManager(); MotionTable = null; IDEMode = IDE_MODE.NONE; }
private void fitOpen_Click(object sender, EventArgs e) { if (fsDlg.ShowDialog() == DialogResult.OK) { this.Reset(); foreach (var p in Directory.EnumerateFiles(fsDlg.SelectedPath)) { if (p.EndsWith(".bin")) { var acmd = new ACMDFile(p); ScriptFiles.Add(p, acmd); Runtime.WorkingEndian = acmd.Endian; } else if (p.EndsWith(".mtable")) { MotionTable = new MTable(p, Runtime.WorkingEndian); } } var acmdnode = new TreeNode("ACMD") { Name = "nACMD" }; for (int i = 0; i < MotionTable.Count; i++) { var node = new ScriptNode(MotionTable[i], $"{i:X} - [{MotionTable[i]:X8}]"); foreach (var keypair in ScriptFiles) { if (keypair.Value.Scripts.Keys.Contains(MotionTable[i])) { node.Scripts.Add(Path.GetFileNameWithoutExtension(keypair.Key), keypair.Value.Scripts[MotionTable[i]]); } } acmdnode.Nodes.Add(node); } FileTree.Nodes.Add(acmdnode); IDEMode = IDE_MODE.Fighter; this.Text += fsDlg.SelectedPath; } }
private unsafe void fOpen_Click(object sender, EventArgs e) { if (ofDlg.ShowDialog() == DialogResult.OK) { this.Reset(); if (ofDlg.FileName.EndsWith(".bin")) { DataSource source = new DataSource(FileMap.FromFile(ofDlg.FileName)); if (*(buint *)source.Address == 0x41434D44) // ACMD { if (*(byte *)(source.Address + 0x04) == 0x02) { Runtime.WorkingEndian = Endianness.Little; } else if ((*(byte *)(source.Address + 0x04) == 0x00)) { Runtime.WorkingEndian = Endianness.Big; } var f = new ACMDFile(source); ScriptFiles.Add(ofDlg.FileName, f); var node = new TreeNode("ACMD") { Name = "nACMD" }; foreach (var keypair in f.Scripts) { node.Nodes.Add(new ScriptNode(keypair.Key, $"{keypair.Key:X8}", keypair.Value)); } FileTree.Nodes.Add(node); } else if (*(buint *)source.Address == 0xFFFF0000) { source.Close(); ParamFile = new ParamFile(ofDlg.FileName); var node = new TreeNode("PARAMS") { Name = "nPARAMS" }; FileTree.Nodes.Add(node); PopulateParams(); } } else if (ofDlg.FileName.EndsWith(".mscsb")) // MSC { var f = new MSCFile(ofDlg.FileName); ScriptFiles.Add(ofDlg.FileName, f); var node = new TreeNode("MSC") { Name = "nMSC" }; for (int i = 0; i < f.Scripts.Count; i++) { var sn = new ScriptNode((uint)i, $"{i:D8}", f.Scripts.Values[i]); if (((MSCScript)f.Scripts.Values[i]).IsEntrypoint) { sn.Text = "Entrypoint"; } else if (i == 0) { sn.Text = "Init"; } node.Nodes.Add(sn); } FileTree.Nodes.Add(node); } IDEMode = IDE_MODE.File; this.Text += ofDlg.FileName; } }