/// <summary> /// Добавление ключевой записи. Добавляется после внесения всех изменений. /// </summary> public static void AddRecord() { //Не добавляем ключ, если последний уже ключ (значит записей не добавилось) if (List.Count > 0 && List[List.Count - 1].Key) return; ChangeString r = new ChangeString(); r.Key = true; List.Add(r); Position = List.Count - 1; }
/// <summary> /// Добавление записи об изменении. /// </summary> /// <param name="layer"></param> /// <param name="x"></param> /// <param name="y"></param> /// <param name="was"></param> /// <param name="became"></param> public static void AddRecord(int layer, int x, int y, ushort was, ushort became) { //Не добавляем запись, если изменений нет if (was == became) return; //Здесь надо сделать очистку всего что правей Position, если такое имеется if (Position < List.Count - 1) List.RemoveRange(Position + 1, List.Count - Position - 1); //А потом уже пишем историю ChangeString r = new ChangeString(); r.Key = false; r.Layer = layer; r.X = x; r.Y = y; r.Was = was; r.Became = became; List.Add(r); Position = List.Count - 1; }