if(this.team)
{
RandomSelection_Init();
- FOREACH_ENTITY_FLAGS(flags, FL_ITEM,
+ IL_EACH(g_items, it.team == this.team,
{
- if(it.team == this.team)
if(it.classname != "item_flag_team" && it.classname != "item_key_team")
{
Item_Show(it, -1);
EXACTTRIGGER_TOUCH(this, trigger);
}
- FOREACH_ENTITY_ENT(enemy, actor,
+ IL_EACH(g_items, it.enemy == actor && it.classname == "droppedweapon",
{
- if(it.classname == "droppedweapon")
- delete(it);
+ delete(it);
});
if(GiveItems(actor, 0, tokenize_console(this.netname)))
#include "conveyor.qh"
REGISTER_NET_LINKED(ENT_CLIENT_CONVEYOR)
+IntrusiveList g_conveyed;
+STATIC_INIT(g_conveyed) { g_conveyed = IL_NEW(); }
+
void conveyor_think(entity this)
{
#ifdef CSQC
#endif
// set mythis as current conveyor where possible
- FOREACH_ENTITY_ENT(conveyor, this,
+ IL_EACH(g_conveyed, it.conveyor == this,
{
it.conveyor = NULL;
+ IL_REMOVE(g_conveyed, it);
});
if(this.state)
}
if(boxesoverlap(emin, emax, this.absmin, this.absmax)) // quick
if(WarpZoneLib_BoxTouchesBrush(emin, emax, this, it)) // accurate
+ {
+ if(!it.conveyor)
+ IL_PUSH(g_conveyed, it);
it.conveyor = this;
+ }
});
- FOREACH_ENTITY_ENT(conveyor, this,
+ IL_EACH(g_conveyed, it.conveyor == this,
{
if(IS_CLIENT(it)) // doing it via velocity has quite some advantages
continue; // done in SV_PlayerPhysics continue;