Пример #1
0
void CHeavyMountedWeapon::Use(EntityId userId)
{
	int frameID = gEnv->pRenderer->GetFrameID();
	if (m_lastUsedFrame == frameID)
		return;

	m_lastUsedFrame = frameID;

	if (!m_owner.GetId())
	{
		StartUse(userId);
		HighlightWeapon(false);
	}
	else if (m_owner.GetId() == userId)
	{
		if (m_rippedOff || m_rippingOff)
		{
			FinishRipOff();
			DeselectAndDrop(userId);
		}
		else
		{
			StopUse(userId);
		}
	}
}
Пример #2
0
void CHeavyMountedWeapon::PostSerialize()
{
	BaseClass::PostSerialize();

	if(m_rippingOff)
	{
		m_rippingOff = false;
		m_rippedOff = true;
	}

	StartUse(GetOwnerId());
}
Пример #3
0
IMPLEMENT_RMI(CHeavyMountedWeapon, ClRipOff)
{
	IActor *pActor = gEnv->pGame->GetIGameFramework()->GetIActorSystem()->GetActor(params.ownerId);
	if(pActor && (!m_rippingOff || m_rippedOff))
	{
		SetUnMountedConfiguration();
		UnlinkMountedGun();
		FinishRipOff();
		StartUse(params.ownerId);
	}

	return true;
}
Пример #4
0
void CHeavyWeapon::Use(EntityId userId)
{
    if(m_properties.usable)
        {
            if (!m_owner.GetId())
                {
                    StartUse(userId);
                }
            else if (m_owner.GetId() == userId)
                {
                    uint32 deselectionTime = StartDeselection(false);
                    m_scheduler.TimerAction(deselectionTime, CSchedulerAction<StopUseAction>::Create(StopUseAction(this, userId)), false);
                }
        }
}
Пример #5
0
void CHeavyWeapon::PostSerialize()
{
    CWeapon::PostSerialize();
    StartUse(GetOwnerId());
}