if (item.spawnshieldtime)
{
- if ((player.(ammotype) < ammomax) || item.pickup_anyway)
+ if ((player.(ammotype) < ammomax) || item.pickup_anyway > 0)
{
player.(ammotype) = bound(player.(ammotype), ammomax, player.(ammotype) + item.(ammotype));
goto YEAH;
it = item.weapons;
it &= ~player.weapons;
- if (it || (item.spawnshieldtime && item.pickup_anyway))
+ if (it || (item.spawnshieldtime && item.pickup_anyway > 0))
{
pickedup = true;
for(i = WEP_FIRST; i <= WEP_LAST; ++i)
// it's a level item
if(self.spawnflags & 1)
self.noalign = 1;
- if (self.noalign)
+ if (self.noalign > 0)
self.movetype = MOVETYPE_NONE;
else
self.movetype = MOVETYPE_TOSS;
// do item filtering according to game mode and other things
- if (!self.noalign)
+ if (self.noalign <= 0)
{
// first nudge it off the floor a little bit to avoid math errors
setorigin(self, self.origin + '0 0 1');
setsize (self, '-16 -16 0', '16 16 32');
self.SendFlags |= ISF_SIZE;
// note droptofloor returns false if stuck/or would fall too far
- droptofloor();
+ if(!self.noalign)
+ droptofloor();
waypoint_spawnforitem(self);
}
self.SendFlags |= ISF_SIZE;
- if(itemflags & FL_POWERUP)
- self.ItemStatus |= ITS_ANIMATE1;
+ if(!(self.spawnflags & 1024))
+ {
+ if(itemflags & FL_POWERUP)
+ self.ItemStatus |= ITS_ANIMATE1;
- if(self.armorvalue || self.health)
- self.ItemStatus |= ITS_ANIMATE2;
+ if(self.armorvalue || self.health)
+ self.ItemStatus |= ITS_ANIMATE2;
+ }
if(itemflags & FL_WEAPON)
{
else
self.gravity = 1;
- self.ItemStatus |= ITS_ANIMATE1;
+ if(!(self.spawnflags & 1024))
+ self.ItemStatus |= ITS_ANIMATE1;
self.ItemStatus |= ISF_COLORMAP;
}