public static List <ChangeSt> MakeChangeList(uint mapid) { List <ChangeSt> changeList = new List <ChangeSt>(); uint change_addr = MapSettingForm.GetMapChangeAddrWhereMapID(mapid); if (change_addr == U.NOT_FOUND) { return(changeList); } InputFormRef N_InputFormRef = N_Init(null); N_InputFormRef.ReInit(change_addr); for (int i = 0; i < N_InputFormRef.DataCount; i++) { ChangeSt p = new ChangeSt(); p.no = Program.ROM.u8(change_addr + 0); p.x = Program.ROM.u8(change_addr + 1); p.y = Program.ROM.u8(change_addr + 2); p.width = Program.ROM.u8(change_addr + 3); p.height = Program.ROM.u8(change_addr + 4); p.addr = Program.ROM.p32(change_addr + 8); p.self_change_addr = change_addr; changeList.Add(p); change_addr += N_InputFormRef.BlockSize; } return(changeList); }
public static bool Write_OneData(ChangeSt changest, Undo.UndoData undodata) { undodata.list.Add(new Undo.UndoPostion(changest.self_change_addr, 12)); Program.ROM.write_u8(changest.self_change_addr + 0, changest.no); Program.ROM.write_u8(changest.self_change_addr + 1, changest.x); Program.ROM.write_u8(changest.self_change_addr + 2, changest.y); Program.ROM.write_u8(changest.self_change_addr + 3, changest.width); Program.ROM.write_u8(changest.self_change_addr + 4, changest.height); Program.ROM.write_p32(changest.self_change_addr + 8, changest.addr); return(true); }