From d64f0f30f3d589c5800a97cc57a5744c81cb2be3 Mon Sep 17 00:00:00 2001 From: LinkIsGrim Date: Thu, 8 Feb 2024 19:17:05 -0300 Subject: [PATCH] Night Vision - Use slotItemChanged event --- addons/nightvision/XEH_PREP.hpp | 2 +- addons/nightvision/XEH_postInit.sqf | 4 +-- .../functions/fnc_onLoadoutChanged.sqf | 25 --------------- .../functions/fnc_onSlotItemChanged.sqf | 32 +++++++++++++++++++ 4 files changed, 35 insertions(+), 28 deletions(-) delete mode 100644 addons/nightvision/functions/fnc_onLoadoutChanged.sqf create mode 100644 addons/nightvision/functions/fnc_onSlotItemChanged.sqf diff --git a/addons/nightvision/XEH_PREP.hpp b/addons/nightvision/XEH_PREP.hpp index 988cfaa623..793ae63b9e 100644 --- a/addons/nightvision/XEH_PREP.hpp +++ b/addons/nightvision/XEH_PREP.hpp @@ -4,7 +4,7 @@ PREP(initModule); PREP(nonDedicatedFix); PREP(onCameraViewChanged); PREP(onFiredPlayer); -PREP(onLoadoutChanged); +PREP(onSlotItemChanged); PREP(onVisionModeChanged); PREP(pfeh); PREP(refreshGoggleType); diff --git a/addons/nightvision/XEH_postInit.sqf b/addons/nightvision/XEH_postInit.sqf index 9bfee4d166..f8d8164672 100644 --- a/addons/nightvision/XEH_postInit.sqf +++ b/addons/nightvision/XEH_postInit.sqf @@ -27,12 +27,13 @@ GVAR(isUsingMagnification) = false; TRACE_4("settingsInitialized",GVAR(disableNVGsWithSights),GVAR(fogScaling),GVAR(noiseScaling),GVAR(effectScaling)); ["visionMode", LINKFUNC(onVisionModeChanged), false] call CBA_fnc_addPlayerEventHandler; - ["loadout", LINKFUNC(onLoadoutChanged), true] call CBA_fnc_addPlayerEventHandler; ["cameraView", LINKFUNC(onCameraViewChanged), true] call CBA_fnc_addPlayerEventHandler; ["vehicle", LINKFUNC(refreshGoggleType), false] call CBA_fnc_addPlayerEventHandler; ["turret", LINKFUNC(refreshGoggleType), true] call CBA_fnc_addPlayerEventHandler; ["ACE_controlledUAV", LINKFUNC(refreshGoggleType)] call CBA_fnc_addEventHandler; + ["CAManBase", "SlotItemChanged", LINKFUNC(onSlotItemChanged)] call CBA_fnc_addClassEventHandler; + // handle only brightness if effects are disabled GVAR(ppEffectNVGBrightness) = ppEffectCreate ["ColorCorrections", 1236]; GVAR(ppEffectNVGBrightness) ppEffectForceInNVG true; @@ -94,4 +95,3 @@ WARNING("Debug mouse wheel action enabled, this should NOT be in a final release }; }] call CBA_fnc_addDisplayHandler; #endif - diff --git a/addons/nightvision/functions/fnc_onLoadoutChanged.sqf b/addons/nightvision/functions/fnc_onLoadoutChanged.sqf deleted file mode 100644 index ff4baadd4b..0000000000 --- a/addons/nightvision/functions/fnc_onLoadoutChanged.sqf +++ /dev/null @@ -1,25 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Dslyecxi, PabstMirror - * Refreshes nvg effect if switching NVG goggles. - * - * Arguments: - * 0: Player - * - * Return Value: - * None - * - * Example: - * [player] call ace_nightvision_fnc_onLoadoutChanged - * - * Public: No - */ - -params ["_player"]; -TRACE_1("onLoadoutChange",_player); - -private _newHMD = hmd _player; -if (_newHMD != GVAR(playerHMD)) then { - GVAR(playerHMD) = _newHMD; - [] call FUNC(refreshGoggleType); -}; diff --git a/addons/nightvision/functions/fnc_onSlotItemChanged.sqf b/addons/nightvision/functions/fnc_onSlotItemChanged.sqf new file mode 100644 index 0000000000..951286e08e --- /dev/null +++ b/addons/nightvision/functions/fnc_onSlotItemChanged.sqf @@ -0,0 +1,32 @@ +#include "..\script_component.hpp" +/* + * Author: Dslyecxi, PabstMirror + * Refreshes nvg effect if switching NVG goggles. + * + * Arguments: + * 0: Unit + * 1: Slot item + * 2: Slot number + * 3: Item assigned + * + * Return Value: + * None + * + * Example: + * [player] call ace_nightvision_fnc_onSlotItemChanged + * + * Public: No + */ + +params ["_unit", "_item", "_slot", "_assign"]; +TRACE_4("onSlotItemChange",_unit,_item,_slot,_assign); + +if (_unit != ACE_player || _slot != TYPE_HMD) exitWith {}; +if (!_assign) exitWith { + GVAR(playerHMD) = ""; +}; + +if (_item != GVAR(playerHMD)) then { + GVAR(playerHMD) = _item; + [] call FUNC(refreshGoggleType); +};