Ejemplo n.º 1
0
bool CASW_Pickup_Weapon::AllowedToPickup(CASW_Marine *pMarine)
{
	if (!pMarine || !ASWGameRules() || !pMarine->GetMarineResource())
		return false;

	// check if we're swapping for an existing item
	int index = pMarine->GetWeaponPositionForPickup(GetWeaponClass());	
	CASW_Weapon* pWeapon = pMarine->GetASWWeapon(index);
	const char* szSwappingClass = pWeapon ? pWeapon->GetClassname() : "";
	
	// first check if the gamerules will allow it
	bool bAllowed = ASWGameRules()->MarineCanPickup(pMarine->GetMarineResource(), GetWeaponClass(), szSwappingClass);

#ifdef CLIENT_DLL
	m_bSwappingWeapon = ( pWeapon != NULL );
#endif

	return bAllowed;
}
void CASW_Pickup_Weapon_Ammo_Satchel::InitWeapon(CASW_Marine* pMarine, CASW_Weapon* pWeapon)
{
	if (!pMarine || !pWeapon)
		return;
	CASW_Weapon_Ammo_Satchel *pSatchel = dynamic_cast<CASW_Weapon_Ammo_Satchel*>(pWeapon);
	if (!pSatchel)
		return;

	// ammo satchel doesn't have normal ammo
	//pWeapon->SetClip1( 0 );
	//pWeapon->SetClip2( 0 );

	// equip the weapon
	pMarine->Weapon_Equip_In_Index( pWeapon, pMarine->GetWeaponPositionForPickup(GetWeaponClass()) );

	//pSatchel->m_nAmmoDrops = m_nAmmoDrops;
}
Ejemplo n.º 3
0
void CASW_Pickup_Weapon_Ammo_Bag::InitWeapon(CASW_Marine* pMarine, CASW_Weapon* pWeapon)
{
	if (!pMarine || !pWeapon)
		return;
	CASW_Weapon_Ammo_Bag *pBag = dynamic_cast<CASW_Weapon_Ammo_Bag*>(pWeapon);
	if (!pBag)
		return;

	// ammo bag doesn't have normal ammo
	pWeapon->SetClip1( 0 );
	pWeapon->SetClip2( 0 );

	// equip the weapon
	pMarine->Weapon_Equip_In_Index( pWeapon, pMarine->GetWeaponPositionForPickup(GetWeaponClass()) );
	
	for (int i=0;i<ASW_AMMO_BAG_SLOTS;i++)
	{
		pBag->m_AmmoCount.Set(i, m_iAmmoCount[i]);
		m_iAmmoCount[i] = 0;
	}
}