private void AddressList_SelectedIndexChanged(object sender, EventArgs e) { int filter = this.FilterComboBox.SelectedIndex; if (filter == 6 || filter == 7) {//地形回復/地形ステータス異常回復 全クラス共通 IndependenceButton.Enabled = false; CLASS_LISTBOX.Items.Clear(); CLASS_LISTBOX.Items.Add(R._("全クラス共通")); return; } uint selectAddr = (uint)this.Address.Value; List <U.AddrResult> list = ClassForm.MakeClassList((uint addr) => { uint p = ClassForm.GetMoveCostAddrLow(addr, (uint)this.FilterComboBox.SelectedIndex); return(p == selectAddr); } ); U.ConvertListBox(list, ref this.CLASS_LISTBOX); //クラスが2つ以上あるなら分離ボタンを有効かする IndependenceButton.Enabled = (list.Count >= 2); }
static InputFormRef Init(MoveCostForm self) { return(new InputFormRef(self , "" , Program.ROM.RomInfo.class_pointer() , Program.ROM.RomInfo.class_datasize() , (int i, uint addr) => { //読込最大値検索 if (i == 0) { return true; } uint no = Program.ROM.u8(addr + 4); return (no != 0); } , (int i, uint addr) => { if (i == 0) { return new U.AddrResult(0, ""); } uint p = ClassForm.GetMoveCostAddrLow(addr, (uint)self.FilterComboBox.SelectedIndex); string name = U.ToHexString(i) + " " + ClassForm.GetClassNameLow(addr); return new U.AddrResult(p, name); } )); }