//全データの取得 public static void MakeAllDataLength(List <Address> list) { string name = "ItemWeaponEffect"; InputFormRef InputFormRef = Init(null); FEBuilderGBA.Address.AddAddress(list, InputFormRef, name, new uint[] { 8 }); uint addr = InputFormRef.BaseAddress; for (int i = 0; i < InputFormRef.DataCount; i++, addr += InputFormRef.BlockSize) { uint mapAnime = Program.ROM.p32(addr + 8); if (!U.isSafetyOffset(mapAnime)) { continue; } uint itemid = Program.ROM.u8(addr + 0); string proc_name = name + "_PROC_" + U.ToHexString(itemid) + " " + ItemForm.GetItemName(itemid); FEBuilderGBA.Address.AddPointer(list , addr + 8 , ProcsScriptForm.CalcLengthAndCheck(mapAnime) , proc_name , FEBuilderGBA.Address.DataTypeEnum.PROCS ); } }
static InputFormRef Init(Form self) { return(new InputFormRef(self , "" , Program.ROM.RomInfo.item_effect_pointer() , 16 , (int i, uint addr) => { //読込最大値検索 if (Program.ROM.u16(addr) == 0xFFFF) { return false; } if (i > 10 && Program.ROM.IsEmpty(addr, 16 * 10)) { return false; } return true; } , (int i, uint addr) => { uint item_id = (uint)Program.ROM.u8(addr); return U.ToHexString(item_id) + " " + ItemForm.GetItemName(item_id); } )); }
static InputFormRef Init(Form self) { return(new InputFormRef(self , "" , 0 , 4 , (int i, uint addr) => { return false; } , (int i, uint addr) => { uint baseaddr = addr - (uint)(4 * i); uint itemID = 0; if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_usability_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_usability_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_effect_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_effect_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_promotion1_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_promotion1_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_promotion2_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_promotion2_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_staff1_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_staff1_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_staff2_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_staff2_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_statbooster1_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_statbooster1_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_statbooster2_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_statbooster2_array_switch2_address()) + (uint)i; } else if (baseaddr == Program.ROM.p32(Program.ROM.RomInfo.item_errormessage_array_pointer())) { itemID = Program.ROM.u8(Program.ROM.RomInfo.item_errormessage_array_switch2_address()) + (uint)i; } else { return ""; } //Log.Debug(U.ToHexString(U.toPointer(Program.ROM.p32(addr)))+"="+ItemForm.GetItemName(itemID)); return U.ToHexString(itemID) + " " + ItemForm.GetItemName(itemID); } )); }
public static string getSPTypeName(uint b0, uint b1) { if (b1 == 0) {//アイテム指定 b0はアイテム名 return(ItemForm.GetItemName(b0)); } else if (b1 == 1) {//種類指定 return(InputFormRef.GetWeaponName(b0)); } return("??"); }
public static string GetName(uint id) { InputFormRef InputFormRef = Init(null); uint addr = InputFormRef.IDToAddr(id); if (!U.isSafetyOffset(addr)) { return(""); } uint item_id = (uint)Program.ROM.u8(addr); return(ItemForm.GetItemName(item_id)); }
static InputFormRef Init(Form self) { return(new InputFormRef(self , "" , 0 , 2 , (int i, uint addr) => { return Program.ROM.u8(addr) != 0x00; } , (int i, uint addr) => { uint item_id = Program.ROM.u8(addr); return U.ToHexString(item_id) + " " + ItemForm.GetItemName(item_id); } )); }
static InputFormRef Init(Form self) { return(new InputFormRef(self , "" , Program.ROM.RomInfo.ai_preform_item_pointer , 8 , (int i, uint addr) => { return Program.ROM.u16(addr) != 0x0; } , (int i, uint addr) => { uint item_id = Program.ROM.u16(addr); return U.ToHexString(item_id) + " " + ItemForm.GetItemName(item_id); } )); }
static InputFormRef N_Init(Form self) { return(new InputFormRef(self , "N_" , Program.ROM.RomInfo.arena_enemy_weapon_rankup_pointer() , 1 , (int i, uint addr) => { return i < 0x1A; } , (int i, uint addr) => { string disp; uint icon; uint itemid = Program.ROM.u8(addr); return U.ToHexString(itemid) + " " + ItemForm.GetItemName(itemid) + " (" + GetRankupTypeName(i, out disp, out icon) + ")"; } )); }
static InputFormRef Init(Form self) { return(new InputFormRef(self , "" , Program.ROM.RomInfo.arena_enemy_weapon_basic_pointer , 1 , (int i, uint addr) => { return i < 8; } , (int i, uint addr) => { string disp; uint icon; uint itemid = Program.ROM.u8(addr); return U.ToHexString(itemid) + " " + ItemForm.GetItemName(itemid) + " (" + GetBasicTypeName(i, out disp, out icon) + ")"; } )); }
static InputFormRef N4_Init(Form self) { return(new InputFormRef(self , "N4_" , 0 , 1 , (int i, uint addr) => { //読込最大値検索 uint a = Program.ROM.u8(addr); if (a == 0) { return false; } return true; } , (int i, uint addr) => { uint itemid = Program.ROM.u8(addr); return U.ToHexString(itemid) + " " + ItemForm.GetItemName(itemid); } )); }
private void MakeCCItemList() { uint id; id = Program.ROM.RomInfo.cc_item_hero_crest_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_item_knight_crest_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_item_orion_bolt_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_elysian_whip_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_guiding_ring_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); if (Program.ROM.RomInfo.version() >= 7) { id = Program.ROM.RomInfo.cc_fallen_contract_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_master_seal_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_ocean_seal_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_moon_bracelet_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); id = Program.ROM.RomInfo.cc_sun_bracelet_itemid(); this.ITEM_LIST.Items.Add(U.ToHexString(id) + " " + ItemForm.GetItemName(id)); } }