コード例 #1
0
ファイル: Form1.cs プロジェクト: Kn1fe/DataTranslator
        private void open_task_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                FileStream   input        = File.OpenRead(ofd.FileName);
                BinaryReader binaryStream = new BinaryReader(input);
                binaryStream.ReadInt32();
                t_src_v = binaryStream.ReadInt32();
                if (!versions.Contains(t_src_v))
                {
                    binaryStream.Close();
                    input.Close();
                    MessageBox.Show("Version Unsupported: " + t_src_v.ToString());
                }
                else
                {
                    TaskVersion = t_src_v;
                    int m_uTaskCount = binaryStream.ReadInt32();
                    ProgressStatus.Maximum = m_uTaskCount;
                    ProgressStatus.Value   = 0;
                    int[] numArray = new int[m_uTaskCount];
                    for (int index = 0; index < m_uTaskCount; index++)
                    {
                        numArray[index] = binaryStream.ReadInt32();
                    }
                    t_src = new ATaskTemplFixedData[m_uTaskCount];
                    Application.DoEvents();
                    for (int num4 = 0; num4 < m_uTaskCount; num4++)
                    {
                        Application.DoEvents();
                        t_src[num4] = new ATaskTemplFixedData(t_src_v, binaryStream, numArray[num4], null);
                        ProgressStatus.Value++;
                    }
                    binaryStream.Close();
                    input.Close();
                }
                import_task.Enabled  = true;
                t_src_status.Text    = "Загружена версия: " + t_src_v + "; Кол-во квестов: " + t_src.Length;
                ProgressStatus.Value = 0;
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: Kn1fe/DataTranslator
        public void ImportT(object filename)
        {
            FileStream   input        = File.OpenRead((string)filename);
            BinaryReader binaryStream = new BinaryReader(input);

            binaryStream.ReadInt32();
            t_dst_v = binaryStream.ReadInt32();
            if (!versions.Contains(t_dst_v))
            {
                binaryStream.Close();
                input.Close();
                MessageBox.Show("Version Unsupported: " + t_dst_v.ToString());
            }
            else
            {
                int m_uTaskCount = binaryStream.ReadInt32();
                ProgressStatus.Maximum = m_uTaskCount;
                ProgressStatus.Value   = 0;
                int[] numArray = new int[m_uTaskCount];
                for (int index = 0; index < m_uTaskCount; index++)
                {
                    numArray[index] = binaryStream.ReadInt32();
                }
                t_dst = new ATaskTemplFixedData[m_uTaskCount];
                Application.DoEvents();
                for (int num4 = 0; num4 < m_uTaskCount; num4++)
                {
                    Application.DoEvents();
                    t_dst[num4] = new ATaskTemplFixedData(t_dst_v, binaryStream, numArray[num4], null);
                    ProgressStatus.Value++;
                }
                binaryStream.Close();
                input.Close();

                ProgressStatus.Value   = 0;
                ProgressStatus.Maximum = t_dst.Length;
                for (int a = 0; a < t_dst.Length; ++a)
                {
                    for (int b = 0; b < t_src.Length; ++b)
                    {
                        if (t_dst[a].ID == t_src[b].ID)
                        {
                            t_dst[a].Name         = t_src[b].Name;
                            t_dst[a].m_pTaskChar  = t_src[b].m_pTaskChar;
                            t_dst[a].conversation = t_src[b].conversation;
                            t_dst[a].talk_procs   = t_src[b].talk_procs;
                        }
                        for (int c = 0; c < t_dst[a].sub_quests.Length; ++c)
                        {
                            if (t_dst[a].sub_quests.Length == t_src[b].sub_quests.Length)
                            {
                                if (t_dst[a].sub_quests[c].ID == t_src[b].sub_quests[c].ID)
                                {
                                    t_dst[a].sub_quests[c].Name         = t_src[b].sub_quests[c].Name;
                                    t_dst[a].sub_quests[c].m_pTaskChar  = t_src[b].sub_quests[c].m_pTaskChar;
                                    t_dst[a].sub_quests[c].conversation = t_src[b].sub_quests[c].conversation;
                                    t_dst[a].sub_quests[c].talk_procs   = t_src[b].sub_quests[c].talk_procs;
                                    //debugBox.Text += "ID: " + t_src[b].sub_quests[c].ID + " изменено название на: " + t_src[b].sub_quests[c].Name + "\n";
                                }
                                if (t_dst[a].sub_quests[c].sub_quests != null)
                                {
                                    for (int d = 0; d < t_dst[a].sub_quests[c].sub_quests.Length; ++d)
                                    {
                                        if (t_dst[a].sub_quests[c].sub_quests.Length == t_src[b].sub_quests[c].sub_quests.Length)
                                        {
                                            if (t_dst[a].sub_quests[c].sub_quests[d].ID == t_src[b].sub_quests[c].sub_quests[d].ID)
                                            {
                                                t_dst[a].sub_quests[c].sub_quests[d].Name         = t_src[b].sub_quests[c].sub_quests[d].Name;
                                                t_dst[a].sub_quests[c].sub_quests[d].m_pTaskChar  = t_src[b].sub_quests[c].sub_quests[d].m_pTaskChar;
                                                t_dst[a].sub_quests[c].sub_quests[d].conversation = t_src[b].sub_quests[c].sub_quests[d].conversation;
                                                t_dst[a].sub_quests[c].sub_quests[d].talk_procs   = t_src[b].sub_quests[c].sub_quests[d].talk_procs;
                                                //debugBox.Text += "ID: " + t_src[b].sub_quests[c].ID + " изменено название на: " + t_src[b].sub_quests[c].Name + "\n";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    ProgressStatus.Value++;
                }
                debugBox.Text       += "Русификация Tasks.data успешно завершена\n";
                ProgressStatus.Value = 0;

                int          num41  = -1819966623;
                FileStream   output = new FileStream((string)filename, FileMode.Create, FileAccess.Write);
                BinaryWriter bw     = new BinaryWriter(output);
                bw.Write(num41);
                bw.Write(t_dst_v);
                bw.Write(t_dst.Length);
                int[] numArray1 = new int[t_dst.Length];
                bw.Write(new byte[t_dst.Length * 4]);
                ProgressStatus.Maximum = t_dst.Length;
                ProgressStatus.Value   = 0;
                TaskVersion            = t_dst_v;
                for (int index = 0; index < t_dst.Length; index++)
                {
                    Application.DoEvents();
                    numArray[index] = (int)bw.BaseStream.Position;
                    t_dst[index].Save(t_dst_v, bw);
                    ProgressStatus.Value++;
                }
                bw.BaseStream.Position = 12L;
                for (int num6 = 0; num6 < numArray.Length; num6++)
                {
                    bw.Write(numArray[num6]);
                }
                bw.Close();
                output.Close();
            }
        }