X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Fsortlist.qc;h=e800bc4576ae8d81ca1c4a37838e5ae6db2c0bf7;hb=251a486c25bc0c6c831fa0673de5fa6e98cb6915;hp=fcaf6be50dcee4f510ff447d01884c11531efb3f;hpb=1556aa4ea70b3b275afb1cb4587e555fb44f71c3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/sortlist.qc b/qcsrc/lib/sortlist.qc index fcaf6be50..e800bc457 100644 --- a/qcsrc/lib/sortlist.qc +++ b/qcsrc/lib/sortlist.qc @@ -1,9 +1,9 @@ #include "sortlist.qh" +ERASEABLE entity Sort_Spawn() { - entity sort; - sort = spawn(); + entity sort = new_pure(sortlist); sort.sort_next = NULL; sort.chain = sort; return sort; @@ -11,111 +11,111 @@ entity Sort_Spawn() /* entity Sort_New(float(entity,entity) cmp) { - entity sort; - sort = spawn(); - sort.sort_cmp = cmp; - sort.sort_next = world; - sort.chain = sort; - return sort; + entity sort; + sort = spawn(); + sort.sort_cmp = cmp; + sort.sort_next = NULL; + sort.chain = sort; + return sort; } void Sort_Remove(entity sort) { - entity next; - while(sort.sort_next) - { - next = sort.sort_next; - remove(sort); - sort = next; - } - remove(sort); + entity next; + while(sort.sort_next) + { + next = sort.sort_next; + remove(sort); + sort = next; + } + remove(sort); } void Sort_Add(entity sort, entity ent) { - entity next, parent; - parent = sort; - next = sort.sort_next; - while(next) - { - if(!sort.sort_cmp(next, ent)) - break; - parent = next; - next = next.sort_next; - } - ent.sort_next = next; - ent.sort_prev = parent; - parent.sort_next = ent; - if(next) - next.sort_prev = ent; + entity next, parent; + parent = sort; + next = sort.sort_next; + while(next) + { + if(!sort.sort_cmp(next, ent)) + break; + parent = next; + next = next.sort_next; + } + ent.sort_next = next; + ent.sort_prev = parent; + parent.sort_next = ent; + if(next) + next.sort_prev = ent; } void Sort_Reset(entity sort) { - sort.chain = sort; + sort.chain = sort; } float Sort_HasNext(entity sort) { - return (sort.chain.sort_next != world); + return (sort.chain.sort_next != NULL); } entity Sort_Next(entity sort) { - entity next; - next = sort.chain.sort_next; - if(!next) { - next = spawn(); - sort.chain.sort_next = next; - next.sort_prev = sort.chain; - next.sort_next = world; - } - sort.chain = next; - return next; + entity next; + next = sort.chain.sort_next; + if(!next) { + next = spawn(); + sort.chain.sort_next = next; + next.sort_prev = sort.chain; + next.sort_next = NULL; + } + sort.chain = next; + return next; } void Sort_Finish(entity sort) { - entity next; - next = sort.chain; - if(!next) - return; + entity next; + next = sort.chain; + if(!next) + return; - while(next.sort_next) - { - sort = next.sort_next; - next.sort_next = sort.sort_next; - remove(sort); - } + while(next.sort_next) + { + sort = next.sort_next; + next.sort_next = sort.sort_next; + remove(sort); + } } entity Sort_Get(entity sort, float i) { - for (; sort.sort_next && i > 0; --i) - sort = sort.sort_next; - return sort; + for (; sort.sort_next && i > 0; --i) + sort = sort.sort_next; + return sort; } */ /* void Sort_Erase(entity ent) { - ent.sort_prev.sort_next = ent.sort_next; - if(ent.sort_next) - ent.sort_next.sort_prev = ent.sort_prev; - remove(ent); + ent.sort_prev.sort_next = ent.sort_next; + if(ent.sort_next) + ent.sort_next.sort_prev = ent.sort_prev; + remove(ent); } void Sort_RemoveOld(entity sort) { - entity tmp; - for(tmp = sort.sort_next; tmp; tmp = tmp.sort_next) - { - if(tmp.frame < time) - { - tmp = tmp.sort_prev; - Sort_Erase(tmp.sort_next); - } - } + entity tmp; + for(tmp = sort.sort_next; tmp; tmp = tmp.sort_next) + { + if(tmp.frame < time) + { + tmp = tmp.sort_prev; + Sort_Erase(tmp.sort_next); + } + } } */