public static ExplosionHelper.Surface[] Build(ref ExplosionHelper.Point.Enumerator point_enumerator) { ExplosionHelper.Point.EnumeratorToArray pointEnumerator = new ExplosionHelper.Point.EnumeratorToArray(); pointEnumerator.enumerator = point_enumerator; pointEnumerator.length = 0; pointEnumerator.array = null; pointEnumerator.RecurseInStackHeapToArray(); return(pointEnumerator.array); }
private void RecurseInStackHeapToArray() { if (!this.enumerator.MoveNext()) { this.array = new ExplosionHelper.Surface[this.length]; } else { ExplosionHelper.Surface surface = this.enumerator.current; ExplosionHelper.Point.EnumeratorToArray enumeratorToArray = this; enumeratorToArray.length = enumeratorToArray.length + 1; this.RecurseInStackHeapToArray(); ExplosionHelper.Point.EnumeratorToArray enumeratorToArray1 = this; int num = enumeratorToArray1.length - 1; int num1 = num; enumeratorToArray1.length = num; this.array[num1] = surface; } }