public static IEnumerable <ValueTuple <int, int> > smethod_0(int int_0, int int_1, MapGrid mapGrid_0) { MapNavigator.< > c__DisplayClass12_0 CS$ < > 8__locals1; CS$ < > 8__locals1.grid = mapGrid_0; bool left = MapNavigator.smethod_1(int_0 - 1, int_1, ref CS$ < > 8__locals1); bool right = MapNavigator.smethod_1(int_0 + 1, int_1, ref CS$ < > 8__locals1); bool up = MapNavigator.smethod_1(int_0, int_1 - 1, ref CS$ < > 8__locals1); bool down = MapNavigator.smethod_1(int_0, int_1 + 1, ref CS$ < > 8__locals1); if (left) { yield return(new ValueTuple <int, int>(int_0 - 1, int_1)); } if (right) { yield return(new ValueTuple <int, int>(int_0 + 1, int_1)); } if (up) { yield return(new ValueTuple <int, int>(int_0, int_1 - 1)); } if (down) { yield return(new ValueTuple <int, int>(int_0, int_1 + 1)); } if (up && left && MapNavigator.smethod_1(int_0 - 1, int_1 - 1, ref CS$ < > 8__locals1)) { yield return(new ValueTuple <int, int>(int_0 - 1, int_1 - 1)); } if (up && right && MapNavigator.smethod_1(int_0 + 1, int_1 - 1, ref CS$ < > 8__locals1)) { yield return(new ValueTuple <int, int>(int_0 + 1, int_1 - 1)); } if (down && left && MapNavigator.smethod_1(int_0 - 1, int_1 + 1, ref CS$ < > 8__locals1)) { yield return(new ValueTuple <int, int>(int_0 - 1, int_1 + 1)); } if (down && right && MapNavigator.smethod_1(int_0 + 1, int_1 + 1, ref CS$ < > 8__locals1)) { yield return(new ValueTuple <int, int>(int_0 + 1, int_1 + 1)); } yield break; }
private IEnumerable <ValueTuple <int, int> > method_2(int int_0, int int_1) { int num = this.method_1(int_0, int_1); if (this.items[num].Parent != -1) { goto IL_B5; } IEnumerator <ValueTuple <int, int> > enumerator = MapNavigator.smethod_0(int_0, int_1, this.Grid).GetEnumerator(); int dx; int dy; bool both; bool bottomWalkable; for (;;) { try { IL_294: if (!enumerator.MoveNext()) { break; } goto IL_2B5; IL_B5: int num2; int num3; this.hEmzxAaTll(this.items[num].Parent, out num2, out num3); dx = (int_0 - num2) / Math.Max(Math.Abs(int_0 - num2), 1); dy = (int_1 - num3) / Math.Max(Math.Abs(int_1 - num3), 1); if ((dx & dy) == 0) { goto IL_17C; } if (!(both = this.method_7(int_0, int_1 + dy))) { goto IL_2DF; } yield return(new ValueTuple <int, int>(int_0, int_1 + dy)); goto IL_2D8; IL_17C: if (dx == 0) { goto IL_202; } bool flag = this.method_7(int_0 + dx, int_1); both = this.method_7(int_0, int_1 + 1); bottomWalkable = this.method_7(int_0, int_1 - 1); if (!flag) { goto IL_3FB; } yield return(new ValueTuple <int, int>(int_0 + dx, int_1)); goto IL_37A; IL_202: if (dy == 0) { goto IL_558; } bool flag2 = this.method_7(int_0, int_1 + dy); bottomWalkable = this.method_7(int_0 + 1, int_1); both = this.method_7(int_0 - 1, int_1); if (!flag2) { goto IL_4F0; } yield return(new ValueTuple <int, int>(int_0, int_1 + dy)); goto IL_470; IL_28C: goto IL_294; } finally { if (enumerator != null) { enumerator.Dispose(); } } break; IL_2B5: ValueTuple <int, int> valueTuple = enumerator.Current; yield return(valueTuple); goto IL_28C; } enumerator = null; yield break; IL_2D8: IL_2DF: if (!this.method_7(int_0 + dx, int_1)) { goto IL_558; } yield return(new ValueTuple <int, int>(int_0 + dx, int_1)); if (both) { yield return(new ValueTuple <int, int>(int_0 + dx, int_1 + dy)); goto IL_558; } goto IL_558; IL_37A: if (both) { yield return(new ValueTuple <int, int>(int_0 + dx, int_1 + 1)); } if (bottomWalkable) { yield return(new ValueTuple <int, int>(int_0 + dx, int_1 - 1)); } IL_3FB: if (both) { yield return(new ValueTuple <int, int>(int_0, int_1 + 1)); } if (bottomWalkable) { yield return(new ValueTuple <int, int>(int_0, int_1 - 1)); goto IL_558; } goto IL_558; IL_470: if (bottomWalkable) { yield return(new ValueTuple <int, int>(int_0 + 1, int_1 + dy)); } if (both) { yield return(new ValueTuple <int, int>(int_0 - 1, int_1 + dy)); } IL_4F0: if (bottomWalkable) { yield return(new ValueTuple <int, int>(int_0 + 1, int_1)); } if (both) { yield return(new ValueTuple <int, int>(int_0 - 1, int_1)); } IL_558: yield break; yield break; }