//全データの取得 public static void MakeAllDataLength(List <Address> list) { string selfname = "SongTable"; InputFormRef InputFormRef = Init(null); FEBuilderGBA.Address.AddAddress(list, InputFormRef, selfname, new uint[] { 0 }); uint songpointer = InputFormRef.BaseAddress; for (int i = 0; i < InputFormRef.DataCount; i++, songpointer += InputFormRef.BlockSize) { uint songaddr = Program.ROM.p32(songpointer); if (!U.isSafetyOffset(songaddr)) { continue; } {//楽譜 string name = "Song" + U.ToHexString(i) + " "; //リサイクルで回収できるので、仮にこのデータをリサイクルするとしたら、どうなるだけ求める(実際にリサイクルはしない) SongUtil.RecycleOldSong(ref list, name, songpointer); } uint instpointer = songaddr + 4; //uint instaddr = Program.ROM.p32(instpointer); {//楽器 string name = "SongInst" + U.ToHexString(i) + " "; SongInstrumentForm.RecycleOldInstrument(ref list, name, instpointer); } } }
static void MakeAllDataLength_Song(List <Address> list, int i, uint songpointer) { uint songaddr = Program.ROM.p32(songpointer); if (!U.isSafetyOffset(songaddr)) { return; } {//楽譜 string name = "Song" + U.ToHexString(i) + " "; //リサイクルで回収できるので、仮にこのデータをリサイクルするとしたら、どうなるだけ求める(実際にリサイクルはしない) SongUtil.RecycleOldSong(ref list, name, songpointer); } }