private MovementPath method_3(SimpleCellInfo class13_0) { List<MapPoint> range = new List<MapPoint>(); SimpleCellInfo class2 = class13_0; while (class2.v_OriginPoint.CellId != this.MapPoint_FromCell.CellId) { class2 = class2.class13_0; range.Add(class2.v_OriginPoint); } range.Reverse(); range.Add(class13_0.v_OriginPoint); if (this.v_MouvementPoints != -1) { range = range.GetRange(0, (((this.v_MouvementPoints + 1) > range.Count) ? range.Count : (this.v_MouvementPoints + 1))); } MovementPath path = new MovementPath { CellStart = this.MapPoint_FromCell, CellEnd = range[(range.Count - 1)] }; int num = (range.Count - 2); int i = 0; while (i <= num) { PathElement item = new PathElement { Cell = range[i], Orientation = range[i].OrientationTo(range[(i + 1)]) }; path.Cells.Add(item); i += 1; } path.Compress(); return path; }