private void B0_ValueChanged(object sender, EventArgs e) { PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends != PatchUtil.ItemUsingExtends.IER) { return; } uint skillScrollItemID = SkillConfigSkillSystemForm.FindSkillScrollItemID(); if (B0.Value != skillScrollItemID) { J_1.Text = R._("耐久"); SKILLNAME.Hide(); SKILLICON.Hide(); InputFormRef.UseDecMode(B1); } else { J_1.Text = R._("スキルID"); SKILLNAME.Show(); SKILLICON.Show(); InputFormRef.UseHexMode(B1); } }
static uint FindSkillScrollItemIDLow() { PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends != PatchUtil.ItemUsingExtends.IER) { return(U.NOT_FOUND); } byte[] SpellsGetter_dmp_bin = new byte[] { 0x08, 0x21, 0x08, 0x40, 0x00, 0x28, 0x11, 0xD1, 0x10, 0x1C, 0xFF, 0x21, 0x08, 0x40, 0x06, 0x4B, 0x19, 0x78, 0x00, 0x29, 0x05, 0xD0, 0x88, 0x42, 0x01, 0xD0, 0x01, 0x33, 0xF8, 0xE7, 0x01, 0x20, 0x05, 0xE0, 0x10, 0x12, 0x03, 0xE0, 0x00, 0x00 }; uint pointer = U.GrepEnd(Program.ROM.Data, SpellsGetter_dmp_bin, Program.ROM.RomInfo.compress_image_borderline_address, 0, 4); if (pointer == U.NOT_FOUND) { return(U.NOT_FOUND); } if (!U.isSafetyOffset(pointer)) { return(U.NOT_FOUND); } uint itemAddr = Program.ROM.p32(pointer); if (!U.isSafetyOffset(itemAddr)) { return(U.NOT_FOUND); } return(Program.ROM.u8(itemAddr)); }
private void B34_ValueChanged(object sender, EventArgs e) { PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends == PatchUtil.ItemUsingExtends.IER) { UpdateIERHint(); } }
public static void PreLoadResource_item_staff_use_effect(string fullfilename) { g_item_staff_use_effect_List = U.LoadDicResource(fullfilename); PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends == PatchUtil.ItemUsingExtends.IER) { g_item_staff_use_effect_List[0x37] = R._("ラトナ"); g_item_staff_use_effect_List[0x38] = R._("スキルの書"); } }
public ItemForm() { InitializeComponent(); this.AddressList.OwnerDraw(ListBoxEx.DrawItemAndText, DrawMode.OwnerDrawFixed); if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework) {//SkillSystemsによる 特効リワーク this.CLASS_LISTBOX.OwnerDraw(ListBoxEx.DrawClassTypeAndText, DrawMode.OwnerDrawFixed); } else { this.CLASS_LISTBOX.OwnerDraw(ListBoxEx.DrawClassAndText, DrawMode.OwnerDrawFixed); this.CLASS_LISTBOX.ItemListToJumpForm("CLASS"); } PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends == PatchUtil.ItemUsingExtends.IER) { J_34.Text = "IER Byte"; J_34.AccessibleDescription = R._("IERによって参照される値です。\r\nアイテムに応じて役割が変わります。"); X_34_Info.Show(); } else { //growth mod PatchUtil.growth_mod_enum growthmod = PatchUtil.SearchGrowsMod(); if (growthmod == PatchUtil.growth_mod_enum.SkillSystems || growthmod == PatchUtil.growth_mod_enum.Vennou) { J_34.Text = "Growth_Mod"; J_34.AccessibleDescription = "この拡張は、通常のstatboosterよりも大きいデータを必要とします。\r\nこの拡張フラグを1に設定した後で、statbooster領域を確保してください。\r\n既に確保している場合は、statboosterアドレスを0に設定して再確保してください。"; } } if (PatchUtil.SearchSkillSystem() == PatchUtil.skill_system_enum.SkillSystem) { J_33.Text = "Debuff"; J_34.AccessibleDescription = "SkillSystemsのDebuffsの値を設定します。\r\n0の場合はDebuffsはありません。\r\n1以降の場合、利用したいDebuffsTableの値を設定します。\r\nDebuffsTableの値はPatchから設定可能です。"; InputFormRef.markupJumpLabel(J_33); } this.InputFormRef = Init(this); this.InputFormRef.UseWriteProtectionID00 = true; //ID:0x00を書き込み禁止 this.InputFormRef.MakeGeneralAddressListContextMenu(true); InputFormRef.LoadComboResource(L_30_COMBO, g_item_staff_use_effect_List); InputFormRef.LoadComboResource(L_31_COMBO, g_item_weapon_effect_List); InputFormRef.markupJumpLabel(JumpToITEMEFFECT); InputFormRef.markupJumpLabel(HardCodingWarningLabel); }
private void B1_ValueChanged(object sender, EventArgs e) { PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends != PatchUtil.ItemUsingExtends.IER) { return; } if (!SKILLNAME.Visible) { return; } uint skillid = (uint)B1.Value; SKILLICON.Image = SkillConfigSkillSystemForm.DrawSkillIcon(skillid); SKILLNAME.Text = SkillConfigSkillSystemForm.GetSkillName(skillid); }
public ItemUsagePointerForm() { InitializeComponent(); this.AddressList.OwnerDraw(ListBoxEx.DrawItemAndText, DrawMode.OwnerDrawFixed); PromotionItemExplain.Hide(); InputFormRef.markupJumpLabel(this.PromotionItemLink); StatBoosterItemExplain.Hide(); InputFormRef.markupJumpLabel(this.StatBoosterItemLink); if (PatchUtil.ItemUsingExtendsPatch() == PatchUtil.ItemUsingExtends.IER) { InputFormRef.markupJumpLabel(this.X_IER_PATCH); } this.InputFormRef = Init(this); this.InputFormRef.CheckProtectionAddrHigh = false; //書き換える対象がswitchなので低い位地に書き換えるデータがあります。 this.InputFormRef.MakeGeneralAddressListContextMenu(true); this.FilterComboBox.SelectedIndex = 0; }
public ItemShopForm() { InitializeComponent(); this.SHOP_LIST.OwnerDraw(ListBoxEx.DrawTextOnly, DrawMode.OwnerDrawFixed); this.AddressList.OwnerDraw(ListBoxEx.DrawItemAndText, DrawMode.OwnerDrawFixed); PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends == PatchUtil.ItemUsingExtends.IER) { J_1.Text = R._("耐久"); J_1.AccessibleDescription = "@IERUSES"; } this.InputFormRef = Init(this); this.InputFormRef.PreWriteHandler += OnPreWrite; U.ConvertListBox(MakeShopList(), ref SHOP_LIST); this.InputFormRef.PostAddressListExpandsEvent += AddressListExpandsEvent; this.InputFormRef.MakeGeneralAddressListContextMenu(true); }
private void AddressList_SelectedIndexChanged(object sender, EventArgs e) { if (this.AddressList.SelectedIndex > 0) { L_2_TEXT_ITEMX.ErrorMessage = ChcekTextItem1ErrorMessage((uint)B6.Value, L_2_TEXT_ITEMX.Text, (uint)W2.Value, (uint)B7.Value, L_8_BIT_01.Checked); L_4_TEXT_ITEM2.ErrorMessage = ChcekTextItem2ErrorMessage((uint)B6.Value, L_2_TEXT_ITEMX.Text, (uint)W2.Value, (uint)B7.Value, L_8_BIT_01.Checked); } else { L_2_TEXT_ITEMX.ErrorMessage = ""; L_4_TEXT_ITEM2.ErrorMessage = ""; } if (P12.Value == 0 && this.AddressList.SelectedIndex > 0) { L_12_NEWALLOC_ITEMSTATBOOSTER.Show(); } else { L_12_NEWALLOC_ITEMSTATBOOSTER.Hide(); } if (P16.Value == 0 && this.AddressList.SelectedIndex > 0) { L_16_NEWALLOC_EFFECTIVENESS.Show(); } else { L_16_NEWALLOC_EFFECTIVENESS.Hide(); } PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch(); if (itemUsingExtends == PatchUtil.ItemUsingExtends.IER) { UpdateIERHint(); } CheckHardCodingWarning(); }
public ItemPromotionForm() { InitializeComponent(); this.AddressList.OwnerDraw(ListBoxEx.DrawClassAndText, DrawMode.OwnerDrawFixed); this.ITEM_LIST.OwnerDraw(ListBoxEx.DrawItemAndText, DrawMode.OwnerDrawFixed); this.InputFormRef = Init(this); this.InputFormRef.MakeGeneralAddressListContextMenu(true); MakeCCItemList(); if (PatchUtil.ItemUsingExtendsPatch() == PatchUtil.ItemUsingExtends.IER) { InputFormRef.markupJumpLabel(this.X_IER_PATCH); this.X_IER_PATCH.Show(); } else { this.X_IER_PATCH.Hide(); } this.InputFormRef.PostAddressListExpandsEvent += AddressListExpandsEvent; }
private void FilterComboBox_SelectedIndexChanged(object sender, EventArgs e) { PromotionItemExplain.Hide(); StatBoosterItemExplain.Hide(); int selected = FilterComboBox.SelectedIndex; string configFilename = ""; switch (selected) { case 0: //0=アイテムを利用できるか判定する default: configFilename = (U.ConfigDataFilename("item_usability_array_")); break; case 1: //1=アイテムを利用した場合の効果を定義する configFilename = (U.ConfigDataFilename("item_effect_array_")); break; case 2: //2=CCアイテムを使った場合の処理を定義する configFilename = (U.ConfigDataFilename("item_promotion1_array_")); PromotionItemExplain.Show(); break; case 3: //3=CCアイテムかどうかを定義する(FE7のみ) configFilename = (U.ConfigDataFilename("item_promotion2_array_")); PromotionItemExplain.Show(); break; case 4: //4=アイテムのターゲット選択の方法を定義する(多分) configFilename = (U.ConfigDataFilename("item_staff1_array_")); break; case 5: //5=杖の種類を定義する configFilename = (U.ConfigDataFilename("item_staff2_array_")); break; case 6: //6=ドーピングアイテムを利用した時のメッセージを定義する MagicSplitUtil.magic_split_enum magic_split = MagicSplitUtil.SearchMagicSplit(); if (magic_split == MagicSplitUtil.magic_split_enum.FE8UMAGIC) { configFilename = (U.ConfigDataFilename("item_statbooster1_skill_array_")); } else { configFilename = (U.ConfigDataFilename("item_statbooster1_array_")); } StatBoosterItemExplain.Show(); break; case 7: //7=ドーピングアイテムとCCアイテムかどうかを定義する configFilename = (U.ConfigDataFilename("item_statbooster2_array_")); StatBoosterItemExplain.Show(); break; case 8: //8=エラーメッセージを定義する configFilename = (U.ConfigDataFilename("item_errormessage_array_")); StatBoosterItemExplain.Show(); break; case 9: //9=アイテム名の前置詞 configFilename = (U.ConfigDataFilename("item_name_article_")); break; } this.L_0_COMBO.Items.Clear(); if (File.Exists(configFilename)) { string[] lines = File.ReadAllLines(configFilename); this.L_0_COMBO.BeginUpdate(); for (int i = 0; i < lines.Length; i++) { string line = lines[i]; if (U.IsComment(line) || U.OtherLangLine(line)) { continue; } line = U.ClipComment(line); line = line.Trim(); this.L_0_COMBO.Items.Add(line); } this.L_0_COMBO.EndUpdate(); } uint addr = ReInit(selected, this.InputFormRef); if (addr == U.NOT_FOUND) { this.AddressList.Items.Clear(); this.SwitchListExpandsButton.Hide(); this.WriteButton.Hide(); if (PatchUtil.ItemUsingExtendsPatch() == PatchUtil.ItemUsingExtends.IER) { this.X_NOT_FOUND.Hide(); this.X_IER_PATCH.Show(); return; } this.X_NOT_FOUND.Show(); this.X_IER_PATCH.Hide(); return; } this.SwitchListExpandsButton.Show(); this.WriteButton.Show(); this.X_NOT_FOUND.Hide(); this.X_IER_PATCH.Hide(); }