public SkillConfigFE8NSkillForm() { InitializeComponent(); this.AddressList.OwnerDraw(DrawSkillAndText, DrawMode.OwnerDrawFixed); PatchUtil.skill_system_enum skill = PatchUtil.SearchSkillSystem(); if (skill == PatchUtil.skill_system_enum.FE8N || skill == PatchUtil.skill_system_enum.yugudora) { this.Pointers = FindSkillFE8NVer1IconPointers(); } else if (skill == PatchUtil.skill_system_enum.FE8N_ver2) { this.Pointers = SkillConfigFE8NVer2SkillForm.FindSkillFE8NVer2IconPointers(); } else { return; } this.InputFormRef = Init(this); this.InputFormRef.MakeGeneralAddressListContextMenu(true); this.InputFormRef.CheckProtectionPaddingALIGN4 = false; this.FilterComboBox.BeginUpdate(); for (int i = 0; i < this.Pointers.Length; i++) { uint p = Program.ROM.p32(this.Pointers[i]); this.FilterComboBox.Items.Add(U.ToHexString(p)); } this.FilterComboBox.EndUpdate(); this.FilterComboBox.SelectedIndex = 0; }
public void InitExportFilter(uint filter) { List <UseValsID> list = new List <UseValsID>(); if (filter == 1) {//ユニット関係のみ UnitForm.MakeVarsIDArray(list); } else if (filter == 2) {//クラス関係のみ ClassForm.MakeVarsIDArray(list); } else if (filter == 3) {//アイテム関係のみ ItemForm.MakeVarsIDArray(list); } else if (filter == 4) {//サウンドルーム関係のみ if (Program.ROM.RomInfo.version == 6) { SoundRoomFE6Form.MakeVarsIDArray(list); } else { SoundRoomForm.MakeVarsIDArray(list); } } else if (filter == 5) {//支援会話関係 SupportTalkForm.MakeVarsIDArray(list); } else if (filter == 6) {//スキル関係 if (Program.ROM.RomInfo.is_multibyte) { SkillConfigFE8NSkillForm.MakeVarsIDArray(list); SkillConfigFE8NVer2SkillForm.MakeVarsIDArray(list); } else { SkillConfigSkillSystemForm.MakeVarsIDArray(list); } } else {//all ExportFilterArray = null; return; } ExportFilterArray = new Dictionary <int, bool>(); foreach (UseValsID val in list) { ExportFilterArray[(int)val.ID] = true; } }
static skill_system_enum SearchSkillSystemLow() { PatchTableSt[] table = new PatchTableSt[] { new PatchTableSt { name = "yugudora", ver = "FE8J", addr = 0xEE594, data = new byte[] { 0x4B, 0xFA, 0x2F, 0x59 } }, new PatchTableSt { name = "FE8N", ver = "FE8J", addr = 0x89268, data = new byte[] { 0x00, 0x4B, 0x9F, 0x46 } }, new PatchTableSt { name = "midori", ver = "FE8J", addr = 0xFE58E0, data = new byte[] { 0x05, 0x1C, 0x00, 0xF0, 0x25, 0xF8, 0x01, 0x29, 0x04, 0xD0, 0x28, 0x1C, 0x00, 0xF0, 0x28, 0xF8 } }, new PatchTableSt { name = "SkillSystem", ver = "FE8U", addr = 0x2ACF8, data = new byte[] { 0x70, 0x47 } }, }; string version = Program.ROM.RomInfo.VersionToFilename(); foreach (PatchTableSt t in table) { if (t.ver != version) { continue; } byte[] data = Program.ROM.getBinaryData(t.addr, t.data.Length); if (U.memcmp(t.data, data) != 0) { continue; } if (t.name == "FE8N") { if (SkillConfigFE8NVer2SkillForm.IsFE8NVer2()) { return(skill_system_enum.FE8N_ver2); } return(skill_system_enum.FE8N); } if (t.name == "yugudora") { return(skill_system_enum.yugudora); } if (t.name == "midori") { return(skill_system_enum.midori); } if (t.name == "SkillSystem") { return(skill_system_enum.SkillSystem); } } return(skill_system_enum.NO); }
private void B21_ValueChanged(object sender, EventArgs e) { if (IsFE8NVer2SkillNoSyo()) {//FE8NVer2のスキルの書 uint skillid = (uint)B21.Value; SKILLICON.Image = SkillConfigFE8NVer2SkillForm.DrawSkillIcon(skillid); SKILLNAME.Text = SkillConfigFE8NVer2SkillForm.GetSkillText(skillid); SKILLICON.Visible = true; SKILLNAME.Visible = true; } }
static uint FindSkillIconAndText(PatchUtil.skill_system_enum skill, uint[] pointers, string searchSkillName, out string outText) { if (skill == PatchUtil.skill_system_enum.FE8N_ver2) { return(SkillConfigFE8NVer2SkillForm.FindSkillIconAndText(pointers, searchSkillName, out outText)); } else if (skill == PatchUtil.skill_system_enum.midori) {//緑パッチ 詳細不明 outText = ""; return(U.NOT_FOUND); } else { return(SkillConfigFE8NSkillForm.FindSkillIconAndText(pointers, searchSkillName, out outText)); } }
public static void MakeClassSkillButtons(PatchUtil.skill_system_enum skill, uint cid, Button[] buttons, ToolTipEx tooltip) { if (buttons == null) { return; } int skillCount = 0; if (skill == PatchUtil.skill_system_enum.SkillSystem) { skillCount = SkillAssignmentClassSkillSystemForm.MakeClassSkillButtons(cid, buttons, tooltip); } else if (skill == PatchUtil.skill_system_enum.FE8N_ver2) { skillCount = SkillConfigFE8NVer2SkillForm.MakeClassSkillButtons(cid, buttons, tooltip); } SkillUtil.ApplyModButton(buttons, skillCount); }
public static string GetSkillName(uint skillid) { if (Program.ROM.RomInfo.version() != 8) { return(""); } PatchUtil.skill_system_enum skillsystem = PatchUtil.SearchSkillSystem(); if (skillsystem == PatchUtil.skill_system_enum.SkillSystem) { string name = SkillConfigSkillSystemForm.GetSkillName(skillid); return(name); } else if (skillsystem == PatchUtil.skill_system_enum.FE8N_ver2) { string name = SkillConfigFE8NVer2SkillForm.GetSkillText(skillid); return(name); } return(""); }
public static Bitmap DrawIcon(uint skillid) { if (Program.ROM.RomInfo.version() != 8) { return(ImageUtil.BlankDummy()); } PatchUtil.skill_system_enum skillsystem = PatchUtil.SearchSkillSystem(); if (skillsystem == PatchUtil.skill_system_enum.SkillSystem) { Bitmap bitmap = SkillConfigSkillSystemForm.DrawSkillIcon(skillid); return(bitmap); } else if (skillsystem == PatchUtil.skill_system_enum.FE8N_ver2) { Bitmap bitmap = SkillConfigFE8NVer2SkillForm.DrawSkillIcon(skillid); return(bitmap); } return(ImageUtil.BlankDummy()); }
//全データの取得 public static void MakeAllDataLength(List <Address> list) { uint[] pointer; PatchUtil.skill_system_enum skill = PatchUtil.SearchSkillSystem(); if (skill == PatchUtil.skill_system_enum.FE8N || skill == PatchUtil.skill_system_enum.yugudora) { pointer = FindSkillFE8NVer1IconPointers(); } else if (skill == PatchUtil.skill_system_enum.FE8N_ver3) {//ver3では利用しません return; } else if (skill == PatchUtil.skill_system_enum.FE8N_ver2) { pointer = SkillConfigFE8NVer2SkillForm.FindSkillFE8NVer2IconPointers(); } else { return; } if (pointer == null) { return; } InputFormRef ifr = Init(null); for (int i = 0; i < pointer.Length; i++) { ifr.ReInitPointer(pointer[i]); if (ifr.DataCount <= 0) { continue; } FEBuilderGBA.Address.AddAddress(list, ifr , "SkillConfigFE8N" + U.ToHexString(i) , new uint[] { }); } }
private void B21_ValueChanged(object sender, EventArgs e) { if (IsFE8NSkillNoSyo()) {//FE8NVer2のスキルの書 uint skillid = (uint)B21.Value; PatchUtil.skill_system_enum skill = PatchUtil.SearchSkillSystem(); if (skill == FEBuilderGBA.PatchUtil.skill_system_enum.FE8N_ver3) { SKILLICON.Image = SkillConfigFE8NVer3SkillForm.DrawSkillIcon(skillid); SKILLNAME.Text = SkillConfigFE8NVer3SkillForm.GetSkillText(skillid); } else { SKILLICON.Image = SkillConfigFE8NVer2SkillForm.DrawSkillIcon(skillid); SKILLNAME.Text = SkillConfigFE8NVer2SkillForm.GetSkillText(skillid); } SKILLICON.Visible = true; SKILLNAME.Visible = true; } }
//テキストの取得 public static void MakeVarsIDArray(List <UseValsID> list) { uint[] pointer; PatchUtil.skill_system_enum skill = PatchUtil.SearchSkillSystem(); if (skill == PatchUtil.skill_system_enum.FE8N || skill == PatchUtil.skill_system_enum.yugudora) { pointer = FindSkillFE8NVer1IconPointers(); } else if (skill == PatchUtil.skill_system_enum.FE8N_ver3) {//ver3では利用しません return; } else if (skill == PatchUtil.skill_system_enum.FE8N_ver2) { pointer = SkillConfigFE8NVer2SkillForm.FindSkillFE8NVer2IconPointers(); } else { return; } if (pointer == null) { return; } InputFormRef ifr = Init(null); for (int i = 0; i < pointer.Length; i++) { ifr.ReInitPointer(pointer[i]); if (ifr.DataCount <= 0) { continue; } UseValsID.AppendTextID(list, FELint.Type.SKILL_CONFIG, ifr, new uint[] { 2 }); } }
public SkillAssignmentUnitFE8NForm() { InitializeComponent(); PatchUtil.skill_system_enum skill = PatchUtil.SearchSkillSystem(); Dictionary <uint, string> SCROLL1; Dictionary <uint, string> SCROLL2; Dictionary <uint, string> MASTERY; uint[] pointers; if (skill == PatchUtil.skill_system_enum.yugudora) {//ユグドラパッチ 初期FE8Nカスタム pointers = SkillConfigFE8NSkillForm.FindSkillFE8NVer1IconPointers(); SCROLL1 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_yugudora_skill1_scroll_")); SCROLL2 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_yugudora_skill2_scroll_")); MASTERY = U.LoadDicResource(U.ConfigDataFilename("skill_extends_FE8N_skill3_mastery_")); } else if (skill == PatchUtil.skill_system_enum.midori) {//緑パッチ pointers = SkillConfigFE8NSkillForm.FindSkillFE8NVer1IconPointers(); SCROLL1 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_midori_skill1_scroll_")); SCROLL2 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_midori_skill2_scroll_")); MASTERY = U.LoadDicResource(U.ConfigDataFilename("skill_extends_midori_skill3_mastery_")); } else if (skill == PatchUtil.skill_system_enum.FE8N_ver2) {//FE8N ver2 pointers = SkillConfigFE8NVer2SkillForm.FindSkillFE8NVer2IconPointers(); SCROLL1 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_FE8N_skill1_scroll_")); SCROLL2 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_FE8N_skill2_scroll_")); MASTERY = U.LoadDicResource(U.ConfigDataFilename("skill_extends_FE8N_skill3_mastery_")); } else {//FE8N pointers = SkillConfigFE8NSkillForm.FindSkillFE8NVer1IconPointers(); SCROLL1 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_FE8N_skill1_scroll_")); SCROLL2 = U.LoadDicResource(U.ConfigDataFilename("skill_extends_FE8N_skill2_scroll_")); MASTERY = U.LoadDicResource(U.ConfigDataFilename("skill_extends_FE8N_skill3_mastery_")); } string find; string text; uint icon; find = U.at(SCROLL1, 0x01); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_01.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_0.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL1, 0x02); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_02.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_1.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL1, 0x04); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_04.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_2.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL1, 0x08); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_08.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_3.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL1, 0x10); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_10.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_4.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL1, 0x20); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_20.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_5.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL1, 0x40); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_40.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_6.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL1, 0x80); icon = FindSkillIconAndText(skill, pointers, find, out text); L_40_BIT_80.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE0_7.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x01); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_01.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_0.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x02); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_02.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_1.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x04); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_04.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_2.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x08); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_08.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_3.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x10); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_10.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_4.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x20); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_20.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_5.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x40); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_40.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_6.Image = DrawSkillIcon(skill, icon); find = U.at(SCROLL2, 0x80); icon = FindSkillIconAndText(skill, pointers, find, out text); L_41_BIT_80.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE1_7.Image = DrawSkillIcon(skill, icon); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_0.Text = R._("なし"); find = U.at(MASTERY, 0x01); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_1.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE2_1.Image = DrawSkillIcon(skill, icon); find = U.at(MASTERY, 0x02); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_2.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE2_2.Image = DrawSkillIcon(skill, icon); find = U.at(MASTERY, 0x03); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_3.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE2_3.Image = DrawSkillIcon(skill, icon); find = U.at(MASTERY, 0x04); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_4.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE2_4.Image = DrawSkillIcon(skill, icon); find = U.at(MASTERY, 0x05); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_5.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE2_5.Image = DrawSkillIcon(skill, icon); find = U.at(MASTERY, 0x06); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_6.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE2_6.Image = DrawSkillIcon(skill, icon); find = U.at(MASTERY, 0x07); icon = FindSkillIconAndText(skill, pointers, find, out text); L_39_RADIO_7.Text = U.nl2none(icon == U.NOT_FOUND ? find : text); IMAGE2_7.Image = DrawSkillIcon(skill, icon); InputFormRef.TabControlHideTabOption(SkillTab); List <Control> controls = InputFormRef.GetAllControls(this); InputFormRef.MakeLinkEvent("", controls); }