mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Add toggle flashlight and NVG zeus modules (#4556)
* Add toggle flashlight and NVG modules * Remove excessive spaces in moduleToggleNvg * Fix indentation and typos to fit review * Add an option to add gear, fix headers * Change category to utility * Add QOL improvement suggested by pabst * Fix locality issues * Remove locality check before enableFlashlight targetEvent * Remove locality check before addWeaponItem targetEvent * Add a player check in moduleToggleNVG, change modules category * Add the same QOL in toggleNVG than in toggleFlashlight
This commit is contained in:
parent
a783e6319f
commit
1ba330e853
@ -123,6 +123,7 @@ if (isServer) then {
|
|||||||
[QGVAR(switchMove), {(_this select 0) switchMove (_this select 1)}] call CBA_fnc_addEventHandler;
|
[QGVAR(switchMove), {(_this select 0) switchMove (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||||
[QGVAR(setVectorDirAndUp), {(_this select 0) setVectorDirAndUp (_this select 1)}] call CBA_fnc_addEventHandler;
|
[QGVAR(setVectorDirAndUp), {(_this select 0) setVectorDirAndUp (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||||
[QGVAR(setVanillaHitPointDamage), {(_this select 0) setHitPointDamage (_this select 1)}] call CBA_fnc_addEventHandler;
|
[QGVAR(setVanillaHitPointDamage), {(_this select 0) setHitPointDamage (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||||
|
[QGVAR(addWeaponItem), {(_this select 0) addWeaponItem [(_this select 1), (_this select 2)]}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
// Request framework
|
// Request framework
|
||||||
[QGVAR(requestCallback), FUNC(requestCallback)] call CBA_fnc_addEventHandler;
|
[QGVAR(requestCallback), FUNC(requestCallback)] call CBA_fnc_addEventHandler;
|
||||||
|
@ -221,6 +221,18 @@ class CfgVehicles {
|
|||||||
function = QFUNC(moduleUnconscious);
|
function = QFUNC(moduleUnconscious);
|
||||||
icon = QPATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa);
|
icon = QPATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa);
|
||||||
};
|
};
|
||||||
|
class GVAR(moduleToggleNvg): GVAR(moduleBase) {
|
||||||
|
curatorCanAttach = 1;
|
||||||
|
category = QGVAR(AI);
|
||||||
|
displayName = CSTRING(moduleToggleNVG_DisplayName);
|
||||||
|
curatorInfoType = QGVAR(RscToggleNvg);
|
||||||
|
};
|
||||||
|
class GVAR(moduleToggleFlashlight): GVAR(moduleBase) {
|
||||||
|
curatorCanAttach = 1;
|
||||||
|
category = QGVAR(AI);
|
||||||
|
displayName = CSTRING(moduleToggleFlashlight_DisplayName);
|
||||||
|
curatorInfoType = QGVAR(RscToggleFlashlight);
|
||||||
|
};
|
||||||
class GVAR(AddFullArsenal): GVAR(moduleBase) {
|
class GVAR(AddFullArsenal): GVAR(moduleBase) {
|
||||||
curatorCanAttach = 1;
|
curatorCanAttach = 1;
|
||||||
category = QGVAR(Utility);
|
category = QGVAR(Utility);
|
||||||
|
@ -24,6 +24,8 @@ PREP(moduleSuppressiveFire);
|
|||||||
PREP(moduleSuppressiveFireLocal);
|
PREP(moduleSuppressiveFireLocal);
|
||||||
PREP(moduleSurrender);
|
PREP(moduleSurrender);
|
||||||
PREP(moduleTeleportPlayers);
|
PREP(moduleTeleportPlayers);
|
||||||
|
PREP(moduleToggleFlashlight);
|
||||||
|
PREP(moduleToggleNvg);
|
||||||
PREP(moduleUnconscious);
|
PREP(moduleUnconscious);
|
||||||
PREP(moduleZeusSettings);
|
PREP(moduleZeusSettings);
|
||||||
PREP(showMessage);
|
PREP(showMessage);
|
||||||
@ -37,4 +39,6 @@ PREP(ui_groupSide);
|
|||||||
PREP(ui_patrolArea);
|
PREP(ui_patrolArea);
|
||||||
PREP(ui_searchArea);
|
PREP(ui_searchArea);
|
||||||
PREP(ui_teleportPlayers);
|
PREP(ui_teleportPlayers);
|
||||||
|
PREP(ui_toggleFlashlight);
|
||||||
|
PREP(ui_toggleNvg);
|
||||||
PREP(zeusAttributes);
|
PREP(zeusAttributes);
|
||||||
|
@ -16,6 +16,10 @@ QGVAR(GlobalSkillAI) addPublicVariableEventHandler FUNC(moduleGlobalSetSkill);
|
|||||||
[QGVAR(moduleSearchNearby), CBA_fnc_searchNearby] call CBA_fnc_addEventHandler;
|
[QGVAR(moduleSearchNearby), CBA_fnc_searchNearby] call CBA_fnc_addEventHandler;
|
||||||
[QGVAR(moduleSearchArea), CBA_fnc_taskSearchArea] call CBA_fnc_addEventHandler;
|
[QGVAR(moduleSearchArea), CBA_fnc_taskSearchArea] call CBA_fnc_addEventHandler;
|
||||||
[QGVAR(suppressiveFire), LINKFUNC(moduleSuppressiveFireLocal)] call CBA_fnc_addEventHandler;
|
[QGVAR(suppressiveFire), LINKFUNC(moduleSuppressiveFireLocal)] call CBA_fnc_addEventHandler;
|
||||||
|
[QGVAR(enableFlashlight), {
|
||||||
|
params ["_unit", "_mode"];
|
||||||
|
_unit enableGunLights _mode;
|
||||||
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
// Editable object commands must be ran on server, this events are used in the respective module
|
// Editable object commands must be ran on server, this events are used in the respective module
|
||||||
if (isServer) then {
|
if (isServer) then {
|
||||||
|
@ -12,6 +12,9 @@ class CfgPatches {
|
|||||||
QGVAR(modulePatrolArea),
|
QGVAR(modulePatrolArea),
|
||||||
QGVAR(moduleSearchArea),
|
QGVAR(moduleSearchArea),
|
||||||
QGVAR(moduleSearchNearby),
|
QGVAR(moduleSearchNearby),
|
||||||
|
QGVAR(moduleTeleportPlayers),
|
||||||
|
QGVAR(moduleToggleNvg),
|
||||||
|
QGVAR(moduleToggleFlashlight),
|
||||||
QGVAR(moduleSimulation),
|
QGVAR(moduleSimulation),
|
||||||
QGVAR(moduleSuppressiveFire),
|
QGVAR(moduleSuppressiveFire),
|
||||||
QGVAR(AddFullArsenal),
|
QGVAR(AddFullArsenal),
|
||||||
|
64
addons/zeus/functions/fnc_moduleToggleFlashlight.sqf
Normal file
64
addons/zeus/functions/fnc_moduleToggleFlashlight.sqf
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* Author: alganthe
|
||||||
|
* Zeus module function to toggle Flashlights
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Logic object <OBJECT>
|
||||||
|
* 1: Toggle mode <BOOL>
|
||||||
|
* 2: Add gear <BOOL>
|
||||||
|
* 3: Target of the toggle <SCALAR> 0: blufor; 1: opfor; 2: indep; 3: civ; 4: selected group
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [LOGIC, true, true, 4] call ace_zeus_fnc_moduleToggleFlashlight
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_logic", "_toggle", "_addGear", "_target"];
|
||||||
|
|
||||||
|
private _units = [];
|
||||||
|
|
||||||
|
if (_target == 4) then {
|
||||||
|
_units = units (attachedTo _logic);
|
||||||
|
} else {
|
||||||
|
_units = allUnits select {alive _x && {side _x == ([blufor, opfor, independent, civilian] select _target)}},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_toggle) then {
|
||||||
|
{
|
||||||
|
// enableGunLights doesn't work on players
|
||||||
|
if !(isPlayer _x || {(currentWeapon _x) isEqualTo ""}) then {
|
||||||
|
private _pointer = (_x weaponAccessories (currentWeapon _x)) select 1;
|
||||||
|
|
||||||
|
if (!(_pointer isEqualTo "") && {isNull (configfile >> "CfgWeapons" >> _pointer >> "ItemInfo" >> "Pointer")}) then {
|
||||||
|
[QGVAR(enableFlashlight), [_x, "forceOn"], _x] call CBA_fnc_targetEvent;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (_addGear) then {
|
||||||
|
// Retrieve compatible items for the pointer slot
|
||||||
|
private _pointerSlotCompatible = [currentWeapon _x, "pointer"] call CBA_fnc_compatibleItems;
|
||||||
|
|
||||||
|
// Get flashlights from the array above and select the first one
|
||||||
|
private _flashlight = (_pointerSlotCompatible select {isNull (configfile >> "CfgWeapons" >> _x >> "ItemInfo" >> "Pointer")}) select 0;
|
||||||
|
|
||||||
|
[QEGVAR(common,addWeaponItem), [_x, (currentWeapon _x), _flashlight], _x] call CBA_fnc_targetEvent;
|
||||||
|
[QGVAR(enableFlashlight), [_x, "forceOn"], _x] call CBA_fnc_targetEvent;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} foreach _units;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
if !(isPlayer _x || {(currentWeapon _x) isEqualTo ""}) then {
|
||||||
|
[QGVAR(enableFlashlight), [_x, "forceOff"], _x] call CBA_fnc_targetEvent;
|
||||||
|
};
|
||||||
|
} foreach _units;
|
||||||
|
};
|
||||||
|
|
||||||
|
deleteVehicle _logic;
|
69
addons/zeus/functions/fnc_moduleToggleNvg.sqf
Normal file
69
addons/zeus/functions/fnc_moduleToggleNvg.sqf
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* Author: alganthe
|
||||||
|
* Zeus module function to toggle NVGs
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Logic object <OBJECT>
|
||||||
|
* 1: Toggle mode <BOOL>
|
||||||
|
* 2: Target of the toggle <SCALAR> 0: blufor; 1: opfor; 2: indep; 3: civ; 4: selected group
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [LOGIC, true, 4] call ace_zeus_fnc_moduleToggleNvg
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_logic", "_toggle", "_target"];
|
||||||
|
|
||||||
|
private _units = [];
|
||||||
|
|
||||||
|
if (_target == 4) then {
|
||||||
|
_units = units (attachedTo _logic);
|
||||||
|
} else {
|
||||||
|
_units = allUnits select {alive _x && {side _x == ([blufor, opfor, independent, civilian] select _target)}},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_toggle) then {
|
||||||
|
{
|
||||||
|
if (!isplayer _x && {hmd _x isEqualTo ""}) then {
|
||||||
|
private _cfgArray = getArray (configFile >> 'CfgVehicles' >> typeOf _x >>'linkedItems');
|
||||||
|
|
||||||
|
private _nvgClass = _cfgArray select {_x isKindOf ["NVGoggles",(configFile >> "CfgWeapons")]};
|
||||||
|
private _nvgHelmet =_cfgArray select {count (getArray (configFile >> "CfgWeapons" >> _x >> "subItems")) > 0};
|
||||||
|
|
||||||
|
// Can't have more than 1 assigned by default
|
||||||
|
if (count _nvgClass == 1 || {count _nvgHelmet == 1}) then {
|
||||||
|
if (count _nvgHelmet == 1) then {
|
||||||
|
_x addHeadgear (_nvgHelmet select 0);
|
||||||
|
} else {
|
||||||
|
_x linkItem (_nvgClass select 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
} else {
|
||||||
|
_x linkItem "NVGoggles";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} foreach _units;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
if (!isplayer _x) then {
|
||||||
|
private _cfgArray = getArray (configFile >> 'CfgVehicles' >> typeOf _x >>'linkedItems');
|
||||||
|
|
||||||
|
private _nvgHelmet =_cfgArray select {count (getArray (configFile >> "CfgWeapons" >> _x >> "subItems")) > 0};
|
||||||
|
|
||||||
|
if (count _nvgHelmet == 1) then {
|
||||||
|
removeHeadgear _x;
|
||||||
|
} else {
|
||||||
|
_x unlinkItem (hmd _x);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} foreach _units;
|
||||||
|
};
|
||||||
|
|
||||||
|
deleteVehicle _logic;
|
126
addons/zeus/functions/fnc_ui_ToggleNvg.sqf
Normal file
126
addons/zeus/functions/fnc_ui_ToggleNvg.sqf
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
/*
|
||||||
|
* Author: alganthe
|
||||||
|
* Initalises the `Toggle NVGs` zeus module display
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Nvg toggle controls group <CONTROL>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* onSetFocus = "_this call ace_zeus_fnc_ui_toggleNvg"
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
disableSerialization;
|
||||||
|
|
||||||
|
params ["_control"];
|
||||||
|
|
||||||
|
//Generic Init:
|
||||||
|
private _display = ctrlparent _control;
|
||||||
|
private _ctrlButtonOK = _display displayctrl 1; //IDC_OK
|
||||||
|
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
|
||||||
|
TRACE_1("logicObject",_logic);
|
||||||
|
|
||||||
|
_control ctrlRemoveAllEventHandlers "setFocus";
|
||||||
|
|
||||||
|
private _unit = effectiveCommander (attachedTo _logic);
|
||||||
|
|
||||||
|
// Handles errors
|
||||||
|
scopeName "Main";
|
||||||
|
private _fnc_errorAndClose = {
|
||||||
|
params ["_msg"];
|
||||||
|
_display closeDisplay 0;
|
||||||
|
deleteVehicle _logic;
|
||||||
|
[_msg] call EFUNC(common,displayTextStructured);
|
||||||
|
breakOut "Main";
|
||||||
|
};
|
||||||
|
|
||||||
|
if !(isNull _unit) then {
|
||||||
|
switch (false) do {
|
||||||
|
case (_unit isKindOf "CAManBase"): {
|
||||||
|
[LSTRING(OnlyInfantry)] call _fnc_errorAndClose;
|
||||||
|
};
|
||||||
|
case (alive _unit): {
|
||||||
|
[LSTRING(OnlyAlive)] call _fnc_errorAndClose;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//Specific on-load stuff:
|
||||||
|
private _comboBox = _display displayCtrl 92855;
|
||||||
|
private _comboBox2 = _display displayCtrl 92856;
|
||||||
|
|
||||||
|
{
|
||||||
|
_comboBox lbSetValue [_comboBox lbAdd (_x select 0), _x select 1];
|
||||||
|
} forEach [
|
||||||
|
[localize ELSTRING(common,Disabled), 0],
|
||||||
|
[localize ELSTRING(common,Enabled), 1]
|
||||||
|
];
|
||||||
|
|
||||||
|
if (isNull _unit) then {
|
||||||
|
{
|
||||||
|
_comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1];
|
||||||
|
} forEach [
|
||||||
|
["BLUFOR", 0],
|
||||||
|
["OPFOR", 1],
|
||||||
|
["INDEP", 2],
|
||||||
|
["CIV", 3]
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
_comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1];
|
||||||
|
} forEach [
|
||||||
|
[localize LSTRING(moduleToggleNVG_SelectedGroup), 4],
|
||||||
|
["BLUFOR", 0],
|
||||||
|
["OPFOR", 1],
|
||||||
|
["INDEP", 2],
|
||||||
|
["CIV", 3]
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
private _enabledDefault = false;
|
||||||
|
if (!isNull _unit) then {
|
||||||
|
_enabledDefault = !(hmd _unit isEqualTo "");
|
||||||
|
};
|
||||||
|
_comboBox lbSetCurSel ([0,1] select _enabledDefault);
|
||||||
|
_comboBox2 lbSetCurSel 0;
|
||||||
|
|
||||||
|
private _fnc_onUnload = {
|
||||||
|
params ["_display"];
|
||||||
|
|
||||||
|
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
|
||||||
|
if (isNull _logic) exitWith {};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
private _fnc_onConfirm = {
|
||||||
|
params [["_ctrlButtonOK", controlNull, [controlNull]]];
|
||||||
|
|
||||||
|
private _display = ctrlparent _ctrlButtonOK;
|
||||||
|
if (isNull _display) exitWith {};
|
||||||
|
|
||||||
|
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
|
||||||
|
if (isNull _logic) exitWith {};
|
||||||
|
|
||||||
|
private _combo1 = _display displayCtrl 92855;
|
||||||
|
private _combo2 = _display displayCtrl 92856;
|
||||||
|
|
||||||
|
private _toggle = _combo1 lbValue (lbCurSel _combo1);
|
||||||
|
private _target = _combo2 lbValue (lbCurSel _combo2);
|
||||||
|
|
||||||
|
private _toggle = [
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
] select (_toggle == 1);
|
||||||
|
|
||||||
|
[_logic, _toggle, _target] call FUNC(moduleToggleNvg);
|
||||||
|
};
|
||||||
|
|
||||||
|
_display displayAddEventHandler ["unload", _fnc_onUnload];
|
||||||
|
_ctrlButtonOK ctrlAddEventHandler ["buttonclick", _fnc_onConfirm];
|
143
addons/zeus/functions/fnc_ui_toggleFlashlight.sqf
Normal file
143
addons/zeus/functions/fnc_ui_toggleFlashlight.sqf
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
/*
|
||||||
|
* Author: alganthe
|
||||||
|
* Initalises the `Toggle Flashlights` zeus module display
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Flashlight toggle controls group <CONTROL>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* onSetFocus = "_this call ace_zeus_fnc_ui_toggleFLashlight"
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
disableSerialization;
|
||||||
|
|
||||||
|
params ["_control"];
|
||||||
|
|
||||||
|
//Generic Init:
|
||||||
|
private _display = ctrlparent _control;
|
||||||
|
private _ctrlButtonOK = _display displayctrl 1; //IDC_OK
|
||||||
|
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
|
||||||
|
TRACE_1("logicObject",_logic);
|
||||||
|
|
||||||
|
_control ctrlRemoveAllEventHandlers "setFocus";
|
||||||
|
|
||||||
|
private _unit = effectiveCommander (attachedTo _logic);
|
||||||
|
|
||||||
|
// Handles errors
|
||||||
|
scopeName "Main";
|
||||||
|
private _fnc_errorAndClose = {
|
||||||
|
params ["_msg"];
|
||||||
|
_display closeDisplay 0;
|
||||||
|
deleteVehicle _logic;
|
||||||
|
[_msg] call EFUNC(common,displayTextStructured);
|
||||||
|
breakOut "Main";
|
||||||
|
};
|
||||||
|
|
||||||
|
if !(isNull _unit) then {
|
||||||
|
switch (false) do {
|
||||||
|
case (_unit isKindOf "CAManBase"): {
|
||||||
|
[LSTRING(OnlyInfantry)] call _fnc_errorAndClose;
|
||||||
|
};
|
||||||
|
case (alive _unit): {
|
||||||
|
[LSTRING(OnlyAlive)] call _fnc_errorAndClose;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//Specific on-load stuff:
|
||||||
|
private _comboBox = _display displayCtrl 56218;
|
||||||
|
private _comboBox2 = _display displayCtrl 56219;
|
||||||
|
private _comboBox3 = _display displayCtrl 56220;
|
||||||
|
|
||||||
|
{
|
||||||
|
_comboBox lbSetValue [_comboBox lbAdd (_x select 0), _x select 1];
|
||||||
|
} forEach [
|
||||||
|
[localize ELSTRING(common,Disabled), 0],
|
||||||
|
[localize ELSTRING(common,Enabled), 1]
|
||||||
|
];
|
||||||
|
|
||||||
|
if (isNull _unit) then {
|
||||||
|
{
|
||||||
|
_comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1];
|
||||||
|
} forEach [
|
||||||
|
["BLUFOR", 0],
|
||||||
|
["OPFOR", 1],
|
||||||
|
["INDEP", 2],
|
||||||
|
["CIV", 3]
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
_comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1];
|
||||||
|
} forEach [
|
||||||
|
[localize LSTRING(moduleToggleNVG_SelectedGroup), 4],
|
||||||
|
["BLUFOR", 0],
|
||||||
|
["OPFOR", 1],
|
||||||
|
["INDEP", 2],
|
||||||
|
["CIV", 3]
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
_comboBox3 lbSetValue [_comboBox3 lbAdd (_x select 0), _x select 1];
|
||||||
|
} foreach [
|
||||||
|
[localize ELSTRING(common,Disabled), 0],
|
||||||
|
[localize ELSTRING(common,Enabled), 1]
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
private _enabledDefault = false;
|
||||||
|
if (!isNull _unit) then {
|
||||||
|
_enabledDefault = _unit isFlashlightOn (currentWeapon _unit);
|
||||||
|
};
|
||||||
|
_comboBox lbSetCurSel ([0,1] select _enabledDefault);
|
||||||
|
_comboBox2 lbSetCurSel 0;
|
||||||
|
_comboBox3 lbSetCurSel 0;
|
||||||
|
|
||||||
|
private _fnc_onUnload = {
|
||||||
|
params ["_display"];
|
||||||
|
|
||||||
|
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
|
||||||
|
if (isNull _logic) exitWith {};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
private _fnc_onConfirm = {
|
||||||
|
params [["_ctrlButtonOK", controlNull, [controlNull]]];
|
||||||
|
|
||||||
|
private _display = ctrlparent _ctrlButtonOK;
|
||||||
|
if (isNull _display) exitWith {};
|
||||||
|
|
||||||
|
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
|
||||||
|
if (isNull _logic) exitWith {};
|
||||||
|
|
||||||
|
private _combo1 = _display displayCtrl 56218;
|
||||||
|
private _combo2 = _display displayCtrl 56219;
|
||||||
|
private _combo3 = _display displayCtrl 56220;
|
||||||
|
|
||||||
|
private _toggle = _combo1 lbValue (lbCurSel _combo1);
|
||||||
|
private _target = _combo2 lbValue (lbCurSel _combo2);
|
||||||
|
private _gear = _combo3 lbValue (lbCurSel _combo3);
|
||||||
|
|
||||||
|
|
||||||
|
_toggle = [
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
] select (_toggle == 1);
|
||||||
|
|
||||||
|
_gear = [
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
] select (_gear == 1);
|
||||||
|
|
||||||
|
[_logic, _toggle, _gear, _target] call FUNC(moduleToggleFlashlight);
|
||||||
|
};
|
||||||
|
|
||||||
|
_display displayAddEventHandler ["unload", _fnc_onUnload];
|
||||||
|
_ctrlButtonOK ctrlAddEventHandler ["buttonclick", _fnc_onConfirm];
|
@ -1038,5 +1038,41 @@
|
|||||||
<Key ID="STR_ACE_Zeus_ModuleLoadIntoCargo_DisplayName">
|
<Key ID="STR_ACE_Zeus_ModuleLoadIntoCargo_DisplayName">
|
||||||
<English>Load into Cargo</English>
|
<English>Load into Cargo</English>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleNVG_DisplayName">
|
||||||
|
<English>Toggle NVGs</English>
|
||||||
|
<French>Basculer JVN</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleNVG_ToggleNvgTitle">
|
||||||
|
<English>NVG equipment</English>
|
||||||
|
<French>Equipment de vision nocturne</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleNVG_ToggleNvgTitleTooltip">
|
||||||
|
<English>Add or remove NVGs from units</English>
|
||||||
|
<French>Ajouter ou retirer JVN des unités</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleNVG_ToggleNvgSide">
|
||||||
|
<English>Toggle NVG target</English>
|
||||||
|
<French>Cible du basculement</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleNVG_SelectedGroup">
|
||||||
|
<English>Selected group</English>
|
||||||
|
<French>Groupe sélectionné</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleFlashlight_DisplayName">
|
||||||
|
<English>Toggle flashlights</English>
|
||||||
|
<French>Basculer lampes torches</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleFlashlight_ToggleFlashlightSide">
|
||||||
|
<English>Toggle flashlight target</English>
|
||||||
|
<French>Cible du basculement</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleFlashlight_ToggleFlashlightTitle">
|
||||||
|
<English>Flashlight</English>
|
||||||
|
<French>Lampe torche</French>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Zeus_moduleToggleFlashlight_ToggleFlashlightGear">
|
||||||
|
<English>Add gear</English>
|
||||||
|
<French>Ajouter équipement</French>
|
||||||
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -417,7 +417,6 @@ class GVAR(RscTeleportPlayers): RscDisplayAttributes {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class GVAR(AttributeCargo): RscControlsGroupNoScrollbars {
|
class GVAR(AttributeCargo): RscControlsGroupNoScrollbars {
|
||||||
onSetFocus = QUOTE(_this call FUNC(ui_attributeCargo));
|
onSetFocus = QUOTE(_this call FUNC(ui_attributeCargo));
|
||||||
idc = -1;
|
idc = -1;
|
||||||
@ -473,3 +472,124 @@ class RscDisplayAttributesVehicleEmpty: RscDisplayAttributes {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class GVAR(RscToggleNvg): RscDisplayAttributes {
|
||||||
|
onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscToggleNvg)))] call FUNC(zeusAttributes));
|
||||||
|
onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscToggleNvg)))] call FUNC(zeusAttributes));
|
||||||
|
class Controls: Controls {
|
||||||
|
class Background: Background {};
|
||||||
|
class Title: Title {};
|
||||||
|
class Content: Content {
|
||||||
|
class Controls {
|
||||||
|
class ToggleNvg: RscControlsGroupNoScrollbars {
|
||||||
|
onSetFocus = QUOTE(_this call FUNC(ui_toggleNvg));
|
||||||
|
idc = 92854;
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
w = W_PART(26);
|
||||||
|
h = H_PART(3);
|
||||||
|
class controls {
|
||||||
|
class ToggleNvgTitle: Title {
|
||||||
|
idc = -1;
|
||||||
|
text = CSTRING(moduleToggleNVG_ToggleNvgTitle);
|
||||||
|
toolTip = CSTRING(moduleToggleNVG_ToggleNvgTitleTooltip);
|
||||||
|
x = H_PART(0);
|
||||||
|
y = H_PART(0);
|
||||||
|
w = W_PART(7);
|
||||||
|
};
|
||||||
|
class ToggleNvgCombo: RscCombo {
|
||||||
|
idc = 92855;
|
||||||
|
x = H_PART(6);
|
||||||
|
y = H_PART(0);
|
||||||
|
w = W_PART(10.1);
|
||||||
|
h = H_PART(1);
|
||||||
|
};
|
||||||
|
class ToggleNvgSideTitle: Title {
|
||||||
|
idc = -1;
|
||||||
|
text = CSTRING(moduleToggleNVG_ToggleNvgSide);
|
||||||
|
x = H_PART(0);
|
||||||
|
y = H_PART(1.2);
|
||||||
|
w = W_PART(7);
|
||||||
|
};
|
||||||
|
class ToggleNvgSideCombo: RscCombo {
|
||||||
|
idc = 92856;
|
||||||
|
x = H_PART(6);
|
||||||
|
y = H_PART(1.2);
|
||||||
|
w = W_PART(10.1);
|
||||||
|
h = H_PART(1);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class ButtonOK: ButtonOK {};
|
||||||
|
class ButtonCancel: ButtonCancel {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class GVAR(RscToggleFlashlight): RscDisplayAttributes {
|
||||||
|
onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscToggleFlashlight)))] call FUNC(zeusAttributes));
|
||||||
|
onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscToggleFlashlight)))] call FUNC(zeusAttributes));
|
||||||
|
class Controls: Controls {
|
||||||
|
class Background: Background {};
|
||||||
|
class Title: Title {};
|
||||||
|
class Content: Content {
|
||||||
|
class Controls {
|
||||||
|
class ToggleFlashlight: RscControlsGroupNoScrollbars {
|
||||||
|
onSetFocus = QUOTE(_this call FUNC(ui_toggleFlashlight));
|
||||||
|
idc = 56217;
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
w = W_PART(26);
|
||||||
|
h = H_PART(5);
|
||||||
|
class controls {
|
||||||
|
class ToggleFlashlightTitle: Title {
|
||||||
|
idc = -1;
|
||||||
|
text = CSTRING(moduleToggleFlashlight_ToggleFlashlightTitle);
|
||||||
|
x = H_PART(0);
|
||||||
|
y = H_PART(0);
|
||||||
|
w = W_PART(7);
|
||||||
|
};
|
||||||
|
class ToggleFlashlightCombo: RscCombo {
|
||||||
|
idc = 56218;
|
||||||
|
x = H_PART(6);
|
||||||
|
y = H_PART(0);
|
||||||
|
w = W_PART(10.1);
|
||||||
|
h = H_PART(1);
|
||||||
|
};
|
||||||
|
class ToggleFlashlightSideTitle: Title {
|
||||||
|
idc = -1;
|
||||||
|
text = CSTRING(moduleToggleFlashlight_ToggleFlashlightSide);
|
||||||
|
x = H_PART(0);
|
||||||
|
y = H_PART(1.2);
|
||||||
|
w = W_PART(7);
|
||||||
|
};
|
||||||
|
class ToggleFlashlightSideCombo: RscCombo {
|
||||||
|
idc = 56219;
|
||||||
|
x = H_PART(6);
|
||||||
|
y = H_PART(1.2);
|
||||||
|
w = W_PART(10.1);
|
||||||
|
h = H_PART(1);
|
||||||
|
};
|
||||||
|
class ToggleFlashlightGearTitle: Title {
|
||||||
|
idc = -1;
|
||||||
|
text = CSTRING(moduleToggleFlashlight_ToggleFlashlightGear);
|
||||||
|
x = H_PART(0);
|
||||||
|
y = H_PART(2.4);
|
||||||
|
w = W_PART(7);
|
||||||
|
};
|
||||||
|
class ToggleFlashlightGearCombo: RscCombo {
|
||||||
|
idc = 56220;
|
||||||
|
x = H_PART(6);
|
||||||
|
y = H_PART(2.4);
|
||||||
|
w = W_PART(10.1);
|
||||||
|
h = H_PART(1);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class ButtonOK: ButtonOK {};
|
||||||
|
class ButtonCancel: ButtonCancel {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user