void CJaw::StartFire() { if (!CanFire()) return; CActor* pOwner = GetOwnerActor(); #if (USE_DEDICATED_INPUT) if (!pOwner || (!pOwner->IsPlayer() || (gEnv->bMultiplayer && strcmp(pOwner->GetEntityClassName(), "DummyPlayer") == 0))) #else if (!pOwner || !pOwner->IsPlayer()) #endif { BaseClass::StartFire(); return; } if (m_controllingRocket) return; CPlayer *ownerPlayer = GetOwnerPlayer(); if (ownerPlayer) { if(ownerPlayer->IsClient() && ownerPlayer->IsWeaponUnderWater()) { return; } ownerPlayer->StateMachineHandleEventMovement( PLAYER_EVENT_FORCEEXITSLIDE ); } if (!m_firePending && m_zm && g_pGameCVars->cl_zoomToggle > 0) { m_zoomAlreadyToggled = (m_zm->IsZoomingIn() || m_zm->IsZoomed()); } else { m_zoomAlreadyToggled = false; } if(!IsZoomingInOrOut()) { if (m_zm) m_zm->ZoomIn(); } m_fireTriggerDown = true; m_firePending = true; }