Example #1
0
        public void Statuses_Changed()
        {
            Dictionary <int, MapStatus> statuses = new Dictionary <int, MapStatus>();
            List <MapStatus>            states   = Statuses.GetList <List <MapStatus> >();

            for (int ii = 0; ii < states.Count; ii++)
            {
                statuses[states[ii].ID] = states[ii];
            }
            ZoneManager.Instance.CurrentMap.Status = statuses;
        }
Example #2
0
        //TODO: move these events into ListEditor; they were generic enough to warrant copy+pasting
        public void Statuses_EditItem(int index, object element, CollectionBoxViewModel.EditElementOp op)
        {
            string       elementName = "Statuses[" + index + "]";
            DataEditForm frmData     = new DataEditForm();

            frmData.Title = DataEditor.GetWindowTitle(ZoneManager.Instance.CurrentMap.AssetName, elementName, element, typeof(MapStatus), new object[0]);

            DataEditor.LoadClassControls(frmData.ControlPanel, ZoneManager.Instance.CurrentMap.AssetName, elementName, typeof(MapStatus), new object[0], element, true);

            DevForm form = (DevForm)DiagManager.Instance.DevEditor;

            frmData.SelectedOKEvent += async() =>
            {
                element = DataEditor.SaveClassControls(frmData.ControlPanel, elementName, typeof(MapStatus), new object[0], true);

                bool itemExists = false;

                List <MapStatus> states = (List <MapStatus>)Statuses.GetList(typeof(List <MapStatus>));
                for (int ii = 0; ii < states.Count; ii++)
                {
                    if (ii != index)
                    {
                        if (states[ii].ID == ((MapStatus)element).ID)
                        {
                            itemExists = true;
                        }
                    }
                }

                if (itemExists)
                {
                    await MessageBox.Show(form.MapEditForm, "Cannot add duplicate IDs.", "Entry already exists.", MessageBox.MessageBoxButtons.Ok);
                }
                else
                {
                    op(index, element);
                    frmData.Close();
                }
            };
            frmData.SelectedCancelEvent += () =>
            {
                frmData.Close();
            };

            form.MapEditForm.RegisterChild(frmData);
            frmData.Show();
        }