/* * Author: BaerMitUmlaut * Handles the bleeding effect. * * Arguments: * 0: Enable effect * 1: Current bloodloss (in l/s) * * Return Value: * None */ #include "script_component.hpp" params ["_enable", "_bloodloss"]; if (isNull findDisplay 46) exitWith {}; private _controls = uiNamespace getVariable [QGVAR(bloodControls), [controlNull, controlNull]]; _controls params ["_blood1", "_blood2"]; if (!_enable) exitWith { _blood1 ctrlSetFade 1; _blood2 ctrlSetFade 1; _blood1 ctrlCommit 0; _blood2 ctrlCommit 0; }; // Initialize controls if (isNull _blood1) then { _blood1 = findDisplay 46 ctrlCreate ["RscPicture", -1]; _blood2 = findDisplay 46 ctrlCreate ["RscPicture", -1]; _blood1 ctrlSetText QPATHTOF(data\blood1.paa); _blood2 ctrlSetText QPATHTOF(data\blood2.paa); private _pos = [safeZoneXAbs, safeZoneY, safeZoneWAbs, safeZoneH]; _blood1 ctrlSetPosition _pos; _blood2 ctrlSetPosition _pos; _blood1 ctrlSetFade 1; _blood2 ctrlSetFade 1; _blood1 ctrlCommit 0; _blood2 ctrlCommit 0; uiNamespace setVariable [QGVAR(bloodControls), [_blood1, _blood2]]; }; private _fade = linearConversion [0, 0.002, _bloodloss, 1, 0, true]; private _switchBloodFadeInfo = missionNamespace getVariable [QGVAR(switchBloodFadeInfo), [0, 0]]; _switchBloodFadeInfo params ["_tickCounter", "_lastBloodloss"]; if (_tickCounter == 2) then { if (ctrlFade _blood1 > ctrlFade _blood2) then { _blood1 ctrlSetFade _fade; _blood2 ctrlSetFade 1; } else { _blood1 ctrlSetFade 1; _blood2 ctrlSetFade _fade; }; _blood1 ctrlCommit 3; _blood2 ctrlCommit 3; GVAR(switchBloodFadeInfo) = [0, _bloodloss]; } else { GVAR(switchBloodFadeInfo) = [_tickCounter + 1, _bloodloss]; }; // Speed up fade on sudden changes if (abs (_lastBloodloss - _bloodloss) > 0.001) then { _blood1 ctrlCommit 1; _blood2 ctrlCommit 1; };