void CBulletCrate::TryPickup( CPlayer* aPicker, const CRect<int>& aDrawRect ) { int bno = iController->GameData()->TypeData()->ReverseMapBullet( iType ); if (aPicker->iBullets[ bno ]<iType->MaximumForPlayer()*iType->Multiplier()) { aPicker->iBullets[ bno ]+= iType->AmountInCrate(); aPicker->iBullets[ bno ] = min( aPicker->iBullets[ bno ], iType->MaximumForPlayer()*iType->Multiplier()); Taken( aPicker->ScreenPos(), aDrawRect ); } }
void CCaptureObject::RealUse(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) { if (value == COU_CAPTURE) { Captured(pActivator); } else if (value == COU_TAKEN) { Taken(pActivator); } else if (value == COU_DROP) { Drop(pActivator); } else if (value == COU_RETURN) { Return(pActivator); } }
void CCaptureObject::Touch(CBaseEntity *pOther) { if (!pOther->IsPlayer()) return; if (pev->impulse == CO_CARRIED) return; if (!pOther->IsAlive()) return; CBasePlayer *pPlayer = (CBasePlayer*)pOther; if (g_pGameRules->GetTeamIndex(pPlayer->m_szTeamName) != pev->team) { if (pev->impulse == CO_DROPPED) Return(pOther); } else Taken(pOther); }