Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ MoveDownDefaultComparer()

void System.Collections.Generic.PriorityQueue< TElement, TPriority >.MoveDownDefaultComparer ( (TElement Element, TPriority Priority) node,
int nodeIndex )
inlineprivate

Definition at line 509 of file PriorityQueue.cs.

510 {
511 (TElement, TPriority)[] nodes = _nodes;
512 int size = _size;
513 int num;
514 while ((num = GetFirstChildIndex(nodeIndex)) < size)
515 {
516 (TElement, TPriority) tuple = nodes[num];
517 int num2 = num;
518 int num3 = Math.Min(num + 4, size);
519 while (++num < num3)
520 {
521 (TElement, TPriority) tuple2 = nodes[num];
522 if (Comparer<TPriority>.Default.Compare(tuple2.Item2, tuple.Item2) < 0)
523 {
524 tuple = tuple2;
525 num2 = num;
526 }
527 }
528 if (Comparer<TPriority>.Default.Compare(node.Priority, tuple.Item2) <= 0)
529 {
530 break;
531 }
532 nodes[nodeIndex] = tuple;
533 nodeIndex = num2;
534 }
535 nodes[nodeIndex] = node;
536 }
TElement TPriority Priority[] _nodes

References System.Collections.Generic.PriorityQueue< TElement, TPriority >._nodes, System.Collections.Generic.PriorityQueue< TElement, TPriority >._size, System.Default, System.Collections.Generic.PriorityQueue< TElement, TPriority >.GetFirstChildIndex(), and System.Math.Min().

Referenced by System.Collections.Generic.PriorityQueue< TElement, TPriority >.EnqueueDequeue(), System.Collections.Generic.PriorityQueue< TElement, TPriority >.Heapify(), and System.Collections.Generic.PriorityQueue< TElement, TPriority >.RemoveRootNode().