Example #1
0
 private void LoadWorldFile(UOXData.Script.WorldFile90 toAdd, bool doImport)
 {
     foreach (UOXData.Script.WorldSection mScript in toAdd.Sections)
     {
         if (mScript.SectionName == "CHARACTER")
         {
             uint charSerial = UOXData.Conversion.ToUInt32(mScript.FindTag("Serial"));
             if (charSerial > worldObjects.NextCharSer)
             {
                 worldObjects.NextCharSer = charSerial + 1;
             }
             CharObject mChar = new CharObject(charSerial);
             mChar.SerString = UOXData.Conversion.ToHexString(charSerial);
             mChar.Name      = mScript.FindTag("Name");
             mChar.ID        = UOXData.Conversion.ToUInt16(mScript.FindTag("ID"));
             mChar.Section   = mScript;
             if (doImport)
             {
                 worldObjects.ImportCharList.Add(mChar);
             }
             else
             {
                 worldObjects.CharList.Add(mChar);
             }
             ++totalChars;
         }
         else
         {
             uint contSerial = UOXData.Conversion.ToUInt32(mScript.FindTag("Cont"));
             uint itemSerial = UOXData.Conversion.ToUInt32(mScript.FindTag("Serial"));
             if (itemSerial >= worldObjects.NextItemSer)
             {
                 worldObjects.NextItemSer = itemSerial + 1;
             }
             if (contSerial != 0xFFFFFFFF)
             {
                 ItemObject mItem = new ItemObject(itemSerial);
                 mItem.Container = contSerial;
                 mItem.SerString = UOXData.Conversion.ToHexString(itemSerial);
                 mItem.Name      = mScript.FindTag("Name");
                 mItem.Section   = mScript;
                 mItem.ID        = UOXData.Conversion.ToUInt16(mScript.FindTag("ID"));
                 if (doImport)
                 {
                     worldObjects.ImportItemList.Add(mItem);
                 }
                 else
                 {
                     worldObjects.ItemList.Add(mItem);
                 }
             }
             ++totalItems;
         }
     }
 }
Example #2
0
        private void OpenBrowseWindow()
        {
            folderBrowserDialog.Description = "Please Select the UOX3 Save File Directory to Load.";
            if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
            {
                string dirPath = folderBrowserDialog.SelectedPath;
                worldFiles.Clear();
                worldObjects.Clear();
                comboCharList.Items.Clear();
                dataGridItems.Rows.Clear();
                totalItems      = 0;
                totalChars      = 0;
                txtDirPath.Text = dirPath;
                UpdateTotalValues();

                comboCharList.Update();
                dataGridItems.Update();
                txtDirPath.Update();

                string[] fileList = Directory.GetFiles(dirPath, "*.*.wsc");
                if (fileList.Length > 0)
                {
                    progressBar.Value = 0;
                    foreach (string mFile in fileList)
                    {
                        UOXData.Script.WorldFile90 toAdd = new UOXData.Script.WorldFile90(mFile);
                        LoadWorldFile(toAdd, false);
                        worldFiles.Add(toAdd);
                    }
                    UpdateTotalValues();

                    progressBar.Maximum = worldObjects.CharList.Count + worldObjects.ItemList.Count;
                    foreach (CharObject mChar in worldObjects.CharList)
                    {
                        comboCharList.Items.Add(mChar.Name + " (" + mChar.SerString + ")");
                        progressBar.PerformStep();
                    }
                    foreach (ItemObject mItem in worldObjects.ItemList)
                    {
                        WorldObject mObj = worldObjects.FindObjectBySerial(mItem.Container, false);
                        if (mObj != null)
                        {
                            mObj.ContainsList.Add(mItem);
                        }
                        progressBar.PerformStep();
                    }

                    if (comboCharList.Items.Count > 0)
                    {
                        comboCharList.SelectedIndex = 0;
                    }
                    else
                    {
                        dataGridItems.Rows.Add("World Loaded: No Characters to Display");
                    }
                }
                else
                {
                    MessageBox.Show("No worldfile found, please select a valid directory", "File Not Found");
                }
            }
        }
Example #3
0
        private void ImportCharacters()
        {
            bool selectFirst = false;

            if (comboCharList.Items.Count == 0)
            {
                selectFirst = true;
            }

            fileBrowserDialog.Filter = "Character Export Files (*.cef)|*.cef|All Files (*.*)|*.*";
            if (fileBrowserDialog.ShowDialog() == DialogResult.OK)
            {
                progressBar.Maximum = fileBrowserDialog.FileNames.Length;
                progressBar.Value   = 0;

                foreach (string filePath in fileBrowserDialog.FileNames)
                {
                    if (File.Exists(filePath))
                    {
                        UOXData.Script.WorldFile90 importWorld = new UOXData.Script.WorldFile90(filePath);
                        if (importWorld.Sections.Count > 0)
                        {
                            LoadWorldFile(importWorld, true);
                            worldFiles.Add(importWorld);
                        }
                    }
                    progressBar.PerformStep();
                }

                if (worldObjects.ImportCharList.Count > 0)
                {
                    worldHasChanged = true;
                    UpdateTotalValues();

                    progressBar.Maximum = worldObjects.ImportCharList.Count + worldObjects.ImportItemList.Count;
                    progressBar.Value   = 0;

                    foreach (ItemObject mItem in worldObjects.ImportItemList)
                    {
                        WorldObject mObj = worldObjects.FindObjectBySerial(mItem.Container, true);
                        if (mObj != null)
                        {
                            mObj.ContainsList.Add(mItem);
                        }
                        progressBar.PerformStep();
                    }
                    foreach (CharObject mChar in worldObjects.ImportCharList)
                    {
                        bool contChanged = false;
                        if (mChar.Serial < worldObjects.NextCharSer)
                        {
                            contChanged     = true;
                            mChar.Serial    = worldObjects.NextCharSer;
                            mChar.SerString = UOXData.Conversion.ToHexString(mChar.Serial);
                            UOXData.Script.TagDataPair serTag = mChar.Section.GetDataPair("Serial");
                            serTag.Data = new UOXData.Script.DataValue(mChar.SerString);
                            ++worldObjects.NextCharSer;
                        }
                        CheckItemsInCont(mChar, contChanged);
                        worldObjects.CharList.Add(mChar);
                        comboCharList.Items.Add(mChar.Name + " (" + mChar.SerString + ")");
                        progressBar.PerformStep();
                    }
                }
                worldObjects.ImportCharList.Clear();
                worldObjects.ImportItemList.Clear();

                if (selectFirst)
                {
                    if (comboCharList.Items.Count > 0)
                    {
                        comboCharList.SelectedIndex = 0;
                    }
                    else
                    {
                        dataGridItems.Rows.Clear();
                        dataGridItems.Rows.Add("Character File Imported: No Characters to Display");
                    }
                }
            }
        }