From 8021ce42156d8282d7aff0bcc22e241c061fcf01 Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 18:09:05 +0100 Subject: [PATCH 1/6] New function "setAimCoef" at common, change ace_advanced_fatigue_fnc_handleEffects to use new function instead of setCustomAimCoef --- .../functions/fnc_handleEffects.sqf | 6 +-- addons/common/XEH_PREP.hpp | 1 + addons/common/functions/fnc_setAimCoef.sqf | 50 +++++++++++++++++++ 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 addons/common/functions/fnc_setAimCoef.sqf diff --git a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf index 111727c826e..cd1dc5c689a 100644 --- a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf +++ b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf @@ -90,12 +90,12 @@ if (_overexhausted) then { switch (stance _unit) do { case ("CROUCH"): { - _unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 0.1); + [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 0.1] call EFUNC(common,setAimCoef); }; case ("PRONE"): { - _unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 2.0); + [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 2.0] call EFUNC(common,setAimCoef); }; default { - _unit setCustomAimCoef (1.5 + _fatigue ^ 2 * 3.0); + [_unit, QUOTE(ADDON), 1.5 + _fatigue ^ 2 * 3.0] call EFUNC(common,setAimCoef); }; }; diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index d8c91ec843e..99e3ec63dea 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -142,6 +142,7 @@ PREP(runTests); PREP(sanitizeString); PREP(sendRequest); PREP(serverLog); +PREP(setAimCoef); PREP(setApproximateVariablePublic); PREP(setDefinedVariable); PREP(setDisableUserInputStatus); diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf new file mode 100644 index 00000000000..23898a3f3bd --- /dev/null +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -0,0 +1,50 @@ +/* + * Author: xrufix, Glowbal + * Handle set AimCoef calls. Will use highest available setting. + * + * Arguments: + * 0: id + * 1: settings + * 2: add [true] OR remove [false] (default: true) + * + * Return Value: + * None + * + * Example: + * [player,"ace_advanced_fatigue", 1, true] call ace_common_fnc_setAimCoef + * + * Public: Yes + */ +#include "script_component.hpp" + +params ["_unit","_id", "_setting", ["_add", true]]; + +private _exists = false; +private _highestCoef = 1; +private _map = _unit getVariable [QGVAR(setAimCoefMap), []]; + +_map = _map select { + _x params ["_xID", "_xSetting"]; + if (_id == _xID) then { + _exists = true; + if (_add) then { + _x set [1, _setting]; + _highestCoef = _highestCoef max _setting; + true + } else { + false + }; + } else { + _highestCoef = _highestCoef max _xSetting; + true + }; +}; + +if (!exists && _add) then { + _highestCoef = _highestCoef max _setting; + _map pushBack [_id, _setting]; +}; + +// Update the value +_unit setVariable [QGVAR(setAimCoefMap), _map]; +_unit setCustomAimCoef _highestCoef; From e1f919303b726f1a56e690691b499f9b42e2ea86 Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 19:06:00 +0100 Subject: [PATCH 2/6] Fix typo. --- addons/common/functions/fnc_setAimCoef.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index 23898a3f3bd..baf1ef53c45 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -3,9 +3,10 @@ * Handle set AimCoef calls. Will use highest available setting. * * Arguments: - * 0: id - * 1: settings - * 2: add [true] OR remove [false] (default: true) + * 0: unit + * 1: id + * 2: settings + * 3: add [true] OR remove [false] (default: true) * * Return Value: * None @@ -40,7 +41,7 @@ _map = _map select { }; }; -if (!exists && _add) then { +if (!_exists && _add) then { _highestCoef = _highestCoef max _setting; _map pushBack [_id, _setting]; }; From d6af0ea0eb1ce14bb8c95e95fe3029e38dee86e4 Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 19:27:51 +0100 Subject: [PATCH 3/6] Replace tabs with spaces. --- addons/common/functions/fnc_setAimCoef.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index baf1ef53c45..69fa8f8b267 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -42,8 +42,8 @@ _map = _map select { }; if (!_exists && _add) then { - _highestCoef = _highestCoef max _setting; - _map pushBack [_id, _setting]; + _highestCoef = _highestCoef max _setting; + _map pushBack [_id, _setting]; }; // Update the value From 6b0ee1de09358b0aa4c9837ac200ec529e9847bd Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 20:00:51 +0100 Subject: [PATCH 4/6] Better readability. --- addons/common/functions/fnc_setAimCoef.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index 69fa8f8b267..9ee5d38b157 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -18,7 +18,7 @@ */ #include "script_component.hpp" -params ["_unit","_id", "_setting", ["_add", true]]; +params ["_unit", "_id", "_setting", ["_add", true]]; private _exists = false; private _highestCoef = 1; From 7c4adee2e7ccea11984cd428eaf3235a7ec01755 Mon Sep 17 00:00:00 2001 From: rufix Date: Sun, 10 Dec 2017 11:41:05 +0100 Subject: [PATCH 5/6] Prepare for merging with #5773. --- addons/advanced_fatigue/functions/fnc_handleEffects.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf index cd1dc5c689a..dd973afe29b 100644 --- a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf +++ b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf @@ -90,12 +90,12 @@ if (_overexhausted) then { switch (stance _unit) do { case ("CROUCH"): { - [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 0.1] call EFUNC(common,setAimCoef); + [_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 0.1) * GVAR(swayFactor)] call EFUNC(common,setAimCoef); }; case ("PRONE"): { - [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 2.0] call EFUNC(common,setAimCoef); + [_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 2.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef); }; default { - [_unit, QUOTE(ADDON), 1.5 + _fatigue ^ 2 * 3.0] call EFUNC(common,setAimCoef); + [_unit, QUOTE(ADDON), (1.5 + _fatigue ^ 2 * 3.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef); }; }; From b6b58d4860f4c08176d2e00d12df61d96dcb3705 Mon Sep 17 00:00:00 2001 From: rufix Date: Tue, 10 Apr 2018 03:55:28 +0200 Subject: [PATCH 6/6] Update headers --- addons/common/functions/fnc_setAimCoef.sqf | 12 ++++++------ addons/common/functions/fnc_setHearingCapability.sqf | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index 9ee5d38b157..7c9352c3bee 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -1,18 +1,18 @@ /* * Author: xrufix, Glowbal - * Handle set AimCoef calls. Will use highest available setting. + * Handle set AimCoef calls. Will use the highest available setting. * * Arguments: - * 0: unit - * 1: id - * 2: settings - * 3: add [true] OR remove [false] (default: true) + * 0: Unit + * 1: Unique ID + * 2: Aim coefficient (a higher value causes more shaking) + * 3: Add (true) or remove (false) (default: true) * * Return Value: * None * * Example: - * [player,"ace_advanced_fatigue", 1, true] call ace_common_fnc_setAimCoef + * [player, "ace_advanced_fatigue", 1, true] call ace_common_fnc_setAimCoef * * Public: Yes */ diff --git a/addons/common/functions/fnc_setHearingCapability.sqf b/addons/common/functions/fnc_setHearingCapability.sqf index 5b1e7a5a3a5..ab5edcfc41f 100644 --- a/addons/common/functions/fnc_setHearingCapability.sqf +++ b/addons/common/functions/fnc_setHearingCapability.sqf @@ -3,9 +3,9 @@ * Handle set volume calls. Will use the lowest available volume setting. * * Arguments: - * 0: id - * 1: settings - * 2: add [true] OR remove [false] (default: true) + * 0: ID + * 1: Settings + * 2: Add (true) or remove (false) (default: true) * * Return Value: * None