// Methods public static MovementPath GetClientMovement(List<UInt32> Keys) { MovementPath path = new MovementPath(); PathElement element = null; int num = 0; int num2 = 0; foreach (int num2_loopVariable in Keys) { num2 = num2_loopVariable; MapPoint point = new MapPoint((num2 & 4095)); PathElement item = new PathElement { Cell = point }; if ((num == 0)) { path.CellStart = point; } else { element.Orientation = element.Cell.OrientationTo(item.Cell); } if ((num == (Keys.Count - 1))) { path.CellEnd = point; } path.Cells.Add(item); element = item; num += 1; } return path; }
public static List<uint> GetServerMovement(MovementPath Path) { List<uint> list = new List<uint>(); int orientation = 0; foreach (PathElement element in Path.Cells) { orientation = element.Orientation; list.Add(Convert.ToUInt32(((orientation & 7) << 12) | (element.Cell.CellId & 4095))); } list.Add(Convert.ToUInt32(((orientation & 7) << 12) | (Path.CellEnd.CellId & 4095))); return list; }
public MovementPath FindPath(int FromCell, int ToCell, bool ate, bool adc) { MovPath = new MovementPath(); MovPath.CellStart = new MapPoint(FromCell); MovPath.CellEnd = new MapPoint(ToCell); AllowDiag = adc; AllowDiagCornering = adc; AllowTroughEntity = ate; StartPathfinding(new MapPoint(FromCell), new MapPoint(ToCell)); ProcessPathfinding(); return MovPath; }
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; }