From 3702d0b6718df4bd442b7cfb1da52b8897743790 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 14 May 2015 23:04:58 +0100 Subject: [PATCH 01/22] Implemented knockout module --- addons/zeus/CfgVehicles.hpp | 39 +++++++++++------ addons/zeus/XEH_preInit.sqf | 1 + addons/zeus/config.cpp | 4 +- addons/zeus/functions/fnc_moduleKnockout.sqf | 44 ++++++++++++++++++++ 4 files changed, 75 insertions(+), 13 deletions(-) create mode 100644 addons/zeus/functions/fnc_moduleKnockout.sqf diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index cb7346e18d..e9958edb3d 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -3,6 +3,18 @@ class CfgVehicles { class ModuleEmpty_F; class ACE_Module; + class ModuleCurator_F: Module_F { + function = QUOTE(DFUNC(bi_moduleCurator)); + }; + class ModuleMine_F: ModuleEmpty_F { + function = QUOTE(DFUNC(bi_moduleMine)); + }; + class ModuleOrdnance_F: Module_F { + function = QUOTE(DFUNC(bi_moduleProjectile)); + }; + class ModuleRemoteControl_F: Module_F { + function = QUOTE(DFUNC(bi_moduleRemoteControl)); + }; class GVAR(moduleZeusSettings): ACE_Module { scope = 2; displayName = "$STR_ACE_Zeus_Module_DisplayName"; @@ -64,17 +76,20 @@ class CfgVehicles { sync[] = {}; }; }; - - class ModuleCurator_F: Module_F { - function = QUOTE(DFUNC(bi_moduleCurator)); - }; - class ModuleMine_F: ModuleEmpty_F { - function = QUOTE(DFUNC(bi_moduleMine)); - }; - class ModuleOrdnance_F: Module_F { - function = QUOTE(DFUNC(bi_moduleProjectile)); - }; - class ModuleRemoteControl_F: Module_F { - function = QUOTE(DFUNC(bi_moduleRemoteControl)); + class GVAR(moduleKnockout): Module_F { + scopeCurator = 2; + displayName = "Knockout/Wakeup Unit"; + //icon = QUOTE(PATHTOF(iconGoesHere)); + category = "ACE_zeus"; + function = QUOTE(DFUNC(moduleKnockout)); + functionPriority = 1; + isGlobal = 1; + isTriggerActivated = 0; + curatorCanAttach = 1; + author = "SilentSpike"; + class ModuleDescription { + description = "Knocks out or wakes up the specified unit."; + sync[] = {}; + }; }; }; diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index e7bb1b96a5..1c8a2c4e62 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -6,6 +6,7 @@ PREP(bi_moduleCurator); PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); +PREP(moduleKnockout); PREP(moduleZeusSettings); ADDON = true; diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 5ea4212dbb..3f15dbcd88 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -2,7 +2,9 @@ class CfgPatches { class ADDON { - units[] = {}; + units[] = { + QGVAR(moduleKnockout) + }; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleKnockout.sqf new file mode 100644 index 0000000000..353cebf8b9 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleKnockout.sqf @@ -0,0 +1,44 @@ +/* + * Author: SilentSpike + * Flips the unconscious state of the unit the module is attached to. + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +private ["_logic","_unit","_conscious","_previous"]; + +_logic = _this select 0; +_unit = attachedTo _logic; + +if (isNil QEFUNC(medical,setUnconscious)) exitWith { + ["Requires ACE_Medical to work."] call DEFUNC(common,displayTextStructured); + deleteVehicle _logic; +}; +if (isNull _unit) exitWith { + ["Module must be placed on a unit."] call DEFUNC(common,displayTextStructured); + deleteVehicle _logic; +}; + +_conscious = _unit getVariable ["ACE_isUnconscious", false]; + +//Hacky method, will be replaced once #1205 is complete +_previous = _unit getvariable [QEGVAR(medical,enableUnconsciousnessAI), EGVAR(medical,enableUnconsciousnessAI)]; +if (_previous < 2) then {_unit setvariable [QEGVAR(medical,enableUnconsciousnessAI), 2];}; + +[_unit, !_conscious] call DEFUNC(medical,setUnconscious); + +if (_previous < 2) then { + _unit setvariable [QEGVAR(medical,enableUnconsciousnessAI), _previous]; +}; + +deleteVehicle _logic; \ No newline at end of file From a4512e4740f1bb1c872f04f8e892ad6d15397fbf Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 12:36:39 +0100 Subject: [PATCH 02/22] Implemented surrender module Improved knockout module --- addons/zeus/CfgVehicles.hpp | 39 ++++++++------- addons/zeus/XEH_preInit.sqf | 1 + addons/zeus/config.cpp | 3 +- addons/zeus/functions/fnc_moduleKnockout.sqf | 47 ++++++++++--------- addons/zeus/functions/fnc_moduleSurrender.sqf | 47 +++++++++++++++++++ 5 files changed, 97 insertions(+), 40 deletions(-) create mode 100644 addons/zeus/functions/fnc_moduleSurrender.sqf diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index e9958edb3d..480e2ad5e9 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -4,23 +4,23 @@ class CfgVehicles { class ACE_Module; class ModuleCurator_F: Module_F { - function = QUOTE(DFUNC(bi_moduleCurator)); + function = QFUNC(bi_moduleCurator); }; class ModuleMine_F: ModuleEmpty_F { - function = QUOTE(DFUNC(bi_moduleMine)); + function = QFUNC(bi_moduleMine); }; class ModuleOrdnance_F: Module_F { - function = QUOTE(DFUNC(bi_moduleProjectile)); + function = QFUNC(bi_moduleProjectile); }; class ModuleRemoteControl_F: Module_F { - function = QUOTE(DFUNC(bi_moduleRemoteControl)); + function = QFUNC(bi_moduleRemoteControl); }; class GVAR(moduleZeusSettings): ACE_Module { scope = 2; displayName = "$STR_ACE_Zeus_Module_DisplayName"; //icon = QUOTE(PATHTOF(iconGoesHere)); category = "ACE_zeus"; - function = QUOTE(DFUNC(moduleZeusSettings)); + function = QFUNC(moduleZeusSettings); functionPriority = 1; isGlobal = 1; isTriggerActivated = 0; @@ -76,19 +76,26 @@ class CfgVehicles { sync[] = {}; }; }; - class GVAR(moduleKnockout): Module_F { - scopeCurator = 2; - displayName = "Knockout/Wakeup Unit"; - //icon = QUOTE(PATHTOF(iconGoesHere)); - category = "ACE_zeus"; - function = QUOTE(DFUNC(moduleKnockout)); - functionPriority = 1; - isGlobal = 1; - isTriggerActivated = 0; - curatorCanAttach = 1; + class GVAR(moduleBase): Module_F { author = "SilentSpike"; + category = "ACE"; + scopeCurator = 2; + }; + class GVAR(moduleKnockout): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = "Knockout/Wakeup Unit"; + function = QFUNC(moduleKnockout); class ModuleDescription { - description = "Knocks out or wakes up the specified unit."; + description = "Flips the unconscious state of the specified unit."; + sync[] = {}; + }; + }; + class GVAR(moduleSurrender): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = "Force Surrender"; + function = QFUNC(moduleSurrender); + class ModuleDescription { + description = "Flips the surrender state of the specified unit."; sync[] = {}; }; }; diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index 1c8a2c4e62..99eab56a05 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -7,6 +7,7 @@ PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); PREP(moduleKnockout); +PREP(moduleSurrender); PREP(moduleZeusSettings); ADDON = true; diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 3f15dbcd88..e654646b5b 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -3,7 +3,8 @@ class CfgPatches { class ADDON { units[] = { - QGVAR(moduleKnockout) + QGVAR(moduleKnockout), + QGVAR(moduleSurrender) }; weapons[] = {}; requiredVersion = REQUIRED_VERSION; diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleKnockout.sqf index 353cebf8b9..4ab61775d5 100644 --- a/addons/zeus/functions/fnc_moduleKnockout.sqf +++ b/addons/zeus/functions/fnc_moduleKnockout.sqf @@ -15,30 +15,31 @@ #include "script_component.hpp" -private ["_logic","_unit","_conscious","_previous"]; +PARAMS_3(_logic,_units,_activated); +private ["_activated","_unit","_logic","_conscious"]; -_logic = _this select 0; -_unit = attachedTo _logic; +if (!_activated) exitWith {}; -if (isNil QEFUNC(medical,setUnconscious)) exitWith { - ["Requires ACE_Medical to work."] call DEFUNC(common,displayTextStructured); - deleteVehicle _logic; -}; -if (isNull _unit) exitWith { - ["Module must be placed on a unit."] call DEFUNC(common,displayTextStructured); - deleteVehicle _logic; +if (isNil QEFUNC(medical,setUnconscious)) then { + ["Requires ACE_Medical"] call DEFUNC(common,displayTextStructured); +} else { + _unit = attachedTo _logic; + + if (isNull _unit) then { + ["Place on a unit"] call DEFUNC(common,displayTextStructured); + } else { + if (!_unit isKindOf "CAManBase") then { + ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); + } else { + if (!alive _unit) then { + ["Unit must be alive"] call DEFUNC(common,displayTextStructured); + } else { + _conscious = GETVAR(_unit,ACE_isUnconscious,false); + // Function handles locality for me + [_unit, !_conscious, true] call DEFUNC(medical,setUnconscious); + }; + }; + }; }; -_conscious = _unit getVariable ["ACE_isUnconscious", false]; - -//Hacky method, will be replaced once #1205 is complete -_previous = _unit getvariable [QEGVAR(medical,enableUnconsciousnessAI), EGVAR(medical,enableUnconsciousnessAI)]; -if (_previous < 2) then {_unit setvariable [QEGVAR(medical,enableUnconsciousnessAI), 2];}; - -[_unit, !_conscious] call DEFUNC(medical,setUnconscious); - -if (_previous < 2) then { - _unit setvariable [QEGVAR(medical,enableUnconsciousnessAI), _previous]; -}; - -deleteVehicle _logic; \ No newline at end of file +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf new file mode 100644 index 0000000000..63b53775c3 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -0,0 +1,47 @@ +/* + * Author: SilentSpike + * Flips the surrender state of the unit the module is attached to. + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +[_unit,!_surrendering] call DEFUNC(captives,setSurrendered); + +PARAMS_3(_logic,_units,_activated); +private ["_logic","_activated","_unit","_conscious","_previous"]; + +if (!_activated) exitWith {}; + +if (isNil QEFUNC(captives,setSurrendered)) then { + ["Requires ACE_Captives"] call DEFUNC(common,displayTextStructured); +} else { + _unit = attachedTo _logic; + + if (isNull _unit) then { + ["Place on a unit"] call DEFUNC(common,displayTextStructured); + } else { + if (!_unit isKindOf "CAManBase") then { + ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); + } else { + if (!alive _unit) then { + ["Unit must be alive"] call DEFUNC(common,displayTextStructured); + } else { + _surrendering = GETVAR(_unit,QEGVAR(captives,isSurrendering),false); + // Event initalized by ACE_Captives + ["SetSurrendered", _unit, [_unit, !_surrendering]] call DEFUNC(common,targetEvent); + }; + }; + }; +}; + +deleteVehicle _logic; From 0dcfd9f94166c82993b218cddc1cc05e15cc5cc3 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 12:45:27 +0100 Subject: [PATCH 03/22] Use zeus category --- addons/zeus/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 480e2ad5e9..86e04c5650 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -78,7 +78,7 @@ class CfgVehicles { }; class GVAR(moduleBase): Module_F { author = "SilentSpike"; - category = "ACE"; + category = "ACE_zeus"; scopeCurator = 2; }; class GVAR(moduleKnockout): GVAR(moduleBase) { From 5f1725cf1f33668ce4892c4073938051337abc16 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 12:54:28 +0100 Subject: [PATCH 04/22] Missing setUnconscious parameter --- addons/zeus/functions/fnc_moduleKnockout.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleKnockout.sqf index 4ab61775d5..8af634c4d1 100644 --- a/addons/zeus/functions/fnc_moduleKnockout.sqf +++ b/addons/zeus/functions/fnc_moduleKnockout.sqf @@ -36,7 +36,7 @@ if (isNil QEFUNC(medical,setUnconscious)) then { } else { _conscious = GETVAR(_unit,ACE_isUnconscious,false); // Function handles locality for me - [_unit, !_conscious, true] call DEFUNC(medical,setUnconscious); + [_unit, !_conscious, round(random(10)+5), true] call DEFUNC(medical,setUnconscious); }; }; }; From 90033aa5918ce46baf0e8a4755181ca67650df21 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 12:56:31 +0100 Subject: [PATCH 05/22] Updated function headers --- addons/zeus/functions/fnc_bi_moduleCurator.sqf | 4 +++- addons/zeus/functions/fnc_bi_moduleMine.sqf | 4 +++- addons/zeus/functions/fnc_bi_moduleProjectile.sqf | 4 +++- addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/zeus/functions/fnc_bi_moduleCurator.sqf b/addons/zeus/functions/fnc_bi_moduleCurator.sqf index 016d1ae078..37de3d8eae 100644 --- a/addons/zeus/functions/fnc_bi_moduleCurator.sqf +++ b/addons/zeus/functions/fnc_bi_moduleCurator.sqf @@ -4,7 +4,9 @@ * Edited to remove eagle and global ascension message * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil diff --git a/addons/zeus/functions/fnc_bi_moduleMine.sqf b/addons/zeus/functions/fnc_bi_moduleMine.sqf index b5063c7fed..5eade0e0b4 100644 --- a/addons/zeus/functions/fnc_bi_moduleMine.sqf +++ b/addons/zeus/functions/fnc_bi_moduleMine.sqf @@ -4,7 +4,9 @@ * Edited to remove forced map markers and mines being revealed to players * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil diff --git a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf index 203d058d5a..3237d5be73 100644 --- a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf @@ -5,7 +5,9 @@ * Edited to remove radio warning and add ballistics support * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil diff --git a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf index 57b325b585..92cc786b23 100644 --- a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf +++ b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf @@ -4,7 +4,9 @@ * Edited to remove global wind sound * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil From aad56866ea88dd1edcb3378772ed47f0c2c44cd0 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 12:59:37 +0100 Subject: [PATCH 06/22] Forgot my privates --- addons/zeus/functions/fnc_moduleKnockout.sqf | 2 +- addons/zeus/functions/fnc_moduleSurrender.sqf | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleKnockout.sqf index 8af634c4d1..2c26c79c73 100644 --- a/addons/zeus/functions/fnc_moduleKnockout.sqf +++ b/addons/zeus/functions/fnc_moduleKnockout.sqf @@ -16,7 +16,7 @@ #include "script_component.hpp" PARAMS_3(_logic,_units,_activated); -private ["_activated","_unit","_logic","_conscious"]; +private ["_unit","_conscious"]; if (!_activated) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index 63b53775c3..58e4e3c820 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -15,10 +15,8 @@ #include "script_component.hpp" -[_unit,!_surrendering] call DEFUNC(captives,setSurrendered); - PARAMS_3(_logic,_units,_activated); -private ["_logic","_activated","_unit","_conscious","_previous"]; +private ["_unit","_surrendering"]; if (!_activated) exitWith {}; From 49ef30ca5b3a04500d38f5aab643295976718115 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 13:07:19 +0100 Subject: [PATCH 07/22] Corrected macro --- addons/zeus/functions/fnc_moduleSurrender.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index 58e4e3c820..cfcfecb675 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -34,7 +34,7 @@ if (isNil QEFUNC(captives,setSurrendered)) then { if (!alive _unit) then { ["Unit must be alive"] call DEFUNC(common,displayTextStructured); } else { - _surrendering = GETVAR(_unit,QEGVAR(captives,isSurrendering),false); + _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); // Event initalized by ACE_Captives ["SetSurrendered", _unit, [_unit, !_surrendering]] call DEFUNC(common,targetEvent); }; From 6251248a091197b62369fc87b9acc4ae24eb0f89 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 13:11:08 +0100 Subject: [PATCH 08/22] Fixed conditions --- addons/zeus/functions/fnc_moduleKnockout.sqf | 4 ++-- addons/zeus/functions/fnc_moduleSurrender.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleKnockout.sqf index 2c26c79c73..5f416cb771 100644 --- a/addons/zeus/functions/fnc_moduleKnockout.sqf +++ b/addons/zeus/functions/fnc_moduleKnockout.sqf @@ -28,10 +28,10 @@ if (isNil QEFUNC(medical,setUnconscious)) then { if (isNull _unit) then { ["Place on a unit"] call DEFUNC(common,displayTextStructured); } else { - if (!_unit isKindOf "CAManBase") then { + if !(_unit isKindOf "CAManBase") then { ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); } else { - if (!alive _unit) then { + if !(alive _unit) then { ["Unit must be alive"] call DEFUNC(common,displayTextStructured); } else { _conscious = GETVAR(_unit,ACE_isUnconscious,false); diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index cfcfecb675..fea0ed6e07 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -28,10 +28,10 @@ if (isNil QEFUNC(captives,setSurrendered)) then { if (isNull _unit) then { ["Place on a unit"] call DEFUNC(common,displayTextStructured); } else { - if (!_unit isKindOf "CAManBase") then { + if !(_unit isKindOf "CAManBase") then { ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); } else { - if (!alive _unit) then { + if !(alive _unit) then { ["Unit must be alive"] call DEFUNC(common,displayTextStructured); } else { _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); From 44ca13fe3a327dca529f39f319c22a0910ba27b7 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 13:28:13 +0100 Subject: [PATCH 09/22] Implemented capture module --- addons/zeus/CfgVehicles.hpp | 13 +++++- addons/zeus/XEH_preInit.sqf | 1 + addons/zeus/config.cpp | 1 + addons/zeus/functions/fnc_moduleCapture.sqf | 45 +++++++++++++++++++ addons/zeus/functions/fnc_moduleSurrender.sqf | 10 +++-- 5 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 addons/zeus/functions/fnc_moduleCapture.sqf diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 86e04c5650..94d03d406e 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -81,9 +81,18 @@ class CfgVehicles { category = "ACE_zeus"; scopeCurator = 2; }; + class GVAR(moduleCapture): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = "Capture/Release"; + function = QFUNC(moduleCapture); + class ModuleDescription { + description = "Flips the capture state of the specified unit."; + sync[] = {}; + }; + }; class GVAR(moduleKnockout): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Knockout/Wakeup Unit"; + displayName = "Knockout/Wakeup"; function = QFUNC(moduleKnockout); class ModuleDescription { description = "Flips the unconscious state of the specified unit."; @@ -92,7 +101,7 @@ class CfgVehicles { }; class GVAR(moduleSurrender): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Force Surrender"; + displayName = "Surrender/Fight"; function = QFUNC(moduleSurrender); class ModuleDescription { description = "Flips the surrender state of the specified unit."; diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index 99eab56a05..bf7e19c07f 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -6,6 +6,7 @@ PREP(bi_moduleCurator); PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); +PREP(moduleCapture); PREP(moduleKnockout); PREP(moduleSurrender); PREP(moduleZeusSettings); diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index e654646b5b..b79f12f09c 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -3,6 +3,7 @@ class CfgPatches { class ADDON { units[] = { + QGVAR(moduleCapture), QGVAR(moduleKnockout), QGVAR(moduleSurrender) }; diff --git a/addons/zeus/functions/fnc_moduleCapture.sqf b/addons/zeus/functions/fnc_moduleCapture.sqf new file mode 100644 index 0000000000..f7f7a33e77 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleCapture.sqf @@ -0,0 +1,45 @@ +/* + * Author: SilentSpike + * Flips the capture state of the unit the module is attached to. + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +PARAMS_3(_logic,_units,_activated); +private ["_unit","_captive"]; + +if (!_activated) exitWith {}; + +if (isNil QEFUNC(captives,setHandcuffed)) then { + ["Requires ACE_Captives"] call DEFUNC(common,displayTextStructured); +} else { + _unit = attachedTo _logic; + + if (isNull _unit) then { + ["Place on a unit"] call DEFUNC(common,displayTextStructured); + } else { + if !(_unit isKindOf "CAManBase") then { + ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + ["Unit must be alive"] call DEFUNC(common,displayTextStructured); + } else { + _captive = GETVAR(_unit,EGVAR(captives,isHandcuffed),false); + // Event initalized by ACE_Captives + ["SetHandcuffed", _unit, [_unit, !_captive]] call DEFUNC(common,targetEvent); + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index fea0ed6e07..a2031b5f5d 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -34,9 +34,13 @@ if (isNil QEFUNC(captives,setSurrendered)) then { if !(alive _unit) then { ["Unit must be alive"] call DEFUNC(common,displayTextStructured); } else { - _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); - // Event initalized by ACE_Captives - ["SetSurrendered", _unit, [_unit, !_surrendering]] call DEFUNC(common,targetEvent); + if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { + ["Unit is a captive"] call DEFUNC(common,displayTextStructured); + } else { + _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); + // Event initalized by ACE_Captives + ["SetSurrendered", _unit, [_unit, !_surrendering]] call DEFUNC(common,targetEvent); + }; }; }; }; From 9619b7d1679f4f95c1c0650296d737cc5d40ab11 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 14:28:59 +0100 Subject: [PATCH 10/22] Improved naming and removed pointless category --- addons/zeus/CfgFactionClasses.hpp | 6 ------ addons/zeus/CfgVehicles.hpp | 12 ++++++------ 2 files changed, 6 insertions(+), 12 deletions(-) delete mode 100644 addons/zeus/CfgFactionClasses.hpp diff --git a/addons/zeus/CfgFactionClasses.hpp b/addons/zeus/CfgFactionClasses.hpp deleted file mode 100644 index da8e845a43..0000000000 --- a/addons/zeus/CfgFactionClasses.hpp +++ /dev/null @@ -1,6 +0,0 @@ -class CfgFactionClasses { - class NO_CATEGORY; - class ADDON: NO_CATEGORY { - displayName = "$STR_ACE_Zeus_category"; - }; -}; diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 94d03d406e..bdbe80b4d7 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -15,11 +15,11 @@ class CfgVehicles { class ModuleRemoteControl_F: Module_F { function = QFUNC(bi_moduleRemoteControl); }; - class GVAR(moduleZeusSettings): ACE_Module { + class GVAR(moduleSettings): ACE_Module { scope = 2; displayName = "$STR_ACE_Zeus_Module_DisplayName"; //icon = QUOTE(PATHTOF(iconGoesHere)); - category = "ACE_zeus"; + category = "ACE"; function = QFUNC(moduleZeusSettings); functionPriority = 1; isGlobal = 1; @@ -78,12 +78,12 @@ class CfgVehicles { }; class GVAR(moduleBase): Module_F { author = "SilentSpike"; - category = "ACE_zeus"; + category = "ACE"; scopeCurator = 2; }; class GVAR(moduleCapture): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Capture/Release"; + displayName = "Capture Unit"; function = QFUNC(moduleCapture); class ModuleDescription { description = "Flips the capture state of the specified unit."; @@ -92,7 +92,7 @@ class CfgVehicles { }; class GVAR(moduleKnockout): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Knockout/Wakeup"; + displayName = "Knockout Unit"; function = QFUNC(moduleKnockout); class ModuleDescription { description = "Flips the unconscious state of the specified unit."; @@ -101,7 +101,7 @@ class CfgVehicles { }; class GVAR(moduleSurrender): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Surrender/Fight"; + displayName = "Surrender Unit"; function = QFUNC(moduleSurrender); class ModuleDescription { description = "Flips the surrender state of the specified unit."; From cd6474c7480a1a7c264cc5d71c2d3c41ad98d395 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 15:24:54 +0100 Subject: [PATCH 11/22] Adding module icons --- addons/zeus/CfgVehicles.hpp | 5 ++++- .../zeus/ui/Icon_Module_Zeus_Capture_ca.paa | Bin 0 -> 5625 bytes .../zeus/ui/Icon_Module_Zeus_Settings_ca.paa | Bin 0 -> 5625 bytes .../zeus/ui/Icon_Module_Zeus_Surrender_ca.paa | Bin 0 -> 5625 bytes extras/assets/icons/Icons_Modules.psd | Bin 2326533 -> 2336136 bytes .../Icon_Module_Zeus_Capture_ca.png | Bin 0 -> 3620 bytes .../Icon_Module_Zeus_Settings_ca.png | Bin 0 -> 3507 bytes .../Icon_Module_Zeus_Surrender_ca.png | Bin 0 -> 3541 bytes 8 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Capture_ca.paa create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Settings_ca.paa create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa create mode 100644 extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Capture_ca.png create mode 100644 extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Settings_ca.png create mode 100644 extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Surrender_ca.png diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index bdbe80b4d7..5a85c6956d 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -18,7 +18,7 @@ class CfgVehicles { class GVAR(moduleSettings): ACE_Module { scope = 2; displayName = "$STR_ACE_Zeus_Module_DisplayName"; - //icon = QUOTE(PATHTOF(iconGoesHere)); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Settings_ca.paa)); category = "ACE"; function = QFUNC(moduleZeusSettings); functionPriority = 1; @@ -85,6 +85,7 @@ class CfgVehicles { curatorCanAttach = 1; displayName = "Capture Unit"; function = QFUNC(moduleCapture); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Capture_ca.paa)); class ModuleDescription { description = "Flips the capture state of the specified unit."; sync[] = {}; @@ -94,6 +95,7 @@ class CfgVehicles { curatorCanAttach = 1; displayName = "Knockout Unit"; function = QFUNC(moduleKnockout); + //icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Knockout_ca.paa)); class ModuleDescription { description = "Flips the unconscious state of the specified unit."; sync[] = {}; @@ -103,6 +105,7 @@ class CfgVehicles { curatorCanAttach = 1; displayName = "Surrender Unit"; function = QFUNC(moduleSurrender); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Surrender_ca.paa)); class ModuleDescription { description = "Flips the surrender state of the specified unit."; sync[] = {}; diff --git a/addons/zeus/ui/Icon_Module_Zeus_Capture_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Capture_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..b41f0ccd37cc5298b7dd14af015803a0407e6c15 GIT binary patch literal 5625 zcmd^@4NMzV9Kau>%C<~kd`1u`OT{=@Vy3AsLVARyP$R)agA+|m!MT~iI$S~|g!QJ0 zjm~Y&Hs<`8BpThKiQ;B%Q8U{Goxu-WViZRA1^Xb&vO!@PLwbAu-yQ$gyK89EP^NJ& zcgg+w|G)p&```86-9f9WDxR*as;e*&LPDX?iwduBB4=09fsprFqu(!SoGuv5>5{0T`m!-4S_{m0^n^(NKHY!2F^ z#9?H`B$pfNZ}b;wU%#G4{a8$m>#t7W`K#f0wd(~MQP>dw{I5Uc4-xVD5ooSh9IgM= z_1D{jCDYlD%B+Ce`attnhx?sL+0fYYLjTWNUsYSH&wiO*KlXaDehJ4jv;MRCk8RHw z57a+ueg5xqV?Ay!X4$fV{jJii!8aPI28*U~0! z$azQ0L-iX|L&%nazqi&<%JuWMOUqBVLq#Z0bbN`ncTXquuXR|)cvoFIHhOc4k=ozS z{F%FXy7s0UIfGWNu)NYxf?PG^X+><5LfIz&Zj)1xjrKELt*(()7tjBpzigo%Ux?>#)L-dqbxpKx z;P=PT>pSFu9UcFf{GTK6GNjob6b{l|^oHv^=70Z3-SXEAV6fcEhd+F`hsrM?*IcGk zTK&#(sldsEFqnS!rJvzyA{RNex2qt~9quQl!v@M#`uBL9p&m!Zs~g}E$ot>iU)-eS zw2fAs{M+$$FKOjZezFDbukidt=ciUVT(8@W&BRQIiHJUEAoo}gwvoc5f#24~Z8#B` z=0p+dE3A2qCSuCwvq`CEb@H?^-lj@#Yi=9S=N{AhC*w4Vf0)mRgA1T-SSLNY0jF%U& ze58Gum~XuEE|^J-qGlyLo+c+7H2FN*+Xcy!MUyS-(ilAGcmT zg7)nFk51W!obAYuTzu6-+onz+mj?HD41V)=KeEwYyqtUe^o0(4!vkn<)j_H8yUL&s zIeV?AW6=E`L#4GnqZhCIP!{6x#PSE9S)zUhAbB&*K4bscw#7}#Gj)c|E%rt&lXCcC z$bx~ve8;k%4xa+yBctG_)LA>O`~k6PqHogOHQ8cAGiK3!uvpqviVXTif!Ykd?1Fzw z5^*#rk+AuKza?4EZ<>f>sYVXZ42?dU!v@;VJ}s^NyzZ?gWb)fK|Kb|&8qTUZ*H_Zi zJcd^Odf>uttMc-ol)?JPwLN#fp}d@i%c9X=Ko+piq9diNi|hK<^Dw)GWqV&Qb8y~G m9DB2ROBV7lK3(EXUVdCcHo+4W>M4BD`&o0&T^abZ8tgx`pd6I| literal 0 HcmV?d00001 diff --git a/addons/zeus/ui/Icon_Module_Zeus_Settings_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Settings_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..58bbe312ceff6ca27e92f1e201643e27e558d90b GIT binary patch literal 5625 zcmd^DUrbw77(ZYKYXX+kkq~R4jdfYZh>J`5GEFZt0h%aeirW(7pMt?HlQkH}!;IdG zXb2i@2hr?7tS&LW2{YvKWZJNYNnrYbMn+l0S;sVC>sA+5(%a*A?(I3f_jGV2P)*!T z+uUEj@BF^M=iGDdHr(9Y*#2bmp+*ZrNKup%Dn8QqG{G1yf}0zkY9hDzSL)I|)FucY7 z1D)h)c}Hgtg+2Zu1Gf0XmbL7g#t#a{cnbNA_JkoL=Hf@F)CC{v4{zTL7t|ZIl#(%& z4d%EQAxLmoD+N)LZNEOA!w!hWcD%ekP`?5RZ!w~{i`LSiWA#Te=Dc-Hx z%RisDIvz8=vU8+d<9Te9tr$gD^XqMuZL`a#HcsNdJIWLqz?q_H2oWGA$+}R8Ba^RWuw+ zkK#q!UzEQf{)CvR!?&3~b_5Sgm?Bi)lTvOdatF)D!JovQOQDfjD!&iG!&j$YJ#l9g zXCg#=*ZA!ToGy=MSpR6z7cc&@ac_qMrU3Ql%reBhWruG!L0Wvi^sME zlQkW>P5rIG{UhVL`nqSlXVhSG@f=_Q?u{p^WE?t$Gho#b{#kLhr7!f zfc1gpYt#HW0-8TFK7Rh*YuJTc2w9L6g@lPo_E=Ui$}dy=F&s%G!Kpg(tEQM>-8LFY z*R+`nj$+mdWqRtM>(ffN;!M*HX%UdKL+C&ykLACT$n!?6{PDH7Y3ka*C5!t}xa zh(~uU5hU@`m^{LkX+e@Z9XgC8Us!*P;l~%^@>-XUzff+pugUYv+&{!eb@_#O_Ldm& z2KcyX^C-8iYgmv2sqZ3$UM*e6V@um|udV_CLyz9>aW&X62Jr+XK=@7mXA!5~E8-C9@ z|HTVTZf1Wkx2)I0wk6{YviNo_jydOi7g+qlwa)|fSMaOU-Xp)`RQXqxafVHnZRl6? z*8t!&<*VE0?NG^c@j3SOX=`W>Zk`G*vt;+|WNAhfWcQIIVzun8zdZ5Um$Jg}j?44$nXx=ZR`OysufH8_M*>1i zdycpdeSe(MjtRTZ^gn)#;a`#U^rY24M9n<&{@{n_2S;RzEwG|OKEJL;&kglmxk&#e H8A0f8#d=ni literal 0 HcmV?d00001 diff --git a/addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..5cdc2451b441b5b21234eab7503644394231b5f0 GIT binary patch literal 5625 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 delta 5575 zcmd5A3sh9qcAq;lFb=s26_CMlwp`O3-6vhs&l zyZTB|tA(u|PoGoozFwuW`mdf=zE`0olE1J7#XmE5=DdB*+yPW9*LrL9nzQ!3XYaH3 zKKty?*%y|7zKSe+Y84rpl{ao85b*u9_{!m+2aS(ZJ~=C|xJ1iV09MxyeZF>&$z1)z zpUf_)(6RgSvcjN0uGe#xB*u{wEq(cjFkdVuZfWm3rV#1UR?}QldU8ryvfWl{OC4^{ z9B$7ToMIQ-g^ZA^i1Pc}Oj8Bt3Y}MLDJ;m&O-W13w`CV(6{Oklm14UmHKU*~Ki!sQ z%gB^d-Z1Ub_4^eziR>_C7_Z%2YLrbS&d_j@LPA7iZi6)f#z76t!7&|@p#WyWY?uf0 zp%SWaEI{lb=YMi{2{Sb9?1&H?R9aIudtP-}P37!G{OD1fZf0vxin_|UhH8A*pqAON z2!QjYbG~qVqQ@!a7(fN_ttN0BJuMs0n{r7=D3=j9b+g!5uvvV#Fo@hME-4%sG3{t)JVv13-$dbYiQu_GB830N7V$%H6 zHe_#=|W- z@sSO0F`M^B&JYJ~oXqVN|GF`ZNMgp5KR&>jJnJ z`*u2~9v?&aJT?Zi;5PB=6N8AsNl%2T)NG_46)*nCQ)O>#2}>2{rq+Ct!@>|dhZoJb zsxcKxmkuT~RQ6LcMoK-L85r+T$u>+CHb?t}4-O+aK7R8Mxu4DN zGV@(B@~h4;PsEL*WOVUFm35|EobETv%#4nbxObOj`qi)FL>`soEWe-34f12zWSpwx z!*019caW!btgy`DgO~fu_ubjG^%=Qwgny?54N4r9Ja?;`BqSqlkzdatX+D(+Me>nc z|9KLoGHx{&$a^cin8^8-qF zz`5#(-UF-;^ymSah1d1~`!DqXdAx%>tGT8LuxtLhi~45nY0Rx( zZUSZ4EPBy>Q%yj|Ca}@hHmx;0pWH9_U9tjk_3C}~MgJvat(P%B)H}=C$XH~&9MoK~ zel5Sf+J8k^f0C`Wq($H{NCLUfI=@`fa0%Hg^3wIBEmj)$Bhkwzcaz3s2Y%$%EfzpC z>y!0HAk*K*!dgf@k?<6yw1H@k)4u?GK%2DCj09ICIO$1!L0r~BM>xOl#J7VXly)3y z7z)s5VDWyA?j0Q$$b$f|jT4rs7{1=%gcrIAFLA<}Zo;N(2|ke?9Q9o~@cjI@ol{nH zE2-s#+HS(D^ve4l+C#~9dMM%yUER&GogR*FqszMquhQnkGjvrqVLd$((|VN-2W<{N z){|0C55-+2Q%{={+Iwn!lO9VvPsMJn8`}OA^Ih8#AA#T>E#WwfI3l`6ID|nE=n?vW z0f+Ay1c45Y27!UP0^DAzxZK`O8iY?u75?zB8F)PuylkeUUa#V%IOPlIB$wb}t_twD z@$JDi=l z0yx$AaIafHY2xyD(RjAI+pFMyI^WbyT~xqbUDQo=xWr6xyS*AVb180@mQft2Qt_~< zM{%J5@!)QX*G;wDUbh>Mz|N#79>uN0-SC)h+Q}?r>{@~z4k033BvOEJiFA!&SwC^?`8;l+v?OaJlfbU8TYb$cyK{>00pxg-P`+6@`@wOF*?$FrASDvz3*K zf*Hzk@VZLD?8KbbdK@gHStfT?3NO!ID&{-Da#YWHvViytk| zeNksZh(w4&h(?G(=!+1G5Qh+tU`9wlNJQv|U_t1QaEtUsopqFSyq-KJrMygLsE-Z! z1-)^LHA8CIP0XWxIT~Vd7J}Iw40@@foto4HNx;SA}~jxkb8>F-o?i7ZYvxG5yD6!S@qqU3FX_6-b7+__zP|Me=J}SQlDDvR)CHV_Qy}Cm z{P;Y!hD%84Eb4%tL74P<(`gFNo`o}@F{GEjc9D{%Z>~@x8PCF55Qe{gclAc+6 zLZQOHmqwg{b09>_die51D*SV$)eC`!(NAtW_{jsAZMZ_l9K1w@?S*kJAbN5NDNuZc yYQB9fSJTXvL*K*GdUs7v*MAQk5D>lk6g~Rk{Y}sg!qkTh->OdZxw4V^#(x1ns2oiI diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Capture_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Capture_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..77f19486f20c4f5a6fef6db0a54179476ffe9079 GIT binary patch literal 3620 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 literal 0 HcmV?d00001 diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Surrender_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Surrender_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..619b4e42a5fec4e9f64f7369a5da44e4fd80581f GIT binary patch literal 3541 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 Date: Mon, 18 May 2015 15:29:29 +0100 Subject: [PATCH 12/22] Include no longer needed --- addons/zeus/config.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index b79f12f09c..d97b8666cf 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -17,6 +17,5 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgFactionClasses.hpp" #include "CfgVehicles.hpp" #include "ACE_Settings.hpp" From b72512e3f1b74ee65d55c58ff9b4d4b085173a5b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 15:41:44 +0100 Subject: [PATCH 13/22] Zeus modules require larger icons --- .../zeus/ui/Icon_Module_Zeus_Capture_ca.paa | Bin 5625 -> 5625 bytes .../zeus/ui/Icon_Module_Zeus_Surrender_ca.paa | Bin 5625 -> 5625 bytes extras/assets/icons/Icons_Modules.psd | Bin 2336136 -> 2337714 bytes .../Icon_Module_Zeus_Capture_ca.png | Bin 3620 -> 5038 bytes .../Icon_Module_Zeus_Surrender_ca.png | Bin 3541 -> 4735 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/zeus/ui/Icon_Module_Zeus_Capture_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Capture_ca.paa index b41f0ccd37cc5298b7dd14af015803a0407e6c15..aa7eb0faf875912f1d240357868a57c6d1a42869 100644 GIT binary patch literal 5625 zcmeI04^ULc8Nm0BgBqe3>iXbU|>Ke@Y;+l!aQz-br~zPgeCY#_))Dk zI~_ll;ooi*LRH}i?VFC!Mf{swOGoJlVGXw$84#Yy-~aP}W<8`xUlXgZk4uETDO8@+V>YLt{0NW_FW514t8}FvSbLRwb@j0oUBIDnCqgXPC4hhE`Ab6a z;H+^8jGuaiHNL$5jd9?#FUpz=^kW2t{CXownylaW_5;94pP4U8kS893F3FRh(c5W% ze)-ldf31;G|K|f<=wL;xXs>HmD2AT`eexeTU!8R&Bfa<6j`W8Qrn<-RkONfxkw7Rt1X*IWMjT_yu-q;gHK)6Dgh z(E7sfMbhKQlP`2%)IDT*@6PK(ubnj>U`=%X;6-3h+*h@cjp~DEfQj{_-H!be*iCPw z<=q4Fja~h<+^6+4e$&q}BQqJ>OpvQkCOIEb|8i@;y?%6gr7}h3mjdtm+I!VLxqNWo z8f!Yu7DRx)PO?+&o_w?D>$|yDGxr$C)f4zvG-}!ViN0n&^yghtBGLe{iH zHk91ryh#AeECJYJo`zzDD^xc1It(U&e0Ykp{{aqKl z^(i)}i^THD&gZAzKN>|NTrQx&woJqlpEPtgi4pb{IlS+dm(#GFNZ(}T-{51|o6e^* zU_8f6nS91`G8zUky>*v53g*#c)|BbkzPdXvgTD5xxlZP1q{r0pFx|85@5tI={At%$ zge}`wITv_vPGa1Gqe@y9gZps~Du3;^Y2A0cxgQJT(PL6{w|2nwDbemu2&3~=$5%h- z-vAtbdZ2o|-&3Ya`g5l`a)ncdkdVS#lw3o#i}v>&FIU*lKgdAeju_J<4?9B_^Ozm58k>fRtjp|=@mDi+*%E+1#GpBRCM9co-P2T&l?s?D4(UgpA8etnw0iOk8!O)^(xU^)d9H;^UuDWBtnU{`#dLUssCn%=qRA z>=(zHBCtuok6F12E~mHxILhX?=Ollaps=3G<_LQ}V^sk^>0tJ1T0Pg?*eXb*H&rFzrVK1=6k2b$G2sArAdX!JMH1p zd?u??hyG7=a;-yVb9Rzv2tw2`67M=!H_icYx{hp`)V*BAs4G*??w!J}H zoG5a;xYsw0Frh_sTa&H~p5o*N%8Cz^kzJzGK_ChwpGDut-t%V5K0g@t9LkP~`|KY2 rk>YO>NonP@{nVQprO}N&Wi|BDCBqpNuc!Z8O)qO>6IOv5_uBpoS0$>$ literal 5625 zcmd^@4NMzV9Kau>%C<~kd`1u`OT{=@Vy3AsLVARyP$R)agA+|m!MT~iI$S~|g!QJ0 zjm~Y&Hs<`8BpThKiQ;B%Q8U{Goxu-WViZRA1^Xb&vO!@PLwbAu-yQ$gyK89EP^NJ& zcgg+w|G)p&```86-9f9WDxR*as;e*&LPDX?iwduBB4=09fsprFqu(!SoGuv5>5{0T`m!-4S_{m0^n^(NKHY!2F^ z#9?H`B$pfNZ}b;wU%#G4{a8$m>#t7W`K#f0wd(~MQP>dw{I5Uc4-xVD5ooSh9IgM= z_1D{jCDYlD%B+Ce`attnhx?sL+0fYYLjTWNUsYSH&wiO*KlXaDehJ4jv;MRCk8RHw z57a+ueg5xqV?Ay!X4$fV{jJii!8aPI28*U~0! z$azQ0L-iX|L&%nazqi&<%JuWMOUqBVLq#Z0bbN`ncTXquuXR|)cvoFIHhOc4k=ozS z{F%FXy7s0UIfGWNu)NYxf?PG^X+><5LfIz&Zj)1xjrKELt*(()7tjBpzigo%Ux?>#)L-dqbxpKx z;P=PT>pSFu9UcFf{GTK6GNjob6b{l|^oHv^=70Z3-SXEAV6fcEhd+F`hsrM?*IcGk zTK&#(sldsEFqnS!rJvzyA{RNex2qt~9quQl!v@M#`uBL9p&m!Zs~g}E$ot>iU)-eS zw2fAs{M+$$FKOjZezFDbukidt=ciUVT(8@W&BRQIiHJUEAoo}gwvoc5f#24~Z8#B` z=0p+dE3A2qCSuCwvq`CEb@H?^-lj@#Yi=9S=N{AhC*w4Vf0)mRgA1T-SSLNY0jF%U& ze58Gum~XuEE|^J-qGlyLo+c+7H2FN*+Xcy!MUyS-(ilAGcmT zg7)nFk51W!obAYuTzu6-+onz+mj?HD41V)=KeEwYyqtUe^o0(4!vkn<)j_H8yUL&s zIeV?AW6=E`L#4GnqZhCIP!{6x#PSE9S)zUhAbB&*K4bscw#7}#Gj)c|E%rt&lXCcC z$bx~ve8;k%4xa+yBctG_)LA>O`~k6PqHogOHQ8cAGiK3!uvpqviVXTif!Ykd?1Fzw z5^*#rk+AuKza?4EZ<>f>sYVXZ42?dU!v@;VJ}s^NyzZ?gWb)fK|Kb|&8qTUZ*H_Zi zJcd^Odf>uttMc-ol)?JPwLN#fp}d@i%c9X=Ko+piq9diNi|hK<^Dw)GWqV&Qb8y~G m9DB2ROBV7lK3(EXUVdCcHo+4W>M4BD`&o0&T^abZ8tgx`pd6I| diff --git a/addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa index 5cdc2451b441b5b21234eab7503644394231b5f0..6ddabf4d56044c139d8836f3ec08d3ac44ef3e89 100644 GIT binary patch literal 5625 zcmeHLe^6A{6+S!`k+)%&7!#9VGHXKxmaN1iQk|HvXbT}iu!%U7#1yg9m@$~l^q);? zg6quk9Y3*&Ufy;=iYruT2WEKl7&S}3oHN-4u@xRTv1R;Si?rRsGy{fZ~}e^ zKUr8<=ElDnetw+>uxTp5Tekvq;pcyAZg2yjhiD^0<8QkEACH}nL@3^pQT(n&(|i%| z`&nwcTC?#}aW=Sh%j{i-R*sKV&;ni@jFGFH*R**SMJ0)dOX0^!qIo0KDzm7 z!aWiQYUIcX?dk~(FQ^FuFeA%^LsgZh?hV|r=5Xek!-TEY4c_k`duH{(q!st_{DOS( zjephlCJ((;OV7hfcFH0s{Y%C#1fDND@*8cu^v_tME`LgW?jgg!wq!<{aQET_iU*ga zB!n+a6?fDSJkdq^cgq0Bx`#fmy}CW0o?B6GvGQu^>4v+`(0HKs zSO$#vZgf7@`cb_4TsrZiUVp>4$Aj82JD<;k2YfjjBY)`q9g*X6rvNbT&~NKLh~lc1 zo~}zNWrxqyO~U$u@u!GFXi{jXll&_fB z@MQQKZ_M>GlRv0!yl^!ZPf#0NM!!`6*@%+z5%L6l3qz*69^v@Uhq3uCPBF%x>Jwvz73HG|^J8GrlOqa{-(~6tX|OWYw&$+S zmQ=ppK+($M^F0cS_9XMU;d#9DA)BJcuh_mbJ7gi-qPiD`DSmQ7AlT>PK_g9yk9H$K{v$kHVNyy^a5TM}EfK zCLdx&88JVV^1e9zpoITc@j0Gf@FKkjlpIlW>`AlYMOYA+T-a^u_dN5{rg;5YdHFT^ zM`C+Y(uC^wGiJ!=Msg{H(o!;m6h@J zAC&SD^J@ealP0kK;rfr802Du#yVwvJ__ALApX9hraV{OG?VDD+neXp(KD@K9VpDg8 zjq8^rSuQ+J6K1oG?3=Ja>iQe`{vUJB#~1mGc(w{F5S=54Rf=i3@sMf+*Qc|VJm@q-^ET}FIMeYlj#q6>*EcjUgGGY%rIiCPhYkL3E)!ma`SV7OT zfXP$#V@=Kf@-*SOGuNN(zh&Cig4wjK;c8l-s|+GTomr-A`EbRt-*$KQ<`ku^e-IAt4cc z@^(G^ENV+P>Q80ofxjYolwV|_!LJu0d6a*a)mw%9s9!HzcuKjpY=c0r^LV>1eik*x z8|TLW?)w7CaY+%T*DfVt&uc%7;#Ma>GU<^&KO+yFjU z|K7Uwb-en?AWKsZZTa$W_H^#X;S|Lu+SC;vsd_b#aCHh_{AyXp>+})=XP+nv7OWhY V&qv-2eD!hQc^<9g%*xWq{tZ!SLtg*@ literal 5625 zcmd^@e@t6d6vs~=MWFo5GP7(9=_b?#7cm-1j4&QE0h&08Ll$B*Li>-20kVJgpZ0=T zV4$O-7!on9{Nc1lg~c?)>1by5LyZ`-grFrYX2ubdNjs8t&UM#w?&H0_zNU1`n33(} zHSMSO-gD0Pocr#3_hs{@riSOAZaUCl27q`x{(|84hJC~w58|eVXBvr3_#tj>Y;2M7 zH^WbV3Bb|K0HgN(RZ zSVeQ6&L6ld>?28Rw!6*g{AbjU9g_8=+E4Z;k0i4}KY(P#Q;o;yKNF|a8=55=quS$O zH?lCPwHxwp^p|Qsxt_-UnV1{vuME)iE8)2H^}-%&up$0CUw_n(5o!4YoLrfBt@*Fi zKiM9ZEXn?wObOKI2Pc1XV!l%=9Xfk%od0R_tMu0Qr+?D-&s;B>FNt_o>z~$tW_!kX zF#l`j=WcH|=HuRCQcH(AzZF_PF7Wuff{lOP;QV9^pgMmuL-yxiRCs#V=vn06_)naN zaq3Ewrr(j<4}YyN1QPL3J7gtTU0IcX?o|A@>u*!^uc7g4r#+-cVja`A(4p>F&CYq^ zT&Zt*>k^Ni9WE#(t}V`raM=2;^kj!b`LR|5Jbu()82qv<$ax6!2jX5tG5ufl8uRtg zLi~$A{GAwom=~FPdtugfjsGxwL+CBaavYA9tZ@E!Iq{e+uW#G0oFD7!68*hn+shw$ zf2uHuQ(~j&HR@0B$(Zzy58nG^w&!|i`8w6t`>=%#x_Pvouhf(Njxk$)qJNk_p#py2 z4f;`q@9nE|J@GR=bwaN6Y!>%cTEQq_#+vOx&j2%*0>BChh9qi20!P%hxs< znse68IcrG|TijE)W$E0JaXg8oy%C#Uzpu@wBGw<TMT9K*r1s*7R#vgH z>9*Bu#uZ8S5108G{&75Qdv*3w9@BA~!nAEV>4E;Z)*s{bROq%PGINaw{2yrB3Yqzx zr8)*y@78Z)jN?-|=K-tEerkKNf2CbF?L~a)Ir|)M8S#I{#IgV|RK@MbyZkQ=tn!-) zdtpkol;G6~ZnTe`=+Nq=U|Qb3Fm!%z+_^0L4NUm9T=6`%^yA7YVxMJj0`^EHkWKdR zu`RJ`r?t20?xx$HZN1VRJJfxF{C(8iGpi1>5?+^oJ#@$6r& zaXg48*=JudANzjbt$93!e~YBuw}?@`mVtEs@ij~4*8sZu*t%;R;+YWbSK=a~)c@!*OG2ZL-{ss$K zHt}{2Wm_z|GAq+s$kr`Gl@osFQ~oHL3v(|6sQhTEEI1h#Orwqcb0HUGfQ!4^cN~~~ z^@JM6q+B)jMy*|Y2!C#vR)?Q!$Sh+FT0fks3r_AEA+|^ouBT?or~LVMzOMTU@9W;~(MER$|Cx#biqE9%;&{f*4Uu6VtiLs_8jng%1Q(WG7RHR8=?ksL-%331Lw$ zMs|8JEHWod{ic(DeAl=h5k2E$qkF{nii->j>k=K&E4EXo$WD>HI(G@{6>aXc!)KrN z56Mh}cKbvbqCz`8J4CMGWJI#MoC!qS-4fCgr%X#pOdCIC+-$-{ZOk#P7?vcEG?GZB zkZB|Z-!w8F^>Ji2Q7EH0r5D~%6Q#UGNRpsnTkVcPdI;{moV$uc4`$}Z?Z`YA z=b8ClysI!O^ZodNnV-dbcyp3aPNL(wpKh90;}ejhe)Tg?_fI+2jbT-bGB>{7#91|g zG$R7NoYQQan`*cDwo0<&c$qfr{m)~@2!p6zpTk0{m2EpkQ{4-go^U8 zrp#bk%8{xJS!pStHXQ4rN@?}(_g^3DA2;vE<0puz;ALS_W_$4!VVTJgEqua;OnH%s zka<($c1@X$)?iagn4mS~brr%hE9AbW*3p8IlOABCt2PJOHRWoQVN+MJVa*e@LL66N>SeBM(B(uX>OoyX$p20 z{`zY{lI+ z?QX7+PTz{Azj;^-p{qiA!<^aDG2e7|PI|PpLYm%_lfL8ckTrdd`9Oe>$h)QQG&gVK z7%lypd3KOvv>A3jx$#(9k09~^iYWN&8@>6>Y1f6gIJmRtauFA*bH4JaJpGW zbDt=OFtfg4I1^Xn;?4@=StT6CbsyTrp_JJz%rmzaStPHa>M|hdTvo7(TCiKiR1Q` zQ=f`k>RC_X*4T)su!wPq|155q2OEVYY6Pya2wPDIQ7m||(DV<%<aT`s?M)vhbjwQas*9@I2+rf?jjKGW)sHlI(QuBdN z9m{`5uDQ($p-{#6?hwr`pF8^OTx9}{zd2)-Q0Hq5BJ2r(x3|UI$Z{AY{}TnW{?{2CCJXmQ#!uWvV+i zLPdO%FWacDVI_8h{`){sv!sp6-KE_}l~k@@7eh#s1*HwtZOaRUL@X(6pyK){Z+An) zdONk<{}j7WqiF>|uL;C?Cizq~rTh8?dj!PqrL_Eqw{g04iCteLQjhAN-gYNM-+5gL zrDvx0aqgI4JVa^97m+HNsG5#BC{p#=j1C%^IQc9np!C9`w_JuVI7eym%1(MfojnpZ z96xz{$GZVCaZ$Up&bUQs!TMSHd7DsquxnU{rcN@^IfwQc)HlLgA})>E_xt)Ddhc8k zxFfHY(zGqU8|Nnt ze5G5LxDnG=W*z$RVxd*0D%+WD>a0^0QayDkIiI_0>z0G33ThjuTDtYka`l2Q&syuK zQ+-9zty>Q*ay?aBj?90{wd;Uco3oFezgc*{%2rEV?Ui?KTtD|i_Qpw_16{p*Lwg$g z4tsaulB}N}0Qn$y-K^Z!Ks`0SUx+-#(ts9Pm|UkTnt zTl)Ldv$n^ey`^YhUeQ(0+b#q4mZ5#=lL!rOdnfE;?dxm1yYseTz|Om9-&_~#!P`d9 zSHCU-;MSKt6@a5%_*E~ZZ5XiY-qU!mA=zxe$9V5y`^%rkJK6>7dMN$9hVEnZ*Vi}% z@EW$C33P4sD_kI>`tJ!m`(~AZ;O2UVgdTAl3(+pz80X0)_Uyf-h#8~a4lljE`Be@z zcn#k3kkZ;Kc{fB#Z*PisK!@$Gg#Fjf-B?a((PQY)y?|bv&~?g9YNREP!9%hE{^eD} zYySbCd=`2x!GF}%r=dglR#BQiJb28tKZHW%rT<8aX}~q}jep0&v+uV10KXaX_LZj? z8wT&e1oB5bH~JEw8{@cY4PLJwz)H&>(Qfp`r=i34JD_YDk7*Nfn7||2z4hBOP@@Ap z>cZ1t&f@&Y_Tz5?x+&f<+^_={tjQ6fDUhZ35!CyQ?`@P`e!cA!EU^1q6k3({8%JcS zzdqP65u;Xab#UTL8S-1GjF@#>#R_ls^8e30m18xD ztgA$^A<2bQB})>2i>zHhpF9>yY9Nk? zVFgJpr78@=k`X}ykIR%UTAuI@<{2)qIioV5?t%I*viOt>AP_;5FS)XJ!Gaz8CH=n3Ujvx zW`Dba5HY0u$VpficpUW*c@NkQ816D6)ye1#TC5k;csHj*L7R3djq zHX|*FffTWl*ceoV^I?@RIl+O8z_h}a6jcFeH!6zbNVLI;P0E2~gF#nJFb)P90Hz3~ zxAeF(pkT&idlqZAqc5`v*2v#up*~S&^H-!3Wvrp6Si8W)K(a}T)P?)SQ+Q@ZNX5XI znI2?Nm;~3=W@v_I5(su^Mg^7}%@-r&H?q;|7?kY}&@2?@PzKHojGWr*AU)GR z<5fdNzIL(4aMfF|d>wmIHDAH-SH{6ATOYyM24NN1hQXXkV!ms&E9+ULMj~58Wl?i& z+C{6x*7hSqSos=f24wym@)i7`2UW0WG`D?g;vb{;P z+N=;9w3wVIT8(zAT?ImD-pHqC#g3(!>8OcJc6*<_z%3xJ| z{tjQml(DWAZvk^EW6HAL!IT-tYPYaG+sJmLN5itIL2S$tGZ8T>HeWla*iMB_(}Q< z2ud(;EO7baKBWWch-^9daj0U!swKi#TaN35uOEV12%gaU#6{&dVAJWFyOIJlRpbHD ztK54nEuyr_xMM^M22i_oUiBMxzRDwSd$_pN0Agsg@IJk?YlFF*9$&V6>6B<)9qah= z_jXH0sBf>`aMDs$N#;v+q>Q*We{*iONN>mCT6HzfFXeW6ck4^84WxoJRX2b4WJRrL zyPDiW-~W)kY}1U)D`Laa<{TMfOg@Q>r^@!=;Of!|1lpC0_*=N7wIP>(GA}rP;xp@lu)YdWn!X zuh{aJ&DeCyn!owL!v`1M^XAC(TADx7GuTvLGS3+5|I%l-sHMJP`{>p}1F0fzu5P_I zU9C9ymn@6?WfNp-?J_PEUH&${mQ)kJM&Z$sudgnwcvwfTB@*JQ^Xa)@#rtmsIq5K2 z3uzUewr<0$#QEP{DY&p@YH0Xyr*Au}C#0j`?&mQG@r@Gt8n z>LT0gtl#z~eXN`%+)5FPHH%|0g;8k=d}yC);%`+3orX$RO= zCam|DNF7mYT4h|5j8uO(xyz*U^#>xIhu;95WoxuH=)+1D>l#eK5~(Gs{wJ|{>X&MX zZw~z}-eu@@kk#yrCQTMwvB{|#);=c@8`0`~{9fHyFH-$yEt_^dMvsK62VFyKwq0I5 zX69iCSO0M{MyK%~m9gixo$606o}2l=C~fm5F_%FnS+1SPyDL(mZnj7yqSdzSzwjio zNEfNXMo$bUhU7x%p#DRH1gxgTWb=Pi*HB%>5?|6|Plbi5ZF{;q$pjgC`?(jZsZ;5y z=e6-$tk^_#Qpu*?F8Do*sNE;$)mBsO@jfmQn+qzbw&A+*;|@;v{jbrOGdAjRKkvk` zQw2z~e;Yyc@7LO?)1ACSIe$G~V8vQH9Sf7pbB8yGikW?z+ZNqqc7iC+&AuB9_$r_Z=%l7>VZq6E&pw_uY$LSl-E`udJf8@i+Y4ECDgQ74Nvc`{<_MrTEbGi27-o@Lm`ZQ)X%8j_`E%wdu%=qdc{sZ*RlY6H?4*UG2a7O zd-hFq^;uGeVQhJ-br)>_{xHD3x1z8K+oUwaBqNgsb_$)UtFV_lx2hvYRkS+ z&NiZp9o@!r)VW#!3fIOt*@?ROtY6^ys)w7#soJN&P6qqYnS;Wf5AGPB^v(Aph}S&0 ztNy{a=?O1Kbcr3a?4q5ju1*M2yY|e+Vc1Jb#qY@pM)QAP!zBKcJ4CvI_<4xL1bh;?riSfC@RC}U@rsnUfnyt z)KpX5{i%BI8F_U$iHKFX!@0}1nsm5|YPb87kQw=amu?@4jSFkYb@CulzM|;ae8`OKw_WV-NS&NRY ze<#|5k$J0KBhtV6xv-+N^x@s}2Nw@)rNfPwm)5h(2a-l>Es?EI8sgAHY~!;;(I@> z!cQopzUzn#bP=VE$U+3(9r)dteh0`2dV&xvGp#TAj$SkM*o*U?;T1|>Atbnf-isw9 zh|>2AYbagQFPPvwL45nHr1TSl+fD7STNi)vBU}CJRQ(QKuZ36d?}&{xWXP{rLqEn~ z>k0eb^%Pkx ze-j491uQZYN3Tb{D_Pbqf?D9W4eYAl?XhckqXqZC3|!f@5+qk{om}ygGP{ewLv1<{ zNhid`9f3n$Bt}Sb0aWrQR$~zZn=1aZ7P3G-5sKXcfd(mS19in4X(pdA_A??Qxl(AI z6dEMHpmjqcgR2DA2`>#x+eIS=WQj3yC5o*SATUz+G6=!0#KuI9iQJ5GDWNBJVPpq4 zyQ7Ayd@iz$Yfa6@Mgol9GPQ|zcEJQ@NU>SgXJfP&g(c}4*~kP%uFcx47cyIBLU6Z3 zyAX|$t2q%MR74sq+d;1ZHE5AH@*2qgHJ>q(f5B-W;J@uN{8uqTOe2c$OMBLRVRN)O z-e2`*|3CGIB}ACyKYjZvDQG(~BK;)~*k(j27)N=uYhD6LWaQ36l`O=mZ>>1!&^5@wn@ ztrOmLyw(U^O=~x{c_o5f$hjk2U(Wn^Hl^fUEUWV6Ia6bPDQEz#2XQmy?-oXw zveyV>pM80lHg9SZY-*h?+%e{o5+VfkmnH~(T9uG{L^bB1rGcu-vJ>v%1f^=W&SIfL zS;hlWN`w>(yzFw`FTdbEuWVu|DJMdAOFboVxotHrp9WdB;<<*NIIMQVbe107({7L&!7?8-Wp8od9YZ*iHxF#TsM~B)EF delta 6244 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 j07d{90pL+y{~Z7Tj8yX5_+ujg0000peHP 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 delta 804 zcmV+<1Ka%nB-IHhK+^$e)yy9^DFFWULRNp}VnYZ70D=ZgJS1Bs z#C8aQ5CT)Q4F(1rV;<1>5U{f89k#)s0Reyjz+Z)B@*T0jfB--MV9F993k(PV1OOVX z0WL5g01yBu&5|S`Ns=?F`V?3LP*sv7K~?W#YynS(>i)aH25_zX0@|$9(d~9g({#=H zb~a5@(lmW+MN5C}xn+i#IWzn0=Qb=YcYUQZAa2Eo$Sr^P2KXkCAR_njA1MHLa4h)5 z?47EDa2c6)4RFi>S9^5hJ(lk~dj;n~_yX+vklFOJi@=R(7r|v<76X)Lh4}{<9}CX6 z0pd6&j^j;{{L$YmI}a$^+8B@lLL0{n#vU2FL|jBz0QP@96BZDz1Gn?&FkKWUQw)G{ z!8;GI3apX=@D|55@CjocV;NxynDzhbk;BQ%bTdF%_jg$YF6FhSumY_3(C7i=a?n88 zL)Zn@OO>e7TViPeX5$JOO9+pEmHd3)`7Pif$}UEyiU6%T6Z}BL3t$@?aUP6UD6fG| zZ8AZ1I+%as^_*>KroD56w2v|Wy`mDWbdqIRHt-1$MbQC3zSZ@0;6&B6Y3Tq&Q8e)B z?c^BekEJj#9e_eYQ?%1ZMUf!K=6qF&&{%0u)xHY3e9P>PZPB*s2f!#hv>=pqVnC84 zIIc@{m^)whMCdnnm@5Dz2#I$-Yf2*2XUA|K zU~JJ|M*wt;R%jhXQ2($2_n-XvLffnXArNth<2!JmrX65MM9u*}s$NQXON@qFctL{j il2jZBfdD|0?biS+<(H^7j%r2#0000 Date: Mon, 18 May 2015 19:58:02 +0100 Subject: [PATCH 14/22] Transfer curator functionality from ace_captives --- addons/captives/CfgVehicles.hpp | 4 +- .../functions/fnc_moduleSurrender.sqf | 38 ++++--------------- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 91c47824fd..ec142a533b 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -164,8 +164,6 @@ class CfgVehicles { displayName = "$STR_ACE_Captives_ModuleSurrender_DisplayName"; //Make Unit Surrender function = QUOTE(DFUNC(moduleSurrender)); scope = 2; //show in editor - scopeCurator = 2; //show in zeus - curatorCost = 0; //??? isGlobal = 1; //run global isTriggerActivated = 1; //Wait for triggers icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa)); @@ -176,4 +174,4 @@ class CfgVehicles { sync[] = {"AnyAI"}; }; }; -}; \ No newline at end of file +}; diff --git a/addons/captives/functions/fnc_moduleSurrender.sqf b/addons/captives/functions/fnc_moduleSurrender.sqf index bf0e04cd6a..5b40b7663e 100644 --- a/addons/captives/functions/fnc_moduleSurrender.sqf +++ b/addons/captives/functions/fnc_moduleSurrender.sqf @@ -23,37 +23,13 @@ private ["_bisMouseOver", "_mouseOverObject"]; if (!_activated) exitWith {}; if (local _logic) then { - if ((!isnull curatorcamera) && {((count curatorMouseOver) == 2) && {(curatorMouseOver select 1) == _logic}}) then {//in zeus interface and we placed the module - _bisMouseOver = missionNamespace getVariable ["bis_fnc_curatorObjectPlaced_mouseOver", []];//bis caches the previous curatorMouseOver - if ((count _bisMouseOver) == 2) then {//check what mouse was over before the module was placed - _mouseOverObject = _bisMouseOver select 1; - if ((_mouseOverObject isKindOf "CAManBase") && {(vehicle _mouseOverObject) == _mouseOverObject}) then { - TRACE_2("Debug - module surrendering %1",_mouseOverObject,(name _mouseOverObject)); - if (alive _mouseOverObject) then { - if (!(_mouseOverObject getVariable [QGVAR(isSurrendering), false])) then { - ["SetSurrendered", [_mouseOverObject], [_mouseOverObject, true]] call EFUNC(common,targetEvent); - } else { - ["SetSurrendered", [_mouseOverObject], [_mouseOverObject, false]] call EFUNC(common,targetEvent); - }; - } else { - ["STR_ACE_Captives_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); - }; - } else { - ["STR_ACE_Captives_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); - }; - } else { - ["STR_ACE_Captives_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); - }; - } else { - //an editor module - //Modules run before postInit can instal the event handler, so we need to wait a little bit - [{ - PARAMS_1(_units); - { - ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent); - } forEach _units; - }, [_units], 0.05, 0.05]call EFUNC(common,waitAndExecute); - }; + //Modules run before postInit can instal the event handler, so we need to wait a little bit + [{ + PARAMS_1(_units); + { + ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent); + } forEach _units; + }, [_units], 0.05, 0.05]call EFUNC(common,waitAndExecute); deleteVehicle _logic; }; From e27ac53713bf0acc00a2bb21f5ae3e961539030a Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 20:43:02 +0100 Subject: [PATCH 15/22] Implemented contextual modules --- addons/zeus/XEH_preInit.sqf | 5 ++++ addons/zeus/config.cpp | 18 ++++++++---- .../zeus/functions/fnc_bi_moduleCurator.sqf | 4 +++ .../zeus/functions/fnc_contextualModules.sqf | 28 +++++++++++++++++++ 4 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 addons/zeus/functions/fnc_contextualModules.sqf diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index bf7e19c07f..bb71b712b2 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -6,9 +6,14 @@ PREP(bi_moduleCurator); PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); +PREP(contextualModules); PREP(moduleCapture); PREP(moduleKnockout); PREP(moduleSurrender); PREP(moduleZeusSettings); +if (isServer) then { + ["zeusUnitAssigned", {_this call FUNC(contextualModules)}] call EFUNC(common,addEventHandler); +}; + ADDON = true; diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index d97b8666cf..26ebab068e 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -2,11 +2,7 @@ class CfgPatches { class ADDON { - units[] = { - QGVAR(moduleCapture), - QGVAR(moduleKnockout), - QGVAR(moduleSurrender) - }; + units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; @@ -14,6 +10,18 @@ class CfgPatches { authorUrl = "https://github.com/SilentSpike"; VERSION_CONFIG; }; + // Use additional cfgPatches to contextually remove modules from zeus + class GVAR(captives): ADDON { + units[] = { + QGVAR(moduleCapture), + QGVAR(moduleSurrender) + }; + }; + class GVAR(medical): ADDON { + units[] = { + QGVAR(moduleKnockout) + }; + }; }; #include "CfgEventHandlers.hpp" diff --git a/addons/zeus/functions/fnc_bi_moduleCurator.sqf b/addons/zeus/functions/fnc_bi_moduleCurator.sqf index 37de3d8eae..b33d7461cd 100644 --- a/addons/zeus/functions/fnc_bi_moduleCurator.sqf +++ b/addons/zeus/functions/fnc_bi_moduleCurator.sqf @@ -2,6 +2,7 @@ * Author: Bohemia Interactive * Module function for initalizing zeus * Edited to remove eagle and global ascension message + * Added "zeusUnitAssigned" event call * * Arguments: * 0: The module logic @@ -171,6 +172,9 @@ if (_activated) then { [_logic,"curatorUnitAssigned",[_logic,_player]] call bis_fnc_callscriptedeventhandler; + // Added by ACE_zeus + ["zeusUnitAssigned", [_logic,_player]] call EFUNC(common,globalEvent); + //--- Forced interface //if (_forced) then { // [[true,true],"bis_fnc_forceCuratorInterface",_player] call bis_fnc_mp; diff --git a/addons/zeus/functions/fnc_contextualModules.sqf b/addons/zeus/functions/fnc_contextualModules.sqf new file mode 100644 index 0000000000..52c0332ae6 --- /dev/null +++ b/addons/zeus/functions/fnc_contextualModules.sqf @@ -0,0 +1,28 @@ +/* + * Author: SilentSpike + * Removes ace_zeus modules from zeus based on the prescence of other ACE addons + * + * Arguments: + * 0: The zeus logic + * 1: The zeus player + * + * Return Value: + * nil + * + * Public: No + */ + +private ["_logic","_addons","_removeAddons","_classname"]; + +_logic = _this select 0; +_addons = ["captives","medical"]; + +_removeAddons = []; +{ + _classname = format ["ace_%1",_x]; + if !(isClass (configFile >> "CfgPatches" >> _classname)) then { + _removeAddons pushBack (format ["ace_zeus_%1",_x]); + }; +} forEach _addons; + +_logic removeCuratorAddons _removeAddons; From 7d71d85ffc6e9232c1a36e5592af1291a0e5a7d8 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 22:49:47 +0100 Subject: [PATCH 16/22] Death to tabs --- addons/zeus/functions/fnc_moduleCapture.sqf | 34 +++++++-------- addons/zeus/functions/fnc_moduleKnockout.sqf | 34 +++++++-------- addons/zeus/functions/fnc_moduleSurrender.sqf | 42 +++++++++---------- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/addons/zeus/functions/fnc_moduleCapture.sqf b/addons/zeus/functions/fnc_moduleCapture.sqf index f7f7a33e77..8d3a83e6c9 100644 --- a/addons/zeus/functions/fnc_moduleCapture.sqf +++ b/addons/zeus/functions/fnc_moduleCapture.sqf @@ -21,25 +21,25 @@ private ["_unit","_captive"]; if (!_activated) exitWith {}; if (isNil QEFUNC(captives,setHandcuffed)) then { - ["Requires ACE_Captives"] call DEFUNC(common,displayTextStructured); + ["Requires ACE_Captives"] call EFUNC(common,displayTextStructured); } else { - _unit = attachedTo _logic; + _unit = attachedTo _logic; - if (isNull _unit) then { - ["Place on a unit"] call DEFUNC(common,displayTextStructured); - } else { - if !(_unit isKindOf "CAManBase") then { - ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); - } else { - if !(alive _unit) then { - ["Unit must be alive"] call DEFUNC(common,displayTextStructured); - } else { - _captive = GETVAR(_unit,EGVAR(captives,isHandcuffed),false); - // Event initalized by ACE_Captives - ["SetHandcuffed", _unit, [_unit, !_captive]] call DEFUNC(common,targetEvent); - }; - }; - }; + if (isNull _unit) then { + ["Place on a unit"] call EFUNC(common,displayTextStructured); + } else { + if !(_unit isKindOf "CAManBase") then { + ["Unit must be infantry"] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + ["Unit must be alive"] call EFUNC(common,displayTextStructured); + } else { + _captive = GETVAR(_unit,EGVAR(captives,isHandcuffed),false); + // Event initalized by ACE_Captives + ["SetHandcuffed", _unit, [_unit, !_captive]] call EFUNC(common,targetEvent); + }; + }; + }; }; deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleKnockout.sqf index 5f416cb771..19fb1574a2 100644 --- a/addons/zeus/functions/fnc_moduleKnockout.sqf +++ b/addons/zeus/functions/fnc_moduleKnockout.sqf @@ -21,25 +21,25 @@ private ["_unit","_conscious"]; if (!_activated) exitWith {}; if (isNil QEFUNC(medical,setUnconscious)) then { - ["Requires ACE_Medical"] call DEFUNC(common,displayTextStructured); + ["Requires ACE_Medical"] call EFUNC(common,displayTextStructured); } else { - _unit = attachedTo _logic; + _unit = attachedTo _logic; - if (isNull _unit) then { - ["Place on a unit"] call DEFUNC(common,displayTextStructured); - } else { - if !(_unit isKindOf "CAManBase") then { - ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); - } else { - if !(alive _unit) then { - ["Unit must be alive"] call DEFUNC(common,displayTextStructured); - } else { - _conscious = GETVAR(_unit,ACE_isUnconscious,false); - // Function handles locality for me - [_unit, !_conscious, round(random(10)+5), true] call DEFUNC(medical,setUnconscious); - }; - }; - }; + if (isNull _unit) then { + ["Place on a unit"] call EFUNC(common,displayTextStructured); + } else { + if !(_unit isKindOf "CAManBase") then { + ["Unit must be infantry"] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + ["Unit must be alive"] call EFUNC(common,displayTextStructured); + } else { + _conscious = GETVAR(_unit,ACE_isUnconscious,false); + // Function handles locality for me + [_unit, !_conscious, round(random(10)+5), true] call EFUNC(medical,setUnconscious); + }; + }; + }; }; deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index a2031b5f5d..0a5d3e9f3d 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -21,29 +21,29 @@ private ["_unit","_surrendering"]; if (!_activated) exitWith {}; if (isNil QEFUNC(captives,setSurrendered)) then { - ["Requires ACE_Captives"] call DEFUNC(common,displayTextStructured); + ["Requires ACE_Captives"] call EFUNC(common,displayTextStructured); } else { - _unit = attachedTo _logic; + _unit = attachedTo _logic; - if (isNull _unit) then { - ["Place on a unit"] call DEFUNC(common,displayTextStructured); - } else { - if !(_unit isKindOf "CAManBase") then { - ["Unit must be infantry"] call DEFUNC(common,displayTextStructured); - } else { - if !(alive _unit) then { - ["Unit must be alive"] call DEFUNC(common,displayTextStructured); - } else { - if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { - ["Unit is a captive"] call DEFUNC(common,displayTextStructured); - } else { - _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); - // Event initalized by ACE_Captives - ["SetSurrendered", _unit, [_unit, !_surrendering]] call DEFUNC(common,targetEvent); - }; - }; - }; - }; + if (isNull _unit) then { + ["Place on a unit"] call EFUNC(common,displayTextStructured); + } else { + if !(_unit isKindOf "CAManBase") then { + ["Unit must be infantry"] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + ["Unit must be alive"] call EFUNC(common,displayTextStructured); + } else { + if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { + ["Unit is a captive"] call EFUNC(common,displayTextStructured); + } else { + _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); + // Event initalized by ACE_Captives + ["SetSurrendered", _unit, [_unit, !_surrendering]] call EFUNC(common,targetEvent); + }; + }; + }; + }; }; deleteVehicle _logic; From 4c1641b64ab15536c8d0e935b6799108df5799e1 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 22:50:36 +0100 Subject: [PATCH 17/22] Generalized contextual modules system --- addons/zeus/config.cpp | 5 +++ .../zeus/functions/fnc_contextualModules.sqf | 42 ++++++++++++++----- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 26ebab068e..7d6d6b72b7 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -24,6 +24,11 @@ class CfgPatches { }; }; +class ACE_Curator { + GVAR(captives) = "ace_captives"; + GVAR(medical) = "ace_medical"; +}; + #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" #include "ACE_Settings.hpp" diff --git a/addons/zeus/functions/fnc_contextualModules.sqf b/addons/zeus/functions/fnc_contextualModules.sqf index 52c0332ae6..e5433bad27 100644 --- a/addons/zeus/functions/fnc_contextualModules.sqf +++ b/addons/zeus/functions/fnc_contextualModules.sqf @@ -1,6 +1,11 @@ /* * Author: SilentSpike - * Removes ace_zeus modules from zeus based on the prescence of other ACE addons + * Contextually removes addons (given in ACE_Curator) from zeus based on their required addon(s) + * + * ACE_Curator format: + * ModuleAddon = "RequiredAddon"; + * OR + * ModuleAddon[] = {"RequiredAddon1","RequiredAddon2",...} * * Arguments: * 0: The zeus logic @@ -12,17 +17,34 @@ * Public: No */ -private ["_logic","_addons","_removeAddons","_classname"]; +#include "script_component.hpp" + +private ["_logic","_removeAddons","_numCfgs","_cfg","_requiredAddon"]; + +if !(isClass (configFile >> "ACE_Curator")) exitWith { ERROR("The ACE_Curator class does not exist") }; _logic = _this select 0; -_addons = ["captives","medical"]; - _removeAddons = []; -{ - _classname = format ["ace_%1",_x]; - if !(isClass (configFile >> "CfgPatches" >> _classname)) then { - _removeAddons pushBack (format ["ace_zeus_%1",_x]); - }; -} forEach _addons; + +_numCfgs = count (configFile >> "ACE_Curator"); +for "_n" from 0 to (_numCfgs - 1) do { + _cfg = (configFile >> "ACE_Curator") select _n; + + if (isArray _cfg) then { + _requiredAddon = getArray _cfg; + { + if !(isClass (configFile >> "CfgPatches" >> _x)) exitWith { + _removeAddons pushBack (configName _cfg); + }; + } forEach _requiredAddon; + }; + + if (isText _cfg) then { + _requiredAddon = getText _cfg; + if !(isClass (configFile >> "CfgPatches" >> _requiredAddon)) then { + _removeAddons pushBack (configName _cfg); + }; + }; +}; _logic removeCuratorAddons _removeAddons; From bfce854be3dcd754413f4641b35f0024aa0e3710 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 18 May 2015 23:06:21 +0100 Subject: [PATCH 18/22] Localise module messages --- addons/captives/stringtable.xml | 36 ------------- addons/zeus/functions/fnc_moduleCapture.sqf | 8 +-- addons/zeus/functions/fnc_moduleKnockout.sqf | 8 +-- addons/zeus/functions/fnc_moduleSurrender.sqf | 10 ++-- addons/zeus/stringtable.xml | 52 ++++++++++++++++--- 5 files changed, 58 insertions(+), 56 deletions(-) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index c987e75641..4e329675d1 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -157,42 +157,6 @@ Megadás abbahagyása Smetti di arrenderti - - Only use on alive units - Utiliser uniquement sur une unité vivante - Nur bei lebenden Einheiten verwendbar - Utilizar solo en unidades vivas - Použitelné jen na živé jednotky - Używaj tylko na żywych jednostkach - Применимо только к живым юнитам - Csak élő egységeken használni - Si può fare solo su persone vive - Usar somente em unidades vivas - - - Only use on dismounted inf - Utiliser uniquement sur du personnel à pied - Nur bei abgesessener Infanterie verwendbar - Utilizar solo en infanteria desmontada - Použitelné jen na pěsích jednotkách - Używaj tylko na piechocie poza wszelkimi pojazdami - Применимо только к пехоте вне техники - Csak járműben kívül lévő egységeken használni - Si può usare solo su fanteria a piedi - Usar somente em infantaria desmontada - - - Nothing under mouse - Rien sous le curseur - Es wurde nichts ausgewählt - Nada bajo el ratón - Nada debaixo do mouse - Nic není vybráno - Nie ma nic pod kursorem - Ничего не выделено - Semmi sincs az egér alatt - Nessuna selezione - Make Unit Surrender Poddaj się! diff --git a/addons/zeus/functions/fnc_moduleCapture.sqf b/addons/zeus/functions/fnc_moduleCapture.sqf index 8d3a83e6c9..624117ed03 100644 --- a/addons/zeus/functions/fnc_moduleCapture.sqf +++ b/addons/zeus/functions/fnc_moduleCapture.sqf @@ -21,18 +21,18 @@ private ["_unit","_captive"]; if (!_activated) exitWith {}; if (isNil QEFUNC(captives,setHandcuffed)) then { - ["Requires ACE_Captives"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_RequiresAddon"] call EFUNC(common,displayTextStructured); } else { _unit = attachedTo _logic; if (isNull _unit) then { - ["Place on a unit"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); } else { if !(_unit isKindOf "CAManBase") then { - ["Unit must be infantry"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); } else { if !(alive _unit) then { - ["Unit must be alive"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); } else { _captive = GETVAR(_unit,EGVAR(captives,isHandcuffed),false); // Event initalized by ACE_Captives diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleKnockout.sqf index 19fb1574a2..cf44b3e07e 100644 --- a/addons/zeus/functions/fnc_moduleKnockout.sqf +++ b/addons/zeus/functions/fnc_moduleKnockout.sqf @@ -21,18 +21,18 @@ private ["_unit","_conscious"]; if (!_activated) exitWith {}; if (isNil QEFUNC(medical,setUnconscious)) then { - ["Requires ACE_Medical"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_RequiresAddon"] call EFUNC(common,displayTextStructured); } else { _unit = attachedTo _logic; if (isNull _unit) then { - ["Place on a unit"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); } else { if !(_unit isKindOf "CAManBase") then { - ["Unit must be infantry"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); } else { if !(alive _unit) then { - ["Unit must be alive"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); } else { _conscious = GETVAR(_unit,ACE_isUnconscious,false); // Function handles locality for me diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index 0a5d3e9f3d..094ece0979 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -21,21 +21,21 @@ private ["_unit","_surrendering"]; if (!_activated) exitWith {}; if (isNil QEFUNC(captives,setSurrendered)) then { - ["Requires ACE_Captives"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_RequiresAddon"] call EFUNC(common,displayTextStructured); } else { _unit = attachedTo _logic; if (isNull _unit) then { - ["Place on a unit"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); } else { if !(_unit isKindOf "CAManBase") then { - ["Unit must be infantry"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); } else { if !(alive _unit) then { - ["Unit must be alive"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); } else { if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { - ["Unit is a captive"] call EFUNC(common,displayTextStructured); + ["STR_ACE_Zeus_OnlyNonCaptive"] call EFUNC(common,displayTextStructured); } else { _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); // Event initalized by ACE_Captives diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index e756d5d085..51febe0cc8 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -2,8 +2,8 @@ - Zeus Settings [ACE] - Ustawienia Zeusa [ACE] + Zeus Settings + Ustawienia Zeusa Provides control over various aspects of Zeus. @@ -46,8 +46,8 @@ Pokazuj miny - Reveal mines to allies and/or place map markers. - Pokazuj znaczniki min dla sojuszników i/lub twórz markery na mapie w miejscu min. + Reveal mines to allies and place map markers. + Pokazuj znaczniki min dla sojuszników i twórz markery na mapie w miejscu min. Disabled @@ -61,9 +61,47 @@ Allies + Map Markers Sojusznicy + markery na mapie - - ACE Zeus - ACE Zeus + + Unit must be alive + Utiliser uniquement sur une unité vivante + Nur bei lebenden Einheiten verwendbar + Utilizar solo en unidades vivas + Použitelné jen na živé jednotky + Używaj tylko na żywych jednostkach + Применимо только к живым юнитам + Csak élő egységeken használni + Si può fare solo su persone vive + Usar somente em unidades vivas + + + Unit must be infantry + Utiliser uniquement sur du personnel à pied + Nur bei abgesessener Infanterie verwendbar + Utilizar solo en infanteria desmontada + Použitelné jen na pěsích jednotkách + Używaj tylko na piechocie poza wszelkimi pojazdami + Применимо только к пехоте вне техники + Csak járműben kívül lévő egységeken használni + Si può usare solo su fanteria a piedi + Usar somente em infantaria desmontada + + + Unit must not be captive + + + Place on a unit + Rien sous le curseur + Es wurde nichts ausgewählt + Nada bajo el ratón + Nada debaixo do mouse + Nic není vybráno + Nie ma nic pod kursorem + Ничего не выделено + Semmi sincs az egér alatt + Nessuna selezione + + + Requires an addon that is not present From 8fe1a6520718a50af3a7b95d9df8ef35abc60526 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 19 May 2015 12:11:31 +0100 Subject: [PATCH 19/22] Cleaned up event handler --- addons/zeus/XEH_preInit.sqf | 4 ++-- ...c_contextualModules.sqf => fnc_handleZeusUnitAssigned.sqf} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename addons/zeus/functions/{fnc_contextualModules.sqf => fnc_handleZeusUnitAssigned.sqf} (100%) diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index bb71b712b2..fcbe78bcb2 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -6,14 +6,14 @@ PREP(bi_moduleCurator); PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); -PREP(contextualModules); +PREP(handleZeusUnitAssigned); PREP(moduleCapture); PREP(moduleKnockout); PREP(moduleSurrender); PREP(moduleZeusSettings); if (isServer) then { - ["zeusUnitAssigned", {_this call FUNC(contextualModules)}] call EFUNC(common,addEventHandler); + ["zeusUnitAssigned", FUNC(handleZeusUnitAssigned)] call EFUNC(common,addEventHandler); }; ADDON = true; diff --git a/addons/zeus/functions/fnc_contextualModules.sqf b/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf similarity index 100% rename from addons/zeus/functions/fnc_contextualModules.sqf rename to addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf From a30f6be7131ef061f2ea46c37e49c7a58bbf8d90 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 19 May 2015 12:23:18 +0100 Subject: [PATCH 20/22] Better module naming convention --- addons/zeus/CfgVehicles.hpp | 30 +++++++++--------- addons/zeus/XEH_preInit.sqf | 4 +-- addons/zeus/config.cpp | 4 +-- ...oduleCapture.sqf => fnc_moduleCaptive.sqf} | 0 ...Knockout.sqf => fnc_moduleUnconscious.sqf} | 0 ...ca.paa => Icon_Module_Zeus_Captive_ca.paa} | Bin 6 files changed, 19 insertions(+), 19 deletions(-) rename addons/zeus/functions/{fnc_moduleCapture.sqf => fnc_moduleCaptive.sqf} (100%) rename addons/zeus/functions/{fnc_moduleKnockout.sqf => fnc_moduleUnconscious.sqf} (100%) rename addons/zeus/ui/{Icon_Module_Zeus_Capture_ca.paa => Icon_Module_Zeus_Captive_ca.paa} (100%) diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 5a85c6956d..fa6b173496 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -81,29 +81,19 @@ class CfgVehicles { category = "ACE"; scopeCurator = 2; }; - class GVAR(moduleCapture): GVAR(moduleBase) { + class GVAR(moduleCaptive): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Capture Unit"; - function = QFUNC(moduleCapture); - icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Capture_ca.paa)); + displayName = "Toggle Captive"; + function = QFUNC(moduleCaptive); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Captive_ca.paa)); class ModuleDescription { description = "Flips the capture state of the specified unit."; sync[] = {}; }; }; - class GVAR(moduleKnockout): GVAR(moduleBase) { - curatorCanAttach = 1; - displayName = "Knockout Unit"; - function = QFUNC(moduleKnockout); - //icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Knockout_ca.paa)); - class ModuleDescription { - description = "Flips the unconscious state of the specified unit."; - sync[] = {}; - }; - }; class GVAR(moduleSurrender): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Surrender Unit"; + displayName = "Toggle Surrender"; function = QFUNC(moduleSurrender); icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Surrender_ca.paa)); class ModuleDescription { @@ -111,4 +101,14 @@ class CfgVehicles { sync[] = {}; }; }; + class GVAR(moduleUnconscious): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = "Toggle Unconscious"; + function = QFUNC(moduleUnconscious); + //icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa)); + class ModuleDescription { + description = "Flips the unconscious state of the specified unit."; + sync[] = {}; + }; + }; }; diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index fcbe78bcb2..1b2ac19263 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -7,9 +7,9 @@ PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); PREP(handleZeusUnitAssigned); -PREP(moduleCapture); -PREP(moduleKnockout); +PREP(moduleCaptive); PREP(moduleSurrender); +PREP(moduleUnconscious); PREP(moduleZeusSettings); if (isServer) then { diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 7d6d6b72b7..7505f2770e 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -13,13 +13,13 @@ class CfgPatches { // Use additional cfgPatches to contextually remove modules from zeus class GVAR(captives): ADDON { units[] = { - QGVAR(moduleCapture), + QGVAR(moduleCaptive), QGVAR(moduleSurrender) }; }; class GVAR(medical): ADDON { units[] = { - QGVAR(moduleKnockout) + QGVAR(moduleUnconscious) }; }; }; diff --git a/addons/zeus/functions/fnc_moduleCapture.sqf b/addons/zeus/functions/fnc_moduleCaptive.sqf similarity index 100% rename from addons/zeus/functions/fnc_moduleCapture.sqf rename to addons/zeus/functions/fnc_moduleCaptive.sqf diff --git a/addons/zeus/functions/fnc_moduleKnockout.sqf b/addons/zeus/functions/fnc_moduleUnconscious.sqf similarity index 100% rename from addons/zeus/functions/fnc_moduleKnockout.sqf rename to addons/zeus/functions/fnc_moduleUnconscious.sqf diff --git a/addons/zeus/ui/Icon_Module_Zeus_Capture_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Captive_ca.paa similarity index 100% rename from addons/zeus/ui/Icon_Module_Zeus_Capture_ca.paa rename to addons/zeus/ui/Icon_Module_Zeus_Captive_ca.paa From bfd1f8a1027f6cd5a327e6cf591f159811e79f2b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 19 May 2015 12:33:06 +0100 Subject: [PATCH 21/22] Localise module names --- addons/zeus/CfgVehicles.hpp | 6 +++--- addons/zeus/stringtable.xml | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index fa6b173496..ff5222f5b1 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -83,7 +83,7 @@ class CfgVehicles { }; class GVAR(moduleCaptive): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Toggle Captive"; + displayName = "$STR_ACE_Zeus_ModuleCaptive_DisplayName"; function = QFUNC(moduleCaptive); icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Captive_ca.paa)); class ModuleDescription { @@ -93,7 +93,7 @@ class CfgVehicles { }; class GVAR(moduleSurrender): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Toggle Surrender"; + displayName = "$STR_ACE_Zeus_ModuleSurrender_DisplayName"; function = QFUNC(moduleSurrender); icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Surrender_ca.paa)); class ModuleDescription { @@ -103,7 +103,7 @@ class CfgVehicles { }; class GVAR(moduleUnconscious): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = "Toggle Unconscious"; + displayName = "$STR_ACE_Zeus_ModuleUnconscious_DisplayName"; function = QFUNC(moduleUnconscious); //icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa)); class ModuleDescription { diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 51febe0cc8..d21814623a 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -61,6 +61,15 @@ Allies + Map Markers Sojusznicy + markery na mapie + + Toggle Captive + + + Toggle Surrender + + + Toggle Unconscious + Unit must be alive Utiliser uniquement sur une unité vivante From e3c09a70992fee6fc0e369eb0d9314248b1b4aed Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 19 May 2015 18:41:11 +0100 Subject: [PATCH 22/22] Added icon to unconscious module --- addons/zeus/CfgVehicles.hpp | 2 +- .../ui/Icon_Module_Zeus_Unconscious_ca.paa | Bin 0 -> 5625 bytes extras/assets/icons/Icons_Modules.psd | Bin 2337714 -> 2341232 bytes ...ca.png => Icon_Module_Zeus_Captive_ca.png} | Bin .../Icon_Module_Zeus_Unconscious_ca.png | Bin 0 -> 3626 bytes 5 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Unconscious_ca.paa rename extras/assets/icons/png/Icon_Module/{Icon_Module_Zeus_Capture_ca.png => Icon_Module_Zeus_Captive_ca.png} (100%) create mode 100644 extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Unconscious_ca.png diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index ff5222f5b1..439dede5b1 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -105,7 +105,7 @@ class CfgVehicles { curatorCanAttach = 1; displayName = "$STR_ACE_Zeus_ModuleUnconscious_DisplayName"; function = QFUNC(moduleUnconscious); - //icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa)); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa)); class ModuleDescription { description = "Flips the unconscious state of the specified unit."; sync[] = {}; diff --git a/addons/zeus/ui/Icon_Module_Zeus_Unconscious_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Unconscious_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..fb179e40fc605a489ccfb431e1379c145ece198b GIT binary patch literal 5625 zcmeI0eN0VlB6VQ9ILCC5vb6CJ%`$b`=+L#zw6zJuI1Smd#YxG`G;5#ngQC(E z9PukkSC+-a3|aJ##Xk%Xlc!Dt1e3a{2$5;JR%VP1(*-xWW@tm7*K=Mu@3k*Mf{q}j zCp`Lo@7#OtIp==9cNKTJ9FJ^u)jNtAW7E^q8)e?^s6*x;$Sy~%6S)X3IXVrO>7z{0FxgLIF-1uo>HFdozl6z0Q~nGgEoqBkz?F;hM_ za?u;D3%3*B$=sb5_e&OH>Vc(Vv+Pf2F}1%L{EfeS-%Z4}&wzW!2Z`tNcU7;|S0nC; zQ+fUn)-WpT?b>`Z~2&~ z$3lT9>F=`f9v%_S5npp;)>(Lf_3C%S_~=v1<1-X0pCy$ICw>tU)+cw8o_~!c)O_5w zyHASRBopbi_5UqzicegWntTVyehoz09n1_7U%j)hJPsid-_6_yEih$?@3@zDLq2{c z7M=-C;XMla#s&8Z`FECmf<8~L<@T|Ya$TzboS!FyJY^%U?H9e~vmv<*+O18AT}GL* z?bWp}EdTY){SL%aN%sA0KdeV9l>Ta#=cCI0X0R{5spz-(#fG@prR2lW!$bVSNQUfX zy;A#oq1@!>DN|1T{rrJ%Ep_U8skPV7+qz=!S1IEabA&?vWJ%@igH66n&Un_^TWa?I z%99Yk+{5U*v42MRb84FspLiKmZb8Yn{&Xl)!IKqp#jB0KXqVNKJHA^2`aBLWmN(v8 z0;P}Tm$&DYZwa_HdWS~u$kS`>hgoM{dpq8R@id{XHw|xuq?K|uvORP7?LUxg_zz<% zd4XqQFlC9g@h&&Mc|dGjm$Uw`^ZZBtrC}e%cjJlR)L{7k6Yp~CpMt;H4A6M|ujiwh zRWpWP7_zcl++J*d^}V>QdvB$D822Kp+obWVrXA| zEqWpaXPWfoF|zmS$Z_eb^iRsR=GE9=lQ=0PM2~W8e6*uait&tz>d%+2wI7J^TH;mW zx#66l@{G8_P4&yUv++G~y~0n83Nt*d9=rHQ`Nz6Xze~e54Syim_SVVBF`n*5l=<07 zcunZ5iW65{w0g{Naw6VhgFDzM^O$M4NW-x6QhD?De1>oHDX*D)Q^~>WUT1dFS4ZEH z&Me}#xLI>7cK-G}8_M0bW;=xZnXi8qTW`cqf!Q}5Z0eu7n^UhHQV#va Vu%bdfS4G4P!=AnC6f?4me*tz5W0wE` literal 0 HcmV?d00001 diff --git a/extras/assets/icons/Icons_Modules.psd b/extras/assets/icons/Icons_Modules.psd index 8f84d23205473ca860a2d643dd17ef170eecf7de..af9b9abaa08e5e3549206c354d2572cbbd0160cb 100644 GIT binary patch delta 4935 zcmb_f3shBA8vgg?{f2m`D0vahl8}3W3tW8g$SctT%SL-RT3wNn7AS%UmaGd30*WZ! z^zC58E!XBm@I5)3H@W3<62&Da$jA83j(m|~1K4Gy!*lOFda8OtwCUkqRe9rr)J$;I2OADp(MZO$1FUy&QGL@sI4Beg7vMMytH z>4w=DRYSQDaHfo&f%ZYbnKGIS?E_m{1)U6@%L((-F&OS^0GuhKN@#}z|3z(3FsiBi z9fdwEQ3Iq=z(!jJjcHy83)kEWI8#PN(DKsGRJEjOmZ6l0j%gZ`bHHK?>%uuTC1+J;&>n|9MGRg+m060@dmcpa7I%tBhRKnxY zjq$Yn$_Wha2}oSyOx4ZJ%U1(KX;k)ai5+cL*qin%9iP}sb62^2J$Kf5Py4YBy(3~l z={Sh9)22A2`b~n(f8Al+ud#)eG3KOP6COrGvca5} zINzA)X!@#?*^CrVi4=#;XvNb^G4w3uQ34P{M*KJ*1AP+Zl1bx?co~xcGpva;A6|*5 zO5|QtV9m{2Fw649EJ)*^kAu~WI3uzo-YWOlJ4x=i=j(7cKKqr=i`Epj$B5Rfe8aKz zT&c=_A$>E3g*jrs{gsecdB8K&@%q0EsyNkgtRqil%VBA^M_dy9Ty+4F-toz$EY;ZI z2>yPyV5^4-zlW~~zv>y>Z+sBu5U{EUd{fg9nzm& z%MttdI3oCdKI?M;RT`kZ0O@6b)9ui5%IIx8xeup2hEtw{37?N4@fc2d4o<}m)fzAy zq8C}HfC}6xAIEHo6qv$7LP{1|i$tH6=VK$2EATFF%ShgqLn6bo<;6u%2d3e{|I+L; z+lNc*BiNky*^6=)FDl8+UtC%;q}ik328aNT21O! zG+&>j%4Rr6Y|M0Zy!vy3swooT2YW>L>Yc)W(>~_ynAiKQ3m?|%e>gG~bxYRz3-iH! z>|qgHI~~EH(lcY3k33q(N`!x{O_to4dVbW(HyosS(d>xS=D|dv+RHHLzs}-)F_%ihns{2TG@n`D%>bit$Y@q5|A1z!@1~PTL^;UV@ zUCb&f)Hlg%gSBe)AIld*v}*O&MNCPU7PDre{QF@{eec#hCDQkgP}8s3%%`uHcZ3i6 zw#i*1S-!}>rbo6$X!+Mp;EwImw$WHp zwQ?J#3cuIVv_@`NCSOk1R$#*}Q7&ehT5iKxz5rp;#KSfNK0mHa*0)h|6+!r+jiTnxRUm*L(> z(e4vAwFi6W^2Vy?LPe$4h`le%ZB^O^+slusp?le*T8-T2BCoI3-l%<(a^f}y%K!%^1LLFKeTgtoz$z4QKdlj}j@G|w1N7SKr6lL$B)N4dDp>_COp*~`x{tW)zC@7x<^Q!+3 z)K83U{kOu-+zn-MuR={+N6%kZ*tW24)L8|`de5tb+cl+Ip&0buF#>&!+|#d60Mi{lrMPVk z#D~#){a7A%H)3-uDpvGWuoV^kAi5P5D+a`~zd~8TDw_Hfmj-g*gn1>?S6C@93$1;M zZa&dzqLtSbdSL(@^LZ2N_Nw~;ot!{)7|ZmhkbXKzY{Gujc|W|5z9hH!ON#PgYA>B2 z7r!}A>w8E#wv9b#`CR!0ep1y4-T2Mx*qC29o$VJG8|H_Npu-F4O`b!3-q7f}v6TmB^LIX3dPM%yjpkPY?!zX{zO_npiqkoRKfgyd-lSnT1!yW_V1Le)x3bbt%s z3b+C8fCu0Scmdvk58w;<0scS$5C{YTcgfO{;0tksr(3j1=bR7 g=Xy`B&CV}b`dC3W*NOF>@!pOo6O#*fMp@kc1MFG2ZvX%Q delta 2486 zcmbVNeN0nV6n~etfXqS}Eg$k>D>AmZZhdVZtvDx8pkqkH%xTQ#w$g$#d=y#=ln?8s z4w+8GH}b*^n=T`QTXgHwT(c!Iml&5Ub0OP;#F3~OQ?pEzKXiUDciz2ElA2{R()`-{ zanA3Y`@82JuFdR5;ql#Qk3PO?o4u&4LaAh=zmNN#9q9WpNfQbj5**um0_r2L{@!%y zM9P;l_fU*|4a?NRX$kJ#HJ-dGBgjV{jWGTLo!v)yGiTRqjBcy4kAIo*tlu`(9M&2WqdK1QYn zzVnzW7_soFhFv4raPaGbk)5%Dtr>nLKQq7sHk`0Ogme#(NfeJnCN`d5ppp*P&@v|j zo-)z{9_9_drGziNPG?iXST0HygO^_>b8oshc7-b8T^p&_>>org?+1~~8~>!sXNZgm zSIY=bV~n_A`V~6Nk8~KgP8=G8bIZL(^rSGwB6DncgV$Z_4K(xDXSE6COatQut!m*r zz%=vbn;%JMYCJaQNbV8;Mft9h1m3t+NTN19!4KWur3?6~rAn;}G;D&x)B<7{2Y>!n zChxw}E3q}Li)5R)OW2zFMb~UKWjaeGy72chGWX3tWcE6 z(+Vky?`u3Aji@xfTVzv!%{aUv7E!hRHlZ&b>GA1#$WL7St$2kR(Q5XGF>KOw{L{Q^ zb}?S4k#lG^;b5Y?*L=U~X^9J`l4w57LsFi&UW@2cXr9EM>Eyrxb>tbwQ>ahCL3~1~ za@v7*{6iXY5eWi^uq7R>r{iln5@C9Bq^e88c033X^I zrCKLFBZq7YVV6S9n4n20g zfN0rwtezu~9*59VK!bGbz=?&ZiQ1pQ-9`7u*9cc;v3#J;EbK1|cq>Ne*4L{MZ#8hHh=A^8w*x z8>oJBmFzH19r`PggBWa1#gnViAZhsrx8hJMT29svj$?47Ph&WXWLDk|*SZ1@FzjWd z$6r~u(!(%{w#GX5N@xIz#qKH#$6DO3|7z~|rw;V40vd7^^mY#VxYXgL{{2V|`QN&` z`%%gG#`CxFjV)+DY4O9uk&<_HQw4`F(z?yrAs6{bnk2Cf@904VM7og*TD(VgQjd{t zY}+M2ypfZ5=zVk{N@`vsck#|WauFZu7r;i3ReRBuT&N8V{&^H-jy}}?%WhpL3ZMWe z0V+T=AO;W%m=Zs5%4(Hg_16tAL<6X4dEn!7N7$p15yB~fHc4Y nKsq1;kO{~FEClEQ2EZc05YBcA?02XJe-qBmM0m;3>=M;KV6#CQ diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Capture_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Captive_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Capture_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Captive_ca.png diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Unconscious_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Unconscious_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..abbb79bb9b129ef354d3d5c6716dae6f3513ee48 GIT binary patch literal 3626 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