ACE3/addons/gestures/XEH_postInit.sqf

39 lines
1.4 KiB
Plaintext
Raw Normal View History

#include "script_component.hpp"
2015-10-26 15:49:39 +00:00
if (!hasInterface) exitWith {};
#include "key.sqf"
// reload mutex, you can't play signal while reloading
GVAR(ReloadMutex) = true;
2015-10-26 15:49:39 +00:00
// Event for main display to be loaded:
["mainDisplayLoaded", {
// handle reloading
(findDisplay 46) displayAddEventHandler ["KeyDown", {
if ((_this select 1) in actionKeys "ReloadMagazine") then {
2015-10-26 15:49:39 +00:00
if ((isNull ACE_player) || {!alive ACE_player}) exitWith {false};
2015-11-20 21:36:37 +00:00
private _weapon = currentWeapon ACE_player;
if (_weapon != "") then {
GVAR(ReloadMutex) = false;
2015-11-20 21:36:37 +00:00
private _gesture = getText (configfile >> "CfgWeapons" >> _weapon >> "reloadAction");
private _isLauncher = _weapon isKindOf ["Launcher", (configFile >> "CfgWeapons")];
private _config = ["CfgGesturesMale", "CfgMovesMaleSdr"] select _isLauncher;
private _duration = getNumber (configfile >> _config >> "States" >> _gesture >> "speed");
if (_duration != 0) then {
_duration = if (_duration < 0) then { abs _duration } else { 1 / _duration };
} else {
_duration = 3;
};
2015-10-26 15:49:39 +00:00
TRACE_2("Reloading, blocking gestures",_weapon,_duration);
[{GVAR(ReloadMutex) = true;}, [], _duration] call EFUNC(common,waitAndExecute);
};
};
false
2015-10-26 15:49:39 +00:00
}];
}] call EFUNC(common,addEventHandler);