示例#1
0
        private void NewPuppetButton_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(working_dir_) || puppets_.Count == 0)
            {
                ErrMsg("No data loaded!");
                return;
            }

            uint id = 0;

            using (var dialog = new NewIDDialog("New Puppet", 511))
            {
                if (dialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                id = (uint)dialog.ID;
            }

            if (puppets_.ContainsKey(id))
            {
                ErrMsg("Puppet ID in use! Select a different ID.");
                return;
            }

            if ((id >= puppet_names_.Length) || (id >= 512))
            {
                var min = Math.Min(puppet_names_.Length, 512);
                ErrMsg("Puppet ID too large! ID must be less than " + min.ToString() + ".");
                return;
            }

            uint puppetdex_pos = 0;

            foreach (var i in puppets_)
            {
                if (i.Value.puppetdex_index > puppetdex_pos)
                {
                    puppetdex_pos = i.Value.puppetdex_index;
                }
            }

            if (++puppetdex_pos > 511)
            {
                puppetdex_pos = 0;
            }

            var puppet = new DollData()
            {
                id = id, puppetdex_index = puppetdex_pos
            };

            puppets_[id] = puppet;
            PuppetLB.Items.Add(new Tuple <string, uint>(puppet_names_[id], puppet.id));
            PuppetLB.SelectedIndex = PuppetLB.FindStringExact(puppet_names_[id]);
            obj_flags_[id]         = 1;
            if (is_ynk_)
            {
                obj_flags_[id + 400] = 1;
            }
            for (var i = 0; i < (is_ynk_ ? 4 : 3); ++i)
            {
                puppet_flags_[(id * 4) + i] = 1;
            }
        }
示例#2
0
        private void LoadPuppets()
        {
            // Puppets
            PuppetLB.ClearSelected();
            PuppetLB.Items.Clear();
            PuppetLB.DisplayMember = "Item1";
            PuppetLB.ValueMember   = "Item2";
            foreach (var it in puppets_)
            {
                var puppet = it.Value;
                if (puppet.id >= puppet_names_.Length)
                {
                    continue;
                }
                PuppetLB.Items.Add(new Tuple <string, uint>(puppet_names_[puppet.id], puppet.id));
            }

            // Abilities
            PuppetAbility1CB.SelectedIndex = -1;
            PuppetAbility2CB.SelectedIndex = -1;
            PuppetAbility1CB.Items.Clear();
            PuppetAbility2CB.Items.Clear();
            PuppetAbility1CB.DisplayMember = "Item1";
            PuppetAbility1CB.ValueMember   = "Item2";
            PuppetAbility2CB.DisplayMember = "Item1";
            PuppetAbility2CB.ValueMember   = "Item2";
            PuppetAbility1CB.Items.Add(new Tuple <string, uint>("None", 0));
            PuppetAbility2CB.Items.Add(new Tuple <string, uint>("None", 0));
            foreach (var it in ability_names_)
            {
                var id   = it.Key;
                var name = it.Value;
                PuppetAbility1CB.Items.Add(new Tuple <string, uint>(name, id));
                PuppetAbility2CB.Items.Add(new Tuple <string, uint>(name, id));
            }

            // Items
            Item1CB.SelectedIndex = -1;
            Item1CB.Items.Clear();
            Item1CB.DisplayMember = "Item1";
            Item1CB.ValueMember   = "Item2";
            Item2CB.SelectedIndex = -1;
            Item2CB.Items.Clear();
            Item2CB.DisplayMember = "Item1";
            Item2CB.ValueMember   = "Item2";
            Item3CB.SelectedIndex = -1;
            Item3CB.Items.Clear();
            Item3CB.DisplayMember = "Item1";
            Item3CB.ValueMember   = "Item2";
            Item4CB.SelectedIndex = -1;
            Item4CB.Items.Clear();
            Item4CB.DisplayMember = "Item1";
            Item4CB.ValueMember   = "Item2";
            Item1CB.Items.Add(new Tuple <string, uint>("None", 0));
            Item2CB.Items.Add(new Tuple <string, uint>("None", 0));
            Item3CB.Items.Add(new Tuple <string, uint>("None", 0));
            Item4CB.Items.Add(new Tuple <string, uint>("None", 0));
            foreach (var it in item_names_)
            {
                var id   = it.Key;
                var name = it.Value;
                Item1CB.Items.Add(new Tuple <string, uint>(name, id));
                Item2CB.Items.Add(new Tuple <string, uint>(name, id));
                Item3CB.Items.Add(new Tuple <string, uint>(name, id));
                Item4CB.Items.Add(new Tuple <string, uint>(name, id));
            }

            // Skillcards
            SkillCardLB.Items.Clear();
            SkillCardLB.DisplayMember = "Item1";
            SkillCardLB.ValueMember   = "Item2";
            foreach (var it in skillcard_names_)
            {
                var id   = it.Key;
                var name = it.Value;
                SkillCardLB.Items.Add(new Tuple <string, uint>(name, id));
            }
        }