return TRUE;
if(autocvar_g_powerups == 0)
return FALSE;
- if(g_lms)
- return FALSE;
- if(g_ca)
- return FALSE;
- if(g_arena)
- return FALSE;
}
else
{
return TRUE;
if(autocvar_g_pickup_items == 0)
return FALSE;
- if(g_lms)
- return FALSE;
- if(g_ca)
- return FALSE;
if(g_weaponarena)
if(!WEPSET_EMPTY_E(self) || (self.items & IT_AMMO))
return FALSE;
WEPSET_COPY_AE(it, item);
WEPSET_ANDNOT_AE(it, player);
- if (!WEPSET_EMPTY_A(it) || (item.spawnshieldtime && self.pickup_anyway))
+ if (!WEPSET_EMPTY_A(it) || (item.spawnshieldtime && item.pickup_anyway))
{
- pickedup = TRUE;
- for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+ pickedup = TRUE;
+ for(i = WEP_FIRST; i <= WEP_LAST; ++i)
if(WEPSET_CONTAINS_AW(it, i))
- W_GiveWeapon(player, i);
+ W_GiveWeapon(player, i);
}
}
}
:skip
-
- other = player;
- giveitem = item;
- player_wswitch = _switchweapon;
- player_pickedup = pickedup;
- MUTATOR_CALLHOOK(Item_GiveTo);
- _switchweapon = player_wswitch;
- pickedup = player_pickedup;
// always eat teamed entities
if(item.team)
}
}
- if (other.classname != "player")
+ if not(IS_PLAYER(other))
return;
if (other.deadflag)
return;
return;
if (self.owner == other)
return;
- if(MUTATOR_CALLHOOK(ItemTouch))
- return;
+
+ switch(MUTATOR_CALLHOOK(ItemTouch))
+ {
+ case MUT_ITEMTOUCH_RETURN: { return; }
+ case MUT_ITEMTOUCH_PICKUP: { goto pickup; }
+ }
if (self.classname == "droppedweapon")
{
return;
}
+ :pickup
+
other.last_pickup = time;
pointparticles(particleeffectnum("item_pickup"), self.origin, '0 0 0', 1);
if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
{
- print("Attempted to spawn a mutator-blocked weapon; these guns will in the future require a mutator\n");
- /*
objerror("Attempted to spawn a mutator-blocked weapon rejected");
startitem_failed = TRUE;
return;
- */
}
s = W_Apply_Weaponreplace(e.netname);
return;
}
- if(activator.classname != "player")
+ if not(IS_PLAYER(activator))
return;
if(activator.deadflag != DEAD_NO)
return;