From 0a203fdde4e818997e8a4f8a728d935214890a19 Mon Sep 17 00:00:00 2001 From: GhostIsSpooky <69561145+Salluci@users.noreply.github.com> Date: Sun, 10 Oct 2021 11:24:10 -0300 Subject: [PATCH] Medical Feedback - Stop effects on featureCamera (#8373) Co-authored-by: Kyle Mckay <5459452+kymckay@users.noreply.github.com> --- addons/medical_feedback/XEH_postInit.sqf | 21 +++++++++++++++++++ .../functions/fnc_effectHeartBeat.sqf | 6 +++++- .../functions/fnc_handleKilled.sqf | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/addons/medical_feedback/XEH_postInit.sqf b/addons/medical_feedback/XEH_postInit.sqf index 60dae8f04e..c482be9ad1 100644 --- a/addons/medical_feedback/XEH_postInit.sqf +++ b/addons/medical_feedback/XEH_postInit.sqf @@ -78,6 +78,27 @@ GVAR(bloodTickCounter) = 0; ["unconscious", _status] call EFUNC(common,setDisableUserInputStatus); }] call CBA_fnc_addPlayerEventHandler; +// Update effects for featureCamera (curator, arsenal, etc) +["featureCamera", { + params ["_unit", "_newCamera"]; + + [true] call FUNC(handleEffects); + + private _volume = missionNamespace getVariable [QEGVAR(hearing,unconsciousnessVolume), VOL_UNCONSCIOUS]; + + if (_newCamera == "") then { // switched back to player view + private _status = IS_UNCONSCIOUS(_unit); + [!_status, _unit] call EFUNC(common,setVolume); + + [QUOTE(ADDON), _volume, _status] call EFUNC(common,setHearingCapability); + + ["unconscious", _status] call EFUNC(common,setDisableUserInputStatus); + } else { // camera view + [true, _unit] call EFUNC(common,setVolume); + [QUOTE(ADDON), 1, false] call EFUNC(common,setHearingCapability); + }; +}] call CBA_fnc_addPlayerEventHandler; + // Forced say3D [QGVAR(forceSay3D), { params ["_unit", "_sound", "_distance"]; diff --git a/addons/medical_feedback/functions/fnc_effectHeartBeat.sqf b/addons/medical_feedback/functions/fnc_effectHeartBeat.sqf index 6156adb4f6..c92a377c13 100644 --- a/addons/medical_feedback/functions/fnc_effectHeartBeat.sqf +++ b/addons/medical_feedback/functions/fnc_effectHeartBeat.sqf @@ -15,8 +15,12 @@ * Public: No */ -private _heartRate = GET_HEART_RATE(ACE_player); +if (EGVAR(common,OldIsCamera)) exitWith { + TRACE_2("Ending heart beat effect - scripted camera",_heartRate,EGVAR(common,OldIsCamera)); + GVAR(heartBeatEffectRunning) = false; +}; +private _heartRate = GET_HEART_RATE(ACE_player); if (_heartRate == 0) exitWith { TRACE_1("Ending heart beat effect - zero",_heartRate); GVAR(heartBeatEffectRunning) = false; diff --git a/addons/medical_status/functions/fnc_handleKilled.sqf b/addons/medical_status/functions/fnc_handleKilled.sqf index fb695d6f2b..a78c82bf55 100644 --- a/addons/medical_status/functions/fnc_handleKilled.sqf +++ b/addons/medical_status/functions/fnc_handleKilled.sqf @@ -41,6 +41,8 @@ if (_causeOfDeath != "#scripted") then { _this set [1, _killer]; _this set [2, _instigator]; }; +} else { // in that case, call setDead manually to prevent any issues + [_unit, "#scripted"] call FUNC(setDead); }; TRACE_3("killer info",_killer,_instigator,_causeOfDeath);