diff --git a/src/xrGame/WeaponMagazined.cpp b/src/xrGame/WeaponMagazined.cpp index 1461976eb37..94828d15adf 100644 --- a/src/xrGame/WeaponMagazined.cpp +++ b/src/xrGame/WeaponMagazined.cpp @@ -96,7 +96,7 @@ void CWeaponMagazined::Load(LPCSTR section) m_sSndShotCurrent = "sndShot"; - //звуки и партиклы глушителя, еслит такой есть + //звуки и партиклы глушителя, если такой есть if (m_eSilencerStatus == ALife::eAddonAttachable || m_eSilencerStatus == ALife::eAddonPermanent) { if (pSettings->line_exist(section, "silencer_flame_particles")) @@ -532,12 +532,6 @@ void CWeaponMagazined::state_Fire(float dt) VERIFY(!m_magazine.empty()); - //Alundaio: Use fModeShotTime instead of fOneShotTime if current fire mode is 2-shot burst - float rpm = fOneShotTime; - if (GetCurrentFireMode() == 2) - rpm = modeShotTime; - //Alundaio: END - while (!m_magazine.empty() && fShotTimeCounter < 0 && (IsWorking() || m_bFireSingleShot) && (m_iQueueSize < 0 || m_iShotNum < m_iQueueSize)) { @@ -549,14 +543,11 @@ void CWeaponMagazined::state_Fire(float dt) m_bFireSingleShot = false; + //Alundaio: Use fModeShotTime instead of fOneShotTime if current fire mode is 2-shot burst //Alundaio: Cycle down RPM after two shots; used for Abakan/AN-94 - if (cycleDown == true) - { - if (m_iShotNum <= 2) - rpm = modeShotTime; - else - rpm = fOneShotTime; - } + float rpm = fOneShotTime; + if (GetCurrentFireMode() == 2 || (cycleDown == true && m_iShotNum <= 1)) + rpm = modeShotTime; fShotTimeCounter += rpm; //Alundaio: END diff --git a/src/xrGame/stalker_combat_actions.cpp b/src/xrGame/stalker_combat_actions.cpp index 9748f21540e..b071c083240 100644 --- a/src/xrGame/stalker_combat_actions.cpp +++ b/src/xrGame/stalker_combat_actions.cpp @@ -559,7 +559,7 @@ void CStalkerActionTakeCover::execute() } else { - if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.f) + if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.5f) { Fvector3 Vpos = { mem_object.m_object_params.m_position.x, object().Position().y + 1.f, mem_object.m_object_params.m_position.z }; object().sight().setup(CSightAction(SightManager::eSightTypePosition, Vpos, true)); @@ -644,7 +644,7 @@ void CStalkerActionLookOut::execute() return; //Alundaio: Prevent stalkers from staring at floor or ceiling for this action - if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.f) + if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.5f) { Fvector3 Vpos = { mem_object.m_object_params.m_position.x, object().Position().y + 1.f, mem_object.m_object_params.m_position.z }; object().sight().setup(CSightAction(SightManager::eSightTypePosition, Vpos, true)); @@ -745,7 +745,7 @@ void CStalkerActionHoldPosition::execute() m_storage->set_property(eWorldPropertyLookedOut, false); //Alundaio: Prevent stalkers from staring at floor or ceiling for this action - if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.f) + if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.5f) { Fvector3 Vpos = { mem_object.m_object_params.m_position.x, object().Position().y + 1.f, mem_object.m_object_params.m_position.z }; object().sight().setup(CSightAction(SightManager::eSightTypePosition, Vpos, true)); @@ -870,7 +870,7 @@ void CStalkerActionDetourEnemy::execute() } //Alundaio: Prevent stalkers from staring at floor or ceiling for this action - if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.f) + if (_abs(object().Position().y - mem_object.m_object_params.m_position.y) > 3.5f) { Fvector3 Vpos = { mem_object.m_object_params.m_position.x, object().Position().y + 1.f, mem_object.m_object_params.m_position.z }; object().sight().setup(CSightAction(SightManager::eSightTypePosition, Vpos, true)); diff --git a/src/xrGame/stalker_danger_in_direction_actions.cpp b/src/xrGame/stalker_danger_in_direction_actions.cpp index 27332d85f87..6d50dc224c4 100644 --- a/src/xrGame/stalker_danger_in_direction_actions.cpp +++ b/src/xrGame/stalker_danger_in_direction_actions.cpp @@ -236,6 +236,11 @@ void CStalkerActionDangerInDirectionHoldPosition::execute() // if (!mem_object.m_object) // return; + //Alundaio: + if (!object().memory().danger().selected()) + return; + //-Alundaio + Fvector position = object().memory().danger().selected()->position(); if (current_cover(m_object) < 3.f)