Пример #1
0
        //---------------------------------------------------------------------
        // EDITING
        //---------------------------------------------------------------------

        public void UpdateName(HAMType type, int element, string newName)
        {
            switch (type)
            {
            case HAMType.VClip:
                VClips[element].Name = newName;
                return;

            case HAMType.EClip:
                EClips[element].Name = newName;
                return;

            case HAMType.Robot:
                Robots[element].Name = newName;
                return;

            case HAMType.Weapon:
                Weapons[element].Name = newName;
                return;

            case HAMType.Sound:
                SoundNames[element] = newName;
                return;

            case HAMType.Model:
                Models[element].Name = newName;
                return;

            case HAMType.Powerup:
                Powerups[element].Name = newName;
                return;
            }
        }
Пример #2
0
        private void DeleteElem_Click(object sender, EventArgs e)
        {
            HAMType     type        = typeTable[PageNumber];
            Transaction transaction = null;
            int         maxNum      = 0;

            //nothing to delete
            if (GetNumElements(type) == 0)
            {
                return;
            }

            switch (type)
            {
            case HAMType.TMAPInfo:
                transaction = new DeleteTMAPInfoTransaction(datafile, ElementNumber, PageNumber);
                maxNum      = Math.Max(0, datafile.TMapInfo.Count - 1);
                break;

            case HAMType.VClip:
                transaction = new DeleteVClipTransaction(datafile, ElementNumber, PageNumber);
                maxNum      = Math.Max(0, datafile.VClips.Count - 1);
                break;
            }

            if (transaction != null)
            {
                transactionManager.ApplyTransaction(transaction);
                ElementListInit(); //Ensure all local lists are updated, and update the spinner.
                SetElementNumber(Math.Min(ElementNumber, maxNum));
            }
        }
Пример #3
0
        private void InsertElem_Click(object sender, EventArgs e)
        {
            HAMType type  = typeTable[EditorTabs.SelectedIndex];
            int     newID = datafile.AddElement(type);

            if (newID != -1)
            {
                //Update the maximum of the numeric up/down control and ensure that any comboboxes that need to be regenerated for the current element are
                ElementListInit();
                ElementSpinner.Value = newID;
            }
        }
Пример #4
0
        private void ListElem_Click(object sender, EventArgs e)
        {
            HAMType     type        = typeTable[PageNumber];
            ElementList elementList = new ElementList(datafile, type);

            if (elementList.ShowDialog() == DialogResult.OK)
            {
                if (elementList.ElementNumber != -1)
                {
                    ElementSpinner.Value = elementList.ElementNumber;
                }
            }
            elementList.Dispose();
        }
Пример #5
0
        public ElementList(EditorHAMFile datafile, HAMType type)
        {
            InitializeComponent();
            switch (type)
            {
            case HAMType.VClip:
                foreach (String name in datafile.VClipNames)
                {
                    ElementListBox.Items.Add(name);
                }
                break;

            case HAMType.EClip:
                foreach (String name in datafile.EClipNames)
                {
                    ElementListBox.Items.Add(name);
                }
                break;

            case HAMType.Robot:
                foreach (String name in datafile.RobotNames)
                {
                    ElementListBox.Items.Add(name);
                }
                break;

            case HAMType.Weapon:
                foreach (String name in datafile.WeaponNames)
                {
                    ElementListBox.Items.Add(name);
                }
                break;

            case HAMType.Model:
                foreach (String name in datafile.ModelNames)
                {
                    ElementListBox.Items.Add(name);
                }
                break;

            case HAMType.Sound:
                foreach (String name in datafile.SoundNames)
                {
                    ElementListBox.Items.Add(name);
                }
                break;
            }
        }
Пример #6
0
        public ElementList(EditorHAMFile datafile, HAMType type)
        {
            InitializeComponent();
            switch (type)
            {
            case HAMType.VClip:
                foreach (VClip vclip in datafile.VClips)
                {
                    ElementListBox.Items.Add(vclip.Name);
                }
                break;

            case HAMType.EClip:
                foreach (EClip clip in datafile.EClips)
                {
                    ElementListBox.Items.Add(clip.Name);
                }
                break;

            case HAMType.Robot:
                foreach (Robot robot in datafile.Robots)
                {
                    ElementListBox.Items.Add(robot.Name);
                }
                break;

            case HAMType.Weapon:
                foreach (Weapon weapon in datafile.Weapons)
                {
                    ElementListBox.Items.Add(weapon.Name);
                }
                break;

            case HAMType.Model:
                foreach (Polymodel model in datafile.Models)
                {
                    ElementListBox.Items.Add(model.Name);
                }
                break;

            case HAMType.Sound:
                foreach (String name in datafile.SoundNames)
                {
                    ElementListBox.Items.Add(name);
                }
                break;
            }
        }
