diff --git a/.editorconfig b/.editorconfig index 0deca3d2ab..5822f71d1d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,4 +10,3 @@ trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false - diff --git a/addons/advanced_ballistics/config.cpp b/addons/advanced_ballistics/config.cpp index 363753121b..84557517d2 100644 --- a/addons/advanced_ballistics/config.cpp +++ b/addons/advanced_ballistics/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_ballistics", "ace_weather"}; - author[] = {"Ruthberg"}; - authorUrl = "https://github.com/ulteq"; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/ai/config.cpp b/addons/ai/config.cpp index fdcb6afe9d..504c8b6e3c 100644 --- a/addons/ai/config.cpp +++ b/addons/ai/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"KoffeinFlummi","commy2"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi","commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/aircraft/config.cpp b/addons/aircraft/config.cpp index 2ce2d0dc10..f989749383 100644 --- a/addons/aircraft/config.cpp +++ b/addons/aircraft/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/aircraft/flightmodel_thunderbolt.hpp b/addons/aircraft/flightmodel_thunderbolt.hpp index fa99f40424..2446e166bc 100644 --- a/addons/aircraft/flightmodel_thunderbolt.hpp +++ b/addons/aircraft/flightmodel_thunderbolt.hpp @@ -20,4 +20,3 @@ envelope[] = {0,0,0.75,2.4,3.6,3.8,3.7,3.2,2.2,1.7,0.9}; thrustCoef[] = {1,1.2,1.3,1.25,1.06,1.01,1,0.92,0.75,0.65,0.5,0.25,0}; acceleration = 265; landingSpeed = 220; -gunAimDown = 0.087266463; diff --git a/addons/apl/config.cpp b/addons/apl/config.cpp index 089f4bffe0..3a4743f1ac 100644 --- a/addons/apl/config.cpp +++ b/addons/apl/config.cpp @@ -6,8 +6,8 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_main"}; - author[] = {"Bohemia Interactive"}; - authorUrl = "http://ace3mod.com"; + author = "Bohemia Interactive"; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/atragmx/config.cpp b/addons/atragmx/config.cpp index d866d6bc83..4bbde93706 100644 --- a/addons/atragmx/config.cpp +++ b/addons/atragmx/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_ATragMX"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ACE_common", "ACE_weather"}; - author = "Ruthberg"; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/attach/config.cpp b/addons/attach/config.cpp index 3efdaea561..59f733f9ea 100644 --- a/addons/attach/config.cpp +++ b/addons/attach/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_IR_Strobe_Item"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"KoffeinFlummi","eRazeri","esteldunedain"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi","eRazeri","esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/backpacks/config.cpp b/addons/backpacks/config.cpp index 520d83a240..5328a1e4ee 100644 --- a/addons/backpacks/config.cpp +++ b/addons/backpacks/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"bux","commy2"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"bux","commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/ballistics/config.cpp b/addons/ballistics/config.cpp index 768ba63e02..59c29f0a7f 100644 --- a/addons/ballistics/config.cpp +++ b/addons/ballistics/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2","Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2","Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/captives/config.cpp b/addons/captives/config.cpp index 4e31f77c9a..85378a6d4c 100644 --- a/addons/captives/config.cpp +++ b/addons/captives/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_CableTie"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ACE_Interaction"}; - author[] = {"commy2", "KoffeinFlummi"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2", "KoffeinFlummi"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index 69c01b9e59..43412b7b72 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -314,15 +314,16 @@ class CfgVehicles { GVAR(space) = 20; GVAR(hasCargo) = 1; }; - class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_base_F { - GVAR(space) = 8; - GVAR(hasCargo) = 1; - }; class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F { GVAR(space) = 12; GVAR(hasCargo) = 1; }; - + class Pod_Heli_Transport_04_crewed_base_F; + class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F { + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class StaticMortar; class Mortar_01_base_F: StaticMortar { GVAR(size) = 2; // 1 = small, 2 = large diff --git a/addons/cargo/config.cpp b/addons/cargo/config.cpp index 4d8a622e36..48642639cc 100644 --- a/addons/cargo/config.cpp +++ b/addons/cargo/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"commy2", "Glowbal"}; - authorUrl = "https://ace3mod.com/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2", "Glowbal"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/common/RscInfoType.hpp b/addons/common/RscInfoType.hpp index 5828e4b18f..b2b74e1ade 100644 --- a/addons/common/RscInfoType.hpp +++ b/addons/common/RscInfoType.hpp @@ -111,4 +111,8 @@ class RscInGameUI { class RscStaminaBar { onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStaminaBar"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgStaminaBar)),_this select 0)]); }; + + class RscStanceInfo { + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStanceInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Stance')])] call FUNC(localEvent);); + }; }; diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index e3b91120c8..30e770c2c4 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -122,9 +122,17 @@ if (isServer) then { ["ace_setVectorDirAndUp", {(_this select 0) setVectorDirAndUp (_this select 1)}] call CBA_fnc_addEventHandler; ["ace_setVanillaHitPointDamage", {(_this select 0) setHitPointDamage (_this select 1)}] call CBA_fnc_addEventHandler; +// Request framework +[QGVAR(requestCallback), FUNC(requestCallback)] call CBA_fnc_addEventHandler; +[QGVAR(receiveRequest), FUNC(receiveRequest)] call CBA_fnc_addEventHandler; + +[QGVAR(systemChatGlobal), {systemChat _this}] call CBA_fnc_addEventHandler; + if (isServer) then { ["ace_hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call CBA_fnc_addEventHandler; ["ace_enableSimulationGlobal", {(_this select 0) enableSimulationGlobal (_this select 1)}] call CBA_fnc_addEventHandler; + ["ace_setOwner", {(_this select 0) setOwner (_this select 1)}] call CBA_fnc_addEventHandler; + [QGVAR(serverLog), FUNC(serverLog)] call CBA_fnc_addEventHandler; }; @@ -132,6 +140,10 @@ if (isServer) then { // Set up remote execution ////////////////////////////////////////////////// +// ACE events +"ACEg" addPublicVariableEventHandler {_this call FUNC(_handleNetEvent)}; +"ACEc" addPublicVariableEventHandler {_this call FUNC(_handleNetEvent)}; + // Synced ACE events // Handle JIP scenario if (!isServer) then { diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index 6ec637552a..0f0657c4ab 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -19,13 +19,6 @@ DFUNC(selectWeaponMode) = { GVAR(syncedEvents) = HASH_CREATE; GVAR(showHudHash) = [] call FUNC(hashCreate); -//GVARS for execNextFrame and waitAndExec and waitUntilAndExecute -GVAR(waitAndExecArray) = []; -GVAR(nextFrameNo) = diag_frameno; -GVAR(nextFrameBufferA) = []; -GVAR(nextFrameBufferB) = []; -GVAR(waitUntilAndExecArray) = []; - GVAR(settingsInitFinished) = false; GVAR(runAtSettingsInitialized) = []; diff --git a/addons/common/config.cpp b/addons/common/config.cpp index bf911907ad..d81c3ef1cb 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_main","ace_modules"}; - author[] = {"KoffeinFlummi"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = CSTRING(ACETeam); + authors[] = {"KoffeinFlummi"}; + url = ECSTRING(main,URL); VERSION_CONFIG_COMMON; }; }; diff --git a/addons/common/functions/fnc_checkPBOs.sqf b/addons/common/functions/fnc_checkPBOs.sqf index 6d786aebf4..1e6eac7887 100644 --- a/addons/common/functions/fnc_checkPBOs.sqf +++ b/addons/common/functions/fnc_checkPBOs.sqf @@ -61,7 +61,8 @@ if (!isServer) then { _error = _error + "Newer version; "; }; - //[_error, "{systemChat _this}"] call FUNC(execRemoteFnc); + //[QGVAR(systemChatGlobal), _error] call FUNC(globalEvent); + ACE_LOGERROR(_error); if (_mode < 2) then { diff --git a/addons/common/functions/fnc_onAnswerRequest.sqf b/addons/common/functions/fnc_onAnswerRequest.sqf index d88969b059..e462a4bbf8 100644 --- a/addons/common/functions/fnc_onAnswerRequest.sqf +++ b/addons/common/functions/fnc_onAnswerRequest.sqf @@ -20,7 +20,7 @@ if (!isNil "_info") then { _info params ["_caller", "_target", "_requestID", "_requestMessage", "_callBack"]; private _replyParams = [_info, _accepted]; - [_replyParams, QFUNC(requestCallback), _caller, false] call FUNC(execRemoteFnc); + [QGVAR(requestCallback), _caller, _replyParams] call FUNC(objectEvent); _unit setVariable [_id, nil]; }; diff --git a/addons/common/functions/fnc_sendRequest.sqf b/addons/common/functions/fnc_sendRequest.sqf index c8d2ef7e2b..6df60cf24d 100644 --- a/addons/common/functions/fnc_sendRequest.sqf +++ b/addons/common/functions/fnc_sendRequest.sqf @@ -20,7 +20,7 @@ params ["_caller", "_target", "_requestID", "_requestMessage", "_callBack"]; if (isPlayer _target) then { // Pass request on to target locality for player accept/decline. - [[_caller, _target, _requestID, _requestMessage, _callBack], QFUNC(receiveRequest), _target, false] call FUNC(execRemoteFnc); + [QGVAR(receiveRequest), _target, [_caller, _target, _requestID, _requestMessage, _callBack]] call FUNC(objectEvent); } else { // accept it, since it's an AI. [_caller, _target, true] call compile _callBack; diff --git a/addons/common/functions/fnc_serverLog.sqf b/addons/common/functions/fnc_serverLog.sqf index 2525f81c95..ca4ba69f5d 100644 --- a/addons/common/functions/fnc_serverLog.sqf +++ b/addons/common/functions/fnc_serverLog.sqf @@ -20,5 +20,5 @@ params [["_msg", "", [""]]]; if (isServer) then { diag_log text _msg; } else { - [_this, QFUNC(serverLog), 1] call FUNC(execRemoteFnc); + [QGVAR(serverLog), _this] call FUNC(serverEvent); }; diff --git a/addons/common/scripts/checkVersionNumber.sqf b/addons/common/scripts/checkVersionNumber.sqf index 07bd443a06..7b1fbca291 100644 --- a/addons/common/scripts/checkVersionNumber.sqf +++ b/addons/common/scripts/checkVersionNumber.sqf @@ -100,7 +100,7 @@ if (!isServer) then { _error = _error call _fnc_cutComma; diag_log text _error; - [_error, "{systemChat _this}"] call FUNC(execRemoteFnc); + [QGVAR(systemChatGlobal), _error] call FUNC(globalEvent); }; _missingAddonServer = false; @@ -117,7 +117,7 @@ if (!isServer) then { _error = _error call _fnc_cutComma; diag_log text _error; - [_error, "{systemChat _this}"] call FUNC(execRemoteFnc); + [QGVAR(systemChatGlobal), _error] call FUNC(globalEvent); }; _oldVersionClient = false; @@ -134,7 +134,7 @@ if (!isServer) then { _error = _error call _fnc_cutComma; diag_log text _error; - [_error, "{systemChat _this}"] call FUNC(execRemoteFnc); + [QGVAR(systemChatGlobal), _error] call FUNC(globalEvent); }; _oldVersionServer = false; @@ -151,7 +151,7 @@ if (!isServer) then { _error = _error call _fnc_cutComma; diag_log text _error; - [_error, "{systemChat _this}"] call FUNC(execRemoteFnc); + [QGVAR(systemChatGlobal), _error] call FUNC(globalEvent); }; ACE_Version_ClientErrors = [_missingAddon, _missingAddonServer, _oldVersionClient, _oldVersionServer]; diff --git a/addons/concertina_wire/config.cpp b/addons/concertina_wire/config.cpp index 68bb4816db..2091a5ffc6 100644 --- a/addons/concertina_wire/config.cpp +++ b/addons/concertina_wire/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_apl", "ace_interaction"}; - author[] = {"Rocko", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Rocko", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/dagr/config.cpp b/addons/dagr/config.cpp index 7eac84dc74..97d5300067 100644 --- a/addons/dagr/config.cpp +++ b/addons/dagr/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_DAGR"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_weather"}; - author[] = {"Rosuto", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Rosuto", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/disarming/config.cpp b/addons/disarming/config.cpp index 39a536e1b2..8ed2f523cf 100644 --- a/addons/disarming/config.cpp +++ b/addons/disarming/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_DebugPotato"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ACE_Interaction"}; - author[] = {"PabstMirror"}; - authorUrl = "https://github.com/PabstMirror/"; + author = ECSTRING(common,ACETeam); + authors[] = {"PabstMirror"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/disposable/config.cpp b/addons/disposable/config.cpp index 63f0dc0a03..f73bd843a6 100644 --- a/addons/disposable/config.cpp +++ b/addons/disposable/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/dragging/CfgVehicles.hpp b/addons/dragging/CfgVehicles.hpp index 1529d39319..ba4ff87186 100644 --- a/addons/dragging/CfgVehicles.hpp +++ b/addons/dragging/CfgVehicles.hpp @@ -19,12 +19,6 @@ class CfgVehicles { GVAR(canDrag) = 0; }; - //remove actions from Taru Pods - class Pod_Heli_Transport_04_base_F: StaticWeapon { - GVAR(canCarry) = 0; - GVAR(canDrag) = 0; - }; - class StaticMortar; class Mortar_01_base_F: StaticMortar { GVAR(canCarry) = 1; @@ -53,6 +47,11 @@ class CfgVehicles { GVAR(canCarry) = 0; GVAR(canDrag) = 0; }; + //remove actions from Taru Pods + class Pod_Heli_Transport_04_base_F: Slingload_base_F { + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; class EAST_Box_Base: ReammoBox_F { GVAR(canCarry) = 1; diff --git a/addons/dragging/config.cpp b/addons/dragging/config.cpp index ef9d57bcd1..2b6b27b956 100644 --- a/addons/dragging/config.cpp +++ b/addons/dragging/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"Garth 'L-H' de Wet", "commy2"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Garth 'L-H' de Wet", "commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/explosives/XEH_postInit.sqf b/addons/explosives/XEH_postInit.sqf index 27a1371447..25b929f052 100644 --- a/addons/explosives/XEH_postInit.sqf +++ b/addons/explosives/XEH_postInit.sqf @@ -17,6 +17,7 @@ //Event for setting explosive placement angle/pitch: [QGVAR(place), {_this call FUNC(setPosition)}] call CBA_fnc_addEventHandler; +[QGVAR(startDefuse), FUNC(startDefuse)] call EFUNC(common,addEventHandler); //When getting knocked out in medical, trigger deadman explosives: //Event is global, only run on server (ref: ace_medical_fnc_setUnconscious) diff --git a/addons/explosives/config.cpp b/addons/explosives/config.cpp index 6dc7d95719..06487f002b 100644 --- a/addons/explosives/config.cpp +++ b/addons/explosives/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Clacker", "ACE_DefusalKit", "ACE_M26_Clacker", "ACE_DeadManSwitch", "ACE_Cellphone"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"Garth 'L-H' de Wet"}; - authorUrl = "http://garth.snakebiteink.co.za/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Garth 'L-H' de Wet"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/explosives/functions/fnc_startDefuse.sqf b/addons/explosives/functions/fnc_startDefuse.sqf index 35333ecc17..e9ba668e0e 100644 --- a/addons/explosives/functions/fnc_startDefuse.sqf +++ b/addons/explosives/functions/fnc_startDefuse.sqf @@ -44,7 +44,7 @@ if (STANCE _unit == "Prone") then { if (ACE_player != _unit) then { // If the unit is a player, call the function on the player. if (isPlayer _unit) then { - [[_unit, _target], QFUNC(startDefuse), _unit] call EFUNC(common,execRemoteFnc); + [QGVAR(startDefuse), _unit, [_unit, _target]] call EFUNC(common,objectEvent); } else { _unit playActionNow _actionToPlay; _unit disableAI "MOVE"; diff --git a/addons/fastroping/config.cpp b/addons/fastroping/config.cpp index 7275741f40..c451a1b0dd 100644 --- a/addons/fastroping/config.cpp +++ b/addons/fastroping/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"KoffeinFlummi", "BaerMitUmlaut"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi", "BaerMitUmlaut"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/fcs/ACE_UI.hpp b/addons/fcs/ACE_UI.hpp new file mode 100644 index 0000000000..ca35779f36 --- /dev/null +++ b/addons/fcs/ACE_UI.hpp @@ -0,0 +1,7 @@ +class ACE_UI { + class gunnerZeroing { + class conditions { + ADDON = "false"; + }; + }; +}; diff --git a/addons/fcs/config.cpp b/addons/fcs/config.cpp index 21045dd625..5c75614d2e 100644 --- a/addons/fcs/config.cpp +++ b/addons/fcs/config.cpp @@ -6,13 +6,15 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"KoffeinFlummi","BadGuy (simon84)","commy2"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi","BadGuy (simon84)","commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; #include "CfgEventHandlers.hpp" +#include "ACE_UI.hpp" #include "CfgAmmo.hpp" #include "CfgMagazines.hpp" diff --git a/addons/finger/config.cpp b/addons/finger/config.cpp index 86623c3860..9621006dfd 100644 --- a/addons/finger/config.cpp +++ b/addons/finger/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Drill"}; - authorUrl = "https://github.com/TheDrill/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Drill"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/flashlights/config.cpp b/addons/flashlights/config.cpp index b34c4b8000..08349be0a7 100644 --- a/addons/flashlights/config.cpp +++ b/addons/flashlights/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Flashlight_MX991", "ACE_Flashlight_KSF1", "ACE_Flashlight_XL50"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"voiper"}; - authorUrl = "https://github.com/voiperr/"; + author = ECSTRING(common,ACETeam); + authors[] = {"voiper"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/flashsuppressors/config.cpp b/addons/flashsuppressors/config.cpp index b8e0c1e120..378858d71c 100644 --- a/addons/flashsuppressors/config.cpp +++ b/addons/flashsuppressors/config.cpp @@ -14,8 +14,9 @@ class CfgPatches { }; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/fonts/config.cpp b/addons/fonts/config.cpp index f37dba286c..dc6b4c705f 100644 --- a/addons/fonts/config.cpp +++ b/addons/fonts/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_main"}; - author[] = {"jaynus"}; - authorUrl = "https://github.com/jaynus/"; + author = ECSTRING(common,ACETeam); + authors[] = {"jaynus"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/frag/config.cpp b/addons/frag/config.cpp index 2f650a7b6a..6df989e1a8 100644 --- a/addons/frag/config.cpp +++ b/addons/frag/config.cpp @@ -5,7 +5,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Nou"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Nou"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/gestures/config.cpp b/addons/gestures/config.cpp index ce60d26545..660c1eeff5 100644 --- a/addons/gestures/config.cpp +++ b/addons/gestures/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interact_menu"}; - author[] = {"joko // Jonas", "Emperias", "Zigomarvin"}; - authorUrl = "https://github.com/jokoho48"; + author = ECSTRING(common,ACETeam); + authors[] = {"joko // Jonas", "Emperias", "Zigomarvin"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/gforces/config.cpp b/addons/gforces/config.cpp index 27767c266d..db3a9a58fd 100644 --- a/addons/gforces/config.cpp +++ b/addons/gforces/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"KoffeinFlummi", "esteldunedain"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi", "esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/goggles/XEH_postInit.sqf b/addons/goggles/XEH_postInit.sqf index c4f76d7f1f..032e1316ac 100644 --- a/addons/goggles/XEH_postInit.sqf +++ b/addons/goggles/XEH_postInit.sqf @@ -31,7 +31,6 @@ GVAR(EffectsActive) = false; SETGLASSES(ace_player,GLASSESDEFAULT); -GVAR(EyesDamageScript) = -1; GVAR(FrameEvent) = [false, [false, 20]]; GVAR(PostProcessEyes_Enabled) = false; GVAR(DustHandler) = -1; @@ -83,7 +82,7 @@ GVAR(OldGlasses) = ""; GVAR(PostProcessEyes) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [1, 1, 1, 1], [1, 1, 1, 0]]; GVAR(PostProcessEyes) ppEffectCommit 5; - GVAR(EyesDamageScript) = [{ + [{ params ["_unit"]; GVAR(PostProcessEyes) ppEffectEnable false; diff --git a/addons/goggles/config.cpp b/addons/goggles/config.cpp index db193cd94e..f3e837177a 100644 --- a/addons/goggles/config.cpp +++ b/addons/goggles/config.cpp @@ -7,8 +7,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Garth 'L-H' de Wet"}; - authorUrl = "http://garth.snakebiteink.co.za/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Garth 'L-H' de Wet"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/grenades/config.cpp b/addons/grenades/config.cpp index 584be36c2e..fc9a232dca 100644 --- a/addons/grenades/config.cpp +++ b/addons/grenades/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2", "KoffeinFlummi"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2", "KoffeinFlummi"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/hearing/config.cpp b/addons/hearing/config.cpp index 255f0e6cb5..ac8ff8f4b2 100644 --- a/addons/hearing/config.cpp +++ b/addons/hearing/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_EarPlugs"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction", "A3_Characters_F", "A3_Characters_F_Kart"}; - author[] = {"KoffeinFlummi", "esteldunedain", "HopeJ", "commy2", "Rocko", "Rommel", "Ruthberg"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi", "esteldunedain", "HopeJ", "commy2", "Rocko", "Rommel", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/hitreactions/config.cpp b/addons/hitreactions/config.cpp index 77b68b77f5..d6146a6b29 100644 --- a/addons/hitreactions/config.cpp +++ b/addons/hitreactions/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/huntir/XEH_postInit.sqf b/addons/huntir/XEH_postInit.sqf index 5b0a7c9445..5ad798a62d 100644 --- a/addons/huntir/XEH_postInit.sqf +++ b/addons/huntir/XEH_postInit.sqf @@ -11,4 +11,3 @@ GVAR(ELEVAT) = 0.01; // Register fire event handler // Don't run for non players, as they are too dumb to launch huntirs anyway ["ace_firedPlayer", DFUNC(handleFired)] call CBA_fnc_addEventHandler; -["ace_firedPlayerNonLocal", DFUNC(handleFired)] call CBA_fnc_addEventHandler; diff --git a/addons/huntir/config.cpp b/addons/huntir/config.cpp index c8a0596d57..22db819425 100644 --- a/addons/huntir/config.cpp +++ b/addons/huntir/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_HuntIR_monitor"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Norrin", "Rocko", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Norrin", "Rocko", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/huntir/functions/fnc_handleFired.sqf b/addons/huntir/functions/fnc_handleFired.sqf index 9a122c3f61..b7e8c2a010 100644 --- a/addons/huntir/functions/fnc_handleFired.sqf +++ b/addons/huntir/functions/fnc_handleFired.sqf @@ -1,7 +1,7 @@ /* * Author: Norrin, Rocko, Ruthberg * - * Handles HuntIR projectiles. Called from the unified fired EH for all CAManBase. + * Handles HuntIR projectiles. Called from the unified fired EH for the local player. * * Arguments: * None. Parameters inherited from EFUNC(common,firedEH) diff --git a/addons/interact_menu/config.cpp b/addons/interact_menu/config.cpp index 3ddd78a431..4ab562956c 100644 --- a/addons/interact_menu/config.cpp +++ b/addons/interact_menu/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"NouberNou", "esteldunedain"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"NouberNou", "esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index dae66a9558..dd6ca32de6 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -496,14 +496,6 @@ class CfgVehicles { }; }; - class Pod_Heli_Transport_04_base_F: StaticWeapon { - class ACE_Actions: ACE_Actions { - class ACE_MainActions: ACE_MainActions { - distance = 5; - }; - }; - }; - class StaticMGWeapon: StaticWeapon {}; class HMG_01_base_F: StaticMGWeapon {}; @@ -552,6 +544,14 @@ class CfgVehicles { class ACE_SelfActions {}; }; + class Slingload_base_F: ReammoBox_F {}; + class Pod_Heli_Transport_04_base_F: Slingload_base_F { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + distance = 5; + }; + }; + }; class ACE_RepairItem_Base: ThingX { class ACE_Actions { diff --git a/addons/interaction/config.cpp b/addons/interaction/config.cpp index 54444f1b6a..6f8454d1a4 100644 --- a/addons/interaction/config.cpp +++ b/addons/interaction/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interact_menu"}; - author[] = {"commy2", "KoffeinFlummi", "esteldunedain", "bux578", "dixon13"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2", "KoffeinFlummi", "esteldunedain", "bux578", "dixon13"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/inventory/config.cpp b/addons/inventory/config.cpp index f0982a46b4..adef451644 100644 --- a/addons/inventory/config.cpp +++ b/addons/inventory/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Pabst Mirror, commy2"}; - authorUrl = "https://github.com/PabstMirror/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Pabst Mirror, commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/javelin/config.cpp b/addons/javelin/config.cpp index 8dfc970902..b789bfea01 100644 --- a/addons/javelin/config.cpp +++ b/addons/javelin/config.cpp @@ -5,7 +5,9 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = { "ace_main", "ace_common", "ace_missileguidance" }; + requiredAddons[] = {"ace_main", "ace_common", "ace_missileguidance"}; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/kestrel4500/config.cpp b/addons/kestrel4500/config.cpp index 95a533fd9f..74e2f18f19 100644 --- a/addons/kestrel4500/config.cpp +++ b/addons/kestrel4500/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Kestrel4500"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ACE_common", "ACE_weather"}; - author[] = {ECSTRING(common,ACETeam), "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {ECSTRING(common,ACETeam), "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/laser/config.cpp b/addons/laser/config.cpp index 6eab695261..074c80eb4d 100644 --- a/addons/laser/config.cpp +++ b/addons/laser/config.cpp @@ -5,7 +5,9 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = { "ace_common" }; + requiredAddons[] = {"ace_common"}; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/laser_selfdesignate/config.cpp b/addons/laser_selfdesignate/config.cpp index 597500caf6..60595e2d0d 100644 --- a/addons/laser_selfdesignate/config.cpp +++ b/addons/laser_selfdesignate/config.cpp @@ -5,7 +5,9 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_laser"}; + requiredAddons[] = {"ace_laser"}; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/laserpointer/config.cpp b/addons/laserpointer/config.cpp index fe695517a7..8167aa5504 100644 --- a/addons/laserpointer/config.cpp +++ b/addons/laserpointer/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_acc_pointer_red","ACE_acc_pointer_green","ACE_acc_pointer_green_IR"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/logistics_uavbattery/config.cpp b/addons/logistics_uavbattery/config.cpp index 9b0568b9f6..fcd5e0f979 100644 --- a/addons/logistics_uavbattery/config.cpp +++ b/addons/logistics_uavbattery/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_UAVBattery"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"marc_book"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"marc_book"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/logistics_wirecutter/config.cpp b/addons/logistics_wirecutter/config.cpp index 436b17fada..10612568e1 100644 --- a/addons/logistics_wirecutter/config.cpp +++ b/addons/logistics_wirecutter/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_wirecutter"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"gpgpgpgp", "PabstMirror"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"gpgpgpgp", "PabstMirror"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/magazinerepack/config.cpp b/addons/magazinerepack/config.cpp index 47c0ac889c..c660b44ca7 100644 --- a/addons/magazinerepack/config.cpp +++ b/addons/magazinerepack/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"commy2","esteldunedain"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2","esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/main/config.cpp b/addons/main/config.cpp index 7b15f0c8f0..9969e52447 100644 --- a/addons/main/config.cpp +++ b/addons/main/config.cpp @@ -1,591 +1,591 @@ -#include "script_component.hpp" - -class CfgPatches { - class ADDON { - units[] = {}; - weapons[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = { - // Vanilla - "3den", - "a3_air_f", - "a3_air_f_beta", - "a3_air_f_beta_heli_attack_01", - "a3_air_f_beta_heli_attack_02", - "a3_air_f_beta_heli_transport_01", - "a3_air_f_beta_heli_transport_02", - "a3_air_f_beta_parachute_01", - "a3_air_f_beta_parachute_02", - "a3_air_f_epb_heli_light_03", - "a3_air_f_epc_plane_cas_01", - "a3_air_f_epc_plane_cas_02", - "a3_air_f_epc_plane_fighter_03", - "a3_air_f_gamma_plane_fighter_03", - "a3_air_f_gamma_uav_01", - "a3_air_f_gamma_uav_02", - "a3_air_f_heli", - "a3_air_f_heli_heli_attack_01", - "a3_air_f_heli_heli_attack_02", - "a3_air_f_heli_heli_light_01", - "a3_air_f_heli_heli_light_02", - "a3_air_f_heli_heli_light_03", - "a3_air_f_heli_heli_transport_01", - "a3_air_f_heli_heli_transport_02", - "a3_air_f_heli_heli_transport_03", - "a3_air_f_heli_heli_transport_04", - "a3_air_f_heli_light_01", - "a3_air_f_heli_light_02", - "a3_animals_f", - "a3_animals_f_animconfig", - "a3_animals_f_chicken", - "a3_animals_f_dog", - "a3_animals_f_fishes", - "a3_animals_f_goat", - "a3_animals_f_kestrel", - "a3_animals_f_rabbit", - "a3_animals_f_seagull", - "a3_animals_f_sheep", - "a3_animals_f_snakes", - "a3_animals_f_turtle", - "a3_anims_f", - "a3_anims_f_config_sdr", - "a3_anims_f_epa", - "a3_anims_f_epc", - "a3_anims_f_exp_a", - "a3_anims_f_heli", - "a3_anims_f_kart", - "a3_anims_f_mark_deployment", - "a3_armor_f", - "a3_armor_f_amv", - "a3_armor_f_apc_wheeled_03", - "a3_armor_f_beta", - "a3_armor_f_beta_apc_tracked_02", - "a3_armor_f_epb_apc_tracked_03", - "a3_armor_f_epb_mbt_03", - "a3_armor_f_epc_mbt_01", - "a3_armor_f_marid", - "a3_armor_f_panther", - "a3_armor_f_slammer", - "a3_armor_f_t100k", - "a3_baseconfig_f", - "a3_boat_f", - "a3_boat_f_beta_boat_armed_01", - "a3_boat_f_beta_boat_transport_01", - "a3_boat_f_boat_armed_01", - "a3_boat_f_boat_transport_01", - "a3_boat_f_civilian_boat", - "a3_boat_f_epc_submarine_01_f", - "a3_boat_f_gamma_boat_transport_01", - "a3_boat_f_heli_boat_armed_01", - "a3_boat_f_heli_sdv_01", - "a3_boat_f_sdv_01", - "a3_boat_f_trawler", - "a3_cargoposes_f", - "a3_cargoposes_f_heli", - "a3_characters_f", - "a3_characters_f_beta", - "a3_characters_f_blufor", - "a3_characters_f_bootcamp", - "a3_characters_f_bootcamp_common", - "a3_characters_f_civil", - "a3_characters_f_common", - "a3_characters_f_epa", - "a3_characters_f_epb", - "a3_characters_f_epb_heads", - "a3_characters_f_epc", - "a3_characters_f_gamma", - "a3_characters_f_heads", - "a3_characters_f_indep", - "a3_characters_f_kart", - "a3_characters_f_mark", - "a3_characters_f_opfor", - "a3_characters_f_proxies", - "a3_data_f", - "a3_data_f_bootcamp", - "a3_data_f_curator", - "a3_data_f_curator_characters", - "a3_data_f_curator_eagle", - "a3_data_f_curator_intel", - "a3_data_f_curator_misc", - "a3_data_f_curator_respawn", - "a3_data_f_curator_virtual", - "a3_data_f_exp_a", - "a3_data_f_exp_a_virtual", - "a3_data_f_exp_b", - "a3_data_f_heli", - "a3_data_f_hook", - "a3_data_f_kart", - "a3_data_f_kart_particleeffects", - "a3_data_f_mark", - "a3_data_f_particleeffects", - "a3_dubbing_radio_f", - "a3_editor_f", - "a3_functions_f", - "a3_functions_f_bootcamp", - "a3_functions_f_curator", - "a3_functions_f_epa", - "a3_functions_f_epc", - "a3_functions_f_exp_a", - "a3_functions_f_heli", - "a3_functions_f_mark", - "a3_functions_f_mp_mark", - "a3_language_f", - "a3_language_f_beta", - "a3_language_f_bootcamp", - "a3_language_f_curator", - "a3_language_f_epa", - "a3_language_f_epb", - "a3_language_f_epc", - "a3_language_f_exp_a", - "a3_language_f_gamma", - "a3_language_f_heli", - "a3_language_f_kart", - "a3_language_f_mark", - "a3_language_f_mp_mark", - "a3_languagemissions_f", - "a3_languagemissions_f_beta", - "a3_languagemissions_f_gamma", - "a3_languagemissions_f_kart", - "a3_languagemissions_f_mp_mark", - "a3_map_altis", - "a3_map_altis_scenes", - "a3_map_data", - "a3_map_stratis", - "a3_map_stratis_scenes", - "a3_map_vr_scenes", - "a3_misc_f", - "a3_misc_f_helpers", - "a3_missions_f", - "a3_missions_f_beta", - "a3_missions_f_bootcamp", - "a3_missions_f_curator", - "a3_missions_f_epa", - "a3_missions_f_epb", - "a3_missions_f_epc", - "a3_missions_f_exp_a", - "a3_missions_f_gamma", - "a3_missions_f_heli", - "a3_missions_f_kart", - "a3_missions_f_mark", - "a3_missions_f_mp_mark", - "a3_modules_f", - "a3_modules_f_beta", - "a3_modules_f_beta_firingdrills", - "a3_modules_f_bootcamp", - "a3_modules_f_bootcamp_misc", - "a3_modules_f_curator", - "a3_modules_f_curator_animals", - "a3_modules_f_curator_cas", - "a3_modules_f_curator_chemlights", - "a3_modules_f_curator_curator", - "a3_modules_f_curator_effects", - "a3_modules_f_curator_environment", - "a3_modules_f_curator_flares", - "a3_modules_f_curator_intel", - "a3_modules_f_curator_lightning", - "a3_modules_f_curator_mines", - "a3_modules_f_curator_misc", - "a3_modules_f_curator_multiplayer", - "a3_modules_f_curator_objectives", - "a3_modules_f_curator_ordnance", - "a3_modules_f_curator_respawn", - "a3_modules_f_curator_smokeshells", - "a3_modules_f_dyno", - "a3_modules_f_effects", - "a3_modules_f_epb", - "a3_modules_f_epb_misc", - "a3_modules_f_events", - "a3_modules_f_exp_a", - "a3_modules_f_groupmodifiers", - "a3_modules_f_hc", - "a3_modules_f_heli", - "a3_modules_f_heli_spawnai", - "a3_modules_f_intel", - "a3_modules_f_kart", - "a3_modules_f_kart_timetrials", - "a3_modules_f_livefeed", - "a3_modules_f_mark", - "a3_modules_f_mark_firingdrills", - "a3_modules_f_mark_objectives", - "a3_modules_f_marta", - "a3_modules_f_misc", - "a3_modules_f_mp_mark", - "a3_modules_f_multiplayer", - "a3_modules_f_objectmodifiers", - "a3_modules_f_sites", - "a3_modules_f_skirmish", - "a3_modules_f_strategicmap", - "a3_modules_f_supports", - "a3_modules_f_uav", - "a3_music_f", - "a3_music_f_bootcamp", - "a3_music_f_epa", - "a3_music_f_epb", - "a3_music_f_epc", - "a3_music_f_heli", - "a3_music_f_mark", - "a3_plants_f_bush", - "a3_props_f_exp_a", - "a3_props_f_exp_a_military", - "a3_props_f_exp_a_military_equipment", - "a3_roads_f", - "a3_rocks_f", - "a3_signs_f", - "a3_signs_f_ad", - "a3_soft_f", - "a3_soft_f_beta_quadbike", - "a3_soft_f_bootcamp_offroad_01", - "a3_soft_f_bootcamp_quadbike", - "a3_soft_f_bootcamp_truck", - "a3_soft_f_car", - "a3_soft_f_crusher_ugv", - "a3_soft_f_epc_truck_03", - "a3_soft_f_gamma_hemtt", - "a3_soft_f_gamma_offroad", - "a3_soft_f_gamma_quadbike", - "a3_soft_f_gamma_truckheavy", - "a3_soft_f_heli_car", - "a3_soft_f_heli_crusher_ugv", - "a3_soft_f_heli_mrap_01", - "a3_soft_f_heli_mrap_02", - "a3_soft_f_heli_mrap_03", - "a3_soft_f_heli_quadbike", - "a3_soft_f_heli_suv", - "a3_soft_f_heli_truck", - "a3_soft_f_hemtt", - "a3_soft_f_kart_kart_01", - "a3_soft_f_mrap_01", - "a3_soft_f_mrap_02", - "a3_soft_f_mrap_03", - "a3_soft_f_offroad_01", - "a3_soft_f_quadbike", - "a3_soft_f_suv", - "a3_soft_f_truck", - "a3_soft_f_truckheavy", - "a3_sounds_f", - "a3_sounds_f_bootcamp", - "a3_sounds_f_epb", - "a3_sounds_f_epc", - "a3_sounds_f_exp_a", - "a3_sounds_f_mark", - "a3_static_f", - "a3_static_f_beta_mortar_01", - "a3_static_f_gamma", - "a3_static_f_gamma_aa", - "a3_static_f_gamma_at", - "a3_static_f_gamma_mortar_01", - "a3_static_f_mark_designator_01", - "a3_static_f_mark_designator_02", - "a3_static_f_mortar_01", - "a3_structures_f", - "a3_structures_f_bootcamp_civ_camping", - "a3_structures_f_bootcamp_civ_sportsgrounds", - "a3_structures_f_bootcamp_ind_cargo", - "a3_structures_f_bootcamp_items_electronics", - "a3_structures_f_bootcamp_items_food", - "a3_structures_f_bootcamp_items_sport", - "a3_structures_f_bootcamp_system", - "a3_structures_f_bootcamp_training", - "a3_structures_f_bootcamp_vr_blocks", - "a3_structures_f_bootcamp_vr_coverobjects", - "a3_structures_f_bootcamp_vr_helpers", - "a3_structures_f_bridges", - "a3_structures_f_civ", - "a3_structures_f_civ_accessories", - "a3_structures_f_civ_ancient", - "a3_structures_f_civ_belltowers", - "a3_structures_f_civ_calvaries", - "a3_structures_f_civ_camping", - "a3_structures_f_civ_chapels", - "a3_structures_f_civ_constructions", - "a3_structures_f_civ_dead", - "a3_structures_f_civ_garbage", - "a3_structures_f_civ_graffiti", - "a3_structures_f_civ_infoboards", - "a3_structures_f_civ_kiosks", - "a3_structures_f_civ_lamps", - "a3_structures_f_civ_market", - "a3_structures_f_civ_offices", - "a3_structures_f_civ_pavements", - "a3_structures_f_civ_playground", - "a3_structures_f_civ_sportsgrounds", - "a3_structures_f_civ_statues", - "a3_structures_f_civ_tourism", - "a3_structures_f_dominants", - "a3_structures_f_dominants_amphitheater", - "a3_structures_f_dominants_castle", - "a3_structures_f_dominants_church", - "a3_structures_f_dominants_hospital", - "a3_structures_f_dominants_lighthouse", - "a3_structures_f_dominants_wip", - "a3_structures_f_epa_civ_camping", - "a3_structures_f_epa_civ_constructions", - "a3_structures_f_epa_items_electronics", - "a3_structures_f_epa_items_food", - "a3_structures_f_epa_items_medical", - "a3_structures_f_epa_items_tools", - "a3_structures_f_epa_items_vessels", - "a3_structures_f_epa_mil_scrapyard", - "a3_structures_f_epa_walls", - "a3_structures_f_epb_civ_accessories", - "a3_structures_f_epb_civ_camping", - "a3_structures_f_epb_civ_dead", - "a3_structures_f_epb_civ_garbage", - "a3_structures_f_epb_civ_graffiti", - "a3_structures_f_epb_civ_playground", - "a3_structures_f_epb_furniture", - "a3_structures_f_epb_items_documents", - "a3_structures_f_epb_items_luggage", - "a3_structures_f_epb_items_military", - "a3_structures_f_epb_items_vessels", - "a3_structures_f_epb_naval_fishing", - "a3_structures_f_epc_civ_accessories", - "a3_structures_f_epc_civ_camping", - "a3_structures_f_epc_civ_garbage", - "a3_structures_f_epc_civ_infoboards", - "a3_structures_f_epc_civ_kiosks", - "a3_structures_f_epc_civ_playground", - "a3_structures_f_epc_civ_tourism", - "a3_structures_f_epc_dominants_ghosthotel", - "a3_structures_f_epc_dominants_stadium", - "a3_structures_f_epc_furniture", - "a3_structures_f_epc_items_documents", - "a3_structures_f_epc_items_electronics", - "a3_structures_f_epc_walls", - "a3_structures_f_exp_a", - "a3_structures_f_exp_a_vr_blocks", - "a3_structures_f_exp_a_vr_helpers", - "a3_structures_f_furniture", - "a3_structures_f_heli_civ_accessories", - "a3_structures_f_heli_civ_constructions", - "a3_structures_f_heli_civ_garbage", - "a3_structures_f_heli_civ_market", - "a3_structures_f_heli_furniture", - "a3_structures_f_heli_ind_airport", - "a3_structures_f_heli_ind_cargo", - "a3_structures_f_heli_ind_machines", - "a3_structures_f_heli_items_airport", - "a3_structures_f_heli_items_electronics", - "a3_structures_f_heli_items_food", - "a3_structures_f_heli_items_luggage", - "a3_structures_f_heli_items_sport", - "a3_structures_f_heli_items_tools", - "a3_structures_f_heli_vr_helpers", - "a3_structures_f_households", - "a3_structures_f_households_addons", - "a3_structures_f_households_house_big01", - "a3_structures_f_households_house_big02", - "a3_structures_f_households_house_shop01", - "a3_structures_f_households_house_shop02", - "a3_structures_f_households_house_small01", - "a3_structures_f_households_house_small02", - "a3_structures_f_households_house_small03", - "a3_structures_f_households_slum", - "a3_structures_f_households_stone_big", - "a3_structures_f_households_stone_shed", - "a3_structures_f_households_stone_small", - "a3_structures_f_households_wip", - "a3_structures_f_ind", - "a3_structures_f_ind_airport", - "a3_structures_f_ind_cargo", - "a3_structures_f_ind_carservice", - "a3_structures_f_ind_concretemixingplant", - "a3_structures_f_ind_crane", - "a3_structures_f_ind_dieselpowerplant", - "a3_structures_f_ind_factory", - "a3_structures_f_ind_fuelstation", - "a3_structures_f_ind_fuelstation_small", - "a3_structures_f_ind_pipes", - "a3_structures_f_ind_powerlines", - "a3_structures_f_ind_reservoirtank", - "a3_structures_f_ind_shed", - "a3_structures_f_ind_solarpowerplant", - "a3_structures_f_ind_tank", - "a3_structures_f_ind_transmitter_tower", - "a3_structures_f_ind_wavepowerplant", - "a3_structures_f_ind_windmill", - "a3_structures_f_ind_windpowerplant", - "a3_structures_f_items", - "a3_structures_f_items_cans", - "a3_structures_f_items_documents", - "a3_structures_f_items_electronics", - "a3_structures_f_items_gadgets", - "a3_structures_f_items_luggage", - "a3_structures_f_items_medical", - "a3_structures_f_items_military", - "a3_structures_f_items_stationery", - "a3_structures_f_items_tools", - "a3_structures_f_items_valuables", - "a3_structures_f_items_vessels", - "a3_structures_f_kart_civ_sportsgrounds", - "a3_structures_f_kart_mil_flags", - "a3_structures_f_kart_signs_companies", - "a3_structures_f_mark_items_military", - "a3_structures_f_mark_items_sport", - "a3_structures_f_mark_mil_flags", - "a3_structures_f_mark_training", - "a3_structures_f_mark_vr_helpers", - "a3_structures_f_mark_vr_shapes", - "a3_structures_f_mark_vr_targets", - "a3_structures_f_mil", - "a3_structures_f_mil_bagbunker", - "a3_structures_f_mil_bagfence", - "a3_structures_f_mil_barracks", - "a3_structures_f_mil_bunker", - "a3_structures_f_mil_cargo", - "a3_structures_f_mil_flags", - "a3_structures_f_mil_fortification", - "a3_structures_f_mil_helipads", - "a3_structures_f_mil_offices", - "a3_structures_f_mil_radar", - "a3_structures_f_mil_scrapyard", - "a3_structures_f_mil_shelters", - "a3_structures_f_mil_tenthangar", - "a3_structures_f_naval", - "a3_structures_f_naval_buoys", - "a3_structures_f_naval_fishing", - "a3_structures_f_naval_piers", - "a3_structures_f_naval_rowboats", - "a3_structures_f_research", - "a3_structures_f_signs_companies", - "a3_structures_f_system", - "a3_structures_f_training", - "a3_structures_f_training_invisibletarget", - "a3_structures_f_walls", - "a3_structures_f_wrecks", - "a3_supplies_f_heli", - "a3_supplies_f_heli_bladders", - "a3_supplies_f_heli_cargonets", - "a3_supplies_f_heli_fuel", - "a3_supplies_f_heli_slingload", - "a3_supplies_f_mark", - "a3_uav_f_characters_f_gamma", - "a3_uav_f_weapons_f_gamma_ammoboxes", - "a3_ui_f", - "a3_ui_f_bootcamp", - "a3_ui_f_curator", - "a3_ui_f_exp_a", - "a3_ui_f_heli", - "a3_ui_f_kart", - "a3_ui_f_mark", - "a3_ui_f_mp_mark", - "a3_uifonts_f", - "a3_weapons_f", - "a3_weapons_f_aaf", - "a3_weapons_f_acc", - "a3_weapons_f_ammoboxes", - "a3_weapons_f_beta", - "a3_weapons_f_beta_acc", - "a3_weapons_f_beta_ammoboxes", - "a3_weapons_f_beta_ebr", - "a3_weapons_f_beta_rifles_khaybar", - "a3_weapons_f_beta_rifles_mx", - "a3_weapons_f_beta_rifles_trg20", - "a3_weapons_f_bootcamp", - "a3_weapons_f_bootcamp_ammoboxes", - "a3_weapons_f_bootcamp_longrangerifles_gm6", - "a3_weapons_f_bootcamp_longrangerifles_m320", - "a3_weapons_f_csat", - "a3_weapons_f_dummyweapons", - "a3_weapons_f_ebr", - "a3_weapons_f_epa", - "a3_weapons_f_epa_acc", - "a3_weapons_f_epa_ammoboxes", - "a3_weapons_f_epa_ebr", - "a3_weapons_f_epa_longrangerifles_dmr_01", - "a3_weapons_f_epa_longrangerifles_gm6", - "a3_weapons_f_epa_rifles_mx", - "a3_weapons_f_epb", - "a3_weapons_f_epb_acc", - "a3_weapons_f_epb_ammoboxes", - "a3_weapons_f_epb_longrangerifles_gm3", - "a3_weapons_f_epb_longrangerifles_m320", - "a3_weapons_f_epb_rifles_mx_black", - "a3_weapons_f_epc", - "a3_weapons_f_explosives", - "a3_weapons_f_fia", - "a3_weapons_f_gamma", - "a3_weapons_f_gamma_acc", - "a3_weapons_f_gamma_ammoboxes", - "a3_weapons_f_gamma_items", - "a3_weapons_f_headgear", - "a3_weapons_f_itemholders", - "a3_weapons_f_items", - "a3_weapons_f_kart", - "a3_weapons_f_kart_pistols_pistol_signal_f", - "a3_weapons_f_launchers_law", - "a3_weapons_f_launchers_nlaw", - "a3_weapons_f_launchers_titan", - "a3_weapons_f_longrangerifles_gm6", - "a3_weapons_f_longrangerifles_m320", - "a3_weapons_f_machineguns_m200", - "a3_weapons_f_machineguns_zafir", - "a3_weapons_f_mark", - "a3_weapons_f_mark_acc", - "a3_weapons_f_mark_ebr", - "a3_weapons_f_mark_longrangerifles_dmr_01", - "a3_weapons_f_mark_longrangerifles_dmr_02", - "a3_weapons_f_mark_longrangerifles_dmr_03", - "a3_weapons_f_mark_longrangerifles_dmr_04", - "a3_weapons_f_mark_longrangerifles_dmr_05", - "a3_weapons_f_mark_longrangerifles_dmr_06", - "a3_weapons_f_mark_longrangerifles_gm6", - "a3_weapons_f_mark_longrangerifles_gm6_camo", - "a3_weapons_f_mark_longrangerifles_m320", - "a3_weapons_f_mark_longrangerifles_m320_camo", - "a3_weapons_f_mark_machineguns_m200", - "a3_weapons_f_mark_machineguns_mmg_01", - "a3_weapons_f_mark_machineguns_mmg_02", - "a3_weapons_f_mark_machineguns_zafir", - "a3_weapons_f_mark_rifles_khaybar", - "a3_weapons_f_mark_rifles_mk20", - "a3_weapons_f_mark_rifles_mx", - "a3_weapons_f_mark_rifles_sdar", - "a3_weapons_f_mark_rifles_trg20", - "a3_weapons_f_nato", - "a3_weapons_f_pistols_acpc2", - "a3_weapons_f_pistols_p07", - "a3_weapons_f_pistols_pdw2000", - "a3_weapons_f_pistols_pistol_heavy_01", - "a3_weapons_f_pistols_pistol_heavy_02", - "a3_weapons_f_pistols_rook40", - "a3_weapons_f_rifles_khaybar", - "a3_weapons_f_rifles_mk20", - "a3_weapons_f_rifles_mx", - "a3_weapons_f_rifles_sdar", - "a3_weapons_f_rifles_smg_02", - "a3_weapons_f_rifles_trg20", - "a3_weapons_f_rifles_vector", - "a3_weapons_f_uniforms", - "a3_weapons_f_vests", - "a3data", - "map_vr", - // CBA - "extended_eventhandlers", - "cba_ui", - "cba_xeh", - "cba_xeh_a3", - "cba_jr" - }; - author[] = {ECSTRING(common,ACETeam)}; - authorUrl = "http://ace3mod.com/"; - VERSION_CONFIG; - }; -}; - -class CfgMods { - class PREFIX { - dir = "@ace"; - name = "Advanced Combat Environment 3"; - picture = "A3\Ui_f\data\Logos\arma3_expansion_alpha_ca"; - hidePicture = "true"; - hideName = "true"; - actionName = "Website"; - action = "http://ace3mod.com/"; - description = "Issue Tracker: https://github.com/acemod/ACE3/issues"; - }; -}; - -#include "CfgSettings.hpp" -#include "CfgModuleCategories.hpp" -#include "CfgVehicleClasses.hpp" +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + // Vanilla + "3den", + "a3_air_f", + "a3_air_f_beta", + "a3_air_f_beta_heli_attack_01", + "a3_air_f_beta_heli_attack_02", + "a3_air_f_beta_heli_transport_01", + "a3_air_f_beta_heli_transport_02", + "a3_air_f_beta_parachute_01", + "a3_air_f_beta_parachute_02", + "a3_air_f_epb_heli_light_03", + "a3_air_f_epc_plane_cas_01", + "a3_air_f_epc_plane_cas_02", + "a3_air_f_epc_plane_fighter_03", + "a3_air_f_gamma_plane_fighter_03", + "a3_air_f_gamma_uav_01", + "a3_air_f_gamma_uav_02", + "a3_air_f_heli", + "a3_air_f_heli_heli_attack_01", + "a3_air_f_heli_heli_attack_02", + "a3_air_f_heli_heli_light_01", + "a3_air_f_heli_heli_light_02", + "a3_air_f_heli_heli_light_03", + "a3_air_f_heli_heli_transport_01", + "a3_air_f_heli_heli_transport_02", + "a3_air_f_heli_heli_transport_03", + "a3_air_f_heli_heli_transport_04", + "a3_air_f_heli_light_01", + "a3_air_f_heli_light_02", + "a3_animals_f", + "a3_animals_f_animconfig", + "a3_animals_f_chicken", + "a3_animals_f_dog", + "a3_animals_f_fishes", + "a3_animals_f_goat", + "a3_animals_f_kestrel", + "a3_animals_f_rabbit", + "a3_animals_f_seagull", + "a3_animals_f_sheep", + "a3_animals_f_snakes", + "a3_animals_f_turtle", + "a3_anims_f", + "a3_anims_f_config_sdr", + "a3_anims_f_epa", + "a3_anims_f_epc", + "a3_anims_f_exp_a", + "a3_anims_f_heli", + "a3_anims_f_kart", + "a3_anims_f_mark_deployment", + "a3_armor_f", + "a3_armor_f_amv", + "a3_armor_f_apc_wheeled_03", + "a3_armor_f_beta", + "a3_armor_f_beta_apc_tracked_02", + "a3_armor_f_epb_apc_tracked_03", + "a3_armor_f_epb_mbt_03", + "a3_armor_f_epc_mbt_01", + "a3_armor_f_marid", + "a3_armor_f_panther", + "a3_armor_f_slammer", + "a3_armor_f_t100k", + "a3_baseconfig_f", + "a3_boat_f", + "a3_boat_f_beta_boat_armed_01", + "a3_boat_f_beta_boat_transport_01", + "a3_boat_f_boat_armed_01", + "a3_boat_f_boat_transport_01", + "a3_boat_f_civilian_boat", + "a3_boat_f_epc_submarine_01_f", + "a3_boat_f_gamma_boat_transport_01", + "a3_boat_f_heli_boat_armed_01", + "a3_boat_f_heli_sdv_01", + "a3_boat_f_sdv_01", + "a3_boat_f_trawler", + "a3_cargoposes_f", + "a3_cargoposes_f_heli", + "a3_characters_f", + "a3_characters_f_beta", + "a3_characters_f_blufor", + "a3_characters_f_bootcamp", + "a3_characters_f_bootcamp_common", + "a3_characters_f_civil", + "a3_characters_f_common", + "a3_characters_f_epa", + "a3_characters_f_epb", + "a3_characters_f_epb_heads", + "a3_characters_f_epc", + "a3_characters_f_gamma", + "a3_characters_f_heads", + "a3_characters_f_indep", + "a3_characters_f_kart", + "a3_characters_f_mark", + "a3_characters_f_opfor", + "a3_characters_f_proxies", + "a3_data_f", + "a3_data_f_bootcamp", + "a3_data_f_curator", + "a3_data_f_curator_characters", + "a3_data_f_curator_eagle", + "a3_data_f_curator_intel", + "a3_data_f_curator_misc", + "a3_data_f_curator_respawn", + "a3_data_f_curator_virtual", + "a3_data_f_exp_a", + "a3_data_f_exp_a_virtual", + "a3_data_f_exp_b", + "a3_data_f_heli", + "a3_data_f_hook", + "a3_data_f_kart", + "a3_data_f_kart_particleeffects", + "a3_data_f_mark", + "a3_data_f_particleeffects", + "a3_dubbing_radio_f", + "a3_editor_f", + "a3_functions_f", + "a3_functions_f_bootcamp", + "a3_functions_f_curator", + "a3_functions_f_epa", + "a3_functions_f_epc", + "a3_functions_f_exp_a", + "a3_functions_f_heli", + "a3_functions_f_mark", + "a3_functions_f_mp_mark", + "a3_language_f", + "a3_language_f_beta", + "a3_language_f_bootcamp", + "a3_language_f_curator", + "a3_language_f_epa", + "a3_language_f_epb", + "a3_language_f_epc", + "a3_language_f_exp_a", + "a3_language_f_gamma", + "a3_language_f_heli", + "a3_language_f_kart", + "a3_language_f_mark", + "a3_language_f_mp_mark", + "a3_languagemissions_f", + "a3_languagemissions_f_beta", + "a3_languagemissions_f_gamma", + "a3_languagemissions_f_kart", + "a3_languagemissions_f_mp_mark", + "a3_map_altis", + "a3_map_altis_scenes", + "a3_map_data", + "a3_map_stratis", + "a3_map_stratis_scenes", + "a3_map_vr_scenes", + "a3_misc_f", + "a3_misc_f_helpers", + "a3_missions_f", + "a3_missions_f_beta", + "a3_missions_f_bootcamp", + "a3_missions_f_curator", + "a3_missions_f_epa", + "a3_missions_f_epb", + "a3_missions_f_epc", + "a3_missions_f_exp_a", + "a3_missions_f_gamma", + "a3_missions_f_heli", + "a3_missions_f_kart", + "a3_missions_f_mark", + "a3_missions_f_mp_mark", + "a3_modules_f", + "a3_modules_f_beta", + "a3_modules_f_beta_firingdrills", + "a3_modules_f_bootcamp", + "a3_modules_f_bootcamp_misc", + "a3_modules_f_curator", + "a3_modules_f_curator_animals", + "a3_modules_f_curator_cas", + "a3_modules_f_curator_chemlights", + "a3_modules_f_curator_curator", + "a3_modules_f_curator_effects", + "a3_modules_f_curator_environment", + "a3_modules_f_curator_flares", + "a3_modules_f_curator_intel", + "a3_modules_f_curator_lightning", + "a3_modules_f_curator_mines", + "a3_modules_f_curator_misc", + "a3_modules_f_curator_multiplayer", + "a3_modules_f_curator_objectives", + "a3_modules_f_curator_ordnance", + "a3_modules_f_curator_respawn", + "a3_modules_f_curator_smokeshells", + "a3_modules_f_dyno", + "a3_modules_f_effects", + "a3_modules_f_epb", + "a3_modules_f_epb_misc", + "a3_modules_f_events", + "a3_modules_f_exp_a", + "a3_modules_f_groupmodifiers", + "a3_modules_f_hc", + "a3_modules_f_heli", + "a3_modules_f_heli_spawnai", + "a3_modules_f_intel", + "a3_modules_f_kart", + "a3_modules_f_kart_timetrials", + "a3_modules_f_livefeed", + "a3_modules_f_mark", + "a3_modules_f_mark_firingdrills", + "a3_modules_f_mark_objectives", + "a3_modules_f_marta", + "a3_modules_f_misc", + "a3_modules_f_mp_mark", + "a3_modules_f_multiplayer", + "a3_modules_f_objectmodifiers", + "a3_modules_f_sites", + "a3_modules_f_skirmish", + "a3_modules_f_strategicmap", + "a3_modules_f_supports", + "a3_modules_f_uav", + "a3_music_f", + "a3_music_f_bootcamp", + "a3_music_f_epa", + "a3_music_f_epb", + "a3_music_f_epc", + "a3_music_f_heli", + "a3_music_f_mark", + "a3_plants_f_bush", + "a3_props_f_exp_a", + "a3_props_f_exp_a_military", + "a3_props_f_exp_a_military_equipment", + "a3_roads_f", + "a3_rocks_f", + "a3_signs_f", + "a3_signs_f_ad", + "a3_soft_f", + "a3_soft_f_beta_quadbike", + "a3_soft_f_bootcamp_offroad_01", + "a3_soft_f_bootcamp_quadbike", + "a3_soft_f_bootcamp_truck", + "a3_soft_f_car", + "a3_soft_f_crusher_ugv", + "a3_soft_f_epc_truck_03", + "a3_soft_f_gamma_hemtt", + "a3_soft_f_gamma_offroad", + "a3_soft_f_gamma_quadbike", + "a3_soft_f_gamma_truckheavy", + "a3_soft_f_heli_car", + "a3_soft_f_heli_crusher_ugv", + "a3_soft_f_heli_mrap_01", + "a3_soft_f_heli_mrap_02", + "a3_soft_f_heli_mrap_03", + "a3_soft_f_heli_quadbike", + "a3_soft_f_heli_suv", + "a3_soft_f_heli_truck", + "a3_soft_f_hemtt", + "a3_soft_f_kart_kart_01", + "a3_soft_f_mrap_01", + "a3_soft_f_mrap_02", + "a3_soft_f_mrap_03", + "a3_soft_f_offroad_01", + "a3_soft_f_quadbike", + "a3_soft_f_suv", + "a3_soft_f_truck", + "a3_soft_f_truckheavy", + "a3_sounds_f", + "a3_sounds_f_bootcamp", + "a3_sounds_f_epb", + "a3_sounds_f_epc", + "a3_sounds_f_exp_a", + "a3_sounds_f_mark", + "a3_static_f", + "a3_static_f_beta_mortar_01", + "a3_static_f_gamma", + "a3_static_f_gamma_aa", + "a3_static_f_gamma_at", + "a3_static_f_gamma_mortar_01", + "a3_static_f_mark_designator_01", + "a3_static_f_mark_designator_02", + "a3_static_f_mortar_01", + "a3_structures_f", + "a3_structures_f_bootcamp_civ_camping", + "a3_structures_f_bootcamp_civ_sportsgrounds", + "a3_structures_f_bootcamp_ind_cargo", + "a3_structures_f_bootcamp_items_electronics", + "a3_structures_f_bootcamp_items_food", + "a3_structures_f_bootcamp_items_sport", + "a3_structures_f_bootcamp_system", + "a3_structures_f_bootcamp_training", + "a3_structures_f_bootcamp_vr_blocks", + "a3_structures_f_bootcamp_vr_coverobjects", + "a3_structures_f_bootcamp_vr_helpers", + "a3_structures_f_bridges", + "a3_structures_f_civ", + "a3_structures_f_civ_accessories", + "a3_structures_f_civ_ancient", + "a3_structures_f_civ_belltowers", + "a3_structures_f_civ_calvaries", + "a3_structures_f_civ_camping", + "a3_structures_f_civ_chapels", + "a3_structures_f_civ_constructions", + "a3_structures_f_civ_dead", + "a3_structures_f_civ_garbage", + "a3_structures_f_civ_graffiti", + "a3_structures_f_civ_infoboards", + "a3_structures_f_civ_kiosks", + "a3_structures_f_civ_lamps", + "a3_structures_f_civ_market", + "a3_structures_f_civ_offices", + "a3_structures_f_civ_pavements", + "a3_structures_f_civ_playground", + "a3_structures_f_civ_sportsgrounds", + "a3_structures_f_civ_statues", + "a3_structures_f_civ_tourism", + "a3_structures_f_dominants", + "a3_structures_f_dominants_amphitheater", + "a3_structures_f_dominants_castle", + "a3_structures_f_dominants_church", + "a3_structures_f_dominants_hospital", + "a3_structures_f_dominants_lighthouse", + "a3_structures_f_dominants_wip", + "a3_structures_f_epa_civ_camping", + "a3_structures_f_epa_civ_constructions", + "a3_structures_f_epa_items_electronics", + "a3_structures_f_epa_items_food", + "a3_structures_f_epa_items_medical", + "a3_structures_f_epa_items_tools", + "a3_structures_f_epa_items_vessels", + "a3_structures_f_epa_mil_scrapyard", + "a3_structures_f_epa_walls", + "a3_structures_f_epb_civ_accessories", + "a3_structures_f_epb_civ_camping", + "a3_structures_f_epb_civ_dead", + "a3_structures_f_epb_civ_garbage", + "a3_structures_f_epb_civ_graffiti", + "a3_structures_f_epb_civ_playground", + "a3_structures_f_epb_furniture", + "a3_structures_f_epb_items_documents", + "a3_structures_f_epb_items_luggage", + "a3_structures_f_epb_items_military", + "a3_structures_f_epb_items_vessels", + "a3_structures_f_epb_naval_fishing", + "a3_structures_f_epc_civ_accessories", + "a3_structures_f_epc_civ_camping", + "a3_structures_f_epc_civ_garbage", + "a3_structures_f_epc_civ_infoboards", + "a3_structures_f_epc_civ_kiosks", + "a3_structures_f_epc_civ_playground", + "a3_structures_f_epc_civ_tourism", + "a3_structures_f_epc_dominants_ghosthotel", + "a3_structures_f_epc_dominants_stadium", + "a3_structures_f_epc_furniture", + "a3_structures_f_epc_items_documents", + "a3_structures_f_epc_items_electronics", + "a3_structures_f_epc_walls", + "a3_structures_f_exp_a", + "a3_structures_f_exp_a_vr_blocks", + "a3_structures_f_exp_a_vr_helpers", + "a3_structures_f_furniture", + "a3_structures_f_heli_civ_accessories", + "a3_structures_f_heli_civ_constructions", + "a3_structures_f_heli_civ_garbage", + "a3_structures_f_heli_civ_market", + "a3_structures_f_heli_furniture", + "a3_structures_f_heli_ind_airport", + "a3_structures_f_heli_ind_cargo", + "a3_structures_f_heli_ind_machines", + "a3_structures_f_heli_items_airport", + "a3_structures_f_heli_items_electronics", + "a3_structures_f_heli_items_food", + "a3_structures_f_heli_items_luggage", + "a3_structures_f_heli_items_sport", + "a3_structures_f_heli_items_tools", + "a3_structures_f_heli_vr_helpers", + "a3_structures_f_households", + "a3_structures_f_households_addons", + "a3_structures_f_households_house_big01", + "a3_structures_f_households_house_big02", + "a3_structures_f_households_house_shop01", + "a3_structures_f_households_house_shop02", + "a3_structures_f_households_house_small01", + "a3_structures_f_households_house_small02", + "a3_structures_f_households_house_small03", + "a3_structures_f_households_slum", + "a3_structures_f_households_stone_big", + "a3_structures_f_households_stone_shed", + "a3_structures_f_households_stone_small", + "a3_structures_f_households_wip", + "a3_structures_f_ind", + "a3_structures_f_ind_airport", + "a3_structures_f_ind_cargo", + "a3_structures_f_ind_carservice", + "a3_structures_f_ind_concretemixingplant", + "a3_structures_f_ind_crane", + "a3_structures_f_ind_dieselpowerplant", + "a3_structures_f_ind_factory", + "a3_structures_f_ind_fuelstation", + "a3_structures_f_ind_fuelstation_small", + "a3_structures_f_ind_pipes", + "a3_structures_f_ind_powerlines", + "a3_structures_f_ind_reservoirtank", + "a3_structures_f_ind_shed", + "a3_structures_f_ind_solarpowerplant", + "a3_structures_f_ind_tank", + "a3_structures_f_ind_transmitter_tower", + "a3_structures_f_ind_wavepowerplant", + "a3_structures_f_ind_windmill", + "a3_structures_f_ind_windpowerplant", + "a3_structures_f_items", + "a3_structures_f_items_cans", + "a3_structures_f_items_documents", + "a3_structures_f_items_electronics", + "a3_structures_f_items_gadgets", + "a3_structures_f_items_luggage", + "a3_structures_f_items_medical", + "a3_structures_f_items_military", + "a3_structures_f_items_stationery", + "a3_structures_f_items_tools", + "a3_structures_f_items_valuables", + "a3_structures_f_items_vessels", + "a3_structures_f_kart_civ_sportsgrounds", + "a3_structures_f_kart_mil_flags", + "a3_structures_f_kart_signs_companies", + "a3_structures_f_mark_items_military", + "a3_structures_f_mark_items_sport", + "a3_structures_f_mark_mil_flags", + "a3_structures_f_mark_training", + "a3_structures_f_mark_vr_helpers", + "a3_structures_f_mark_vr_shapes", + "a3_structures_f_mark_vr_targets", + "a3_structures_f_mil", + "a3_structures_f_mil_bagbunker", + "a3_structures_f_mil_bagfence", + "a3_structures_f_mil_barracks", + "a3_structures_f_mil_bunker", + "a3_structures_f_mil_cargo", + "a3_structures_f_mil_flags", + "a3_structures_f_mil_fortification", + "a3_structures_f_mil_helipads", + "a3_structures_f_mil_offices", + "a3_structures_f_mil_radar", + "a3_structures_f_mil_scrapyard", + "a3_structures_f_mil_shelters", + "a3_structures_f_mil_tenthangar", + "a3_structures_f_naval", + "a3_structures_f_naval_buoys", + "a3_structures_f_naval_fishing", + "a3_structures_f_naval_piers", + "a3_structures_f_naval_rowboats", + "a3_structures_f_research", + "a3_structures_f_signs_companies", + "a3_structures_f_system", + "a3_structures_f_training", + "a3_structures_f_training_invisibletarget", + "a3_structures_f_walls", + "a3_structures_f_wrecks", + "a3_supplies_f_heli", + "a3_supplies_f_heli_bladders", + "a3_supplies_f_heli_cargonets", + "a3_supplies_f_heli_fuel", + "a3_supplies_f_heli_slingload", + "a3_supplies_f_mark", + "a3_uav_f_characters_f_gamma", + "a3_uav_f_weapons_f_gamma_ammoboxes", + "a3_ui_f", + "a3_ui_f_bootcamp", + "a3_ui_f_curator", + "a3_ui_f_exp_a", + "a3_ui_f_heli", + "a3_ui_f_kart", + "a3_ui_f_mark", + "a3_ui_f_mp_mark", + "a3_uifonts_f", + "a3_weapons_f", + "a3_weapons_f_aaf", + "a3_weapons_f_acc", + "a3_weapons_f_ammoboxes", + "a3_weapons_f_beta", + "a3_weapons_f_beta_acc", + "a3_weapons_f_beta_ammoboxes", + "a3_weapons_f_beta_ebr", + "a3_weapons_f_beta_rifles_khaybar", + "a3_weapons_f_beta_rifles_mx", + "a3_weapons_f_beta_rifles_trg20", + "a3_weapons_f_bootcamp", + "a3_weapons_f_bootcamp_ammoboxes", + "a3_weapons_f_bootcamp_longrangerifles_gm6", + "a3_weapons_f_bootcamp_longrangerifles_m320", + "a3_weapons_f_csat", + "a3_weapons_f_dummyweapons", + "a3_weapons_f_ebr", + "a3_weapons_f_epa", + "a3_weapons_f_epa_acc", + "a3_weapons_f_epa_ammoboxes", + "a3_weapons_f_epa_ebr", + "a3_weapons_f_epa_longrangerifles_dmr_01", + "a3_weapons_f_epa_longrangerifles_gm6", + "a3_weapons_f_epa_rifles_mx", + "a3_weapons_f_epb", + "a3_weapons_f_epb_acc", + "a3_weapons_f_epb_ammoboxes", + "a3_weapons_f_epb_longrangerifles_gm3", + "a3_weapons_f_epb_longrangerifles_m320", + "a3_weapons_f_epb_rifles_mx_black", + "a3_weapons_f_epc", + "a3_weapons_f_explosives", + "a3_weapons_f_fia", + "a3_weapons_f_gamma", + "a3_weapons_f_gamma_acc", + "a3_weapons_f_gamma_ammoboxes", + "a3_weapons_f_gamma_items", + "a3_weapons_f_headgear", + "a3_weapons_f_itemholders", + "a3_weapons_f_items", + "a3_weapons_f_kart", + "a3_weapons_f_kart_pistols_pistol_signal_f", + "a3_weapons_f_launchers_law", + "a3_weapons_f_launchers_nlaw", + "a3_weapons_f_launchers_titan", + "a3_weapons_f_longrangerifles_gm6", + "a3_weapons_f_longrangerifles_m320", + "a3_weapons_f_machineguns_m200", + "a3_weapons_f_machineguns_zafir", + "a3_weapons_f_mark", + "a3_weapons_f_mark_acc", + "a3_weapons_f_mark_ebr", + "a3_weapons_f_mark_longrangerifles_dmr_01", + "a3_weapons_f_mark_longrangerifles_dmr_02", + "a3_weapons_f_mark_longrangerifles_dmr_03", + "a3_weapons_f_mark_longrangerifles_dmr_04", + "a3_weapons_f_mark_longrangerifles_dmr_05", + "a3_weapons_f_mark_longrangerifles_dmr_06", + "a3_weapons_f_mark_longrangerifles_gm6", + "a3_weapons_f_mark_longrangerifles_gm6_camo", + "a3_weapons_f_mark_longrangerifles_m320", + "a3_weapons_f_mark_longrangerifles_m320_camo", + "a3_weapons_f_mark_machineguns_m200", + "a3_weapons_f_mark_machineguns_mmg_01", + "a3_weapons_f_mark_machineguns_mmg_02", + "a3_weapons_f_mark_machineguns_zafir", + "a3_weapons_f_mark_rifles_khaybar", + "a3_weapons_f_mark_rifles_mk20", + "a3_weapons_f_mark_rifles_mx", + "a3_weapons_f_mark_rifles_sdar", + "a3_weapons_f_mark_rifles_trg20", + "a3_weapons_f_nato", + "a3_weapons_f_pistols_acpc2", + "a3_weapons_f_pistols_p07", + "a3_weapons_f_pistols_pdw2000", + "a3_weapons_f_pistols_pistol_heavy_01", + "a3_weapons_f_pistols_pistol_heavy_02", + "a3_weapons_f_pistols_rook40", + "a3_weapons_f_rifles_khaybar", + "a3_weapons_f_rifles_mk20", + "a3_weapons_f_rifles_mx", + "a3_weapons_f_rifles_sdar", + "a3_weapons_f_rifles_smg_02", + "a3_weapons_f_rifles_trg20", + "a3_weapons_f_rifles_vector", + "a3_weapons_f_uniforms", + "a3_weapons_f_vests", + "a3data", + "map_vr", + // CBA + "extended_eventhandlers", + "cba_ui", + "cba_xeh", + "cba_xeh_a3", + "cba_jr" + }; + author = ECSTRING(common,ACETeam); + url = CSTRING(URL); + VERSION_CONFIG; + }; +}; + +class CfgMods { + class PREFIX { + dir = "@ace"; + name = "Advanced Combat Environment 3"; + picture = "A3\Ui_f\data\Logos\arma3_expansion_alpha_ca"; + hidePicture = "true"; + hideName = "true"; + actionName = "Website"; + action = CSTRING(URL); + description = "Issue Tracker: https://github.com/acemod/ACE3/issues"; + }; +}; + +#include "CfgSettings.hpp" +#include "CfgModuleCategories.hpp" +#include "CfgVehicleClasses.hpp" diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 1f86448c94..cda38b0458 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -1,16 +1,16 @@ -// COMPONENT should be defined in the script_component.hpp and included BEFORE this hpp - -#define MAINPREFIX z -#define PREFIX ace - -#define MAJOR 3 -#define MINOR 5 -#define PATCHLVL 1 -#define BUILD 0 - -#define VERSION MAJOR.MINOR.PATCHLVL.BUILD -#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD - -// MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.56 -#define REQUIRED_CBA_VERSION {2,3,1} +// COMPONENT should be defined in the script_component.hpp and included BEFORE this hpp + +#define MAINPREFIX z +#define PREFIX ace + +#define MAJOR 3 +#define MINOR 5 +#define PATCHLVL 1 +#define BUILD 0 + +#define VERSION MAJOR.MINOR.PATCHLVL.BUILD +#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD + +// MINIMAL required version for the Mod. Components can specify others.. +#define REQUIRED_VERSION 1.56 +#define REQUIRED_CBA_VERSION {2,4,0} diff --git a/addons/main/stringtable.xml b/addons/main/stringtable.xml index 985bfb4836..4648225f9f 100644 --- a/addons/main/stringtable.xml +++ b/addons/main/stringtable.xml @@ -12,5 +12,16 @@ Logistica ACE ACE Logistique + + http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ + - \ No newline at end of file + diff --git a/addons/map/config.cpp b/addons/map/config.cpp index 6fabe7ef89..f7c4101218 100644 --- a/addons/map/config.cpp +++ b/addons/map/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"KoffeinFlummi","Rocko","esteldunedain"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi","Rocko","esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/map_gestures/config.cpp b/addons/map_gestures/config.cpp index d3217124d6..8c25ee34a7 100644 --- a/addons/map_gestures/config.cpp +++ b/addons/map_gestures/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Dslyecxi", "MikeMatrix"}; - authorUrl = "https://github.com/MikeMatrix"; + author = ECSTRING(common,ACETeam); + authors[] = {"Dslyecxi", "MikeMatrix"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/maptools/config.cpp b/addons/maptools/config.cpp index f5267ad11a..29a7b87a1e 100644 --- a/addons/maptools/config.cpp +++ b/addons/maptools/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_MapTools"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"esteldunedain"}; - authorUrl = "https://github.com/esteldunedain/"; + author = ECSTRING(common,ACETeam); + authors[] = {"esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/markers/CfgEventHandlers.hpp b/addons/markers/CfgEventHandlers.hpp index becf395052..e1f9294767 100644 --- a/addons/markers/CfgEventHandlers.hpp +++ b/addons/markers/CfgEventHandlers.hpp @@ -16,3 +16,9 @@ class Extended_PostInit_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_postInit)); }; }; + +class Extended_DisplayLoad_EventHandlers { + class RscDiary { + ADDON = QUOTE(_this call FUNC(mapDisplayInitEH)); + }; +}; diff --git a/addons/markers/XEH_PREP.hpp b/addons/markers/XEH_PREP.hpp index 67344454ec..c6ad5c6ba2 100644 --- a/addons/markers/XEH_PREP.hpp +++ b/addons/markers/XEH_PREP.hpp @@ -1,6 +1,7 @@ PREP(getEnabledChannels); PREP(initInsertMarker); +PREP(mapDisplayInitEH); PREP(mapDrawEH); PREP(onLBSelChangedChannel); PREP(onLBSelChangedColor); diff --git a/addons/markers/config.cpp b/addons/markers/config.cpp index 24d3c778d8..658a3ab370 100644 --- a/addons/markers/config.cpp +++ b/addons/markers/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/markers/functions/fnc_mapDisplayInitEH.sqf b/addons/markers/functions/fnc_mapDisplayInitEH.sqf new file mode 100644 index 0000000000..662f6f80c0 --- /dev/null +++ b/addons/markers/functions/fnc_mapDisplayInitEH.sqf @@ -0,0 +1,34 @@ +/* + * Author: PabstMirror + * Handles XEH DisplayLoad for the various map displays (RscDiary) + * + * Arguments: + * 0: Map Display (idd 12,37,52,53) + * + * Return Value: + * None + * + * Example: + * [display] call ace_markers_fnc_mapDisplayInitEH + * + * Public: No + */ +#include "script_component.hpp" + +disableSerialization; + +params ["_display"]; +TRACE_1("params",_display); + +private _bisShapeLB = _display displayctrl 1091; +private _curSelShape = missionNamespace getVariable [QGVAR(curSelMarkerShape), 0]; +TRACE_2("shape",_bisShapeLB,_curSelShape); +_bisShapeLB ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedShape)}]; +_bisShapeLB lbSetCurSel _curSelShape; + + +private _bisColorLB = _display displayctrl 1090; +private _curSelColor = missionNamespace getVariable [QGVAR(curSelMarkerColor), 0]; +TRACE_2("color",_bisColorLB,_curSelColor); +_bisColorLB ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedColor)}]; +_bisColorLB lbSetCurSel _curSelColor; diff --git a/addons/markers/functions/fnc_onLBSelChangedColor.sqf b/addons/markers/functions/fnc_onLBSelChangedColor.sqf index 215cd72580..dc186a6c61 100644 --- a/addons/markers/functions/fnc_onLBSelChangedColor.sqf +++ b/addons/markers/functions/fnc_onLBSelChangedColor.sqf @@ -26,3 +26,15 @@ GVAR(curSelMarkerColor) = _index; private _config = (configFile >> "CfgMarkerColors") select _data; GVAR(currentMarkerColorConfigName) = configName _config; + +//Set map display to same color: +private _bisColorLB = switch (false) do { + case (isNull findDisplay 12): {(findDisplay 12) displayCtrl 1090}; + case (isNull findDisplay 52): {(findDisplay 52) displayCtrl 1090}; + case (isNull findDisplay 53): {(findDisplay 53) displayCtrl 1090}; + case (isNull findDisplay 37): {(findDisplay 37) displayCtrl 1090}; + default {controlNull}; +}; +if (_ctrl != _bisColorLB) then { //Don't set what we got a EH from + _bisColorLB lbSetCurSel GVAR(curSelMarkerColor); +}; diff --git a/addons/markers/functions/fnc_onLBSelChangedShape.sqf b/addons/markers/functions/fnc_onLBSelChangedShape.sqf index 41f0f30a0d..6fd9aabd89 100644 --- a/addons/markers/functions/fnc_onLBSelChangedShape.sqf +++ b/addons/markers/functions/fnc_onLBSelChangedShape.sqf @@ -26,3 +26,15 @@ GVAR(curSelMarkerShape) = _index; private _config = (configFile >> "CfgMarkers") select _data; GVAR(currentMarkerConfigName) = configName _config; + +//Set map display to same shape: +private _bisShapeLB = switch (false) do { + case (isNull findDisplay 12): {(findDisplay 12) displayCtrl 1091}; + case (isNull findDisplay 52): {(findDisplay 52) displayCtrl 1091}; + case (isNull findDisplay 53): {(findDisplay 53) displayCtrl 1091}; + case (isNull findDisplay 37): {(findDisplay 37) displayCtrl 1091}; + default {controlNull}; +}; +if (_ctrl != _bisShapeLB) then { //Don't set what we got a EH from + _bisShapeLB lbSetCurSel GVAR(curSelMarkerShape); +}; diff --git a/addons/medical/CfgEden.hpp b/addons/medical/CfgEden.hpp index 508d53d54c..a9b4594b66 100644 --- a/addons/medical/CfgEden.hpp +++ b/addons/medical/CfgEden.hpp @@ -16,9 +16,9 @@ class Cfg3DEN { class Value: ctrlToolbox { idc = 100; style = "0x02"; - x = "48 * (pixelW * 1.25 * 4)"; - w = "82 * (pixelW * 1.25 * 4)"; - h = "5 * (pixelH * 1.25 * 4)"; + x = "48 * (pixelW * pixelGrid * 0.25)"; + w = "82 * (pixelW * pixelGrid * 0.25)"; + h = "5 * (pixelH * pixelGrid * 0.25)"; rows = 1; columns = 4; strings[] = {"$STR_3DEN_Attributes_Lock_Default_text", CSTRING(AssignMedicRoles_role_none), CSTRING(AssignMedicRoles_role_medic), CSTRING(AssignMedicRoles_role_doctorShort)}; diff --git a/addons/medical/config.cpp b/addons/medical/config.cpp index e78c5bea03..533af19e8e 100644 --- a/addons/medical/config.cpp +++ b/addons/medical/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_fieldDressing", "ACE_packingBandage", "ACE_elasticBandage", "ACE_tourniquet", "ACE_morphine", "ACE_atropine", "ACE_epinephrine", "ACE_plasmaIV", "ACE_plasmaIV_500", "ACE_plasmaIV_250", "ACE_bloodIV", "ACE_bloodIV_500", "ACE_bloodIV_250", "ACE_salineIV", "ACE_salineIV_500", "ACE_salineIV_250", "ACE_quikclot", "ACE_personalAidKit", "ACE_surgicalKit", "ACE_bodyBag"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction", "ace_apl"}; - author[] = {"Glowbal", "KoffeinFlummi"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"Glowbal", "KoffeinFlummi"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/medical_menu/config.cpp b/addons/medical_menu/config.cpp index 0183c0207f..ec1840c696 100644 --- a/addons/medical_menu/config.cpp +++ b/addons/medical_menu/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_medical"}; - author[] = {$STR_ACE_Common_ACETeam, "Glowbal"}; - authorUrl = "http://ace3mod.com"; + author = ECSTRING(common,ACETeam); + authors[] = {"Glowbal"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/microdagr/config.cpp b/addons/microdagr/config.cpp index fc95c29e6d..9da8434fe7 100644 --- a/addons/microdagr/config.cpp +++ b/addons/microdagr/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_microDAGR"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"PabstMirror"}; - authorUrl = "https://github.com/PabstMirror/"; + author = ECSTRING(common,ACETeam); + authors[] = {"PabstMirror"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/microdagr/functions/fnc_canShow.sqf b/addons/microdagr/functions/fnc_canShow.sqf index 70e8989031..d339f80794 100644 --- a/addons/microdagr/functions/fnc_canShow.sqf +++ b/addons/microdagr/functions/fnc_canShow.sqf @@ -27,8 +27,10 @@ _returnValue = switch (_showType) do { ("ACE_microDAGR" in (items ACE_player)) && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)} }; case (DISPLAY_MODE_DISPLAY): { - //Can't have minimap up while zoomed in - (cameraview != "GUNNER") && {"ACE_microDAGR" in (items ACE_player)} && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)} + //Can't have minimap up while zoomed in on foot, but allow drivers to use while in "Gunner" to handle non-3d vehicles like most tanks + ((cameraView != "GUNNER") || {(vehicle ACE_player != ACE_player) && {driver vehicle ACE_player == ACE_player}}) && + {"ACE_microDAGR" in (items ACE_player)} && + {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)} }; default { false }; }; diff --git a/addons/missileguidance/config.cpp b/addons/missileguidance/config.cpp index 591a4f1c5e..365bd18327 100644 --- a/addons/missileguidance/config.cpp +++ b/addons/missileguidance/config.cpp @@ -5,7 +5,9 @@ class CfgPatches { units[] = {"ACE_Comanche_Test"}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_laser"}; + requiredAddons[] = {"ace_laser"}; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/missionmodules/config.cpp b/addons/missionmodules/config.cpp index c373b84615..2f58f5c42f 100644 --- a/addons/missionmodules/config.cpp +++ b/addons/missionmodules/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Glowbal"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"Glowbal"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index 31fba6f7ba..509bea599c 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -7,8 +7,9 @@ class CfgPatches { weapons[] = {"ACE_RangeTable_82mm","ace_mortar_82mm"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"PabstMirror","Grey","VKing"}; - authorUrl = "https://github.com/acemod"; + author = ECSTRING(common,ACETeam); + authors[] = {"PabstMirror","Grey","VKing"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/modules/config.cpp b/addons/modules/config.cpp index 4349b239db..c35dd623ba 100644 --- a/addons/modules/config.cpp +++ b/addons/modules/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_main"}; - author[] = {"Glowbal"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"Glowbal"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/movement/config.cpp b/addons/movement/config.cpp index bca174c422..49dbd45277 100644 --- a/addons/movement/config.cpp +++ b/addons/movement/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2","KoffeinFlummi","Tachii"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2","KoffeinFlummi","Tachii"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/mx2a/config.cpp b/addons/mx2a/config.cpp index 45b1643ed2..c59dc43dd3 100644 --- a/addons/mx2a/config.cpp +++ b/addons/mx2a/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_MX2A"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_apl"}; - author[] = {"Spooner", "tcp"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Spooner", "tcp"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/nametags/config.cpp b/addons/nametags/config.cpp index b3abf02a7a..5fa6cde85a 100644 --- a/addons/nametags/config.cpp +++ b/addons/nametags/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = { "commy2", "esteldunedain" }; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = { "commy2", "esteldunedain" }; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/nightvision/config.cpp b/addons/nightvision/config.cpp index a70cda0836..5d2be0963e 100644 --- a/addons/nightvision/config.cpp +++ b/addons/nightvision/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_NVG_Gen1", "ACE_NVG_Gen2", /*"ACE_NVG_Gen3",*/ "ACE_NVG_Gen4", "ACE_NVG_Wide"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2", "KoffeinFlummi", "PabstMirror"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2", "KoffeinFlummi", "PabstMirror"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/noidle/config.cpp b/addons/noidle/config.cpp index 3c2ac1a9d6..b0792486f7 100644 --- a/addons/noidle/config.cpp +++ b/addons/noidle/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/noradio/config.cpp b/addons/noradio/config.cpp index 86697535f8..0781a4a15e 100644 --- a/addons/noradio/config.cpp +++ b/addons/noradio/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/norearm/config.cpp b/addons/norearm/config.cpp index 3477258612..2b670e0db1 100644 --- a/addons/norearm/config.cpp +++ b/addons/norearm/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/optics/config.cpp b/addons/optics/config.cpp index 64affd601f..8499b13427 100644 --- a/addons/optics/config.cpp +++ b/addons/optics/config.cpp @@ -18,8 +18,9 @@ class CfgPatches { }; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Taosenai","KoffeinFlummi","commy2"}; - authorUrl = "http://www.ryanschultz.org/tmr/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Taosenai","KoffeinFlummi","commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/optionsmenu/config.cpp b/addons/optionsmenu/config.cpp index d4e49b90de..34be3b876d 100644 --- a/addons/optionsmenu/config.cpp +++ b/addons/optionsmenu/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Glowbal", "PabstMirror"}; - authorUrl = "http://github.com/Glowbal"; + author = ECSTRING(common,ACETeam); + authors[] = {"Glowbal", "PabstMirror"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf b/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf index be771f7a3a..dd2c187bf7 100644 --- a/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf +++ b/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf @@ -17,7 +17,7 @@ private ["_var", "_unit", "_outputText", "_text"]; -#define MIN_ARRAY_SIZE 10 +#define MIN_ARRAY_SIZE 50 _outputText = { diag_log text (_this select 0); @@ -30,12 +30,20 @@ time = %1 ------Performance------ diag_fps = %2 -count ace_common_waitAndExecArray = %3 -count cba_common_perFrameHandlerArray = %4 (max %5) -count diag_activeSQFScripts = %6 -count diag_activeSQSScripts = %7 -count diag_activeMissionFSMs = %8", -time, diag_fps, count ace_common_waitAndExecArray, {!isNil "_x"} count cba_common_perFrameHandlerArray, count cba_common_perFrameHandlerArray, count diag_activeSQFScripts, count diag_activeSQSScripts,count diag_activeMissionFSMs]; +count cba_common_waitAndExecArray = %3 +count cba_common_waitUntilAndExecArray = %4 +count cba_common_perFrameHandlerArray = %5 (max %6) +count diag_activeSQFScripts = %7 +count diag_activeSQSScripts = %8 +count diag_activeMissionFSMs = %9", +time, +diag_fps, +count cba_common_waitAndExecArray, +count cba_common_waitUntilAndExecArray, +{!isNil "_x"} count cba_common_perFrameHandlerArray, count cba_common_perFrameHandlerArray, +count diag_activeSQFScripts, +count diag_activeSQSScripts, +count diag_activeMissionFSMs]; [_text] call _outputText; diff --git a/addons/overheating/config.cpp b/addons/overheating/config.cpp index c945716149..11837b7db7 100644 --- a/addons/overheating/config.cpp +++ b/addons/overheating/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_SpareBarrel"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"commy2", "KoffeinFlummi", "esteldunedain"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2", "KoffeinFlummi", "esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/overpressure/config.cpp b/addons/overpressure/config.cpp index 5e37dd9ecb..3ddab78d41 100644 --- a/addons/overpressure/config.cpp +++ b/addons/overpressure/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2","KoffeinFlummi","esteldunedain"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2","KoffeinFlummi","esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/parachute/config.cpp b/addons/parachute/config.cpp index 8c914259b2..a80edfcc99 100644 --- a/addons/parachute/config.cpp +++ b/addons/parachute/config.cpp @@ -7,8 +7,9 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; VERSION_CONFIG; - author[] = {"Garth 'LH' de Wet"}; - authorUrl = "http://garth.snakebiteink.co.za/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Garth 'LH' de Wet"}; + url = ECSTRING(main,URL); }; }; diff --git a/addons/rangecard/config.cpp b/addons/rangecard/config.cpp index abe4e859f2..fd39a3a523 100644 --- a/addons/rangecard/config.cpp +++ b/addons/rangecard/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_RangeCard"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ACE_Advanced_Ballistics"}; - author = "Ruthberg"; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; @@ -14,4 +16,4 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" #include "CfgWeapons.hpp" -#include "RscTitles.hpp" \ No newline at end of file +#include "RscTitles.hpp" diff --git a/addons/realisticnames/config.cpp b/addons/realisticnames/config.cpp index 6a8ea59290..d85fe9771d 100644 --- a/addons/realisticnames/config.cpp +++ b/addons/realisticnames/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"KoffeinFlummi","TaoSensai","commy2"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi","TaoSensai","commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/rearm/CfgVehicles.hpp b/addons/rearm/CfgVehicles.hpp index c13218e472..44b7fe38af 100644 --- a/addons/rearm/CfgVehicles.hpp +++ b/addons/rearm/CfgVehicles.hpp @@ -143,24 +143,21 @@ class CfgVehicles { MACRO_REARM_TRUCK_ACTIONS }; - class Pod_Heli_Transport_04_base_F: StaticWeapon {}; + class ThingX; + class ReammoBox_F: ThingX { + class ACE_Actions { + class ACE_MainActions {}; + }; + }; + class Slingload_base_F: ReammoBox_F {}; + class Slingload_01_Base_F: Slingload_base_F {}; + + class Pod_Heli_Transport_04_base_F: Slingload_base_F {}; class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F { transportAmmo = 0; MACRO_REARM_TRUCK_ACTIONS }; - class Slingload_base_F; - class Slingload_01_Base_F: Slingload_base_F { - class ACE_Actions { - class ACE_MainActions { - displayName = ECSTRING(interaction,MainAction); - selection = ""; - distance = 10; - condition = "true"; - }; - }; - }; - class B_Slingload_01_Ammo_F: Slingload_01_Base_F { transportAmmo = 0; MACRO_REARM_TRUCK_ACTIONS @@ -168,7 +165,6 @@ class CfgVehicles { // Dummy Vehicles - class ThingX; class GVAR(defaultCarriedObject): ThingX { class EventHandlers { class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; diff --git a/addons/rearm/config.cpp b/addons/rearm/config.cpp index 006e3e8bcc..d057ba2acf 100644 --- a/addons/rearm/config.cpp +++ b/addons/rearm/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"GitHawk", "Jonpas"}; - authorUrl = "https://ace3mod.com"; + author = ECSTRING(common,ACETeam); + authors[] = {"GitHawk", "Jonpas"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/recoil/config.cpp b/addons/recoil/config.cpp index 266bfb817d..5daaf1292e 100644 --- a/addons/recoil/config.cpp +++ b/addons/recoil/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/refuel/CfgVehicles.hpp b/addons/refuel/CfgVehicles.hpp index 078dccea37..6774140cc7 100644 --- a/addons/refuel/CfgVehicles.hpp +++ b/addons/refuel/CfgVehicles.hpp @@ -480,18 +480,22 @@ class CfgVehicles { GVAR(fuelCargo) = 10000; }; - class Slingload_base_F; - class Slingload_01_Base_F: Slingload_base_F { + class ReammoBox_F: ThingX { class ACE_Actions { - class ACE_MainActions { - displayName = ECSTRING(interaction,MainAction); - selection = ""; - distance = 10; - condition = "true"; - }; + class ACE_MainActions {}; }; }; + class Slingload_base_F: ReammoBox_F {}; + class Pod_Heli_Transport_04_base_F: Slingload_base_F {}; + class Land_Pod_Heli_Transport_04_fuel_F: Pod_Heli_Transport_04_base_F { + transportFuel = 0; //3k + MACRO_REFUEL_ACTIONS + GVAR(hooks)[] = {{-1.49,1.41,-.3}}; + GVAR(fuelCargo) = 10000; + }; + + class Slingload_01_Base_F: Slingload_base_F {}; class B_Slingload_01_Fuel_F: Slingload_01_Base_F { transportFuel = 0; //3k MACRO_REFUEL_ACTIONS @@ -506,13 +510,6 @@ class CfgVehicles { GVAR(fuelCargo) = 10000; }; - class Pod_Heli_Transport_04_base_F: StaticWeapon {}; - class Land_Pod_Heli_Transport_04_fuel_F: Pod_Heli_Transport_04_base_F { - transportFuel = 0; //3k - MACRO_REFUEL_ACTIONS - GVAR(hooks)[] = {{-1.49,1.41,-.3}}; - GVAR(fuelCargo) = 10000; - }; class StorageBladder_base_F: NonStrategic { class ACE_Actions { diff --git a/addons/refuel/config.cpp b/addons/refuel/config.cpp index b903970a3b..8e3279c3fe 100644 --- a/addons/refuel/config.cpp +++ b/addons/refuel/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_refuel_fuelNozzle"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"GitHawk"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"GitHawk"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/reload/ACE_UI.hpp b/addons/reload/ACE_UI.hpp new file mode 100644 index 0000000000..6dae3e5147 --- /dev/null +++ b/addons/reload/ACE_UI.hpp @@ -0,0 +1,7 @@ +class ACE_UI { + class ammoCount { + class conditions { + ADDON = "false"; + }; + }; +}; diff --git a/addons/reload/config.cpp b/addons/reload/config.cpp index 8910929376..d3015f9dfa 100644 --- a/addons/reload/config.cpp +++ b/addons/reload/config.cpp @@ -6,21 +6,19 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"commy2","KoffeinFlummi","esteldunedain"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2","KoffeinFlummi","esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; #include "CfgVehicles.hpp" - #include "CfgMagazines.hpp" - #include "CfgEventHandlers.hpp" - #include "CfgActions.hpp" - #include "ACE_Settings.hpp" +#include "ACE_UI.hpp" class ACE_newEvents { setAmmoSync = QGVAR(syncAmmo); diff --git a/addons/reload/script_component.hpp b/addons/reload/script_component.hpp index 09993faaa4..eece5acec7 100644 --- a/addons/reload/script_component.hpp +++ b/addons/reload/script_component.hpp @@ -14,4 +14,4 @@ #define DEBUG_SETTINGS DEBUG_ENABLED_RELOAD #endif -#include "\z\ace\addons\main\script_macros.hpp" \ No newline at end of file +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/addons/reloadlaunchers/config.cpp b/addons/reloadlaunchers/config.cpp index 044b05086b..ff4c00bb22 100644 --- a/addons/reloadlaunchers/config.cpp +++ b/addons/reloadlaunchers/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/repair/CfgEden.hpp b/addons/repair/CfgEden.hpp index d8885fddf9..ca315d68ec 100644 --- a/addons/repair/CfgEden.hpp +++ b/addons/repair/CfgEden.hpp @@ -16,9 +16,9 @@ class Cfg3DEN { class Value: ctrlToolbox { idc = 100; style = "0x02"; - x = "48 * (pixelW * 1.25 * 4)"; - w = "82 * (pixelW * 1.25 * 4)"; - h = "5 * (pixelH * 1.25 * 4)"; + x = "48 * (pixelW * pixelGrid * 0.25)"; + w = "82 * (pixelW * pixelGrid * 0.25)"; + h = "5 * (pixelH * pixelGrid * 0.25)"; rows = 1; columns = 4; strings[] = {"$STR_3DEN_Attributes_Lock_Default_text", CSTRING(AssignEngineerRole_role_none), CSTRING(AssignEngineerRole_role_engineer), CSTRING(AssignEngineerRole_role_specialist)}; diff --git a/addons/repair/XEH_postInit.sqf b/addons/repair/XEH_postInit.sqf index 2f0bbe7869..0adb915666 100644 --- a/addons/repair/XEH_postInit.sqf +++ b/addons/repair/XEH_postInit.sqf @@ -5,3 +5,5 @@ // wheels [QGVAR(setWheelHitPointDamage), {(_this select 0) setHitPointDamage [_this select 1, _this select 2]}] call CBA_fnc_addEventHandler; + +[QGVAR(useItem), EFUNC(common,useItem)] call CBA_fnc_addEventHandler; diff --git a/addons/repair/config.cpp b/addons/repair/config.cpp index 05bf5cbd3e..247e597528 100644 --- a/addons/repair/config.cpp +++ b/addons/repair/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"commy2", "Glowbal", "Jonpas"}; - authorUrl = "https://ace3mod.com"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2", "Glowbal", "Jonpas"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/repair/functions/fnc_useItem.sqf b/addons/repair/functions/fnc_useItem.sqf index 24554ba4eb..4bae3e7918 100644 --- a/addons/repair/functions/fnc_useItem.sqf +++ b/addons/repair/functions/fnc_useItem.sqf @@ -20,8 +20,8 @@ params ["_unit", "_item"]; TRACE_2("params",_unit,_item); if ([_unit, _item] call EFUNC(common,hasItem)) exitWith { - [[_unit, _item], QEFUNC(common,useItem), _unit] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ - [true, _unit]; + [QGVAR(useItem), _unit, [_unit, _item]] call EFUNC(common,objectEvent); + [true, _unit]; }; [false, objNull]; diff --git a/addons/respawn/XEH_postInit.sqf b/addons/respawn/XEH_postInit.sqf index d20f6ccbe0..f589d5abac 100644 --- a/addons/respawn/XEH_postInit.sqf +++ b/addons/respawn/XEH_postInit.sqf @@ -3,3 +3,5 @@ ["ace_rallypointMoved", {_this call FUNC(updateRallypoint)}] call CBA_fnc_addEventHandler; ["ace_playerChanged", {_this call FUNC(handlePlayerChanged)}] call CBA_fnc_addEventHandler; // hide enemy rallypoint markers + +[QGVAR(showFriendlyFireMessageEvent), DFUNC(showFriendlyFireMessage)] call CBA_fnc_addEventHandler; diff --git a/addons/respawn/config.cpp b/addons/respawn/config.cpp index e70532fee0..7133a361d7 100644 --- a/addons/respawn/config.cpp +++ b/addons/respawn/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Rallypoint_West", "ACE_Rallypoint_East", "ACE_Rallypoint_Independent", "ACE_Rallypoint_West_Base", "ACE_Rallypoint_East_Base", "ACE_Rallypoint_Independent_Base"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { "ace_common" }; - author[] = { "bux578", "commy2" }; - authorUrl = "https://github.com/bux578/"; + author = ECSTRING(common,ACETeam); + authors[] = { "bux578", "commy2" }; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/respawn/functions/fnc_handleKilled.sqf b/addons/respawn/functions/fnc_handleKilled.sqf index 2b9509f39d..aa53c6741a 100644 --- a/addons/respawn/functions/fnc_handleKilled.sqf +++ b/addons/respawn/functions/fnc_handleKilled.sqf @@ -25,5 +25,5 @@ if (ACE_player == _unit && {GVAR(SavePreDeathGear)}) then { }; if (missionNamespace getVariable [QGVAR(showFriendlyFireMessage), false]) then { - [_this, QUOTE(DFUNC(showFriendlyFireMessage)), 2] call EFUNC(common,execRemoteFnc); + [QGVAR(showFriendlyFireMessageEvent), _this] call EFUNC(common,objectEvent); }; diff --git a/addons/safemode/config.cpp b/addons/safemode/config.cpp index 8371e7f35f..05510a53a5 100644 --- a/addons/safemode/config.cpp +++ b/addons/safemode/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/sandbag/config.cpp b/addons/sandbag/config.cpp index bc59d52a8a..0c4033e281 100644 --- a/addons/sandbag/config.cpp +++ b/addons/sandbag/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Sandbag", "ACE_Sandbag_empty"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"Rocko", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Rocko", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/scopes/config.cpp b/addons/scopes/config.cpp index 038739d558..07b820f176 100644 --- a/addons/scopes/config.cpp +++ b/addons/scopes/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { "ace_common" }; - author[] = {"KoffeinFlummi", "esteldunedain"}; - authorUrl = "https://github.com/KoffeinFlummi"; + author = ECSTRING(common,ACETeam); + authors[] = {"KoffeinFlummi", "esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/sitting/config.cpp b/addons/sitting/config.cpp index e46b25b555..1fd81ad5d1 100644 --- a/addons/sitting/config.cpp +++ b/addons/sitting/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"Jonpas"}; - authorUrl = "https://github.com/jonpas"; + author = ECSTRING(common,ACETeam); + authors[] = {"Jonpas"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/slideshow/config.cpp b/addons/slideshow/config.cpp index 3af3bd5354..3a2e757e6a 100644 --- a/addons/slideshow/config.cpp +++ b/addons/slideshow/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[]= {"Jonpas", "DaC"}; - authorUrl = "https://github.com/jonpas"; + author = ECSTRING(common,ACETeam); + authors[] = {"Jonpas", "DaC"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/smallarms/config.cpp b/addons/smallarms/config.cpp index e5731df7b3..5b211fa37e 100644 --- a/addons/smallarms/config.cpp +++ b/addons/smallarms/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"TaoSensai", "KoffeinFlummi"}; - authorUrl = "https://github.com/Taosenai/tmr"; + author = ECSTRING(common,ACETeam); + authors[] = {"TaoSensai", "KoffeinFlummi"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index f3d0c217b4..8907858d3f 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -27,3 +27,5 @@ if (isServer) then { [false] call FUNC(setSpectator); }; }] call CBA_fnc_addEventHandler; + +[QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; diff --git a/addons/spectator/config.cpp b/addons/spectator/config.cpp index 5aaedf48be..7e9937a70b 100644 --- a/addons/spectator/config.cpp +++ b/addons/spectator/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"F3 Project","Head","SilentSpike","voiper"}; - authorUrl = "https://github.com/acemod"; + author = ECSTRING(common,ACETeam); + authors[] = {"F3 Project","Head","SilentSpike","voiper"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 4584a1fc3c..fde8ef05ad 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -23,7 +23,7 @@ private ["_vision","_pos"]; // When all are dead with respawn type "None" the mission should end if ((_respawn == 0) && {{alive _x} count allPlayers <= 0}) exitWith { - [["endDeath",false],"BIS_fnc_endMission"] call EFUNC(common,execRemoteFnc); + ["BIS_fnc_endMission", ["endDeath", false]] call EFUNC(common,globalEvent); }; // Some environment information can be used for the initial camera attributes diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index 24bc8b7c08..425d4a3783 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -27,7 +27,7 @@ params [["_unit",player,[objNull]], ["_set",true,[true]]]; if !(_set || (GETVAR(_unit,GVAR(isStaged),false))) exitWith {}; if !(local _unit) exitWith { - [[_unit, _set], QFUNC(stageSpectator), _unit] call EFUNC(common,execRemoteFnc); + [QGVAR(stageSpectator), _unit, [_unit, _set]] call EFUNC(common,objectEvent); }; // Prevent unit falling into water diff --git a/addons/spottingscope/config.cpp b/addons/spottingscope/config.cpp index c3541eed39..a92f91ec50 100644 --- a/addons/spottingscope/config.cpp +++ b/addons/spottingscope/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_SpottingScope"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_apl", "ace_interaction"}; - author[] = {"Rocko", "Scubaman3D", "Ruthberg", "commy2", "p1nga"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Rocko", "Scubaman3D", "Ruthberg", "commy2", "p1nga"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/switchunits/XEH_postInit.sqf b/addons/switchunits/XEH_postInit.sqf index 3ec08621c6..9dc58e7769 100644 --- a/addons/switchunits/XEH_postInit.sqf +++ b/addons/switchunits/XEH_postInit.sqf @@ -27,3 +27,11 @@ if (missionNamespace getVariable [QGVAR(EnableSwitchUnits), false]) then { }; }] call CBA_fnc_addEventHandler; }; + +if (isServer) then { + [QGVAR(switchLocality), { + params ["_unit", "_player"]; + _unit setVariable [QGVAR(OriginalOwner), owner _unit, true]; + _unit setOwner (owner _player); + }] call EFUNC(common,addEventHandler); +}; diff --git a/addons/switchunits/config.cpp b/addons/switchunits/config.cpp index 6caf7a955c..fa32aef100 100644 --- a/addons/switchunits/config.cpp +++ b/addons/switchunits/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"bux578"}; - authorUrl = "https://github.com/bux578/"; + author = ECSTRING(common,ACETeam); + authors[] = {"bux578"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/switchunits/functions/fnc_switchUnit.sqf b/addons/switchunits/functions/fnc_switchUnit.sqf index a26b2d474a..64cc77c221 100644 --- a/addons/switchunits/functions/fnc_switchUnit.sqf +++ b/addons/switchunits/functions/fnc_switchUnit.sqf @@ -40,14 +40,7 @@ if (_leave) exitWith { // should switch locality // This doesn't work anymore, because one's now able to switch to units from a different side //[_unit] joinSilent group player; -[ - [_unit, player], - QUOTE({ - (_this select 0) setVariable [ARR_3(QUOTE(QGVAR(OriginalOwner)), owner (_this select 0), true)]; - (_this select 0) setOwner owner (_this select 1) - }), - 1 -] call EFUNC(common,execRemoteFnc); +[QGVAR(switchLocality), [_unit, player]] call EFUNC(common,serverEvent); [{ params ["_args", "_pfhId"]; @@ -79,12 +72,7 @@ if (_leave) exitWith { // set owner back to original owner private _oldOwner = _oldUnit getVariable[QGVAR(OriginalOwner), -1]; if (_oldOwner > -1) then { - [ - [_oldUnit, _oldOwner], - QUOTE({ - (_this select 0) setOwner (_this select 1) - }), 1 - ] call EFUNC(common,execRemoteFnc); + ["setOwner", [_oldUnit, _oldOwner]] call EFUNC(common,serverEvent); }; [localize LSTRING(SwitchedUnit)] call EFUNC(common,displayTextStructured); diff --git a/addons/tacticalladder/config.cpp b/addons/tacticalladder/config.cpp index 02cd3e2ea0..ed0f933c9b 100644 --- a/addons/tacticalladder/config.cpp +++ b/addons/tacticalladder/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_apl", "ace_interaction"}; - author[] = {"Rocko", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Rocko", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/tagging/config.cpp b/addons/tagging/config.cpp index e494247db3..7e495892e9 100644 --- a/addons/tagging/config.cpp +++ b/addons/tagging/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_SpraypaintBlack", "ACE_SpraypaintRed", "ACE_SpraypaintGreen", "ACE_SpraypaintBlue"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"BaerMitUmlaut","esteldunedain"}; - authorUrl = "https://github.com/BaerMitUmlaut"; + author = ECSTRING(common,ACETeam); + authors[] = {"BaerMitUmlaut","esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/thermals/config.cpp b/addons/thermals/config.cpp index 07d19d1b50..b4ad00f41c 100644 --- a/addons/thermals/config.cpp +++ b/addons/thermals/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"[TF]Nkey"}; - authorUrl = "https://github.com/michail-nikolaev/"; + author = ECSTRING(common,ACETeam); + authors[] = {"[TF]Nkey"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/trenches/config.cpp b/addons/trenches/config.cpp index 3d5c3a5a17..f173d16628 100644 --- a/addons/trenches/config.cpp +++ b/addons/trenches/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_EntrenchingTool"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"Grey", "esteldunedain"}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {"Grey", "esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/tripod/config.cpp b/addons/tripod/config.cpp index c8fca00687..a4c205d7a9 100644 --- a/addons/tripod/config.cpp +++ b/addons/tripod/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Tripod"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"Rocko", "Scubaman3D", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Rocko", "Scubaman3D", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/ui/ACE_Settings.hpp b/addons/ui/ACE_Settings.hpp index 89ddc8d35d..e6c3e5e496 100644 --- a/addons/ui/ACE_Settings.hpp +++ b/addons/ui/ACE_Settings.hpp @@ -45,7 +45,7 @@ class ACE_Settings { }; // ADVANCED - // Upper Weapon Info + // Soldier class GVAR(weaponName) { category = CSTRING(Category); displayName = CSTRING(WeaponName); @@ -70,8 +70,6 @@ class ACE_Settings { value = 1; isClientSettable = 1; }; - - // Lower Weapon Info class GVAR(ammoType) { category = CSTRING(Category); displayName = CSTRING(AmmoType); @@ -85,7 +83,7 @@ class ACE_Settings { displayName = CSTRING(AmmoCount); description = CSTRING(RequiresSoldierVehicleWeaponInfo); typeName = "BOOL"; - value = 0; + value = 1; isClientSettable = 1; }; class GVAR(magCount) { @@ -122,14 +120,12 @@ class ACE_Settings { }; class GVAR(weaponLowerInfoBackground) { category = CSTRING(Category); - displayName = CSTRING(WeaponLowerInfoBackground); //todo + displayName = CSTRING(WeaponLowerInfoBackground); description = CSTRING(RequiresSoldierVehicleWeaponInfo); typeName = "BOOL"; value = 1; isClientSettable = 1; }; - - // Stance class GVAR(stance) { category = CSTRING(Category); displayName = CSTRING(Stance); @@ -138,8 +134,6 @@ class ACE_Settings { value = 1; isClientSettable = 1; }; - - // Stamina Bar class GVAR(staminaBar) { category = CSTRING(Category); displayName = CSTRING(StaminaBar); @@ -149,6 +143,88 @@ class ACE_Settings { isClientSettable = 1; }; + // Gunner + class GVAR(gunnerWeaponName) { + category = CSTRING(Category); + displayName = CSTRING(GunnerWeaponName); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerWeaponNameBackground) { + category = CSTRING(Category); + displayName = CSTRING(GunnerWeaponNameBackground); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerFiringMode) { + category = CSTRING(Category); + displayName = CSTRING(GunnerFiringMode); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerAmmoType) { + category = CSTRING(Category); + displayName = CSTRING(GunnerAmmoType); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerAmmoCount) { + category = CSTRING(Category); + displayName = CSTRING(GunnerAmmoCount); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerMagCount) { + category = CSTRING(Category); + displayName = CSTRING(GunnerMagCount); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerLaunchableName) { + category = CSTRING(Category); + displayName = CSTRING(gunnerLaunchableName); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerLaunchableCount) { + category = CSTRING(Category); + displayName = CSTRING(gunnerLaunchableCount); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerZeroing) { + category = CSTRING(Category); + displayName = CSTRING(GunnerZeroing); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + class GVAR(gunnerWeaponLowerInfoBackground) { + category = CSTRING(Category); + displayName = CSTRING(GunnerWeaponLowerInfoBackground); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + value = 1; + isClientSettable = 1; + }; + // Vehicle class GVAR(vehicleName) { category = CSTRING(Category); @@ -206,12 +282,4 @@ class ACE_Settings { value = 1; isClientSettable = 1; }; - class GVAR(vehicleGunnerWeapon) { - category = CSTRING(Category); - displayName = CSTRING(VehicleGunnerWeapon); - description = CSTRING(RequiresSoldierVehicleWeaponInfo); - typeName = "BOOL"; - value = 1; - isClientSettable = 1; - }; }; diff --git a/addons/ui/ACE_UI.hpp b/addons/ui/ACE_UI.hpp new file mode 100644 index 0000000000..008d97db9b --- /dev/null +++ b/addons/ui/ACE_UI.hpp @@ -0,0 +1,180 @@ +#define ANYWHERE 0 +#define GROUND_ONLY 1 +#define VEHICLE_ONLY 2 + +class ACE_UI { + class weaponName { + idd = 300; + elements[] = {118}; + location = GROUND_ONLY; + class conditions {}; + }; + class weaponNameBackground { + idd = 300; + elements[] = {1001, 1008}; + location = GROUND_ONLY; + class conditions {}; + }; + class firingMode { + idd = 300; + elements[] = {187, 1203}; + location = GROUND_ONLY; + class conditions {}; + }; + class ammoType { + idd = 300; + elements[] = {155}; + location = GROUND_ONLY; + class conditions {}; + }; + class ammoCount { + idd = 300; + elements[] = {184}; + location = GROUND_ONLY; + class conditions {}; + }; + class magCount { + idd = 300; + elements[] = {185}; + location = GROUND_ONLY; + class conditions {}; + }; + class throwableName { + idd = 300; + elements[] = {152}; + location = GROUND_ONLY; + class conditions {}; + }; + class throwableCount { + idd = 300; + elements[] = {151}; + location = GROUND_ONLY; + class conditions {}; + }; + class zeroing { + idd = 300; + elements[] = {168}; + location = GROUND_ONLY; + class conditions {}; + }; + class weaponLowerInfoBackground { + idd = 300; + elements[] = {1202}; + location = GROUND_ONLY; + class conditions {}; + }; + class staminaBar { + idd = 305; + elements[] = {193}; + location = GROUND_ONLY; + class conditions {}; + }; + class stance { + idd = 303; + elements[] = {188, 1201}; + location = GROUND_ONLY; + class conditions {}; + }; + class gunnerWeaponName { + idd = 300; + elements[] = {118}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerWeaponNameBackground { + idd = 300; + elements[] = {1001, 1008}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerFiringMode { + idd = 300; + elements[] = {187, 1203}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerAmmoType { + idd = 300; + elements[] = {155}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerAmmoCount { + idd = 300; + elements[] = {184}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerMagCount { + idd = 300; + elements[] = {185}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerLaunchableName { + idd = 300; + elements[] = {152}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerLaunchableCount { + idd = 300; + elements[] = {151}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerZeroing { + idd = 300; + elements[] = {168}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class gunnerWeaponLowerInfoBackground { + idd = 300; + elements[] = {1202}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class vehicleName { + idd = 300; + elements[] = {120}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class vehicleNameBackground { + idd = 300; + elements[] = {1000, 1013}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class vehicleFuelBar { + idd = 300; + elements[] = {113, 1202}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class vehicleSpeed { + idd = 300; + elements[] = {121, 1004, 1006}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class vehicleAltitude { + idd = 300; + elements[] = {122, 1005, 1014}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class vehicleDamage { + idd = 300; + elements[] = {111}; + location = VEHICLE_ONLY; + class conditions {}; + }; + class vehicleInfoBackground { + idd = 300; + elements[] = {1200}; + location = VEHICLE_ONLY; + class conditions {}; + }; +}; diff --git a/addons/ui/CfgVehicles.hpp b/addons/ui/CfgVehicles.hpp index 391b3627eb..0b1cc9b2a9 100644 --- a/addons/ui/CfgVehicles.hpp +++ b/addons/ui/CfgVehicles.hpp @@ -44,7 +44,7 @@ class CfgVehicles { }; // ADVANCED - // Upper Weapon Info + // Soldier class weaponName { displayName = CSTRING(WeaponName); description = CSTRING(RequiresSoldierVehicleWeaponInfo); @@ -63,8 +63,6 @@ class CfgVehicles { typeName = "BOOL"; defaultValue = 1; }; - - // Lower Weapon Info class ammoType { displayName = CSTRING(AmmoType); description = CSTRING(RequiresSoldierVehicleWeaponInfo); @@ -75,7 +73,7 @@ class CfgVehicles { displayName = CSTRING(AmmoCount); description = CSTRING(RequiresSoldierVehicleWeaponInfo); typeName = "BOOL"; - defaultValue = 0; + defaultValue = 1; }; class magCount { displayName = CSTRING(MagCount); @@ -107,16 +105,12 @@ class CfgVehicles { typeName = "BOOL"; defaultValue = 1; }; - - // Stance class stance { displayName = CSTRING(Stance); description = CSTRING(RequiresSoldierVehicleWeaponInfo); typeName = "BOOL"; defaultValue = 1; }; - - // Stamina Bar class staminaBar { displayName = CSTRING(StaminaBar); description = CSTRING(RequiresSoldierVehicleWeaponInfo); @@ -124,6 +118,68 @@ class CfgVehicles { defaultValue = 1; }; + // Gunner + class gunnerWeaponName { + displayName = CSTRING(GunnerWeaponName); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerWeaponNameBackground { + displayName = CSTRING(GunnerWeaponNameBackground); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerFiringMode { + displayName = CSTRING(GunnerFiringMode); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerAmmoType { + displayName = CSTRING(GunnerAmmoType); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerAmmoCount { + displayName = CSTRING(GunnerAmmoCount); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerMagCount { + displayName = CSTRING(GunnerMagCount); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerLaunchableName { + displayName = CSTRING(gunnerLaunchableName); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerLaunchableCount { + displayName = CSTRING(gunnerLaunchableCount); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerZeroing { + displayName = CSTRING(GunnerZeroing); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + class gunnerWeaponLowerInfoBackground { + displayName = CSTRING(GunnerWeaponLowerInfoBackground); + description = CSTRING(RequiresSoldierVehicleWeaponInfo); + typeName = "BOOL"; + defaultValue = 1; + }; + // Vehicle class vehicleName { displayName = CSTRING(VehicleName); @@ -167,12 +223,6 @@ class CfgVehicles { typeName = "BOOL"; defaultValue = 1; }; - class vehicleGunnerWeapon { - displayName = CSTRING(VehicleGunnerWeapon); - description = CSTRING(RequiresSoldierVehicleWeaponInfo); - typeName = "BOOL"; - defaultValue = 1; - }; }; class ModuleDescription { description = CSTRING(ModuleDescription); diff --git a/addons/ui/XEH_clientInit.sqf b/addons/ui/XEH_clientInit.sqf index 117fd414a0..ad9e9b14cc 100644 --- a/addons/ui/XEH_clientInit.sqf +++ b/addons/ui/XEH_clientInit.sqf @@ -13,28 +13,27 @@ if (!hasInterface) exitWith {}; // Defaults must be set in this EH to make sure controls are activated and advanced settings can be modified private _force = [true, false] select (GVAR(allowSelectiveUI)); { - [_x select 0, _x select 1, _x select 2, _force] call FUNC(setAdvancedElement); - } forEach ELEMENTS_ADVANCED; - }] call CBA_fnc_addEventHandler; + private _name = configName _x; + [_name, missionNamespace getVariable (format [QGVAR(%1), _name]), false, _force] call FUNC(setAdvancedElement); + } forEach ("true" configClasses (configFile >> "ACE_UI")); + + // Execute local event for when it's safe to modify UI through this API + // infoDisplayChanged can execute multiple times, make sure it only happens once + if (!GVAR(interfaceInitialized)) then { + ["InterfaceInitialized", []] call CBA_fnc_localEvent + GVAR(interfaceInitialized) = true; + }; + }] call EFUNC(common,addEventHandler); // On changing settings ["ace_settingChanged", { params ["_name"]; - // Selective UI Basic if (_name in ELEMENTS_BASIC) then { [false] call FUNC(setElements); + } else { + [_name select [7], missionNamespace getVariable _name, true] call FUNC(setAdvancedElement); }; - - // Selective UI Advanced - { - _x params ["_idd", "_elements", "_elementName"]; - - if (_name == _elementName) then { - [_idd, _elements, _elementName] call FUNC(setAdvancedElement); - TRACE_2("Setting Changed",_name,_elementName); - }; - } forEach ELEMENTS_ADVANCED; }] call CBA_fnc_addEventHandler; }] call CBA_fnc_addEventHandler; diff --git a/addons/ui/XEH_preInit.sqf b/addons/ui/XEH_preInit.sqf index 4a5638fc03..8646227653 100644 --- a/addons/ui/XEH_preInit.sqf +++ b/addons/ui/XEH_preInit.sqf @@ -5,5 +5,6 @@ ADDON = false; #include "XEH_PREP.hpp" GVAR(elementsSet) = []; +GVAR(interfaceInitialized) = false; ADDON = true; diff --git a/addons/ui/config.cpp b/addons/ui/config.cpp index b00b209f52..339bc52e5c 100644 --- a/addons/ui/config.cpp +++ b/addons/ui/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"VKing", "Jonpas"}; - authorUrl = "http://ace3mod.com/"; + author = ECSTRING(common,ACETeam); + authors[] = {"VKing", "Jonpas"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; @@ -15,6 +16,7 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" #include "ACE_Settings.hpp" +#include "ACE_UI.hpp" #include "RscChat.hpp" #include "RscVignette.hpp" diff --git a/addons/ui/functions/fnc_moduleInit.sqf b/addons/ui/functions/fnc_moduleInit.sqf index 10f18f94f3..6bfe29392f 100644 --- a/addons/ui/functions/fnc_moduleInit.sqf +++ b/addons/ui/functions/fnc_moduleInit.sqf @@ -18,12 +18,13 @@ params ["_logic", "_units", "_activated"]; if (!_activated) exitWith {}; +[_logic, QGVAR(allowSelectiveUI), "allowSelectiveUI"] call EFUNC(common,readSettingFromModule); + // Basic if (isArray (missionConfigFile >> "showHUD")) then { // HUD visibility is hardcoded in mission config and showHUD command is overriden ACE_LOGINFO("User Interface Module Failed to Initialize Basic settings - showHUD overriden in mission config!"); } else { - [_logic, QGVAR(allowSelectiveUI), "allowSelectiveUI"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(soldierVehicleWeaponInfo), "soldierVehicleWeaponInfo"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(vehicleRadar), "vehicleRadar"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(vehicleCompass), "vehicleCompass"] call EFUNC(common,readSettingFromModule); @@ -44,6 +45,16 @@ if (isArray (missionConfigFile >> "showHUD")) then { [_logic, QGVAR(weaponLowerInfoBackground), "weaponLowerInfoBackground"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(stance), "stance"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(staminaBar), "staminaBar"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerWeaponName), "gunnerWeaponName"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerWeaponNameBackground), "gunnerWeaponNameBackground"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerFiringMode), "gunnerFiringMode"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerAmmoType), "gunnerAmmoType"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerAmmoCount), "gunnerAmmoCount"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerMagCount), "gunnerMagCount"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerLaunchableName), "gunnerLaunchableName"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerLaunchableCount), "gunnerLaunchableCount"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerZeroing), "gunnerZeroing"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(gunnerWeaponLowerInfoBackground), "gunnerWeaponLowerInfoBackground"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(vehicleName), "vehicleName"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(vehicleNameBackground), "vehicleNameBackground"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(vehicleFuelBar), "vehicleFuelBar"] call EFUNC(common,readSettingFromModule); @@ -51,6 +62,5 @@ if (isArray (missionConfigFile >> "showHUD")) then { [_logic, QGVAR(vehicleAltitude), "vehicleAltitude"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(vehicleDamage), "vehicleDamage"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(vehicleInfoBackground), "vehicleInfoBackground"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(vehicleGunnerWeapon), "vehicleGunnerWeapon"] call EFUNC(common,readSettingFromModule); ACE_LOGINFO_1("User Interface Module Initialized. Allow client modifications: %1",GVAR(allowSelectiveUI)); diff --git a/addons/ui/functions/fnc_setAdvancedElement.sqf b/addons/ui/functions/fnc_setAdvancedElement.sqf index 2ef88d5868..3f087d8974 100644 --- a/addons/ui/functions/fnc_setAdvancedElement.sqf +++ b/addons/ui/functions/fnc_setAdvancedElement.sqf @@ -3,33 +3,65 @@ * Sets advanced visible element of the UI using displays and controls. * * Arguments: - * 0: Element IDD - * 1: Element IDCs - * 2: Show/Hide Element OR Element ACE Settings Variable + * 0: Element Name + * 1: Show/Hide Element + * 2: Show Hint * 3: Force change even when disallowed (default: false) * * Return Value: * Successfully Set * * Example: - * [303, [188], true, false] call ace_ui_fnc_setAdvancedElement + * ["ace_ui_ammoCount", true, false] call ace_ui_fnc_setAdvancedElement * * Public: No */ #include "script_component.hpp" -params ["_idd", "_elements", "_show", ["_force", false, [true]] ]; - -if (_elementInfo in GVAR(elementsSet)) exitWith {}; +params ["_element", "_show", ["_showHint", false, [true]], ["_force", false, [true]] ]; if (!_force && {!GVAR(allowSelectiveUI)}) exitWith { - [LSTRING(Disallowed), 2] call EFUNC(common,displayTextStructured) + [LSTRING(Disallowed), 2] call EFUNC(common,displayTextStructured); + false }; -// Get show/hide boolean from mission namespace if it's a string -if (typeName _show == "STRING") then { - _show = missionNamespace getVariable _show; +private _config = configFile >> "ACE_UI" >> _element; + +// Exit if main vehicle type condition not fitting +private _location = getNumber (_config >> "location"); // (0-both, 1-ground, 2-vehicle) +private _currentLocation = ACE_player == vehicle ACE_player; +if ((_currentLocation && _location == 2) || (!_currentLocation && _location == 1)) exitWith {false}; + +private _idd = getNumber (_config >> "idd"); +private _elements = getArray (_config >> "elements"); + +// Get setting from config API +{ + private _condition = call compile (getText _x); + if !(_condition) exitWith { + TRACE_2("Condition False",_element,_x); + // Display and print info which component forced the element except for default vehicle check + if (_showHint) then { + [LSTRING(Disabled), 2] call EFUNC(common,displayTextStructured); + }; + _show = false; + }; +} forEach (configProperties [_config >> "conditions"]); + +// Get setting from scripted API +if (!_force) then { + private _index = GVAR(elementsSet) find [_element, _show]; + if (_index == -1) then { + _index = GVAR(elementsSet) find [_element, !_show]; + if (_index != -1) then { + if (_showHint) then { + [LSTRING(Disabled), 2] call EFUNC(common,displayTextStructured); + }; + _show = ((GVAR(elementsSet)) select _index) select 1; + }; + }; }; + _show = [1, 0] select _show; // Disable/Enable elements @@ -40,7 +72,7 @@ private _success = false; // Loop through IGUI displays as they can be present several times for some reason { if (_idd == ctrlIDD _x) then { - TRACE_3("Setting Element Visibility",_show,_idd,_idc); + //TRACE_3("Setting Element Visibility",_show,_idd,_idc); (_x displayCtrl _idc) ctrlSetFade _show; (_x displayCtrl _idc) ctrlCommit 0; diff --git a/addons/ui/functions/fnc_setElementVisibility.sqf b/addons/ui/functions/fnc_setElementVisibility.sqf index b019c4c081..8fbe4cf294 100644 --- a/addons/ui/functions/fnc_setElementVisibility.sqf +++ b/addons/ui/functions/fnc_setElementVisibility.sqf @@ -3,16 +3,15 @@ * Setter for toggling advanced element visibility. * * Arguments: - * 0: Set/Unset (default: true) - * 1: Element IDD (default: 0) - * 2: Element IDCs (default: []) - * 3: Show/Hide Element OR Element ACE Settings Variable (default: false) + * 0: Set/Unset + * 1: Element Name + * 2: Show/Hide Element (default: false) * * Return Value: * None * * Example: - * [true, 300, [188], false] call ace_ui_fnc_setElementVisibility + * [true, "ace_ui_ammoCount", false] call ace_ui_fnc_setElementVisibility * * Public: Yes */ @@ -20,30 +19,43 @@ params [ ["_set", true, [true]], - ["_idd", 0, [0]], - ["_elements", [], [[]]], - ["_show", false, [true, ""]] + ["_element", "", [""]], + ["_show", false, [true]] ]; +// Verify element is bound +if (!isClass (configFile >> "ACE_UI" >> _element)) exitWith { + ACE_LOGWARNING_1("Element '%1' does not exist",_element); +}; + private _return = false; if (_set) then { - if ([_idd, _elements] in GVAR(elementsSet)) exitWith { TRACE_3("Element already set",_idd,_elements,GVAR(elementsSet)); }; + // Exit if element has been set from another component, print warning if after interface initialization + if ([_element, _show] in GVAR(elementsSet) || {[_element, !_show] in GVAR(elementsSet)}) exitWith { + if (GVAR(interfaceInitialized)) then { + ACE_LOGWARNING_2("Element '%1' already set in %2",_element,GVAR(elementsSet)); + }; + }; - TRACE_4("Setting element",_idd,_elements,_show,GVAR(elementsSet)); - private _success = [_idd, _elements, _show] call FUNC(setAdvancedElement); + TRACE_3("Setting element",_element,_show,GVAR(elementsSet)); + private _success = [_element, _show, false, true] call FUNC(setAdvancedElement); if (_success) then { - GVAR(elementsSet) pushBack [_idd, _elements]; + GVAR(elementsSet) pushBack [_element, _show]; _return = true; }; } else { - if ([_idd, _elements] in GVAR(elementsSet)) then { - TRACE_4("Setting element",_idd,_elements,_show,GVAR(elementsSet)); - [_idd, _elements, _show] call FUNC(setAdvancedElement); + if ([_element, _show] in GVAR(elementsSet) || {[_element, !_show] in GVAR(elementsSet)}) then { + TRACE_3("Unsetting element",_element,_show,GVAR(elementsSet)); - private _index = GVAR(elementsSet) find [_idd, _elements]; + private _index = GVAR(elementsSet) find [_element, _show]; + if (_index == -1) then { + _index = GVAR(elementsSet) find [_element, !_show]; + }; GVAR(elementsSet) deleteAt _index; + + [_element, _show, false, true] call FUNC(setAdvancedElement); _return = true; }; }; diff --git a/addons/ui/functions/fnc_setElements.sqf b/addons/ui/functions/fnc_setElements.sqf index 64b716ee29..877489aba4 100644 --- a/addons/ui/functions/fnc_setElements.sqf +++ b/addons/ui/functions/fnc_setElements.sqf @@ -19,10 +19,6 @@ if (isArray (missionConfigFile >> "showHUD")) exitWith {}; params [ ["_force", false, [true]] ]; -if (!_force && {!GVAR(allowSelectiveUI)}) exitWith { - [LSTRING(Disallowed), 2] call EFUNC(common,displayTextStructured); -}; - ["ui", [ true, GVAR(soldierVehicleWeaponInfo), diff --git a/addons/ui/script_component.hpp b/addons/ui/script_component.hpp index a7410a49b8..d57697867c 100644 --- a/addons/ui/script_component.hpp +++ b/addons/ui/script_component.hpp @@ -17,51 +17,26 @@ #include "\z\ace\addons\main\script_macros.hpp" -// Elements +// Basic Elements #define ELEMENTS_BASIC [QGVAR(soldierVehicleWeaponInfo), QGVAR(vehicleRadar), QGVAR(vehicleCompass), QGVAR(commandMenu), QGVAR(groupBar)] -// IDD, IDC, Element (must be string to compare to changed setting name) -#define ELEMENTS_ADVANCED [ \ - [300, [118], QGVAR(weaponName)], \ - [300, [1001, 1008], QGVAR(weaponNameBackground)], \ - [300, [187, 1203], QGVAR(firingMode)], \ - [300, [155], QGVAR(ammoType)], \ - [300, [184], QGVAR(ammoCount)], \ - [300, [185], QGVAR(magCount)], \ - [300, [152], QGVAR(throwableName)], \ - [300, [151], QGVAR(throwableCount)], \ - [300, [1202], QGVAR(weaponLowerInfoBackground)], \ - [300, [168], QGVAR(zeroing)], \ - [305, [193], QGVAR(staminaBar)], \ - [303, [188, 1201], QGVAR(stance)], \ - [300, [120], QGVAR(vehicleName)], \ - [300, [1000, 1013], QGVAR(vehicleNameBackground)], \ - [300, [113, 1202], QGVAR(vehicleFuelBar)], \ - [300, [121, 1004, 1006], QGVAR(vehicleSpeed)], \ - [300, [122, 1005, 1014], QGVAR(vehicleAltitude)], \ - [300, [111], QGVAR(vehicleDamage)], \ - [300, [1200], QGVAR(vehicleInfoBackground)], \ - [300, [150], QGVAR(vehicleGunnerWeapon)] \ -] - - /* RscUnitInfo = 300 -------------------- -118 (Weapon Name) -+ 1001 (Weapon Name Background 1/2) -+ 1008 (Weapon Name Background 2/2) +118 (Weapon Name / Gunner Weapon Name) ++ 1001 (Weapon Name Background 1/2 / Gunner Weapon Name Background 1/2) ++ 1008 (Weapon Name Background 2/2 / Gunner Weapon Name Background 2/2) -187 (Firing Mode) -+ 1203 (Firing Mode Background) +187 (Firing Mode / Gunner Firing Mode) ++ 1203 (Firing Mode Background / Gunner Firing Mode Background) -155 (Ammo Type) -184 (Ammo Count) - disabled in config by ace_reload -185 (Magazine Count) -152 (Grenade/Flare Type) -151 (Grenade/Flare Count) -1202 (Lower Weapon Info Background) -168 (Zeroing) +155 (Ammo Type / Gunner Ammo Type) +184 (Ammo Count / Gunner Ammo Count) +185 (Magazine Count / Gunner Magazine Count) +152 (Grenade/Flare Type / Launchable Type) +151 (Grenade/Flare Count / Launchable Count) +1202 (Lower Weapon Info Background / Gunner Lower Weapon Info Background) +168 (Zeroing / Gunner Zeroing) 120 (Vehicle Name) @@ -80,8 +55,6 @@ RscUnitInfo = 300 111 (Vehicle Damage) 1200 (Vehicle Info Background) -150 (Vehicle Gunner Weapon) - RscStanceInfo = 303 -------------------- diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 74cd89e93b..61dcc18ee7 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -87,6 +87,36 @@ Stamina Bar Panel výdrže + + Gunner Weapon Name + + + Gunner Weapon Name Background + + + Gunner Firing Mode + + + Gunner Ammo Type + + + Gunner Ammo Count + + + Gunner Magazine Count + + + Gunner Launchable Type + + + Gunner Launchable Count + + + Gunner Zeroing + + + Gunner Weapon Lower Info Background + Vehicle Name Název vozidla @@ -115,17 +145,16 @@ Vehicle Info Background Info o vozidle v pozadí - - Vehicle Gunner Weapon - Střelcova zbraň ve vozidle - - Requires Soldier/Vehicle/Weapons Information. + Requires Soldier/Vehicle/Weapon Information. Vyžaduje informace o Vojákovi/Vozidlu/Zbrani Modifying User Interface is disabled. Změna uživatelského rozhraní je zakázána. + + Cannot modify a forced User Interface element. + - \ No newline at end of file + diff --git a/addons/vector/config.cpp b/addons/vector/config.cpp index 88cfd15439..8c1dd84ddb 100644 --- a/addons/vector/config.cpp +++ b/addons/vector/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Vector", "ACE_VectorDay"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Ghost","Hamburger SV","commy2","bux578"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Ghost","Hamburger SV","commy2","bux578"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/vehiclelock/config.cpp b/addons/vehiclelock/config.cpp index 8b51cb60a9..1180cd8aab 100644 --- a/addons/vehiclelock/config.cpp +++ b/addons/vehiclelock/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"PabstMirror"}; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); + authors[] = {"PabstMirror"}; authorUrl = "https://github.com/acemod/ACE3"; VERSION_CONFIG; }; diff --git a/addons/vehicles/config.cpp b/addons/vehicles/config.cpp index a3641a7b5b..9d2cd3caac 100644 --- a/addons/vehicles/config.cpp +++ b/addons/vehicles/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2","KoffeinFlummi"}; - authorUrl = "https://github.com/KoffeinFlummi/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2","KoffeinFlummi"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/viewdistance/config.cpp b/addons/viewdistance/config.cpp index a9af73b78e..92dacefcf1 100644 --- a/addons/viewdistance/config.cpp +++ b/addons/viewdistance/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Winter", "Jonpas", "Arkhir"}; - authorUrl = "https://github.com/Winter259"; + author = ECSTRING(common,ACETeam); + authors[] = {"Winter", "Jonpas", "Arkhir"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/weaponselect/config.cpp b/addons/weaponselect/config.cpp index 04a674a576..94c51a118c 100644 --- a/addons/weaponselect/config.cpp +++ b/addons/weaponselect/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2","KoffeinFlummi","esteldunedain"}; - authorUrl = "https://github.com/commy2/"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2","KoffeinFlummi","esteldunedain"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/weather/config.cpp b/addons/weather/config.cpp index ebe2271670..b0eff243cb 100644 --- a/addons/weather/config.cpp +++ b/addons/weather/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"q1184", "Rocko", "esteldunedain", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"q1184", "Rocko", "esteldunedain", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/winddeflection/config.cpp b/addons/winddeflection/config.cpp index 48f24920c4..f400f2eb12 100644 --- a/addons/winddeflection/config.cpp +++ b/addons/winddeflection/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_weather"}; - author[] = {ECSTRING(common,ACETeam), "Glowbal", "Ruthberg"}; - authorUrl = "http://ace3mod.com/"; + author = ECSTRING(common,ACETeam); + authors[] = {ECSTRING(common,ACETeam), "Glowbal", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/yardage450/config.cpp b/addons/yardage450/config.cpp index 4d0f820aed..18779bd5be 100644 --- a/addons/yardage450/config.cpp +++ b/addons/yardage450/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {"ACE_Yardage450"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_apl", "ace_laser"}; - author[] = {"Spooner", "tcp", "Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Spooner", "tcp", "Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 5db5fad035..62b4738761 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"SilentSpike"}; - authorUrl = "https://github.com/SilentSpike"; + author = ECSTRING(common,ACETeam); + authors[] = {"SilentSpike"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; // Use additional cfgPatches to contextually remove modules from zeus diff --git a/extras/blank/config.cpp b/extras/blank/config.cpp index a7b7bae6df..f78545d212 100644 --- a/extras/blank/config.cpp +++ b/extras/blank/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {""}; - authorUrl = ""; + author = ECSTRING(common,ACETeam); + authors[] = {""}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_adr_97/config.cpp b/optionals/compat_adr_97/config.cpp index 0b879124aa..aca323c98c 100644 --- a/optionals/compat_adr_97/config.cpp +++ b/optionals/compat_adr_97/config.cpp @@ -6,11 +6,13 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"A3_Weapons_F_Mod"}; - author[] = {"Nic547"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Nic547"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; #include "CfgWeapons.hpp" #include "CfgAmmo.hpp" -#include "CfgMagazines.hpp" \ No newline at end of file +#include "CfgMagazines.hpp" diff --git a/optionals/compat_r3f/config.cpp b/optionals/compat_r3f/config.cpp index d5dbc8e68c..c7e42c35ad 100644 --- a/optionals/compat_r3f/config.cpp +++ b/optionals/compat_r3f/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"R3F_Armes", "R3F_Acc"}; - author[]={"Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_rh_acc/config.cpp b/optionals/compat_rh_acc/config.cpp index 9f563bd157..b66be68593 100644 --- a/optionals/compat_rh_acc/config.cpp +++ b/optionals/compat_rh_acc/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"RH_acc"}; - author[]={"Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_rh_de/config.cpp b/optionals/compat_rh_de/config.cpp index 3d82eab05a..77dc828105 100644 --- a/optionals/compat_rh_de/config.cpp +++ b/optionals/compat_rh_de/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"RH_de_cfg"}; - author[]={"Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_rh_m4/config.cpp b/optionals/compat_rh_m4/config.cpp index 9c28be4f89..4bacb9dedf 100644 --- a/optionals/compat_rh_m4/config.cpp +++ b/optionals/compat_rh_m4/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"RH_m4_cfg"}; - author[]={"Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_rh_pdw/config.cpp b/optionals/compat_rh_pdw/config.cpp index 4aed0e6241..e3c5d15a07 100644 --- a/optionals/compat_rh_pdw/config.cpp +++ b/optionals/compat_rh_pdw/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"RH_PDW"}; - author[]={"Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_rhs_afrf3/config.cpp b/optionals/compat_rhs_afrf3/config.cpp index 82873b01e2..bf36181ce8 100644 --- a/optionals/compat_rhs_afrf3/config.cpp +++ b/optionals/compat_rhs_afrf3/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"rhs_c_weapons", "rhs_c_troops", "rhs_c_bmd", "rhs_c_bmp", "rhs_c_bmp3", "rhs_c_a2port_armor", "rhs_c_btr", "rhs_c_sprut", "rhs_c_t72", "rhs_c_tanks", "rhs_c_a2port_air", "rhs_c_a2port_car", "rhs_c_cars", "rhs_c_2s3", "rhs_c_rva"}; - author[]={"Ruthberg", "GitHawk", "BaerMitUmlaut"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg", "GitHawk", "BaerMitUmlaut"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_rhs_usf3/config.cpp b/optionals/compat_rhs_usf3/config.cpp index ef173ad1c6..e218f77d2e 100644 --- a/optionals/compat_rhs_usf3/config.cpp +++ b/optionals/compat_rhs_usf3/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"rhsusf_c_weapons", "rhsusf_c_troops", "rhsusf_c_m1a1", "rhsusf_c_m1a2", "RHS_US_A2_AirImport", "rhsusf_c_m109", "rhsusf_c_hmmwv", "rhsusf_c_rg33", "rhsusf_c_fmtv", "rhsusf_c_m113", "RHS_US_A2Port_Armor"}; - author[]={"Ruthberg", "GitHawk", "BaerMitUmlaut"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg", "GitHawk", "BaerMitUmlaut"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_rksl_pm_ii/config.cpp b/optionals/compat_rksl_pm_ii/config.cpp index c3ed720f8b..ca0a7189f2 100644 --- a/optionals/compat_rksl_pm_ii/config.cpp +++ b/optionals/compat_rksl_pm_ii/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"RKSL_PMII"}; - author[]={"Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/compat_sma3_iansky/config.cpp b/optionals/compat_sma3_iansky/config.cpp index 4dfda50805..5611c2d4af 100644 --- a/optionals/compat_sma3_iansky/config.cpp +++ b/optionals/compat_sma3_iansky/config.cpp @@ -6,7 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"iansky_opt"}; - author[]={"Ruthberg"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/noactionmenu/config.cpp b/optionals/noactionmenu/config.cpp index 763665660b..77e0457643 100644 --- a/optionals/noactionmenu/config.cpp +++ b/optionals/noactionmenu/config.cpp @@ -7,8 +7,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"commy2"}; - authorUrl = "https://github.com/commy2"; + author = ECSTRING(common,ACETeam); + authors[] = {"commy2"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/server/config.cpp b/optionals/server/config.cpp index 9cfcb35012..ab354fa4d8 100644 --- a/optionals/server/config.cpp +++ b/optionals/server/config.cpp @@ -6,8 +6,9 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Glowbal"}; - authorUrl = "https://github.com/Glowbal/"; + author = ECSTRING(common,ACETeam); + authors[] = {"Glowbal"}; + url = ECSTRING(main,URL); VERSION_CONFIG; }; }; diff --git a/optionals/tracers/config.cpp b/optionals/tracers/config.cpp index 7ea5992f14..32f1bfbb2d 100644 --- a/optionals/tracers/config.cpp +++ b/optionals/tracers/config.cpp @@ -1,15 +1,16 @@ -#include "script_component.hpp" - -class CfgPatches { - class ADDON { - units[] = {}; - weapons[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_ballistics"}; - author[] = {"ACE2 Team"}; - authorUrl = "https://www.ace3mod.com"; - VERSION_CONFIG; - }; -}; - -#include "CfgAmmo.hpp" +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_ballistics"}; + author = ECSTRING(common,ACETeam); + authors[] = {"ACE2 Team"}; + url = ECSTRING(main,URL); + VERSION_CONFIG; + }; +}; + +#include "CfgAmmo.hpp"