private static void RUNTest(string inFile, bool dumpHex = false) { Directory.CreateDirectory("Dump"); diagDataList = ASBTools.getDialogueText(inFile); Console.WriteLine("Parsing " + inFile); if (!dumpHex) { List <ASBTools.ScriptData> ops = AKB148GASBLib.ASBTools.getScript(inFile); using (BinaryWriter b = new BinaryWriter(File.Open("Dump/" + Path.GetFileName(inFile) + ".txt", FileMode.Create))) { foreach (ASBTools.ScriptData opc in ops) { b.Write(Encoding.UTF8.GetBytes(opcodeMeaning(opc, inFile))); b.Write(Encoding.UTF8.GetBytes(Environment.NewLine)); } } } else { byte[] data = ASBTools.getScriptRaw(inFile); using (BinaryWriter b = new BinaryWriter(File.Open(Path.GetFileName(inFile) + ".HEX.txt", FileMode.Create))) { foreach (byte by in data) { b.Write(Encoding.UTF8.GetBytes(by.ToString("X2") + " ")); } b.Write(Encoding.UTF8.GetBytes(Environment.NewLine)); } } }
private void button1_Click(object sender, EventArgs e) { if ( MessageBox.Show("Are you sure you want to overwrite:\n'" + currentFile + "'?", "WARNING!!", MessageBoxButtons.OKCancel) == DialogResult.OK) { var dlist = new List <dialog>(); foreach (DataGridViewRow dr in dataGridView1.Rows) { var item = new dialog(); item.offset = (long)dr.Cells["offset"].Value; item.size = (int)dr.Cells["size"].Value; item.text = dr.Cells["text"].Value.ToString(); item.text = item.text.Replace("<LINEEND>", Encoding.UTF8.GetString(new byte[] { 0x0A })); item.text = item.text.Replace("<END>", Encoding.UTF8.GetString(new byte[] { 0x00 })); dlist.Add(item); } if (!ASBTools.injectDialogList(currentFile, dlist)) { MessageBox.Show("An error occurred while inserting!", "ERROR", MessageBoxButtons.OK); } } MessageBox.Show("Done.", "Done.", MessageBoxButtons.OK); }
private void loadASB() { Script = new List <scriptFileData>(); string filenm = dataGridView1.Rows[selectedRowIndex].Cells[0].Value.ToString(); List <ASBTools.ScriptData> sd = ASBTools.getScript(filenm); for (int i = 0; i < sd.Count; i++) { if (sd[i].OPCode.ToString("X4") == "4B29" && sd[i].paramNum == 3) { scriptFileData sfd = new scriptFileData(); sfd.audioFilename = DefaultDir + ASBTools.getDialogFromOffset(filenm, sd[i].paramList[2], true) + ".at3"; sfd.Text = ASBTools.getDialogFromOffset(filenm, sd[i + 1].paramList[0], true); sfd.Text = sfd.Text.Replace("<LINEEND>", Environment.NewLine); Script.Add(sfd); } } if (Script.Count == 0) { label1.Text = "No Dialogue to display."; } else { label1.Text = Script[indexer].Text; } button2.Enabled = true; }
private static void Insert(string cmdFile, string inFile) { List <dialog> dList = new List <dialog>(); using (StreamReader file = new StreamReader(cmdFile)) { while (!file.EndOfStream) { dialog d1 = new dialog(); string s = file.ReadLine(); string[] split = s.Split(';'); d1.offset = Convert.ToInt64(split[0]); d1.size = Convert.ToInt32(split[1]); d1.text = split[2]; d1.text = d1.text.Replace("<LINEEND>", Encoding.UTF8.GetString(new byte[] { 0x0A })); d1.text = d1.text.Replace("<END>", Encoding.UTF8.GetString(new byte[] { 0x00 })); dList.Add(d1); } } Console.WriteLine("Writing to {0}", inFile); if (!ASBTools.injectDialogList(inFile, dList)) { Console.WriteLine("ERROR!!!!!! - Inject failed...\n"); } }
private static void Dump(string inFile, string outFile, bool eventOnly = false, bool raw = false) { List <dialog> dlist; if (eventOnly) { dlist = ASBTools.getDialogList(inFile, true, true); } else { if (raw) { dlist = ASBTools.getDialogListRAW(inFile, true); } else { dlist = ASBTools.getDialogList(inFile, true); } } using (BinaryWriter writer = new BinaryWriter(File.Open(outFile, FileMode.Create))) { foreach (dialog dl in dlist) { writer.Write(Encoding.UTF8.GetBytes(dl.offset.ToString())); writer.Write(Encoding.UTF8.GetBytes(";")); writer.Write(Encoding.UTF8.GetBytes(dl.size.ToString())); writer.Write(Encoding.UTF8.GetBytes(";")); writer.Write(Encoding.UTF8.GetBytes(dl.text)); writer.Write(Encoding.UTF8.GetBytes(Environment.NewLine)); } } }
private static void FolderDump(string asbFolder, string outFolder, bool eventOnly = false, bool raw = false) { string[] asbFiles = Directory.GetFiles(asbFolder); int total = asbFiles.Count(); int current = 1; Parallel.ForEach(asbFiles, asbfileName => { try { List <dialog> dlist; if (eventOnly) { dlist = ASBTools.getDialogList(asbfileName, true, true); } else { if (raw) { dlist = ASBTools.getDialogListRAW(asbfileName, true); } else { dlist = ASBTools.getDialogList(asbfileName, true); } } string outfile = outFolder + "\\" + Path.GetFileNameWithoutExtension(asbfileName) + ".txt"; using (BinaryWriter writer = new BinaryWriter(File.Open(outfile, FileMode.Create))) { foreach (dialog dl in dlist) { writer.Write(Encoding.UTF8.GetBytes(dl.offset.ToString())); writer.Write(Encoding.UTF8.GetBytes(";")); writer.Write(Encoding.UTF8.GetBytes(dl.size.ToString())); writer.Write(Encoding.UTF8.GetBytes(";")); writer.Write(Encoding.UTF8.GetBytes(dl.text)); writer.Write(Encoding.UTF8.GetBytes(Environment.NewLine)); } } } finally { Interlocked.Increment(ref current); lock (fLock) { Console.SetCursorPosition(0, 0); Console.CursorTop = 0; Console.ForegroundColor = ConsoleColor.White; Console.Write("FILE: {0}\r", asbfileName); DrawProgressBar(current, total, 36, '■'); } } }); }
private static void FolderInsert(string cmdFolder, string asbFolder) { string[] cmdFiles = Directory.GetFiles(cmdFolder); int total = cmdFiles.Count(); int current = 0; Parallel.ForEach(cmdFiles, cmdfileName => { try { List <dialog> dList = new List <dialog>(); using (StreamReader file = new StreamReader(cmdfileName)) { while (!file.EndOfStream) { dialog d1 = new dialog(); string s = file.ReadLine(); string[] split = s.Split(';'); d1.offset = Convert.ToInt64(split[0]); d1.size = Convert.ToInt32(split[1]); d1.text = split[2]; d1.text = d1.text.Replace("<LINEEND>", Encoding.UTF8.GetString(new byte[] { 0x0A })); d1.text = d1.text.Replace("<END>", Encoding.UTF8.GetString(new byte[] { 0x00 })); dList.Add(d1); } } string outfile = asbFolder + "\\" + Path.GetFileNameWithoutExtension(cmdfileName) + ".asb"; Console.WriteLine("Writing to {0}", outfile); if (!ASBTools.injectDialogList(outfile, dList)) { Console.WriteLine("ERROR!!!!!! - Inject failed...\n"); } } finally { Interlocked.Increment(ref current); Console.SetCursorPosition(0, 0); Console.CursorTop = 0; Console.ForegroundColor = ConsoleColor.White; Console.Write("FILE: {0}\r", cmdfileName); DrawProgressBar(current, total, 36, '■'); } }); }
private void loadDialog() { // Create an instance of the open file dialog box. var openFileDialog1 = new OpenFileDialog(); // Set filter options and filter index. openFileDialog1.Filter = "AKB 1/48 Guam ASB File (.asb)|*.asb"; openFileDialog1.FilterIndex = 1; // Process input if the user clicked OK. if (openFileDialog1.ShowDialog() == DialogResult.OK) { currentFile = openFileDialog1.FileName; var dlist = ASBTools.getDialogList(openFileDialog1.FileName, true, checkBox1.Checked); dataGridView1.ReadOnly = true; dataGridView1.DataSource = dlist; dataGridView1.AutoResizeColumns(); } }