Example #1
0
void CJaw::HideRocket()
{
	HideCharacterAttachment(eIGS_FirstPerson, "rocket", true);
	HideCharacterAttachment(eIGS_ThirdPerson, "rocket", true);
	m_auxSlotUsed = true;
	CActor* pOwnerActor = GetOwnerActor();
	if (pOwnerActor && pOwnerActor->IsThirdPerson())
	{
		DrawSlot(eIGS_ThirdPerson, false);
		DrawSlot(eIGS_ThirdPersonAux, true);
	}
}
Example #2
0
//------------------------------------------------------------------------
void CWeapon::OnEndReload(EntityId shooterId, IEntityClass* pAmmoType)
{
	BROADCAST_WEAPON_EVENT(OnEndReload, (this, shooterId, pAmmoType));

	if (CActor *pActor = GetOwnerActor())
	{
		if (IAIObject *pAIObject=pActor->GetEntity()->GetAI())
			if (gEnv->pAISystem)
				gEnv->pAISystem->SendSignal( SIGNALFILTER_SENDER, 1, "OnReloadDone", pAIObject);
	}

	if (m_doingMagazineSwap)
	{
		const char* magazineAttachment = m_weaponsharedparams->reloadMagazineParams.magazineAttachment.c_str();
		HideCharacterAttachment(eIGS_FirstPerson, magazineAttachment, false);
		HideCharacterAttachment(eIGS_ThirdPerson, magazineAttachment, false);
		m_doingMagazineSwap = false;
	}
}
Example #3
0
//---------------------------------------------------------------------------
void CWeapon::AnimationEvent(ICharacterInstance *pCharacter, const AnimEventInstance &event)
{
	const SReloadMagazineParams& magazineParams = m_weaponsharedparams->reloadMagazineParams;

	if (magazineParams.magazineEventCRC32 == event.m_EventNameLowercaseCRC32)
	{
		int slot = (GetEntity()->GetCharacter(eIGS_FirstPerson) == pCharacter) ? eIGS_FirstPerson : eIGS_ThirdPerson;

		//Spawn effect only once (in FP the event might come twice, one for FP, one for shadow character)
		if (!m_doingMagazineSwap)
		{
			const char* helperBone = (event.m_BonePathName && event.m_BonePathName[0]) ? event.m_BonePathName : "";
			if (event.m_CustomParameter && event.m_CustomParameter[0])
			{
				EntityEffects::SpawnParticleWithEntity(GetEntity(), slot, event.m_CustomParameter, helperBone, EntityEffects::SEffectSpawnParams(ZERO));
			}
			m_doingMagazineSwap = true;
		}

		HideCharacterAttachment(slot, magazineParams.magazineAttachment.c_str(), true);
	}
}