From: Rudolf Polzer Date: Fri, 19 Nov 2010 21:08:35 +0000 (+0100) Subject: crylink: some debugging X-Git-Tag: xonotic-v0.1.0preview~116^2~5 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=2358fa865c8db0e1158850e10093bf5873d794d9;ds=sidebyside crylink: some debugging --- diff --git a/qcsrc/server/w_crylink.qc b/qcsrc/server/w_crylink.qc index 07100c778..b688a9f7f 100644 --- a/qcsrc/server/w_crylink.qc +++ b/qcsrc/server/w_crylink.qc @@ -39,6 +39,27 @@ void W_Crylink_LinkExplode (entity e, entity e2) remove (e); } +void W_Crylink_CheckLinks(entity e) +{ + float i; + entity p; + + if(e == world) + error("W_Crylink_CheckLinks: entity is world"); + + p = e; + for(i = 0; i < 1000; ++i) + { + if(p.queuenext.queueprev != p || p.queueprev.queuenext != p) + error("W_Crylink_CheckLinks: queue is inconsistent"); + p = p.queuenext; + if(p == e) + break; + } + if(i >= 1000) + error("W_Crylink_CheckLinks: infinite chain"); +} + // adjust towards center // returns the origin where they will meet... and the time till the meeting is // stored in w_crylink_linkjoin_time. @@ -54,6 +75,9 @@ vector W_Crylink_LinkJoin(entity e, float jspeed, float jtime) float avg_dist, n; entity p; + // FIXME remove this debug code + W_Crylink_CheckLinks(e); + w_crylink_linkjoin_time = 0; avg_origin = e.origin;