]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/lib/warpzone/common.qc
Merge branch 'master' into Mario/killsound
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / warpzone / common.qc
index 90e3cd76c983a803a552b32ed7af220aaccb6b6e..03248ec50cca3943128c2cfa59ba6fb9ae4037ee 100644 (file)
@@ -154,31 +154,33 @@ float WarpZoneLib_BoxTouchesBrush(vector mi, vector ma, entity e, entity ig)
 entity WarpZone_Find(vector mi, vector ma)
 {
        // if we are near any warpzone planes - MOVE AWAY (work around nearclip)
-       entity e;
        if(!warpzone_warpzones_exist)
                return NULL;
-       for(e = NULL; (e = find(e, classname, "trigger_warpzone")); )
-               if(WarpZoneLib_BoxTouchesBrush(mi, ma, e, NULL))
-                       return e;
+       IL_EACH(g_warpzones, WarpZoneLib_BoxTouchesBrush(mi, ma, it, NULL),
+       {
+               return it;
+       });
        return NULL;
 }
 
 void WarpZone_MakeAllSolid()
 {
-       entity e;
        if(!warpzone_warpzones_exist)
                return;
-       for(e = NULL; (e = find(e, classname, "trigger_warpzone")); )
-               e.solid = SOLID_BSP;
+       IL_EACH(g_warpzones, true,
+       {
+               it.solid = SOLID_BSP;
+       });
 }
 
 void WarpZone_MakeAllOther()
 {
-       entity e;
        if(!warpzone_warpzones_exist)
                return;
-       for(e = NULL; (e = find(e, classname, "trigger_warpzone")); )
-               e.solid = SOLID_TRIGGER;
+       IL_EACH(g_warpzones, true,
+       {
+               it.solid = SOLID_TRIGGER;
+       });
 }
 
 void WarpZone_Trace_InitTransform()
@@ -296,13 +298,13 @@ void WarpZone_TraceBox_ThroughZone(vector org, vector mi, vector ma, vector end,
                        }
                        break;
                }
-               if(trace_ent == wz)
+               /*if(trace_ent == wz)
                {
                        // FIXME can this check be removed? Do we really need it?
                        LOG_TRACE("I transformed into the same zone again, wtf, aborting the trace");
                        trace_ent = NULL;
                        break;
-               }
+               }*/
                wz = trace_ent;
                if(!WarpZone_trace_firstzone)
                        WarpZone_trace_firstzone = wz;
@@ -573,12 +575,9 @@ bool WarpZoneLib_BadEntity(entity e)
 {
        if (is_pure(e)) return true;
        string s = e.classname;
-       switch (s)
-       {
-               // case "net_linked": // actually some real entities are linked without classname, fail
-               case "":
-                       return true;
-       }
+
+       //if (s == "net_linked") return true; // actually some real entities are linked without classname, fail
+       if (s == "") return true;
 
        if (startsWith(s, "target_")) return true;