示例#1
0
        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);
            }
        }
示例#2
0
        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));
        }
示例#3
0
 private void B34_ValueChanged(object sender, EventArgs e)
 {
     PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch();
     if (itemUsingExtends == PatchUtil.ItemUsingExtends.IER)
     {
         UpdateIERHint();
     }
 }
示例#4
0
        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._("スキルの書");
            }
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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;
        }
示例#8
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);
        }
示例#9
0
        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();
        }
示例#10
0
        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;
        }
示例#11
0
        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();
        }