Пример #7
0
        private int GetNumElements(HAMType type)
        {
            switch (type)
            {
            case HAMType.TMAPInfo:
                return(datafile.Textures.Count);

            case HAMType.VClip:
                return(datafile.VClips.Count);

            case HAMType.EClip:
                return(datafile.EClips.Count);

            case HAMType.WClip:
                return(datafile.WClips.Count);

            case HAMType.Sound:
                return(254);

            case HAMType.Robot:
                return(datafile.Robots.Count);

            case HAMType.Weapon:
                return(datafile.Weapons.Count);

            case HAMType.Model:
                return(datafile.Models.Count);

            case HAMType.Powerup:
                return(datafile.Powerups.Count);

            case HAMType.Reactor:
                return(datafile.Reactors.Count);

            case HAMType.Cockpit:
                return(datafile.Cockpits.Count);

            case HAMType.Gauge:
                return(datafile.Gauges.Count);

            case HAMType.Ship:
                return(1);

            case HAMType.XLAT:
                return(datafile.BitmapXLATData.Length);
            }
            return(1);
        }
Пример #8
0
 public int CopyElement(HAMType type, int source, int destination)
 {
     /*switch (type)
      * {
      *  case HAMType.Robot:
      *      if (source < Robots.Count && destination < Robots.Count)
      *          Robots[destination].CopyDataFrom(Robots[source], this);
      *      else
      *          return -1;
      *      break;
      *  case HAMType.Weapon:
      *      if (source < Weapons.Count && destination < Weapons.Count)
      *          Weapons[destination].CopyDataFrom(Weapons[source], this);
      *      else
      *          return -1;
      *      break;
      *  default:
      *      return 1;
      * }*/
     return(0);
 }
Пример #9
0
        private void DeleteElem_Click(object sender, EventArgs e)
        {
            HAMType type    = typeTable[EditorTabs.SelectedIndex];
            int     returnv = datafile.DeleteElement(type, ElementNumber);

            if (returnv >= 0)
            {
                //Update the maximum of the numeric up/down control and ensure that any comboboxes that need to be regenerated for the current element are
                ElementListInit();
                isLocked = true;
                if (ElementSpinner.Value >= returnv)
                {
                    ElementSpinner.Value = returnv - 1;
                }
                FillOutCurrentPanel(EditorTabs.SelectedIndex, ElementNumber);
                isLocked = false;
            }
            else
            {
                statusBar1.Text = "Can't delete last element: It is being referenced by other elements";
            }
        }
Пример #10
0
        private void InsertElem_Click(object sender, EventArgs e)
        {
            HAMType type = typeTable[EditorTabs.SelectedIndex];

            /*int newID = datafile.AddElement(type);
             * if (newID != -1)
             * {
             *  //Update the maximum of the numeric up/down control and ensure that any comboboxes that need to be regenerated for the current element are
             *  ElementListInit();
             *  ElementSpinner.Value = newID;
             * }*/
            int         newNum      = 0;
            Transaction transaction = null;

            switch (type)
            {
            case HAMType.TMAPInfo:
                newNum      = datafile.Textures.Count;
                transaction = new AddTextureTransaction("Add Texture", datafile, "Textures", "TMapInfo", datafile.Textures.Count, 0, new TMAPInfo(), ElementNumber, PageNumber);
                break;

            case HAMType.VClip:
                newNum      = datafile.VClips.Count;
                transaction = new ListAddTransaction("Add VClip", datafile, "VClips", datafile.VClips.Count, new VClip(), ElementNumber, PageNumber);
                break;

            case HAMType.EClip:
                newNum      = datafile.EClips.Count;
                transaction = new ListAddTransaction("Add EClip", datafile, "EClips", datafile.EClips.Count, new EClip(), ElementNumber, PageNumber);
                break;

            case HAMType.WClip:
                newNum      = datafile.WClips.Count;
                transaction = new ListAddTransaction("Add WClip", datafile, "WClips", datafile.WClips.Count, new WClip(), ElementNumber, PageNumber);
                break;

            case HAMType.Robot:
                newNum      = datafile.Robots.Count;
                transaction = new ListAddTransaction("Add Robot", datafile, "Robots", datafile.Robots.Count, new Robot(), ElementNumber, PageNumber);
                break;

            case HAMType.Weapon:
                newNum      = datafile.Weapons.Count;
                transaction = new ListAddTransaction("Add Weapon", datafile, "Weapons", datafile.Weapons.Count, new Weapon(), ElementNumber, PageNumber);
                break;

            case HAMType.Model:
                newNum      = datafile.Models.Count;
                transaction = new ListAddTransaction("Add Polymodel", datafile, "Models", datafile.Models.Count, new Polymodel(10), ElementNumber, PageNumber);
                break;

            case HAMType.Powerup:
                newNum      = datafile.Powerups.Count;
                transaction = new ListAddTransaction("Add Powerup", datafile, "Powerups", datafile.Powerups.Count, new Powerup(), ElementNumber, PageNumber);
                break;

            case HAMType.Reactor:
                newNum      = datafile.Reactors.Count;
                transaction = new ListAddTransaction("Add Reactor", datafile, "Reactors", datafile.Reactors.Count, new Reactor(), ElementNumber, PageNumber);
                break;

            case HAMType.Cockpit:
                newNum      = datafile.Cockpits.Count;
                transaction = new ListAddTransaction("Add Cockpit bitmap", datafile, "Cockpits", datafile.Cockpits.Count, (ushort)0, ElementNumber, PageNumber);
                break;
            }

            if (transaction != null)
            {
                transactionManager.ApplyTransaction(transaction);
                ElementListInit(); //Ensure all local lists are updated, and update the spinner.
                ElementSpinner.Value = newNum;
            }
        }