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"); } this.InputFormRef = Init(this); this.InputFormRef.UseWriteProtectionID00 = true; //ID:0x00を書き込み禁止 this.InputFormRef.MakeGeneralAddressListContextMenu(true); InputFormRef.LoadComboResource(L_30_COMBO, U.ConfigDataFilename("item_staff_use_effect_")); InputFormRef.LoadComboResource(L_31_COMBO, U.ConfigDataFilename("item_weapon_effect_")); InputFormRef.markupJumpLabel(JumpToITEMEFFECT); }
//全データの取得 public static void MakeAllDataLength(List <Address> list) { { InputFormRef InputFormRef = Init(null); FEBuilderGBA.Address.AddAddress(list, InputFormRef, "Item", new uint[] { 12, 16 }); //SkillSystemsによる 特効リワーク PatchUtil.class_type_enum effectivenesRework = PatchUtil.SearchClassType(); //grows mod PatchUtil.growth_mod_enum growthmod = PatchUtil.SearchGrowsMod(); uint addr = InputFormRef.BaseAddress; for (int i = 0; i < InputFormRef.DataCount; i++, addr += InputFormRef.BlockSize) { uint itemStatBonuses = Program.ROM.p32(addr + 12); if (itemStatBonuses > 0) { uint vennoExtends = Program.ROM.u8(addr + 34); uint statBonusesSize = 12; //バニラは12バイト if (growthmod == PatchUtil.growth_mod_enum.Vennou && vennoExtends == 1) { statBonusesSize = 16; //vennou拡張は16バイト } else if (growthmod == PatchUtil.growth_mod_enum.SkillSystems && vennoExtends == 1) { statBonusesSize = 20; //SkillSystemsは20バイト } FEBuilderGBA.Address.AddAddress(list, itemStatBonuses , statBonusesSize , addr + 12 , "StatBooster " + U.To0xHexString(i) , FEBuilderGBA.Address.DataTypeEnum.BIN); } uint itemEffectiveness = Program.ROM.p32(addr + 16); if (itemEffectiveness > 0) { if (effectivenesRework == FEBuilderGBA.PatchUtil.class_type_enum.SkillSystems_Rework) { List <U.AddrResult> arlist = ItemEffectivenessSkillSystemsReworkForm.MakeCriticalClassList((uint)itemEffectiveness); FEBuilderGBA.Address.AddAddress(list, itemEffectiveness , (uint)(arlist.Count + 1) * 4 , addr + 16 , "ItemEffectiveness " + U.To0xHexString(i) , FEBuilderGBA.Address.DataTypeEnum.BIN); } else { List <U.AddrResult> arlist = ItemEffectivenessForm.MakeCriticalClassList((uint)itemEffectiveness); FEBuilderGBA.Address.AddAddress(list, itemEffectiveness , (uint)(arlist.Count + 1) , addr + 16 , "ItemEffectiveness " + U.To0xHexString(i) , FEBuilderGBA.Address.DataTypeEnum.BIN); } } } } }
void InitFE8ClassType(List <Control> controls) { //SkillSystemsによる 特効リワーク if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework) { J_80.Text = R._("ClassType"); InputFormRef.makeJumpEventHandler(D80, J_80, "CLASSTYPE", new string[] { }); InputFormRef.makeLinkEventHandler("", controls, D80, X_CLASSTYPE, 80, "CLASSTYPE", new string[] { }); X_CLASSTYPE.Show(); } }
private void ItemCriticalButton_Click(object sender, EventArgs e) { if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework) {//SkillSystemsによる 特効リワーク InputFormRef.JumpForm <ItemEffectivenessSkillSystemsReworkForm>(); } else { InputFormRef.JumpForm <ItemEffectivenessForm>(); } }
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 AddressList_SelectedIndexChanged(object sender, EventArgs e) { U.ForceUpdate(X_SIM, GrowSimulator.ClassMaxLevel((uint)this.AddressList.SelectedIndex)); X_SIM_ValueChanged(null, null); SkillUtil.MakeClassSkillButtons(X_SkillType, (uint)this.AddressList.SelectedIndex, this.X_SkillButtons, this.X_Tooltip); //SkillSystemsによる 特効リワーク if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework) { X_CLASSTYPE.Text = ClassForm.GetClassType((uint)this.D80.Value); } }
private void P16_ValueChanged(object sender, EventArgs e) { if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework) {//SkillSystemsによる 特効リワーク List <U.AddrResult> arlist = ItemEffectivenessSkillSystemsReworkForm.MakeCriticalClassList((uint)P16.Value); U.ConvertListBox(arlist, ref CLASS_LISTBOX); } else { List <U.AddrResult> arlist = ItemEffectivenessForm.MakeCriticalClassList((uint)P16.Value); U.ConvertListBox(arlist, ref CLASS_LISTBOX); } }