예제 #1
0
        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);
        }
예제 #2
0
        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);
        }