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; } }
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)); } }