Exemple #1
0
        private bool CompareItems()
        {
            if (System.IO.File.Exists(file1Text.Text) && System.IO.File.Exists(file2Text.Text))
            {
                ServerItemList items1 = new ServerItemList();
                ServerItemList items2 = new ServerItemList();

                bool result;
                result = Otb.Open(file1Text.Text, ref items1);
                if (!result)
                {
                    MessageBox.Show("Could not open {0}.", file1Text.Text);
                    return(false);
                }

                result = Otb.Open(file2Text.Text, ref items2);
                if (!result)
                {
                    MessageBox.Show("Could not open {0}.", file2Text.Text);
                    return(false);
                }

                IEnumerator <ServerItem> enumerator1 = items1.GetEnumerator();
                IEnumerator <ServerItem> enumerator2 = items2.GetEnumerator();

                if (items1.Count != items2.Count)
                {
                    resultTextBox.AppendText(string.Format("Item count:  [ {0} / {1} ]" + Environment.NewLine, items1.Count, items2.Count));
                }

                while (enumerator1.MoveNext())
                {
                    if (!enumerator2.MoveNext())
                    {
                        return(false);
                    }

                    ServerItem item1 = enumerator1.Current;
                    ServerItem item2 = enumerator2.Current;

                    if (item1.spriteId != item2.spriteId)
                    {
                        resultTextBox.AppendText(string.Format("Id: {0}  -  Sprite changed  -  [ {1} / {2} ]" + Environment.NewLine, item1.id, item1.spriteId, item2.spriteId));
                        continue;
                    }

                    if (item1.SpriteHash != null && item2.SpriteHash != null && !Utils.ByteArrayCompare(item1.SpriteHash, item2.SpriteHash))
                    {
                        resultTextBox.AppendText(string.Format("Id: {0}  -  Sprite updated." + Environment.NewLine, item1.id));
                    }

                    foreach (PropertyInfo property in item1.GetType().GetProperties())
                    {
                        if (property.Name != "spriteHash" && property.Name != "spriteId")
                        {
                            object value1 = property.GetValue(item1, null);
                            object value2 = item2.GetType().GetProperty(property.Name).GetValue(item2, null);

                            if (!value1.Equals(value2))
                            {
                                resultTextBox.AppendText(string.Format("Id: {0}  -  {1}  -  [ {2} / {3} ]{4}", item1.id, property.Name, value1, value2, Environment.NewLine));
                            }
                        }
                    }
                }

                if (resultTextBox.Text.Length == 0)
                {
                    MessageBox.Show("No differences found!");
                }

                return(true);
            }

            return(false);
        }
Exemple #2
0
        private bool CompareItems()
        {
            OtbReader reader1 = new OtbReader();

            if (!reader1.Read(this.file1Text.Text))
            {
                MessageBox.Show("Could not open {0}.", this.file1Text.Text);
                return(false);
            }

            OtbReader reader2 = new OtbReader();

            if (!reader2.Read(this.file2Text.Text))
            {
                MessageBox.Show("Could not open {0}.", this.file2Text.Text);
                return(false);
            }

            IEnumerator <ServerItem> enumerator1 = reader1.Items.GetEnumerator();
            IEnumerator <ServerItem> enumerator2 = reader2.Items.GetEnumerator();

            if (reader1.Count != reader2.Count)
            {
                resultTextBox.AppendText(string.Format("Item count:  [ {0} / {1} ]" + Environment.NewLine, reader1.Count, reader2.Count));
            }

            while (enumerator1.MoveNext())
            {
                if (!enumerator2.MoveNext())
                {
                    return(false);
                }

                ServerItem item1 = enumerator1.Current;
                ServerItem item2 = enumerator2.Current;

                if (item1.ClientId != item2.ClientId)
                {
                    resultTextBox.AppendText(string.Format("ID: {0}  -  Sprite changed  -  [ {1} / {2} ]" + Environment.NewLine, item1.ID, item1.ClientId, item2.ClientId));
                    continue;
                }

                if (item1.SpriteHash != null && item2.SpriteHash != null && !Utils.ByteArrayCompare(item1.SpriteHash, item2.SpriteHash))
                {
                    resultTextBox.AppendText(string.Format("ID: {0}  -  Sprite updated." + Environment.NewLine, item1.ID));
                }

                foreach (PropertyInfo property in item1.GetType().GetProperties())
                {
                    if (property.Name != "SpriteHash" && property.Name != "ClientId")
                    {
                        object value1 = property.GetValue(item1, null);
                        object value2 = item2.GetType().GetProperty(property.Name).GetValue(item2, null);

                        if (!value1.Equals(value2))
                        {
                            resultTextBox.AppendText(string.Format("ID: {0}  -  {1}  -  [ {2} / {3} ]{4}", item1.ID, property.Name, value1, value2, Environment.NewLine));
                        }
                    }
                }
            }

            if (resultTextBox.Text.Length == 0)
            {
                MessageBox.Show("No differences found!");
            }

            return(true);
        }