private static ScenarioString[] FindAllStrings(int[] PointerList, byte[] Scenario, int TextStart) { List <ScenarioString> list = new List <ScenarioString>(); for (int i = 0; i < PointerList.Length; i++) { int num = PointerList[i]; int num2 = BitConverter.ToInt32(new byte[] { Scenario[num + 3], Scenario[num + 2], Scenario[num + 1], Scenario[num] }, 0); int num3 = num2 + TextStart + 8; int num4 = num3; int num5 = BitConverter.ToInt32(new byte[] { Scenario[num4 + 3], Scenario[num4 + 2], Scenario[num4 + 1], Scenario[num4] }, 0); num4 += 4; int num6 = BitConverter.ToInt32(new byte[] { Scenario[num4 + 3], Scenario[num4 + 2], Scenario[num4 + 1], Scenario[num4] }, 0); num4 += 4; int num7 = BitConverter.ToInt32(new byte[] { Scenario[num4 + 3], Scenario[num4 + 2], Scenario[num4 + 1], Scenario[num4] }, 0); num4 += 4; int num8 = BitConverter.ToInt32(new byte[] { Scenario[num4 + 3], Scenario[num4 + 2], Scenario[num4 + 1], Scenario[num4] }, 0); ScenarioString item = new ScenarioString(num3 - TextStart, Util.GetTextUTF8(Scenario, num5 + TextStart), Util.GetTextUTF8(Scenario, num7 + TextStart)); ScenarioString item2 = new ScenarioString(num3 - TextStart + 4, Util.GetTextUTF8(Scenario, num6 + TextStart), Util.GetTextUTF8(Scenario, num8 + TextStart)); list.Add(item); list.Add(item2); } return(list.ToArray()); }
private static ScenarioString[] FindAllStrings(byte[] File, int StartLocation, int PointerDifference) { List <ScenarioString> AllStrings = new List <ScenarioString>(); int Pointer = StartLocation; while (true) { try { int Pointer1 = BitConverter.ToInt32(new byte[] { File[Pointer + 3], File[Pointer + 2], File[Pointer + 1], File[Pointer] }, 0); int Pointer2 = BitConverter.ToInt32(new byte[] { File[Pointer + 7], File[Pointer + 6], File[Pointer + 5], File[Pointer + 4] }, 0); int Pointer3 = BitConverter.ToInt32(new byte[] { File[Pointer + 11], File[Pointer + 10], File[Pointer + 9], File[Pointer + 8] }, 0); int Pointer4 = BitConverter.ToInt32(new byte[] { File[Pointer + 15], File[Pointer + 14], File[Pointer + 13], File[Pointer + 12] }, 0); if (Pointer1 == 0 || Pointer2 == 0 || Pointer3 == 0 || Pointer4 == 0 || (Pointer1 + PointerDifference) > File.Length || (Pointer2 + PointerDifference) > File.Length || (Pointer3 + PointerDifference) > File.Length || (Pointer4 + PointerDifference) > File.Length ) { break; } ScenarioString Name = new ScenarioString(Pointer, GetText(File, Pointer1 + PointerDifference), GetText(File, Pointer3 + PointerDifference)); ScenarioString Text = new ScenarioString(Pointer + 4, GetText(File, Pointer2 + PointerDifference), GetText(File, Pointer4 + PointerDifference)); AllStrings.Add(Name); AllStrings.Add(Text); Pointer += 0x18; } catch (Exception) { break; } } return(AllStrings.ToArray()); }
private static ScenarioString[] RemoveDupesAndEmpty(ScenarioString[] AllStrings) { List <int> list = new List <int>(AllStrings.Length); List <ScenarioString> list2 = new List <ScenarioString>(AllStrings.Length); for (int i = 0; i < AllStrings.Length; i++) { ScenarioString scenarioString = AllStrings[i]; if (!string.IsNullOrEmpty(scenarioString.Jpn) || !string.IsNullOrEmpty(scenarioString.Eng)) { if (!list.Contains(scenarioString.Pointer)) { list.Add(scenarioString.Pointer); list2.Add(scenarioString); } } } return(list2.ToArray()); }
private static ScenarioString[] FindAllStrings(int[] PointerList, byte[] Scenario, int TextStart) { List <ScenarioString> AllStrings = new List <ScenarioString>(); foreach (int InternalPointer in PointerList) { int BytePointer = BitConverter.ToInt32(new byte[] { Scenario[InternalPointer + 3], Scenario[InternalPointer + 2], Scenario[InternalPointer + 1], Scenario[InternalPointer] }, 0); int RealPointer = BytePointer + TextStart + 8; int Pointer = RealPointer; int Pointer1 = BitConverter.ToInt32(new byte[] { Scenario[Pointer + 3], Scenario[Pointer + 2], Scenario[Pointer + 1], Scenario[Pointer] }, 0); Pointer += 4; int Pointer2 = BitConverter.ToInt32(new byte[] { Scenario[Pointer + 3], Scenario[Pointer + 2], Scenario[Pointer + 1], Scenario[Pointer] }, 0); Pointer += 4; int Pointer3 = BitConverter.ToInt32(new byte[] { Scenario[Pointer + 3], Scenario[Pointer + 2], Scenario[Pointer + 1], Scenario[Pointer] }, 0); Pointer += 4; int Pointer4 = BitConverter.ToInt32(new byte[] { Scenario[Pointer + 3], Scenario[Pointer + 2], Scenario[Pointer + 1], Scenario[Pointer] }, 0); ScenarioString Name = new ScenarioString (RealPointer - TextStart, Util.GetText(Pointer1 + TextStart, Scenario), Util.GetText(Pointer3 + TextStart, Scenario)); ScenarioString Text = new ScenarioString ((RealPointer - TextStart) + 4, Util.GetText(Pointer2 + TextStart, Scenario), Util.GetText(Pointer4 + TextStart, Scenario)); AllStrings.Add(Name); AllStrings.Add(Text); } return(AllStrings.ToArray()); }
private static ScenarioString[] FindNewStrings(ScenarioString[] AllStrings, string ConnectionString) { List <ScenarioString> list = new List <ScenarioString>(); SQLiteConnection sQLiteConnection = new SQLiteConnection(ConnectionString); sQLiteConnection.Open(); SQLiteTransaction sQLiteTransaction = sQLiteConnection.BeginTransaction(); for (int i = 0; i < AllStrings.Length; i++) { ScenarioString scenarioString = AllStrings[i]; SQLiteCommand sQLiteCommand = new SQLiteCommand(sQLiteConnection); sQLiteCommand.CommandText = "SELECT english, PointerRef FROM Text WHERE status != -1 AND PointerRef = ?"; SQLiteParameter sQLiteParameter = new SQLiteParameter(); sQLiteCommand.Parameters.Add(sQLiteParameter); sQLiteParameter.Value = scenarioString.Pointer; SQLiteDataReader sQLiteDataReader = sQLiteCommand.ExecuteReader(); if (!sQLiteDataReader.Read()) { list.Add(scenarioString); } } return(list.ToArray()); }
public static bool InsertSQL(ScenarioString[] NewStrings, string ConnectionString, string ConnectionStringGracesJapanese) { SQLiteConnection sQLiteConnection = new SQLiteConnection(ConnectionString); SQLiteConnection sQLiteConnection2 = new SQLiteConnection(ConnectionStringGracesJapanese); sQLiteConnection.Open(); sQLiteConnection2.Open(); using (SQLiteTransaction sQLiteTransaction = sQLiteConnection.BeginTransaction()) { using (SQLiteTransaction sQLiteTransaction2 = sQLiteConnection2.BeginTransaction()) { using (SQLiteCommand sQLiteCommand = new SQLiteCommand(sQLiteConnection)) { using (SQLiteCommand sQLiteCommand2 = new SQLiteCommand(sQLiteConnection2)) { using (SQLiteCommand sQLiteCommand3 = new SQLiteCommand(sQLiteConnection2)) { using (SQLiteCommand sQLiteCommand4 = new SQLiteCommand(sQLiteConnection2)) { SQLiteParameter sQLiteParameter = new SQLiteParameter(); SQLiteParameter sQLiteParameter2 = new SQLiteParameter(); SQLiteParameter sQLiteParameter3 = new SQLiteParameter(); SQLiteParameter sQLiteParameter4 = new SQLiteParameter(); SQLiteParameter sQLiteParameter5 = new SQLiteParameter(); SQLiteParameter sQLiteParameter6 = new SQLiteParameter(); SQLiteParameter sQLiteParameter7 = new SQLiteParameter(); SQLiteParameter sQLiteParameter8 = new SQLiteParameter(); sQLiteCommand2.CommandText = "INSERT INTO Japanese (ID, string, debug) VALUES (?, ?, 0)"; sQLiteCommand2.Parameters.Add(sQLiteParameter); sQLiteCommand2.Parameters.Add(sQLiteParameter2); sQLiteCommand.CommandText = "INSERT INTO Text (ID, StringID, english, comment, updated, status, PointerRef) VALUES (?, ?, ?, null, 0, ?, ?)"; sQLiteCommand.Parameters.Add(sQLiteParameter3); sQLiteCommand.Parameters.Add(sQLiteParameter4); sQLiteCommand.Parameters.Add(sQLiteParameter5); sQLiteCommand.Parameters.Add(sQLiteParameter8); sQLiteCommand.Parameters.Add(sQLiteParameter6); sQLiteCommand3.CommandText = "SELECT MAX(ID)+1 FROM Japanese"; sQLiteCommand4.CommandText = "SELECT ID FROM Japanese WHERE string = ?"; sQLiteCommand4.Parameters.Add(sQLiteParameter7); object obj = sQLiteCommand3.ExecuteScalar(); int num = int.Parse(obj.ToString()); int num2 = 1; for (int i = 0; i < NewStrings.Length; i++) { ScenarioString scenarioString = NewStrings[i]; sQLiteParameter7.Value = scenarioString.Jpn; object obj2 = sQLiteCommand4.ExecuteScalar(); int num3; if (obj2 != null) { num3 = (int)obj2; } else { num3 = num++; sQLiteParameter.Value = num3; sQLiteParameter2.Value = scenarioString.Jpn; sQLiteCommand2.ExecuteNonQuery(); } sQLiteParameter3.Value = num2; sQLiteParameter4.Value = num3; sQLiteParameter5.Value = scenarioString.Eng; if (scenarioString.Eng == scenarioString.Jpn) { sQLiteParameter8.Value = 1; } else { sQLiteParameter8.Value = 0; } sQLiteParameter6.Value = scenarioString.Pointer; sQLiteCommand.ExecuteNonQuery(); num2++; } sQLiteTransaction.Commit(); sQLiteTransaction2.Commit(); } } } } } } sQLiteConnection2.Close(); sQLiteConnection.Close(); return(true); }