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

◆ MoveDownCustomComparer()

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

Definition at line 538 of file PriorityQueue.cs.

539 {
540 IComparer<TPriority> comparer = _comparer;
541 (TElement, TPriority)[] nodes = _nodes;
542 int size = _size;
543 int num;
544 while ((num = GetFirstChildIndex(nodeIndex)) < size)
545 {
546 (TElement, TPriority) tuple = nodes[num];
547 int num2 = num;
548 int num3 = Math.Min(num + 4, size);
549 while (++num < num3)
550 {
551 (TElement, TPriority) tuple2 = nodes[num];
552 if (comparer.Compare(tuple2.Item2, tuple.Item2) < 0)
553 {
554 tuple = tuple2;
555 num2 = num;
556 }
557 }
558 if (comparer.Compare(node.Priority, tuple.Item2) <= 0)
559 {
560 break;
561 }
562 nodes[nodeIndex] = tuple;
563 nodeIndex = num2;
564 }
565 nodes[nodeIndex] = node;
566 }
readonly IComparer< TPriority > _comparer
TElement TPriority Priority[] _nodes

References System.Collections.Generic.PriorityQueue< TElement, TPriority >._comparer, System.Collections.Generic.PriorityQueue< TElement, TPriority >._nodes, System.Collections.Generic.PriorityQueue< TElement, TPriority >._size, System.comparer, 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().