]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/effects/qc/rubble.qh
Transifex autosync
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / qc / rubble.qh
index 6eda9b15ef29d2b5c60a7b48e3651fcb5a538485..eccd11282a46eb76d74e5b5a789b0a33a0a390c8 100644 (file)
@@ -1,51 +1,18 @@
 #pragma once
 
-#ifdef CSQC
-
+#ifdef GAMEQC
 entityclass(Rubble);
 classfield(Rubble).float creationtime;
 
-IntrusiveList g_rubble;
-STATIC_INIT(g_rubble) { g_rubble = IL_NEW(); }
-
-void RubbleLimit(string cname, int limit, void(entity) deleteproc)
-{
-       // remove rubble of the same type if it's at the limit
-       // remove multiple rubble if the limit has been decreased
-       while (1)
-       {
-               // walk the list and count the entities, find the oldest
-               // initialize our search with the first entity
-               int c = 0;
-               entity oldest = NULL;
-               float oldesttime = 0;
-               // compare to all other matching entities
-               IL_EACH(g_rubble, it.classname == cname,
-               {
-                       ++c;
-                       if(!oldest || oldesttime > it.creationtime)
-                       {
-                               oldest = it;
-                               oldesttime = it.creationtime;
-                       }
-               });
+#ifdef CSQC
+IntrusiveList CasingsNGibs;
+STATIC_INIT(CasingsNGibs) { CasingsNGibs = IL_NEW(); }
+#endif
 
-               // stop if there are less than the limit already
-               if (c <= limit) break;
+void LimitedChildrenRubble(IntrusiveList list, string cname, int limit, void(entity) deleteproc, entity parent);
 
-               // delete this oldest one and search again
-               deleteproc(oldest);
-       }
-}
+entity ReplaceOldListedChildRubble(IntrusiveList list, entity child, entity oldChild);
 
-entity RubbleNew(string cname)
-{
-       // spawn a new entity and return it
-       entity e = spawn();
-       e.classname = cname;
-       e.creationtime = time;
-       IL_PUSH(g_rubble, e);
-       return e;
-}
+entity ListNewChildRubble(IntrusiveList list, entity child);
 
 #endif