MCPcopy Create free account
hub / github.com/NetHack/NetHack / reorder_invent

Function reorder_invent

src/invent.c:738–767  ·  view source on GitHub ↗

sort the inventory; used by addinv() and doorganize() */

Source from the content-addressed store, hash-verified

736
737/* sort the inventory; used by addinv() and doorganize() */
738staticfn void
739reorder_invent(void)
740{
741 struct obj *otmp, *prev, *next;
742 boolean need_more_sorting;
743
744 do {
745 /*
746 * We expect at most one item to be out of order, so this
747 * isn't nearly as inefficient as it may first appear.
748 */
749 need_more_sorting = FALSE;
750 for (otmp = gi.invent, prev = 0; otmp; ) {
751 next = otmp->nobj;
752 if (next && inv_rank(next) < inv_rank(otmp)) {
753 need_more_sorting = TRUE;
754 if (prev)
755 prev->nobj = next;
756 else
757 gi.invent = next;
758 otmp->nobj = next->nobj;
759 next->nobj = otmp;
760 prev = next;
761 } else {
762 prev = otmp;
763 otmp = next;
764 }
765 }
766 } while (need_more_sorting);
767}
768
769#undef inv_rank
770

Callers 2

addinv_core0Function · 0.85
doorganize_coreFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected