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); } } }
void CHeavyMountedWeapon::PostSerialize() { BaseClass::PostSerialize(); if(m_rippingOff) { m_rippingOff = false; m_rippedOff = true; } StartUse(GetOwnerId()); }
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; }
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); } } }
void CHeavyWeapon::PostSerialize() { CWeapon::PostSerialize(); StartUse(GetOwnerId()); }