void search_for_next() { //move to flattest node if it is flatter than those we've already checked NextNode = FlattestNode; if (FlattestNode != null && (FlattestNodeTired == null || FlattestNodeTired.unevenness > NextNode.unevenness && NextNode.DistanceTo(VSL) / VSL.Geometry.R > C.NodeTargetRange * 2)) { FlattestNodeTired = NextNode; WideCheckAlt += C.WideCheckAltitude * (float)(NextNode.unevenness / C.MaxUnevenness); move_next(); } else { wide_check(C.WideCheckAltitude); } }