예제 #1
0
        //全データの取得
        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
                                                );
            }
        }
예제 #2
0
 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);
     }
                             ));
 }
예제 #3
0
 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("??");
 }
예제 #5
0
        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));
        }
예제 #6
0
 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);
     }
                             ));
 }
예제 #7
0
 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) + ")";
     }
                             ));
 }
예제 #9
0
 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) + ")";
     }
                             ));
 }
예제 #10
0
 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);
     }
                             ));
 }
예제 #11
0
        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));
            }
        }