3 .float(entity,entity) sort_cmp;
4 .entity sort_next, sort_prev;
6 entity Sort_New(float(entity,entity) cmp)
11 sort.sort_next = NULL;
15 void Sort_Remove(entity sort)
20 next = sort.sort_next;
27 void Sort_Add(entity sort, entity ent)
31 next = sort.sort_next;
32 while(next && sort.sort_cmp(next, ent))
35 next = next.sort_next;
38 ent.sort_prev = parent;
39 parent.sort_next = ent;
44 entity Sort_Get(entity sort, float i)
46 for(; sort.sort_next && i > 0; --i)
47 sort = sort.sort_next;
51 void Sort_DoSort(entity sort)
53 entity newsort, next, tmp;
54 newsort = Sort_New(sort.sort_cmp);
55 next = sort.sort_next;
59 Sort_Add(newsort, next);
62 sort.sort_next = newsort.sort_next;