void spiderbot_guide_release(entity this)
{
- entity rkt;
- rkt = findchainentity(realowner, this.owner);
- if(!rkt)
- return;
-
- crosshair_trace(this.owner);
- while(rkt)
+ bool donetrace = false;
+ IL_EACH(g_projectiles, it.realowner == this.owner && getthink(it) == spiderbot_rocket_guided,
{
- if(getthink(rkt) == spiderbot_rocket_guided)
+ if(!donetrace) // something exists, let's trace!
{
- rkt.pos1 = trace_endpos;
- setthink(rkt, spiderbot_rocket_unguided);
+ donetrace = true;
+ crosshair_trace(this.owner);
}
- rkt = rkt.chain;
- }
+
+ it.pos1 = trace_endpos;
+ setthink(it, spiderbot_rocket_unguided);
+ });
}
float spiberbot_calcartillery_flighttime;