public static string GetBattleAnimeHint(uint search_animeindex) { InputFormRef InputFormRef = Init(null); for (int id = 0; id < InputFormRef.DataCount; id++) { uint addr = InputFormRef.IDToAddr((uint)id); if (!U.isSafetyOffset(addr)) { continue; } for (int i = 0; true; i += 4) { uint item = Program.ROM.u8((uint)(addr + i + 0)); uint sp = Program.ROM.u8((uint)(addr + i + 1)); uint anime = Program.ROM.u16((uint)(addr + i + 2)); if (item == 0 && sp == 0 && anime == 0) { break; } if (anime != search_animeindex) { continue; } //発見! string name = UnitForm.GetNameWhereCustomBattleAnime((uint)id); return(name + " " + ImageBattleAnimeForm.getSPTypeName(item, sp)); } } //ない return(""); }
static InputFormRef Init(Form self) { return(new InputFormRef(self , "" , 0 , 4 , (int i, uint addr) => { //読込最大値検索 //00まで検索 return Program.ROM.u32(addr + 0) != 0; } , (int i, uint addr) => { uint b0 = Program.ROM.u8(addr + 0); uint b1 = Program.ROM.u8(addr + 1); uint w2 = Program.ROM.u16(addr + 2); return U.ToHexString(w2) + " " + ImageBattleAnimeForm.getSPTypeName(b0, b1); } )); }